EZWhatsApp Integrations

Integration patterns

Connect client systems without moving WhatsApp truth out of EZWhatsApp.

These patterns define how agencies connect stores, CRMs, forms, calendars, spreadsheets, automation tools, and custom backends to the current EZWhatsApp API.

Supported integration roles

E-commerce

Shopify, WooCommerce, custom store

Use store event ids to build deterministic idempotency keys for order updates, pickup notices, invoices, and delivery changes.

CRM

HubSpot, Pipedrive, Zoho, Sheets

Use webhooks to sync message and conversation context. Do not let CRM assignment override EZWhatsApp workspace ownership.

Forms

Website forms and ad leads

Send first-touch WhatsApp follow-up, then let the client's sales team continue from the shared inbox.

Calendars

Appointments and reminders

Send reminder messages from appointment ids. Confirm, reschedule, and cancellation replies remain visible to the client.

No-code

Make, Zapier, n8n

Use HTTP modules with the current endpoints. Store line tokens as secrets and include Idempotency-Key headers.

Backend

Custom services

Implement health preflight, deterministic sends, webhook idempotency, and workspace handoff evidence.

Integration checklist

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.

No-code HTTP module baseline

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."
}