Developer docs

Automation API

Let your CRM, website forms or an automation tool (Zapier, Make, n8n, Zoho Flow…) drive CallBix: put a fresh lead on an agent's phone with a one-tap Call button, feed leads into call lists, or notify the team. For data going the other way — calls into your systems — see Webhooks.

Overview

Base URL: https://api.callbix.app/api/v1/hooks. Requests and responses are JSON. Everything an endpoint sends to a phone also appears under Notifications in the dashboard, with delivery and open counts.

Authentication

Create a key in Automations & API (workspace admins). Send it on every request in either header:

Authorization: Bearer cb_live_…
# or
X-Api-Key: cb_live_…

Keys belong to one workspace and act for it. Keep them server-side; revoke one in the dashboard if it leaks.

Ask an agent to call

POST/call-request

The fastest way to work a new lead. The chosen agent gets a notification with Call now and WhatsApp buttons; tapping Call dials immediately. The request stays open until that agent calls the number from their phone, and the time it took is recorded (Speed to lead in the dashboard). If nobody calls in time, an automation nudges the agent and tells their managers.

FieldType
phonestring, requiredAny format. Include the country code; numbers without one are read as the server's default country (India unless set otherwise).
namestringShown on the notification: “Call Priya Sharma now”.
companystring
notesstringContext for the agent, e.g. what they asked for.
assignTostringAn agent's email, or round_robin (default): whoever with the app signed in has the fewest open requests.
listIdstringAlso add the person to this call list, so their attempts are tracked there.
externalIdstringYour reference (e.g. CRM record id); returned when you check the request.
titlestringOverride the notification title.
Request
curl -X POST https://api.callbix.app/api/v1/hooks/call-request \
  -H "Authorization: Bearer cb_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+91 98765 43210",
    "name": "Priya Sharma",
    "company": "Sharma Interiors",
    "notes": "Filled the 3BHK enquiry form",
    "externalId": "zoho-lead-48213"
  }'
201 Created
{
  "id": "6702f0c1a9e1b2c3d4e5f601",
  "status": "OPEN",
  "assignedTo": { "id": "66f9a2b1c3d4e5f601234567", "name": "Ravi Kumar", "email": "ravi@acme.in" },
  "notification": { "id": "…", "stats": { "devices": 1, "delivered": 1, "failed": 0 }, "note": null }
}

Check a call request

GET/call-request/:id

200 OK
{
  "id": "6702f0c1a9e1b2c3d4e5f601",
  "status": "CALLED",
  "phone": "+91 98765 43210",
  "externalId": "zoho-lead-48213",
  "createdAt": "2026-10-02T06:09:12.000Z",
  "calledAt": "2026-10-02T06:11:40.000Z",
  "responseSec": 148,
  "callId": "6702f1d0a9e1b2c3d4e5f777"
}

status is OPEN until the agent calls the number, then CALLED. The call itself (outcome, notes, recording) reaches your CRM through the normal sync or your webhook.

Add leads to a call list

POST/leads

Appends leads to a list (find its id in the list's web address). They're shared between the list's agents just like an Excel import, and each agent is told how many new leads they got. Needs a plan with call lists.

Request
{
  "listId": "6702e0b0a9e1b2c3d4e5f500",
  "skipDuplicates": true,
  "leads": [
    { "phone": "9876500001", "name": "Neha Gupta", "company": "Gupta Traders", "extra": { "Budget": "75L", "Source": "Facebook" } },
    { "phone": "+91 98765 00002", "name": "Om Prakash" }
  ]
}
201 Created
{ "imported": 2, "duplicates": 0, "invalid": 0 }

Up to 5,000 leads per request. extra holds any other columns; agents see them on the dialer screen.

Send a notification

POST/notify

Request
{
  "to": { "emails": ["ravi@acme.in"] },
  "title": "Site visit confirmed for 4 pm",
  "body": "Priya Sharma — 12 MG Road. Call her if you're running late.",
  "action": { "kind": "CALL", "phone": "+91 98765 43210", "name": "Priya Sharma" }
}
to
{ "all": true }Everyone active in the workspace.
{ "emails": [...] }People by sign-in email.
{ "userIds": [...] }People by CallBix id.
{ "teamIds": [...] }Everyone in these teams.

Notification actions

kindExtra fieldsOn the phone
OPEN_APP—Opens CallBix (default).
CALLphone required, name, company, notesCall now and WhatsApp buttons; Call dials straight away.
OPEN_LISTlistId requiredOpens that call list's dialer.
URLurl required, https onlyOpens the link.

Test your key

GET/ping

200 OK
{ "ok": true, "workspace": { "id": "…", "name": "Acme Homes" }, "push": true }

push: false means this CallBix server can't deliver notifications yet; requests still work and are logged.

Errors

StatusMeaning
400Something in the body is missing or invalid; message says what.
401Missing, unknown or revoked API key.
402The workspace's plan doesn't include this, or its trial/subscription ended.
403The workspace is suspended.
404The list or call request doesn't exist in this workspace.
Error body
{ "error": "bad_request", "message": "No active person with the email ravi@acme.in" }

Recipes

  • New website or Facebook lead → call within a minute. In Zapier/Make/n8n, on “new lead”, send a Webhooks POST to /call-request with the lead's phone and name. Turn on Call request not acted on in Automations so managers hear about slow responses.
  • CRM lead status changes to “Hot” → call it. Zoho Workflow, HubSpot workflow or Salesforce Flow calling /call-request with assignTo set to the lead owner's email.
  • Nightly batch for tomorrow's calling. Push the day's leads to /leads; agents see them in the app's Lists tab in the morning.
  • Close the loop. Point a webhook back at your system to receive each call's outcome, notes and recording.