GET /v1/webhook-event-types (reference).
Levels are the endpoint levels that can subscribe to an event. An event that happens in an organization reaches that organization’s endpoints, and reseller and account endpoints that also receive events from the levels below (levels).
Data fields are the keys of data. The IDs of where it happened (partner_id, reseller_id, org_id, agent_id) are always in the envelope (payloads) and usually not repeated in data. The exceptions are org.created, org.suspended, org.reactivated, org.cancelled and partner.ns_agents_tab_live, which also carry organization_id in data. A flat name of — means the event type is used as event in the flat format.
First events
- Account firsts (
account.*, thepartner.*firsts,agent.first_personalizedandagent.first_knowledge_base_addedbelow) fire once per account, ever, and only while the account is on its trial — deleting and recreating an agent does not fireaccount.first_agent_createdagain, and an account that is no longer a trial does not fire them. - Organization and agent firsts (
org.first_*,agent.first_call_received) fire once per organization or agent, ever, on any plan. Organizations and agents that existed when these events were introduced count as already having reached them, so they never fire for them. Accounts whose agents had already reachedagent.first_personalizedoragent.first_knowledge_base_addedcount as having reached them too.
account.first_call_received and org.first_call_received / agent.first_call_received count every inbound call, test calls included.
Onboarding
Lifecycle
agent.updated, agent.prompt_changed and agent.first_personalized fire for Telzino voice agents only. agent.knowledge_base_updated and agent.first_knowledge_base_added fire for every agent type, as do agent.created and agent.deleted.
plan is the account’s subscribed plan name, "trial" while the account is on its trial, or null. Resellers, organizations and agents carry their account’s plan.
Who created it
created_by_type says what kind of identity created the record. created_by is the same identity as a prefixed string, <created_by_type>:<id>, like actor:
Both are
null when the creator is not known; the event is still sent.
Actor
actor says who made a change, as a prefixed string, or null when that is not known:
There is no
agent.published event: agents are live as soon as they are saved, so there is no publish step to report.Account, billing and users
Telzino only
Telzino’s own platform endpoints can subscribe to every event on this page, and also to these, which no account, reseller or organization endpoint receives:Calls
Call events are sent when the call ends, exceptintegration.connection_failed, which is sent as soon as the failure happens (usually mid-call). Caller details and summaries are sent only in the phi object, and only when the organization allows it.
Call outcomes
No outcome is sent for taking a payment: only the payment link being sent is reported.
Survey
Survey events are sent when a survey agent’s call ends. Each survey call sends exactly one ofsurvey.completed, survey.partial and survey.refused, plus survey.detractor and survey.callback_requested when they apply. Survey calls still send call.completed. An existing endpoint receives survey events only after you subscribe it to them.
All five carry the same fields:
call_idis the survey call’s own record;parent_call_idis the call the caller was transferred from (nullwhen unknown).transferred_atandqueuecome from the transferred-call context.repis{id, name, extension, source}: the representative who handled the caller.id,nameandextensionarenullwhen the representative is unknown.sourceis how the representative was found (referred_by,diversion,history_info,static_map,netsapiens_api,internalorunknown), andnullwhen the call has no transfer context.statusiscompleted,partialorrefused.languageisen,esorfr.duration_secis the length of the survey call,nullwhen unknown.answerslists the answered questions, in survey order:{key, type, value, confirmed, confidence}. A question that was not asked or not answered is not listed. Thevalueof anopenanswer isnull, unless PII redaction is on for the organization or the agent (then it is the redacted text).confidenceis the speech-to-text confidence of the caller’s reply: informational only, andnullwhen unavailable. With redaction on, each answer also carries the redactedrawtext the caller said.flagsis{detractor, callback_requested, survey_opt_out}.transcript_urlopens the call in the dashboard (sign-in required); it can benull.
Monitoring
Monitoring events are worked out per endpoint, from the event settings you give that endpoint (event settings). Each one:- is sent only to the endpoint whose settings it met — two endpoints with different thresholds get different events;
- fires once when its condition is met, then stays quiet until the condition clears (it re-arms), so it can fire again the next time;
- is checked about once a minute.
agent.registration_lost/agent.registration_restoredneed registration polling of the SIP proxies (OPENSIPS_PROXY_TARGETSon the event worker). An agent counts as lost only after it was seen registered at least once. A round in which a proxy does not answer marks nobody as lost.agent.latency_degradedneeds the call-metrics store (CLICKHOUSE_URLon the event worker).
threshold is the setting that was met and observed the value Telzino measured. since is when the condition started for agent.inactive, org.inactive and agent.registration_lost, and when it was detected for org.error_rate_spike, agent.latency_degraded and org.call_volume_spike.
Event settings
Endpoints that subscribe to a monitoring event must give its settings inevent_settings, keyed by event type. There are no defaults; an endpoint subscribed without them is refused. GET /v1/webhook-event-types returns each event’s settings_schema.
agent.activity_resumed, org.activity_resumed and agent.registration_restored have no settings of their own: they use the settings of their pair event. Put them in event_settings under the pair event’s own name (for example agent.inactive for agent.activity_resumed), even when only the resumed/restored event is subscribed: without them the endpoint is refused, and settings keyed under the resumed/restored name are refused too.
business_hours:
days are 0–6, 0 = Sunday; start and end are HH:MM; timezone is an IANA name.
Example event_settings:
Suspending an organization
Account admins and Reseller Admins of the organization’s reseller can suspend and reactivate an organization from the Customers page, or withPATCH /v1/organizations/{organization_id} (reference), with an optional reason. While an organization is suspended:
- inbound phone and web/widget calls to its agents are refused before the agent answers;
- new outbound calls are refused, and outbound calls already queued or scheduled are skipped;
- SMS from its agents is refused;
- its users can still sign in and edit it;
- billing is unchanged — its agents still count.
org.suspended; reactivating fires org.reactivated.