The Inbound webhook trigger gives any outside tool a URL. When anything POSTs JSON to that URL, the automation runs.

Use it to connect Zapier, Make, a form on your website, a marketing tool that doesn't have a native integration — anything that can send HTTP.

Create a webhook-triggered automation

  1. Automations → + New automation.
  2. Click the trigger node and pick Inbound webhook.
  3. Copy the URL shown in the trigger config panel. Every automation has its own URL.
  4. Save.

Inbound webhook trigger with the unique URL

POST from your external tool

Send an HTTP POST with a JSON body. Example:

POST https://api.runacall.com/v1/automations/webhooks/<automation-id>/<inbound-token>
Content-Type: application/json

{
  "first_name": "Sarah",
  "last_name": "Chen",
  "email": "sarah@example.com",
  "phone": "+15551234567",
  "lead_source": "Facebook Lead Ads",
  "notes": "Interested in maintenance plan"
}

The response is a small acknowledgement JSON. The automation itself starts running in the background.

Reference the payload downstream

Every field in the POST body is available under {{body.*}} in downstream steps:

  • {{body.first_name}}Sarah
  • {{body.lead_source}}Facebook Lead Ads
  • {{body.notes}}Interested in maintenance plan

Nested objects work too: {{body.address.street}} if you POST {"address": {"street": "123 Main St"}}.

Missing fields resolve to an empty string.

Common patterns

1. Create a customer from a Facebook lead

  • Trigger: Inbound webhook
  • Step: Create customer with first_name = {{body.first_name}}, phone = {{body.phone}}, etc.
  • Step: Add tag to customer with tag = {{body.lead_source}}.

2. Send an internal Slack ping

  • Trigger: Inbound webhook (from your CRM's "new opportunity" hook)
  • Step: Send / fetch via webhook POST-ing to a Slack incoming webhook URL with a formatted message.

3. Fire from a paper form

  • Wire your form platform (Typeform, Google Forms via Zapier, etc.) to POST to the URL.
  • Downstream: Create customer, then Send email confirming receipt.

Security notes

The URL is scoped to your organization and to a single automation. Anyone with the URL can POST to it. Treat it like a password:

  • Don't commit it to a public repository or share it publicly.
  • If you need to rotate it, delete the automation and rebuild — this issues a new URL.

There's no signature check or auth header requirement today.

Testing

Publish the automation, then POST a sample payload to the URL from your favorite tool — curl, Postman, or a Zap running in test mode. The run lands in /automations/runs with the trigger event labelled Inbound webhook, and the payload is visible in the run's input JSON.

The first time, use a test customer you own — a published automation acts for real (real SMS, real emails, real records).

What's not supported today

  • Custom auth headers or signature verification — no HMAC signature validation on inbound.
  • Response body customization — inbound webhooks return a fixed ack, not a synthesized response for the caller.
  • GET triggers — POST only.
  • File uploads (multipart) — JSON only.

For outbound calls to third-party APIs, use the Send / fetch via webhook action — see Automation actions catalog.