Update Call Flow
Update an existing call flow.
Headers
x-workspace-idstringrequiredWorkspace identifier for the API.
Path Parameters
idstringrequiredThe unique ID of the call flow to update.
Request Body
namestringNew name for the flow.
descriptionstringUpdated description for the call flow (e.g., "Updated description for inbound calls").
directionstringThe direction of the call flow. 'outbound' or 'bidirectional'
isActivebooleanWhether the call flow is currently active.
isGlobalbooleanWhether this is a global call flow (requires special permissions).
promptTypestringThe type of prompt used in the call flow "simple".
promptstringThe primary prompt for user interaction (used when promptType is 'simple').
welcomeMessagestringA shortcut that gives both directions, Inbound and Outbound, the same greeting type. For updates, prefer settings.welcomeMessageConfig: it can change one direction at a time and covers every greeting option. The value is case-sensitive:
aiFirstorai_dynamic: the AI writes the greeting. Saved asaiFirst(AI Generated in the editor).customMessageorai_custom: the agent opens with the text incustomWelcomeMessage. Saved ascustomMessage(Custom Message in the editor).userFirstoruser_initiated: the agent waits for the caller to speak first. Saved asuserFirst(Wait for Caller in the editor).
Any other value returns 400 with code: "GREETING_TYPE_INVALID", and the flow is not changed.
The shortcut is saved into settings.welcomeMessageConfig, so welcomeMessage and customWelcomeMessage are not stored. You can also send both fields inside settings. If you send a field in both places, the top-level value wins. If the request also includes settings.welcomeMessageConfig, the shortcut is ignored.
If the shortcut fields you send at the top level, or inside settings, all have exactly the values the flow already has in that place, they are ignored. Some older flows still return these fields, so sending a Get Call Flow response back unchanged does not change the greeting, as long as the flow has no unpublished changes from the call flow editor (see the Note below). To change it, send a different value or use settings.welcomeMessageConfig.
customWelcomeMessagestringThe text the agent says for a customMessage greeting, saved as customMessage in both directions. If you send non-blank text without welcomeMessage, the greeting type is set to customMessage. If you send welcomeMessage: "customMessage" without this field, each direction keeps the text it already has.
When a direction's greeting type is customMessage, its text must not be blank. Otherwise the request returns 400 with code: "GREETING_TEXT_REQUIRED", and the flow is not changed.
dynamicVariableCollectionsarrayCollections of dynamic variables for the call flow.
settingsobjectConfiguration settings for the call flow.
webhooksarrayList of webhooks to be added to the call flow. A new webhook will be created for each entry in the array, regardless of the name or if it already exists.
These endCallOnSilence and maxCallDuration settings are recommended to be sent for optimal API performance, though they are not strictly required.
A greeting set here is used from the flow's next call; nothing has to be published. If the flow has unpublished changes from the call flow editor, the editor and Get Call Flow keep showing that draft's greeting, and publishing the draft replaces the greeting you set here. Sending a Get Call Flow response back while such changes exist replaces the live greeting with the draft's, including one you set through the API.
Dashboard test calls also use the draft's greeting until the draft is published or discarded. Demo links marked Draft always use their draft's greeting. Calls received on the flow's phone number, calls the flow places and other Web SDK calls use the greeting set here.
Response Fields
_idstringThe unique identifier for the newly created call flow.
workspaceIdstringThe identifier of the workspace where the call flow has been created.
folderIdstringThe identifier of the folder where the call flow is organized.
isGlobalbooleanWhether this is a global call flow.
isPreConfiguredbooleanWhether this call flow is pre-configured.
preConfiguredWorkspaceIdstringWorkspace ID for pre-configured flows.
namestringThe name given to the call flow.
directionstringThe direction configuration of the call flow; can be "inbound", "outbound", or "bidirectional".
descriptionstringA description of what the call flow is designed to handle.
agentstringThe identifier of the agent associated with this call flow.
promptTypestringIndicates whether the call flow uses "simple" or "flow" based configuration.
flowDataobjectThe configuration of nodes and edges that define the call routing logic within the flow.
nodesarrayDetailed configuration of the nodes within the call flow.
edgesarrayConfigurations of the edges connecting nodes within the call flow.
promptstringThe initial or system prompt used in the call flow.
currentPromptIdstringID of the current active prompt version.
gemini_promptstringSanitized version of the prompt for Gemini processing.
startNodeIdstringID of the starting node for flow-based configurations.
isActivebooleanIndicates whether the call flow is currently active or inactive.
agentWebhookUrlstringWebhook URL for agent-related events.
inboundWebhookUrlstringWebhook URL for inbound call events.
dynamicVariableCollectionsarrayArray of dynamic variable collections configured for the call flow.
locationsarrayArray of location objects for visual flow positioning.
webhooksarrayArray of configured webhooks with their complete configuration.
settingsobjectConfiguration settings for various aspects of the call flow, including welcome messages, webhooks, knowledge bases, call settings, and security.
welcomeMessageConfigobjectThe greeting for each direction, with selected, customMessage, aiGreetingPrompt, userFirstFallbackDelaySeconds and userFirstFallbackMessage. Some flows can be missing a direction, a field, or the whole object; a missing selected means aiFirst.
InboundobjectThe greeting for calls received on the flow's phone number.
OutboundobjectThe greeting for calls the flow places and for web calls made with the Web SDK.
securityobjectSecurity settings with processed values.
hipaaCompliancebooleanHIPAA compliance status (processed from securityOptOut).
publicAccessbooleanPublic access configuration.
createdAtstringTimestamp when the call flow was created.
updatedAtstringTimestamp when the call flow was last updated.
{
"settings": {
"welcomeMessageConfig": {
"Inbound": {
"selected": "customMessage",
"customMessage": "Thanks for calling Acme Plumbing, how can I help you?"
}
}
}
}{
"settings": {
"welcomeMessageConfig": {
"Inbound": {
"selected": "userFirst",
"userFirstFallbackDelaySeconds": 8,
"userFirstFallbackMessage": "Hi, you've reached Acme Plumbing. How can I help you today?"
}
}
}
}{
"welcomeMessage": "customMessage",
"customWelcomeMessage": "Thanks for calling Acme Plumbing, how can I help you?"
}{
"_id": "676b8e123456789012345678",
"workspaceId": "6764d172953253138a3a70f4",
"folderId": null,
"isGlobal": false,
"isPreConfigured": false,
"preConfiguredWorkspaceId": null,
"name": "Customer Support Flow",
"direction": "inbound",
"description": "Handles inbound support calls",
"agent": "676b8e123456789012345679",
"promptType": "simple",
"flowData": {
"nodes": [
{
"id": "node1",
"type": "start",
"data": {
"prompt": "Welcome to our support line. How can I help you?"
}
}
],
"edges": []
},
"prompt": "Keep the conversation short and friendly.",
"currentPromptId": "676b8e123456789012345680",
"promptVersions": [
{
"_id": "676b8e123456789012345680",
"name": "Prompt Version - 1/15/2025, 3:00:00 PM",
"prompt": "Keep the conversation short and friendly.",
"metadata": {
"notes": ""
},
"createdAt": "2025-01-15T15:00:00.000Z",
"updatedAt": "2025-01-15T15:00:00.000Z"
}
],
"gemini_prompt": "Keep the conversation short and friendly.",
"startNodeId": null,
"isActive": true,
"agentWebhookUrl": "",
"inboundWebhookUrl": "",
"dynamicVariableCollections": [],
"locations": [],
"webhooks": [],
"settings": {
"welcomeMessageConfig": {
"Inbound": {
"aiGreetingPrompt": "",
"customMessage": "Thanks for calling Acme Plumbing, how can I help you?",
"selected": "customMessage",
"userFirstFallbackDelaySeconds": 10,
"userFirstFallbackMessage": ""
},
"Outbound": {
"aiGreetingPrompt": "",
"customMessage": "",
"selected": "aiFirst",
"userFirstFallbackDelaySeconds": 10,
"userFirstFallbackMessage": ""
}
},
"enableHumanLikeVoiceAndTone": false,
"welcomeMessageDelay": 0,
"webhooks": {
"agent": "",
"inbound": ""
},
"customerLocation": "new york",
"transfers": [],
"knowledgeBases": [],
"utilizePriorCallsContext": false,
"callSettings": {
"trilletVoiceGuard": true,
"reminderMessages": []
},
"security": {
"hipaaCompliance": false,
"publicAccess": false
}
},
"createdAt": "2025-01-15T15:00:00.000Z",
"updatedAt": "2025-01-15T15:00:00.000Z"
}