WhatsApp & SMS Notifications
Send WhatsApp or SMS notifications for order events, abandoned carts, and more.
Overviewโ
Flow:
- Admin configures gateway URLs in Settings.
- Admin creates notification templates in Products โ Notifications (or similar).
- When triggers fire (e.g., order placed, invoice paid, abandoned cart), the module sends a request to the gateway.
- The gateway delivers the message via WhatsApp or SMS.
Configurationโ
Gateway URLsโ
- Go to Setup โ Settings โ Products.
- Under WhatsApp / SMS Notifications:
- Enable the feature.
- Enter SMS Gateway URL - Your SMS provider's webhook/API endpoint.
- Enter WhatsApp Gateway URL - Your WhatsApp provider's webhook/API endpoint.
- Save.
Per-Template Overrideโ
Each notification template can use the global gateway or a custom webhook URL.
Creating a Notification Templateโ
- Go to Products โ Notifications (or Product Notifications).
- Click New Notification.
- Configure:
| Field | Description |
|---|---|
| Name | Internal name |
| Channel | WhatsApp or SMS |
| Trigger | abandoned_cart, order_placed, order_paid |
| Recipient | client or staff |
| Message template | Text with merge fields |
| Webhook URL | Override global (optional) |
| Webhook method | POST or GET |
| Webhook body | JSON template for the API |
- Save.
Merge Fieldsโ
Use these placeholders in the message template:
| Field | Description |
|---|---|
| {companyname} | Your company name |
| {cart_link} | Link to checkout |
| {cart_total} | Cart total (abandoned cart) |
| {client_name} | Customer name |
| {contact_phonenumber} | Phone number |
| {order_id} | Order ID |
| {order_date} | Order date |
| {total} | Order total |
| {invoice_number} | Invoice number |
| {invoice_link} | Link to invoice |
Trigger Eventsโ
- abandoned_cart - When cron sends abandoned cart reminders.
- order_placed - When an order/invoice is created.
- order_paid - When an invoice is marked as paid.
Webhook Bodyโ
The default body format is often:
{"to":"{contact_phonenumber}","body":"{message}"}
The {message} placeholder is replaced with the rendered message (JSON-encoded). Adjust the body template to match your gateway's API requirements.