API reference
Outbound Triggers
2 endpoints. Add your API key in the authentication panel to send test requests from this page.
Trigger an outbound call
/api/external/v1/outbound/callsDirectly triggers an outbound call to a destination phone number. This is the lightweight API for starting one-off outbound call sessions without creating a full CSV/JSON call job.
Select the flow with exactly one of:
flowId/flowApiId: reference a flow you've built and saved in the dashboard.flowIdaccepts either the internal UUID or the flow API ID;flowApiIdis the explicit alias. If all three (flowId,flowApiId,flow) are omitted, Kilevel falls back to your default manual-call flow.flow: an inline/transient flow definition for one-off calls that don't need a reusable, dashboard- managed flow — nothing is written to your flow library. See theflowfield description for the full supported shape and which fields are ignored.
rowData becomes the call's contact/row payload, while contextData preloads session memory.
If you configured flow-session webhooks globally or on the selected flow, those webhooks will also
run for the resulting outbound call session (not applicable when using an inline flow).
Request body application/json
flowIdstringOptional flow reference. Accepts either the internal UUID or a flow API ID. If omitted (and `flow` is also omitted), Kilevel uses your default manual-call flow. Provide at most one of flowId, flowApiId, or flow.
flowApiIdstringOptional explicit flow API ID. Preferred for external integrations. Provide at most one of flowId, flowApiId, or flow.
flowFlowOptional inline/transient flow definition — an alternative to flowId/flowApiId for one-off calls/chats that don't need a reusable, dashboard-managed flow. Nothing is written to your flow library; the definition is stored only for the lifetime of this call/chat session (and its thread, for follow-up messages), not TTL'd or auto-deleted otherwise. Provide at most one of flowId, flowApiId, or flow. Accepts almost the same shape as a flow exported from the dashboard — master prompt, messages, voice/language/timing settings, tools, variables, structured outputs, pronunciation dictionaries, knowledge base, session states, and event-trigger tool refs all work. The following fields are ignored if present, since they don't apply to a one-shot/session-scoped definition: id, apiId, userId, archived, createdAt, updatedAt, projectId, iconKey, iconColor, mermaid* (diagram state), apiConfig (session webhooks — not applicable, this flow is never reused outside its own call/thread), isTemplate, templatePublished, templatePublicationLabel, templatePublicTitle, templateDescription, templateIcon, templateImageUrl, referenceFlowId, bornFromTemplate, templateOverrideState, templateDetachMode, templateDetachSourceFlowId, templateParameterScopeEnabled, supportedLanguages, and the defaultTestCall/Chat* preset fields.
customerNumberstringRequired target phone number in E.164 format
fromPhoneNumberstringOptional fixed caller ID / sending phone number in E.164 format
allowedPhoneNumbersarray of stringOptional allowlist of caller IDs to use for this row
contactNamestringOptional contact name mirrored into rowData.name and rowData.fullName
contactEmailstringOptional contact email mirrored into rowData.email
rowDataobjectOptional row payload made available to the flow as rowData
contextDataobjectOptional session memory preloaded before the call starts. Accessible later as contextData.* / sessionMemory.*
languagestringOptional language override for this call
voiceIdstringOptional voice ID override for this call
firstMessageModestringOptional first-message mode override for this call
Responses
200Outbound call was queued401Missing or invalid API key403Key is valid but lacks access to this resource404Requested resource not found
Trigger an outbound chat
/api/external/v1/outbound/chatsDirectly triggers an outbound interactive chat session with a contact. Supported channels:
CHAT: creates an API-managed chat session that can be fetched via the chat-session endpoints.SMS: sends the opening assistant message over your configured SMS delivery channel.WHATSAPP: sends the opening assistant message over your configured WhatsApp delivery channel.
contextData is stored as session memory before the outbound chat starts.
If you configured flow-session webhooks globally or on the selected flow, those webhooks will also
run for the resulting outbound chat session (not applicable when using an inline flow).
Request body application/json
flowIdstringFlow reference. Accepts either the internal UUID or a flow API ID. Provide exactly one of flowId, flowApiId, or flow.
flowApiIdstringOptional explicit flow API ID. Preferred for external integrations. Provide exactly one of flowId, flowApiId, or flow.
flowFlowOptional inline/transient flow definition — an alternative to flowId/flowApiId for one-off calls/chats that don't need a reusable, dashboard-managed flow. Nothing is written to your flow library; the definition is stored only for the lifetime of this call/chat session (and its thread, for follow-up messages), not TTL'd or auto-deleted otherwise. Provide at most one of flowId, flowApiId, or flow. Accepts almost the same shape as a flow exported from the dashboard — master prompt, messages, voice/language/timing settings, tools, variables, structured outputs, pronunciation dictionaries, knowledge base, session states, and event-trigger tool refs all work. The following fields are ignored if present, since they don't apply to a one-shot/session-scoped definition: id, apiId, userId, archived, createdAt, updatedAt, projectId, iconKey, iconColor, mermaid* (diagram state), apiConfig (session webhooks — not applicable, this flow is never reused outside its own call/thread), isTemplate, templatePublished, templatePublicationLabel, templatePublicTitle, templateDescription, templateIcon, templateImageUrl, referenceFlowId, bornFromTemplate, templateOverrideState, templateDetachMode, templateDetachSourceFlowId, templateParameterScopeEnabled, supportedLanguages, and the defaultTestCall/Chat* preset fields.
channelstringChannel to start: CHAT, SMS, or WHATSAPP
assistantPhoneNumberstringRequired for SMS/WHATSAPP. Your sending phone number in E.164 format.
contactIdentifierstringOptional external contact/session identifier. Used primarily for CHAT sessions.
contactNamestringOptional contact name
contactEmailstringOptional contact email
contactPhonestringRequired for SMS/WHATSAPP. Optional for CHAT.
contextDataobjectOptional session memory preloaded before the outbound chat starts. Accessible as contextData.* / sessionMemory.*
initialMessagestringOptional explicit opening assistant message. If omitted, the flow's normal initial assistant message logic is used.
Responses
200Outbound chat session created401Missing or invalid API key403Key is valid but lacks access to this resource404Requested resource not found