The When an inbound webhook fires trigger gives an automation its own private web address. Whenever another app sends data to that address, the automation runs with that data. Use it to connect a website form, a lead-ads connector, a connector service such as Zapier or Make, or any tool that can send a web request.
This article is for whoever sets up those connections. If you've never set one up, the other app's "webhook" or "HTTP request" help page covers its side.
Create the automation and pick the trigger
- Automations → New automation.
- Click the trigger card and choose When an inbound webhook fires (under External).
The trigger card now shows a POST URL with Copy and Regenerate buttons, and the note POST any JSON to this URL — the body becomes the trigger payload. Up to 60 posts / minute. Regenerating invalidates the prior URL.
Copy the address into the other app
Click Copy and paste the address into the other app's webhook setting. It looks like:
https://app.runacall.com/api/v1/automations/inbound/<your-private-code>
Set the other app to:
- send a POST request,
- with a JSON object as the body (for example
{"name": "Sarah Chen", "phone": "+15551234567"}), - up to 256 KB.
Send a test
Before you activate the automation, send one test from the other app. The trigger card shows Listening for a test event, then Test event captured once it arrives. Nothing runs yet; Run a Call just keeps the sample.
Every field in that sample becomes a variable you can pick in your steps. The card says: Each captured field is now available as a variable in your steps. To capture a different sample, click the clear icon (Clear and listen again) and send another test.
Use the data in your steps
The fields you send are available by name. If the other app sends:
{
"name": "Sarah Chen",
"phone": "+15551234567",
"email": "sarah@example.com",
"source": "Facebook Lead Ads",
"address": { "street": "123 Main St" }
}
then in your steps:
| Variable | Becomes |
|---|---|
{{name}} | Sarah Chen |
{{phone}} | +15551234567 |
{{source}} | Facebook Lead Ads |
{{address.street}} | 123 Main St |
A field that isn't in the request comes out blank.
Save and activate
Click Save, then Activate. From now on, each request starts a run. Check them under Runs in the top bar.
Example: new web lead to a customer and a text
- Trigger: When an inbound webhook fires
- Create customer: First name
{{first_name}}, Phone{{phone}}, Email{{email}}, Tags{{source}} - Send SMS to Custom phone (your office cell): New web lead: {{first_name}} {{phone}}
What the other app gets back
The address answers right away, before the automation finishes:
| Situation | Answer |
|---|---|
| Automation is active | Accepted, and a run starts |
| Automation is a draft or paused | Accepted and saved as the test sample, but nothing runs |
| Body isn't a JSON object | Rejected |
| More than 60 requests in a minute | Rejected; try again shortly |
| Wrong or old address | Not found |
Only POST is accepted.
Keep the address private
Anyone who has the address can start the automation, so treat it like a password. There's no separate password or signature check. If it's ever shared by mistake, click Regenerate on the trigger card: the old address stops working immediately, and you paste the new one into the other app.