Create a new webhook

Create a webhook subscription. Chatarmin POSTs to url whenever the chosen topic fires.

Failed deliveries are retried up to 3 times with exponential backoff.

Delivery format

Every event is posted as:

{ "event": "<topic>", "data": { ... } }

Topics and payload examples

contact/created — a contact is created (not via this Public API).

{
  "event": "contact/created",
  "data": {
    "id": "664f01a118e4b2292cda88ee",
    "phone": "+4369912345678",
    "email": "[email protected]",
    "firstname": "Jane",
    "lastname": "Doe",
    "consent": "double",
    "consentDate": "2026-01-15T10:00:00.000Z",
    "tags": [{ "id": "664f01a118e4b2292cda88ff", "label": "VIP" }],
    "externalId": "shopify-123",
    "properties": { "city": "Vienna" },
    "history": []
  }
}

contact/updated — a contact is updated (not via this Public API). Same data shape as contact/created.

contact/deleted — a contact is deleted.

{
  "event": "contact/deleted",
  "data": {
    "id": "664f01a118e4b2292cda88ee",
    "externalId": "shopify-123"
  }
}

message/updated — a WhatsApp message is created or its status changes.

{
  "event": "message/updated",
  "data": {
    "id": "wamid.HBgNNDM2OTkxMjM0NTY3OBUCABIYFjNBMD",
    "from": "customer",
    "to": "4369912345678",
    "text": "Hi, I have a question about my order",
    "timestamp": 1760050800000,
    "footer": null,
    "header": null,
    "status": "delivered",
    "messageType": "text",
    "error": null,
    "chatId": "664f01a118e4b2292cda8901",
    "contactId": "664f01a118e4b2292cda88ee"
  }
}

flow/enrolled — a contact is enrolled in a flow.

{
  "event": "flow/enrolled",
  "data": {
    "flowId": "664f01a118e4b2292cda8910",
    "flowName": "Welcome series",
    "contactId": "664f01a118e4b2292cda88ee",
    "enrolledAt": "2026-01-15T10:05:00.000Z"
  }
}

form/submitted — a WhatsApp form / flow is submitted.

{
  "event": "form/submitted",
  "data": {
    "submissionId": "664f01a118e4b2292cda8920",
    "formId": "664f01a118e4b2292cda8921",
    "formName": "Lead form",
    "waFlowId": "1234567890",
    "status": "completed",
    "contactId": "664f01a118e4b2292cda88ee",
    "chatId": "664f01a118e4b2292cda8901",
    "messageId": "wamid.HBgNNDM2OTkxMjM0NTY3OBUCABIYFjNBMD",
    "answers": [
      { "name": "email", "label": "Email", "value": "[email protected]" },
      { "name": "company", "label": "Company", "value": "Acme GmbH" }
    ],
    "savedToContact": { "email": "[email protected]" },
    "validationErrors": [],
    "submittedAt": "2026-01-15T10:06:00.000Z"
  }
}

error/occurred — a send or flow step fails.

{
  "event": "error/occurred",
  "data": {
    "error": {
      "message": "Failed to send template message",
      "code": 132001,
      "statusCode": 400
    },
    "source": { "type": "api" },
    "contact": {
      "id": "664f01a118e4b2292cda88ee",
      "phone": "+4369912345678",
      "email": "[email protected]",
      "firstName": "Jane",
      "lastName": "Doe",
      "externalId": "shopify-123"
    },
    "metadata": {
      "messageType": "template",
      "templateName": "order_confirmation"
    },
    "occurredAt": "2026-01-15T10:07:00.000Z"
  }
}

Pick a topic example in the request body below when creating the webhook.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
uri
required

HTTPS endpoint that receives { event, data } POSTs.

string
enum
required

Event this webhook listens for.

Allowed:
Responses

Language
Credentials
Bearer
API Token
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json