Requirements
- A Meta Business account (business portfolio) and a Meta developer account.
- A phone number for sending that isn't already registered in the WhatsApp or WhatsApp Business app, or Meta's free test number while you try it out.
- A payment method in WhatsApp Manager. Meta charges per template message (the utility rate for your recipients' country); Codeskop doesn't add any charge.
- Owner or admin role in Codeskop, on the Starter plan or above.
What you'll give Codeskop
| Option | Type | Description |
|---|---|---|
| Phone number ID | number | The ID of your sending number, from WhatsApp Manager → API setup (not the phone number itself). |
| Access token | secret | A permanent System User token with whatsapp_business_messaging permission. Stored encrypted. |
| Template name | text | codeskop_alert: the template below, approved in your account. |
| Recipient number | +E.164 | The WhatsApp number that receives alerts, e.g. +254712345678. Add one channel per recipient. |
Create a WhatsApp app in Meta
This gives you a WhatsApp Business Account and a test number.
- Go to developers.facebook.com/apps → Create app → type Business, and link your business portfolio.
- On the app dashboard, add the WhatsApp product and open WhatsApp → API setup.
- Note the WhatsApp Business Account ID; you need it to create the template by API.
Add your sending number
In WhatsApp Manager → Phone numbers, add your number and verify it by SMS or call. To try things first, use Meta's test number instead. It can message up to five recipient numbers that you add under API setup → To.
Create the codeskop_alert template
Download our template, or copy it in by hand.
Download codeskop_alert.json (ready for Meta's API) · Download codeskop_alert.txt (step-by-step for WhatsApp Manager)
Option A: WhatsApp Manager
Open Account tools → Message templates → Create template, choose category Utility, name
codeskop_alert, language English, and enter:BodyCodeskop alert: {{1}}Project: {{2}}{{3}}Open it in Codeskop for the full details.- Sample values:
{{1}}CRITICAL: New crash: NullPointerException in CheckoutActivity,{{2}}Shop Android (Production),{{3}}A new crash was reported. 12 users affected on Android 14. - Footer (optional): Sent by Codeskop alerts.
- Button: Call to action → Visit website, text Open in Codeskop, URL type Dynamic, URL
https://dashboard.codeskop.com/{{1}}, sampleissues/2f1c9a7e?project=demo&env=production.
Option B: the API
Terminalcurl -X POST "https://graph.facebook.com/v21.0/YOUR_WABA_ID/message_templates" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d @codeskop_alert.jsonMeta usually approves utility templates within minutes (up to 24 hours). Wait for the status Active before connecting. Keep the wording and variables exactly as given. Codeskop fills
{{1}}with the severity and title,{{2}}with the project and environment,{{3}}with a one-line summary, and the button with the link to the issue or endpoint.Another language?
Create a translation of the same template in WhatsApp Manager, then enter its language code (for examplefrorpt_BR) when you connect.- Sample values:
Create a permanent access token
Temporary tokens from API setup expire after 24 hours.
- In Business settings → Users → System users, add a system user with the Admin role.
- Choose Assign assets: give it your app and your WhatsApp account, with full control.
- Choose Generate new token, select your app, set expiry to Never, and tick
whatsapp_business_messagingandwhatsapp_business_management. - Copy the token. Meta shows it only once.
Connect WhatsApp in Codeskop
In Settings → Notifications, choose WhatsApp and enter the phone number ID, access token, template name (
codeskop_alert), language (en) and the recipient's number. Codeskop checks the credentials with Meta and sends a test alert through your template. When it arrives, the channel is active.
Troubleshooting
| Option | Type | Description |
|---|---|---|
| Credentials rejected | n/a | The phone number ID and token don't belong together, or the token lacks whatsapp_business_messaging. Generate the token for the same app and WhatsApp account. |
| Template name does not exist | n/a | The template isn't approved yet, the name isn't exactly codeskop_alert, or the language code doesn't match the approved translation. |
| Recipient not in allowed list | n/a | You're using Meta's test number: add the recipient under API setup → To, or switch to your own number. |
| Message undeliverable | n/a | The recipient number isn't on WhatsApp, or has blocked your business number. |
| Alerts stopped | n/a | The token was revoked or the template was paused or disabled by Meta. The channel shows Last delivery failed. Fix it in Meta, then remove and reconnect the channel. |