Skip to main content
A human call is a phone call between one of your counsellors and a contact, started by your system instead of a Call button. Telleo rings the counsellor’s phone first; when they pick up, it dials the contact and joins the two. It is the API version of the Call button in the Telleo dashboard and uses the same calling provider, recordings, call log and dispositions. Human calls live under their own resource, /v1/human-calls, and need their own scopes: human_calls:read and human_calls:write. A key only has them when it was created with Can ring counsellors (human calls) ticked; your existing AI calling keys cannot ring your staff. AI calls (/v1/calls) are unchanged.

Counsellors

Only people already set up in your account can take human calls: active users with a Counsellor or Admin role. An API key never acts as a person, so it cannot invent one. List them with GET /v1/counsellors:
can_call is false until the counsellor is ready for your calling provider:
  • Vacademy Voice and Exotel ring the counsellor’s mobile number, so it must be on their profile, as a full number with the country code.
  • Airtel dials from the counsellor’s Airtel extension, mapped under Settings → Calling.
Phone numbers are never returned. Name a counsellor in a call by counsellor_id or by counsellor_email (exactly one).

Starting a call

The response is 201 with the human call, usually queued or ringing_counsellor. Within a few seconds the counsellor’s phone rings. Because a human call happens now, every check runs before anything rings, and a call that cannot go out now is refused with a clear code instead of being queued. The checks run in this order, so the first one that fails is the error you get: The busy and already-being-called checks are made under a lock per counsellor and per number, so two requests a moment apart (a double click) cannot both ring. Idempotency-Key works exactly as for AI calls: a retry with the same key and body returns the first call (200, idempotent_replay: true) instead of ringing the counsellor again.

Calling hours and contact limits

  • Calling hours. Calls go out only inside your account’s calling hours (the calling shifts in your AI calling settings, as for AI calls) and inside the India compliance window, 9 AM to 9 PM in your account’s timezone unless your plan changes it.
  • Calls per number per day. The same limit as AI calls (3 in 24 hours unless your settings say otherwise), counting every call to the number, AI and human.
  • Gap after a conversation. After a call to a number connects, the next call to it waits at least an hour. A missed call (no answer, busy) does not start this gap, so a counsellor can retry a missed call; it still counts toward the daily limit.
Telleo does not scrub numbers against the national DND (NCPR) registry. Check your own consent records before calling.

Your CRM lead

If exactly one lead in your Telleo account has this phone number, the call is filed on that lead: it shows on the lead’s timeline, and a disposition that is mapped to a lead stage moves the lead. crm_lead_linked says whether this happened. If no lead, or more than one, has the number, the call is kept as an API contact (like an AI call) and no lead changes.

Status

How quickly the status changes depends on your provider, reported in status_updates: A call that never reports an end is marked failed (No final status was received) after 2 hours (24 hours on Airtel).

The human call object

  • Times are ISO-8601 UTC and never in the future. answered_at is when the contact picked up, when known.
  • recording_url is a temporary link (valid until recording_expires_at, 24 hours); fetch the call again for a fresh one. It is null when your provider or settings do not record.
  • disposition is what the counsellor (or your system) recorded; null until set.
  • analysis is not_requested unless you sent analyze: true (or your account analyses calls automatically); then pending, completed or failed with a reason (not_connected, no_recording, insufficient_credits…). An analysis that hits a temporary error is retried automatically (up to 4 attempts) and stays pending meanwhile.
  • cost is null while the call runs. See Billing.
List calls with GET /v1/human-calls, filtered by counsellor_id, status, phone_number, external_id, created_after and created_before, newest first with cursor pagination. status matches the status each call reports, including calls reported failed because they were never placed or never reported an end.

Dispositions

The outcome of a human call is the disposition the counsellor picks in the dashboard. Your system can set it too:
Keys come from your account’s list, GET /v1/dispositions. changes_lead_status says whether a key moves a linked lead to a new stage.

AI analysis

Send analyze: true to have the conversation transcribed and analysed once the recording is in: a summary, the contact’s sentiment, how likely they are to convert, and ratings of the call. You get human_call.analysis_ready when it is done (usually a few minutes after the call). Analysis needs a recording, so it is only possible when your calls are recorded.

Billing

Human calls appear under human_calls in GET /v1/usage: with source=api the calls placed through the API, with source=all every counsellor call placed on Vacademy Voice, Exotel or Airtel. Recordings of calls made elsewhere and uploaded to Telleo are not counted.