Skip to main content
A webhook is an HTTPS POST that Mobilerun sends to a URL you own when something happens in your account. Instead of polling the API, your server (or an automation tool such as n8n, Zapier, or Make) receives the event within seconds. Every delivery is signed with a per-endpoint secret, retried on transient failures, and recorded so you can inspect what was sent and what your server answered.
Want to be pinged when the Mobilerun assistant finishes a job, fails, or is waiting for your answer? Follow the assistant notifications guide. You can even ask the assistant to set the webhook up for you.

How events reach you

One webhook endpoint can be fed in three different ways. They share the same URL, secret, signature, and delivery log, but they are configured in different places. The two workflow modes are targeted: they always reach the endpoint named in the workflow, regardless of that endpoint’s event filter. Platform subscriptions are fan-out: the filter decides which events you receive.

Creating a webhook

In the dashboard open Webhooks and click Add Webhook. Via the API, POST /v1/webhooks with the same fields.
  1. Enter a public HTTPS URL. Mobilerun never follows redirects, so point at the final URL.
  2. Pick the event types you want. Leaving the filter empty subscribes the endpoint to every event, which is rarely what you want.
  3. Save. The response shows the signing secret exactly once. Store it in your receiver’s configuration now; it cannot be read back later.
  4. Click Send test (or POST /v1/webhooks/{id}/test). A signed webhook.test event is delivered immediately and appears in the delivery log.
Limits: 50 endpoints per organization, and the same active URL cannot be registered twice.

Managing endpoints

Rotating the secret invalidates the old one immediately. Update your receiver first, then rotate, or accept a short window of rejected deliveries.

States and health

What your receiver gets

Every delivery is a POST with a JSON body in the platform event envelope:

Headers

Verifying the signature

The signature is an HMAC-SHA256 over the string "{timestamp}.{rawBody}" using your endpoint secret, where timestamp is the value of X-Mobilerun-Timestamp and rawBody is the request body exactly as received. Verify before you parse the JSON.
For a complete, runnable receiver with HMAC verification, replay protection, and secure file downloads, see the Python webhook receiver example.

Delivery and retries

Respond with a 2xx as soon as you have persisted the event, and do the actual work asynchronously. Slow receivers hit the timeout and burn attempts.

Event catalog

Use these identifiers in the endpoint’s event filter. The assistant and the SDK can list the live catalog for you; the table reflects the catalog at the time of writing.

Tasks

Assistant (interactive chat)

These fire for the hosted Mobilerun assistant, independent of whether you still have the chat open. See the assistant notifications guide for payloads and setup.

Workflows

triggers.notification always has this data shape:
severity is one of info, success, warning, error. The automatic completion notification sets title to Workflow "<name>" succeeded or Workflow "<name>" failed and severity to success or error. origin lets you correlate the notification with the run in the dashboard or via the API.

Phone numbers and eSIMs

Mailboxes

Diagnostics

Integrations

n8n

Start an n8n workflow from a Mobilerun webhook using the Webhook trigger node, then act on the event with the official Mobilerun node.

Zapier and Make

Use a “Catch Hook” or “Custom webhook” trigger. Both tools can forward the event as an email, Slack message, or push notification.

Alerting

Subscribe to task.run.failed, workflow.run.failed, and chat.turn.failed and route them to your on-call channel.

Data pipelines

Store task.run.completed results, inbound SMS, and mailbox messages in your own database as they arrive.

Best practices