How it differs from Zapier
The Zapier trigger sends data and that is the end of it: a Catch Hook does not answer. An n8n workflow that ends with a Respond to Webhook node does, and whatever it answers reaches the agent as the tool’s result. So the agent can not only push something into your systems but ask them something while the caller is still on the line: an order’s status in the shop, a free slot in the booking system, a customer record in a database we have no ready-made integration for. A workflow without a Respond to Webhook node works too: n8n answers an empty200, the agent gets “sent” and carries on.
Connecting
1
The workflow in n8n
New workflow → Webhook node. Set HTTP Method to
POST. If the
workflow should answer the agent, set Respond to
Using 'Respond to Webhook' Node and end the workflow with a
Respond to Webhook node.Recommended: Authentication → Header Auth, a new credential with
the header name X-Brosbots-Secret and any long value. You enter the same
secret on our side.2
Activate the workflow and copy the production URL
The Active toggle in the top right, then the Production URL tab in
the Webhook node. The address has
/webhook/ in its path.3
The connection in BrosBots
Integrations → n8n. Paste the production URL and the secret, if
you set one. Saving delivers a test message, so the workflow runs once
with
"event": "test" in the body.4
Switch the tool on in the agent
Agent editor → Integrations → n8n workflow. Pick the connection
and fill in When to use it, and what to say and Phrases that should
trigger it. Without those fields the agent has the tool but no idea what
it is for - and usually leaves it alone. Details in Slack, email, Zapier
and the calendar during the
call.
The n8n integration is available from the Start plan, like Zapier and the
webhooks.
What reaches the workflow
The agent sends aPOST with JSON. It chooses event and data itself,
following what you wrote in When to use it, and what to say; the other
two fields are added by us, so the agent cannot invent them.
With the
X-Brosbots-Secret header when the connection has a secret.
What the workflow can answer
The response body reaches the agent in theresult field. The most
convenient answer is one sentence the agent should pass on:
The agent waits for the answer for up to 15 seconds. The call is live, so
if the workflow does something slow, answer first and do the rest after the
response (in n8n: Respond to Webhook early in the chain, the heavy nodes
after it).
A
4xx/5xx code is a tool error: the agent gets “n8n failed (code)” and
tells the caller it could not check. A 404 on the test address is named for
what it is: nobody is listening.
A ready-made workflow to import
The smallest workflow: Webhook → Respond to Webhook. It answers with a confirmation that repeats what it received, so you can hear in a call that the path works. In n8n: … (workflow menu) → Import from File, or paste the JSON through Import from URL / the clipboard.$json.body.event and $json.body.data.
Post-call events in n8n
That is a separate integration, Post-call webhook in the catalogue, and a separate workflow: a Webhook node with thePOST method, its production
URL pasted into the webhook wizard. call.completed arrives with the
transcript, summary and outcome, and on request SMS, campaign and
balance.low events too; the format and the list of events are in
Webhooks.
The X-Brosbots-Signature is usually not checked in n8n, because the address
is secret in itself. If you want to: switch on Raw Body in the Webhook
node, compute HMAC-SHA256 of the raw body with a Crypto node (Action
Hmac, Type SHA256, Encoding Hex, Secret = your whsec_… key) and
compare it with the header after stripping sha256=.
Troubleshooting
Every call shows up in n8n under Executions, with the body the agent
sent.
