Courier company · Notifications
WhatsApp notifications
Sending order messages to your customers from your own WhatsApp Business account (Twilio or Meta); setup steps, SMS fallback, delivered/read information and troubleshooting.
When WhatsApp notifications are on, order messages to your customers and recipients go out on WhatsApp instead of SMS. The text is the same as your SMS template; only the channel changes. If a message does not reach the recipient on WhatsApp, the same text is sent automatically as SMS.
Messages sent on WhatsApp:
- Order status notifications (e.g. Order created, Delivered)
- Delivery code
- "Your courier is on the way" message
- Rating link
- Scheduled job (appointment) reminder
Always sent as SMS: SMS you send manually with Send SMS, Bulk message campaigns and phone verification SMS.
Cost
WhatsApp messages are sent from your own Twilio or Meta account and paid from that account. Meta charges for every template message (conversation); Twilio adds its own fee. Check current prices in your own account. Courino does not charge for this feature.
Before you start
- You need a WhatsApp Business account (through Twilio or directly with Meta).
- The phone number you send from must be registered with WhatsApp Business. It cannot be used in the WhatsApp phone app at the same time.
- You need an approved message template. For messages started by a business, WhatsApp only accepts templates approved by Meta.
- Your customers' consent: You are responsible for getting your customers' consent before messaging them on WhatsApp (similar to data protection and commercial message rules). You can collect it when taking orders or in your contract.
Preparing the template
Courino places the SMS text into the single variable ({{1}}) of your template. The template body must contain only one variable. Meta rejects templates that start or end with a variable, so put fixed text before and after it. Example body (three lines):
| Line | Text |
|---|---|
| 1 | Gönderiniz hakkında bilgilendirme: |
| 2 | {{1}} |
| 3 | Bu otomatik bir bilgilendirme mesajıdır. |
- Choose the Utility category.
- Choose the same language as your customers (e.g. Turkish).
- Approval usually takes from a few minutes to a few hours.
Setting up with Twilio
- Sign in to Twilio. Note the Account SID (starts with AC) and Auth Token on the home page.
- Register your WhatsApp sender number under Messaging › Senders › WhatsApp senders (Twilio takes you through Meta approval).
- In Messaging › Content Template Builder, create a template like the example above and submit it for WhatsApp approval. Once approved, note its Content SID (starts with HX).
- In Courino, go to Settings › Notifications › Provider accounts and press Set up on the WhatsApp row.
- Choose Twilio as the Provider.
- Fill in Account SID, WhatsApp sender number (e.g. +90 5xx xxx xx xx), Content template SID and Auth token.
- Press Save.
If you leave the Content template SID empty, messages go out as free text; this only works in Twilio's sandbox. A template is required to reach real customers.
You do not need to do anything for delivered/read information: Twilio receives the Callback URL shown in the dialog automatically with every message.
Setting up with Meta WhatsApp Cloud API
- On Meta for Developers, create an app of type Business and add the WhatsApp product to it.
- On WhatsApp › API Setup, add and verify your sender number. Note the Phone number ID (digits only) on the same page.
- Create a permanent access token: in Meta Business Suite go to Business settings › Users › System users, add a system user, assign your app and WhatsApp account to it, press Generate token and select the
whatsapp_business_messagingpermission. Choose a token that never expires. (The temporary token on the API Setup page expires in 24 hours; do not use it.) - Note the App secret on your app's Settings › Basic page.
- In WhatsApp Manager › Message templates, create a template like the example above and submit it for approval. Note the template name (e.g. order_update) and language (e.g. tr).
- In Courino, go to Settings › Notifications › Provider accounts, press Set up on the WhatsApp row and choose Meta WhatsApp Cloud API as the Provider.
- Fill in Phone number ID, Template name, Template language (tr if left empty), Permanent access token and App secret, then press Save.
- After saving, the dialog shows the Callback URL and the Verify token. Copy them with the copy buttons next to them.
- In Meta, open your app's WhatsApp › Configuration page. In the Webhook section press Edit; paste the callback URL into Callback URL and the verify token into Verify token, then save.
- In the Webhook fields list on the same page, Subscribe to the messages field.
If you do not enter the App secret or set up the webhook, messages are still sent, but Delivered / Read information and later errors such as "number not on WhatsApp" are not processed; SMS fallback then only happens for errors at sending time.
Sending a test
- Enter your own mobile number in the Send test section at the bottom of the WhatsApp dialog.
- Press Send. If it says "The provider accepted the message.", a test template message arrives on your phone.
- If you get an error, read it; usually the template name, language or token is wrong.
The test message does not fall back to SMS: if the number is not on WhatsApp it shows as an error.
SMS fallback
Send undelivered messages as SMS is on by default. While it is on:
- If a WhatsApp message cannot be sent (e.g. invalid number, rejected template) or the provider later reports it as undelivered (e.g. the number is not on WhatsApp), the same text is sent once as SMS to the same person.
- Your SMS channel (your own SMS account or platform SMS) must be on. If your SMS channel is not ready, there is no fallback; the dialog shows a warning.
- If you use platform SMS, fallback SMS are charged as platform SMS too.
If you turn it off, no SMS is sent for undelivered WhatsApp messages.
Delivered and read
WhatsApp rows in the Notification log show:
- Delivered: the message reached the recipient's phone.
- Read: the recipient opened the message. If the recipient turned off read receipts in WhatsApp, this badge does not appear.
- Falls back to SMS if undelivered: SMS will be sent if the message does not get through.
- Sent as SMS: the WhatsApp message failed and an SMS was sent to the same recipient; the SMS appears as a separate row.
Details: Notification log.
Turning it off
In the WhatsApp dialog, untick Sending on and press Save; messages go out as SMS again. To remove your details completely, press Delete.
Having trouble?
- Template not approved or a "template" error: Check that the template is approved and that its name and language are entered in Courino exactly. The template must have only one variable and must not start or end with it.
- The number is not on WhatsApp: The message fails; if SMS fallback is on and your SMS channel is ready, an SMS is sent.
- 24-hour rule: WhatsApp only lets you message someone who has not written to you in the last 24 hours with an approved template. That is why a template is required; free text (sending without a template on Twilio) does not reach real customers.
- Invalid access token: Meta's temporary token expires in 24 hours. Create a non-expiring token with a system user and enter it again.
- Delivered/read never shows: Check that you entered the webhook URL and verify token in Meta, subscribed to the messages field and entered the App secret in Courino.
- Insufficient balance: Check that your Twilio or Meta account has a payment method and balance.
- You can also see the overall connection status on the Integration status screen.