Shopify, WooCommerce, custom store
Use store event ids to build deterministic idempotency keys for order updates, pickup notices, invoices, and delivery changes.
Integration patterns
These patterns define how agencies connect stores, CRMs, forms, calendars, spreadsheets, automation tools, and custom backends to the current EZWhatsApp API.
Use store event ids to build deterministic idempotency keys for order updates, pickup notices, invoices, and delivery changes.
Use webhooks to sync message and conversation context. Do not let CRM assignment override EZWhatsApp workspace ownership.
Send first-touch WhatsApp follow-up, then let the client's sales team continue from the shared inbox.
Send reminder messages from appointment ids. Confirm, reschedule, and cancellation replies remain visible to the client.
Use HTTP modules with the current endpoints. Store line tokens as secrets and include Idempotency-Key headers.
Implement health preflight, deterministic sends, webhook idempotency, and workspace handoff evidence.
| Check | Required behavior | Why it matters |
|---|---|---|
| Secret storage | Store ezw_line_... tokens in server-side secrets only. |
Line tokens can send from a real WhatsApp line. |
| Health preflight | Call /api/v1/health before production workflows and during diagnostics. |
Linked-device lines can need reconnect or become unsendable. |
| Idempotency | Use source-system ids in Idempotency-Key. |
Retries must not duplicate customer messages. |
| Webhook dedupe | Store X-EZW-Delivery-Id. |
Webhook retries must not duplicate CRM, ticket, or notification actions. |
| Workspace handoff | Client team can see and handle replies in EZWhatsApp. | The agency should not become the inbox for routine operations. |
| Unsupported asks | Record product decisions for cold outbound, official WABA, group/channel automation, bots, or policy gaps. | Business logic must not be inferred in integration code. |
Method: POST
URL: https://app.ezw.solutions/api/v1/messages/text
Headers:
Authorization: Bearer {{EZW_LINE_API_TOKEN}}
Content-Type: application/json
Idempotency-Key: order:{{order.id}}:ready
Body:
{
"to": "{{customer.phone}}",
"body": "Your order {{order.number}} is ready."
}