Skip to main content
Link your system sends signed webhook events from Adraa Inbox to a URL you control, and lets your API act on them in the same HTTP response. When a customer asks “where is my order?”, your server can look the order up by the contact’s phone number and reply instantly — no flow required.

Connect your endpoint

  1. An admin opens Settings → Link your system.
  2. Enter your webhook URL (must be https:// and publicly reachable) and pick the events to send.
  3. Click Connect and copy the signing secret (whsec_…) — it’s shown only once. Use Rotate later to issue a new one.
  4. Click Send test event to deliver a sample message.received payload and inspect your server’s response.

Events

The request we send

Each event is a POST with a JSON body:
conversation is omitted for contact.* events, message is present only on message.received, and assignment (agentId, agentName) is added on conversation.assigned. Test deliveries include "test": true.

Verify the signature

Every delivery carries these headers:
verify-signature.js
Reject requests whose timestamp is more than a few minutes old to prevent replays.

Respond with actions

Return HTTP 200 with JSON. Any actions you include run immediately:
An empty body or {} is fine when you only want to record the event — for example, feeding an analytics pipeline.

Limits

  • Up to 5 actions per response, of which at most 3 replies (4,096 characters each).
  • fields is capped at 32 keys / 16 KB; data at 32 KB.
  • reply and trigger_flow are skipped on contact.* events (no conversation in scope).
  • Invalid actions are recorded in the delivery log; valid ones still run.

Delivery behavior

Deliveries are fire-and-forget: they never delay message processing, and a reply lands moments after the customer’s message. Your endpoint has 10 seconds to respond; non-2xx responses and timeouts are logged and ignored — there are no automatic retries, so a slow endpoint can’t double-message a customer. The Recent deliveries table in settings keeps the last 50 requests with response bodies and per-action results for debugging.

Example uses

  • Order status: reply with live order data looked up by phone number, and push the order list into the Linked system panel for agents.
  • CRM enrichment: on contact.created, tag the contact with tier and account owner from your CRM.
  • Dynamic routing: on message.received, trigger a VIP flow for customers your database marks as high-value.
  • Ticket sync: mirror conversation.created / conversation.resolved into Jira or Zendesk.
Prefer polling or building against the REST API instead? Everything the inbox exposes is also available on the public API, and no-code automations are covered by the Zapier integration.