n8n
Send conversation data to n8n after every call, call n8n workflows during the conversation and start outbound calls from n8n.
With n8n, you connect bhomy to almost any system: CRM, ticket system, spreadsheets, chat. The connection works in both directions. bhomy sends the data to your workflow after every call, and your workflow starts a call via the Outbound API.
Three routes with n8n
| Route | In bhomy | In n8n |
|---|---|---|
| Data after the call | CRM Ticket under Tools › Automation | Webhook node as the trigger |
| Data during the conversation | CRM System under Tools › Tools | Webhook node with Respond to Webhook |
| Start a call | API Key | HTTP Request node |
Receiving data after the call
- Create a workflow in n8n with a Webhook node. Method
POST. - Copy the node's Production URL.
- In bhomy, open your agent › Tools › Automation › Add › CRM Ticket.
- Enter the URL under Webhook URL. If your webhook is secured with a header, enter the value under Authorization Header (optional).
- Click Test URL. n8n receives sample data that you use to set up the next nodes.
- Click Activate and activate the workflow in n8n.
What bhomy sends after the call
After every conversation, bhomy sends a JSON with a fixed structure via POST:
{
"callId": "call_8f2a1c",
"fromNumber": "+491701234567",
"toNumber": "+494012345678",
"startedAt": 1792920600.52,
"endedAt": "2026-10-25T09:34:12.418203",
"duration": 250,
"context": {
"email": "anna.berger@example.de",
"vorname": "Anna",
"nachname": "Berger",
"firma": "Berger Immobilien",
"telefon": "+491701234567"
},
"extractionData": {
"anliegen": "Besichtigungstermin für die Wohnung in Eimsbüttel",
"kategorie": "Besichtigung",
"prioritaet": "normal"
},
"summary": "Frau Berger möchte die Wohnung am Samstag besichtigen …",
"formattedTranscript": "Agent: Guten Tag …\nKunde: …",
"assistantId": "",
"timestamp": "2026-10-25T09:34:12.418526"
}
| Field | Content |
|---|---|
callId | ID of the call, the same as in the call history and in the Outbound API response |
fromNumber, toNumber | numbers of the call in E.164 format |
startedAt | start of the call as Unix time in seconds |
endedAt, timestamp | time at which bhomy sends the data, shortly after the call ends, in UTC in ISO 8601 format without a time zone suffix |
duration | duration of the call in seconds |
context | contact details from the Context Extractor: variables named email, vorname (first name), nachname (last name), firma (company) and telefon (phone). From a variable name, bhomy builds the first and last name |
extractionData | variables anliegen (request), kategorie (category) and prioritaet (priority) |
summary | summary of the conversation |
formattedTranscript | the conversation with agent and customer |
assistantId | currently empty. You can identify the agent by its number: toNumber for inbound calls, fromNumber for outbound calls |
The field names are the same in every language. Missing details arrive as an empty string or with a default value, such as "kategorie": "Allgemein".
Respond with a 2xx status within 10,000 milliseconds. bhomy sends the webhook once per conversation and doesn't retry it. Whether it arrived is shown in the list of executions of your workflow in n8n.
Calling a workflow during the conversation
With the CRM System tool, your agent calls an n8n webhook while the caller is on the phone, for example to create a lead or look up an order status. If the workflow responds with Respond to Webhook and a JSON, the agent states the values in the conversation. The setup is described under API call during the conversation.
Starting outbound calls from n8n
- Create a key in bhomy under API Key.
- In n8n, add an HTTP Request node after your trigger, for example after a new row in Google Sheets.
- Method
POST, URLhttps://app.bhomy.ai/api/v1/outbound. - Header
Authorizationwith the valueBearer YOUR_API_KEY, plusIdempotency-Keywith a unique ID per call, such as the row number. - Body as JSON with
toNumber,fromNumberandcontext.
{
"toNumber": "{{ $json.phone }}",
"fromNumber": "+494012345678",
"context": {
"customer_name": "{{ $json.customer_name }}",
"appointment": "{{ $json.appointment }}"
}
}
The double curly brackets here are n8n expressions. They insert values from the previous node. Store the API key in n8n as credentials, not as plain text in the node. All fields and responses are listed under Outbound API.
Examples
| Workflow | Nodes in n8n |
|---|---|
| New lead in the CRM after every call | Webhook › HubSpot, Pipedrive or your CRM › create contact |
| Emergency straight to the on-call service | Webhook › IF prioritaet is high › Slack or SMS |
| Appointment reminder the day before | Schedule Trigger › read Google Sheets › HTTP Request to the Outbound API |
Was this page helpful?