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

RouteIn bhomyIn n8n
Data after the callCRM Ticket under Tools › AutomationWebhook node as the trigger
Data during the conversationCRM System under Tools › ToolsWebhook node with Respond to Webhook
Start a callAPI KeyHTTP Request node

Receiving data after the call

  1. Create a workflow in n8n with a Webhook node. Method POST.
  2. Copy the node's Production URL.
  3. In bhomy, open your agent › Tools › Automation › Add › CRM Ticket.
  4. Enter the URL under Webhook URL. If your webhook is secured with a header, enter the value under Authorization Header (optional).
  5. Click Test URL. n8n receives sample data that you use to set up the next nodes.
  6. 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"
}
FieldContent
callIdID of the call, the same as in the call history and in the Outbound API response
fromNumber, toNumbernumbers of the call in E.164 format
startedAtstart of the call as Unix time in seconds
endedAt, timestamptime at which bhomy sends the data, shortly after the call ends, in UTC in ISO 8601 format without a time zone suffix
durationduration of the call in seconds
contextcontact 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
extractionDatavariables anliegen (request), kategorie (category) and prioritaet (priority)
summarysummary of the conversation
formattedTranscriptthe conversation with agent and customer
assistantIdcurrently 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

  1. Create a key in bhomy under API Key.
  2. In n8n, add an HTTP Request node after your trigger, for example after a new row in Google Sheets.
  3. Method POST, URL https://app.bhomy.ai/api/v1/outbound.
  4. Header Authorization with the value Bearer YOUR_API_KEY, plus Idempotency-Key with a unique ID per call, such as the row number.
  5. Body as JSON with toNumber, fromNumber and context.
{
  "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

WorkflowNodes in n8n
New lead in the CRM after every callWebhook › HubSpot, Pipedrive or your CRM › create contact
Emergency straight to the on-call serviceWebhook › IF prioritaet is high › Slack or SMS
Appointment reminder the day beforeSchedule Trigger › read Google Sheets › HTTP Request to the Outbound API