AI Outbound Agent
Overview
The AI Outbound Agent is an AI agent designed for outbound communications like voice calls, SMS, or automated outreach. It combines AI capabilities with voice/communication configurations to initiate and manage outbound interactions with users or customers.
Configuration Details
name
The unique name of the AI outbound agent within the workflow.
String
Yes
-
start
Indicates if this is the starting agent of the workflow.
Boolean
No
false
transition
Defines the transition to the next flow node after outbound communication completes. See TransitionDef
Object
No
-
answerAfterFinish
Whether the agent should provide an answer message after completing outbound communication.
Boolean
No
false
answerMessage
Custom message to display when outbound communication is complete.
String
No
-
aiModel
The AI model to use for outbound communications.
String
No
"gpt-4o"
llmConfig
Advanced configuration for the LLM including temperature, max tokens, etc. See LLMConfigDef
Object
No
-
systemMessage
System message that defines the agent's role and behavior for outbound communications.
String
No
"You are a helpful AI Assistant."
maxToolExecutions
Maximum number of tool executions allowed during the outbound interaction.
Integer
No
10
memory
Memory configuration for maintaining context during outbound conversations. See ChatMemoryDef
Object
No
-
output
Output schema definition that specifies the structure of the outbound interaction results. See DataSchemaDef
Object
Yes
-
tools
List of tools/functions available to the AI agent during outbound communications. See ToolForAIDef
List
No
[]
outboundConfig
Outbound communication configuration including provider settings, retry logic, and delivery options. See OutboundConfigDef
Object
No
-
Common Configuration Objects
LLMConfigDef
LLM Configuration Definition. Defines the configuration for AI Language Models used by AI agents. Includes provider settings, authentication, and parameter overrides for fine-tuning model behavior.
provider
The name of the LLM provider
String
No
apiKey
The API key to access the AI Language Model provider
String
No
overrideParams
Parameters to override for the provider. These settings will take precedence over default model parameters. See LLMParamsDef
Object
No
LLMParamsDef
LLM Parameters Definition. Defines configuration parameters for Language Model behavior including sampling settings, token limits, penalties, and other model-specific options that control AI response generation.
model
The specific model to use for generating responses
String
No
-
temperature
The sampling temperature (0.0 to 2.0). Higher values make output more random, lower values more focused
Double
No
-
topP
The top-p sampling parameter (0.0 to 1.0). Controls nucleus sampling for token selection
Double
No
-
n
The number of completions to generate for each prompt
Integer
No
-
logprobs
The number of log probabilities to return for each token
Integer
No
-
echo
Whether to echo back the prompt in the response
Boolean
No
-
stop
Sequences where the model should stop generating further tokens
List
No
[]
maxTokens
The maximum number of tokens to generate in the response
Integer
No
-
presencePenalty
Presence penalty parameter (-2.0 to 2.0). Positive values penalize new tokens based on whether they appear in the text so far
Double
No
-
frequencyPenalty
Frequency penalty parameter (-2.0 to 2.0). Positive values penalize new tokens based on their existing frequency in the text
Double
No
-
logitBias
Logit bias configuration. Maps token IDs to bias values (-100 to 100) to increase or decrease likelihood of specific tokens
Map<String, Integer>
No
-
required
Additional required parameters specific to the model or provider
Object
No
-
ChatMemoryDef
Configures how AI agents manage conversation memory including short-term message windows, memory optimization through summarization, and long-term memory for persistent context across sessions.
memoryId
Unique identifier for the memory session
String
No
-
memoryType
Type of memory management strategy
String
No
"message_window"
maxMessages
Maximum number of messages to retain in memory
Integer
No
10
maxTokens
Maximum number of tokens to retain in memory (alternative to maxMessages)
Integer
No
-
memoryOptimizer
Configuration for memory optimization strategies like summarization
Object
No
-
longTermMemory
Configuration for long-term memory that persists across sessions
Object
No
-
MemoryOptimizerDef
Memory Optimizer Definition. Configures strategies for optimizing memory usage through summarization and other compression techniques to maintain relevant context while reducing memory footprint.
summarization
Configuration for conversation summarization to compress older messages
Object
No
ConversationSummarizationDef
Conversation Summarization Definition. Configures how older conversation messages are summarized to compress memory while retaining important context and recent interactions.
retainedMessages
Number of recent messages to retain without summarization
Integer
No
2
promptMessage
Custom prompt for guiding the summarization process
String
No
-
LongTermMemoryDef
Long Term Memory Definition. Configures persistent memory that survives across conversation sessions. Supports different memory types (semantic, episodic, procedural) and scopes (global, local) for various use cases.
memoryId
Unique identifier for the long-term memory instance
String
No
-
scope
Scope of the long-term memory: 'global' (shared across agents) or 'local' (agent-specific)
String
No
-
memoryType
Type of long-term memory: semantic (facts/knowledge), episodic (events/experiences), or procedural (skills/processes)
String
No
"episodic"
DataSchemaDef
Data Schema Definition. Defines the structure and validation rules for data used in AI workflows. Contains JSON Schema specifications that ensure data integrity and provide type safety for agent interactions and data transformations.
schema
JSON Schema definition that describes the structure, types, and validation rules for data objects
JsonNode
Yes
ToolForAIDef
Tool Definition for AI Agents. Defines a tool or function that can be used by AI agents to perform specific tasks or access external services. Supports both standard tool execution and Model Context Protocol (MCP) integration for enhanced capabilities.
name
Unique name of the tool that will be used by AI agents to invoke it
String
Yes
type
Type of tool execution. 'standard' for direct execution, 'mcp' for Model Context Protocol integration
String
No
description
Description of what the tool does and how to use it
String
No
parameters
Input parameters schema definition for the tool
Object
No
output
Output schema definition for the tool response
Object
No
execution
Tool execution configuration including endpoint and method
Object
No
mcpClient
MCP client configuration for Model Context Protocol tools
Object
No
OnAgentOutcomeDef
Agent Outcome Definition. Defines conditional actions to be performed based on the outcome of an AI agent's execution. Allows for branching logic, workflow control, and custom responses based on agent results or specific conditions.
condition
Expression that must evaluate to true for this outcome to be matched
String
Yes
-
finish
Whether the agent should finish execution after this outcome action is performed
Boolean
No
true
transition
The transition definition specifying the next step in the workflow when this outcome is matched
Object
No
-
answerAfterFinish
Whether to provide an answer message after finishing this outcome action
Boolean
No
false
answerMessage
Custom message to display when this outcome is triggered and answerAfterFinish is true
String
No
-
VoiceConfigDef
Voice Configuration Definition. Configures comprehensive voice capabilities for AI agents including speech-to-text (STT), text-to-speech (TTS), and interaction behaviors for voice-based communications.
stt
Speech-to-text configuration for converting user speech input to text. See STTDef
Object
No
-
tts
Text-to-speech configuration for converting agent responses to speech. See TTSDef
Object
No
-
allowInterruptions
Whether to allow users to interrupt the agent while it's speaking
Boolean
No
-
STTDef
Speech-to-Text Definition. Configures speech recognition capabilities for AI agents to convert spoken audio input into text. Supports multiple STT providers with provider-specific configurations and options.
provider
The name of the STT provider
String
No
model
The model to use for speech recognition. This is provider-specific
String
No
language
The language code for recognition. Format varies by provider
String
No
apiKey
The API key or credentials for the STT service
String
No
providerOptions
Provider-specific configuration options
Map<String, Object>
No
TTSDef
Text-to-Speech Definition. Configures speech synthesis capabilities for AI agents to convert text responses into natural-sounding speech. Supports multiple TTS providers with voice selection and provider-specific options.
provider
The name of the TTS provider
String
No
model
The model to use for TTS. This is provider-specific
String
No
voice
The voice to use for TTS. Provider-specific voice names or IDs
String
No
language
The language code for TTS. Affects pronunciation and available voices
String
No
apiKey
The API key or credentials for the TTS service
String
No
providerOptions
Provider-specific configuration options
Map<String, Object>
No
OutboundConfigDef
Outbound Configuration Definition. Configures how AI agents initiate outbound communications including greeting messages, instructions for dynamic greetings, and target specifications for reaching recipients through various communication channels.
greeting
The static greeting message to be used when the agent initiates contact
String
No
greetingInstructions
Instructions for the LLM to generate dynamic greeting messages. This configuration takes precedence over the static greeting message
String
No
outboundTarget
The outbound target configuration specifying who and how to contact the recipient. See OutboundTargetDef
Object
No
OutboundTargetDef
Outbound Target Definition. Defines the target configuration for outbound communications from AI agents. Specifies the type of communication channel (voice, messaging platforms) and the destination details for reaching the intended recipient.
targetType
The type of the outbound target communication channel
String
No
"voice"
targetAddress
The address of the outbound target. Format depends on target type: phone number for voice, user ID for messaging platforms, etc.
String
No
-
targetName
The name of the outbound target for identification and personalization purposes
String
No
-
Example Configuration
Here's a comprehensive example showing how to configure an AI Outbound Agent for making voice calls with full conversation capabilities:
{
"type": "ai_outbound_agent",
"name": "customer_service_agent",
"description": "AI agent for making outbound customer service calls with appointment reminders and scheduling",
"llmConfig": {
"provider": "openai",
"overrideParams": {
"model": "gpt-4o",
"temperature": 0.7,
"maxTokens": 150
}
},
"chatMemory": {
"memoryType": "message_window",
"maxMessages": 20
},
"systemMessage": "You are a friendly customer service representative making outbound calls for appointment confirmations and scheduling. Be professional, courteous, and helpful. Keep responses concise for voice conversations.",
"voiceConfig": {
"stt": {
"provider": "deepgram",
"model": "nova-2",
"language": "en-US"
},
"tts": {
"provider": "elevenlabs",
"voice": "Rachel",
"language": "en-US"
},
"allowInterruptions": true
},
"outboundConfig": {
"greetingInstructions": "Generate a personalized greeting mentioning the customer's name and the purpose of the call: appointment confirmation for tomorrow's service.",
"outboundTarget": {
"targetType": "voice",
"targetAddress": "+1234567890",
"targetName": "John Smith"
}
},
"tools": [
{
"name": "check_appointment",
"description": "Check appointment details for a customer",
"parameters": {
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"description": "Customer ID to look up"
}
},
"required": ["customer_id"]
}
},
{
"name": "reschedule_appointment",
"description": "Reschedule a customer appointment",
"parameters": {
"type": "object",
"properties": {
"appointment_id": {
"type": "string",
"description": "Appointment ID to reschedule"
},
"new_datetime": {
"type": "string",
"description": "New appointment date and time"
}
},
"required": ["appointment_id", "new_datetime"]
}
}
],
"agentOutcomes": [
{
"condition": "customer_confirmed_appointment",
"finish": true,
"answerAfterFinish": true,
"answerMessage": "Thank you for confirming your appointment. We'll see you tomorrow!"
},
{
"condition": "customer_wants_to_reschedule",
"finish": false,
"transition": {
"targetId": "scheduling_agent"
}
},
{
"condition": "customer_not_available",
"finish": true,
"answerAfterFinish": true,
"answerMessage": "I understand you're not available right now. We'll try calling back later."
}
]
}
Voice Call Example
A simpler example focused on voice call capabilities:
{
"type": "ai_outbound_agent",
"name": "voice_reminder_agent",
"description": "Simple voice agent for appointment reminders",
"llmConfig": {
"provider": "openai",
"overrideParams": {
"model": "gpt-4o-mini",
"temperature": 0.5
}
},
"systemMessage": "You are calling to remind about an upcoming appointment. Be brief and clear.",
"voiceConfig": {
"stt": {
"provider": "openai",
"model": "whisper-1",
"language": "en"
},
"tts": {
"provider": "openai",
"voice": "alloy"
}
},
"outboundConfig": {
"greeting": "Hello, this is a reminder call about your appointment scheduled for tomorrow at 2 PM. Can you confirm your attendance?",
"outboundTarget": {
"targetType": "voice",
"targetAddress": "+1987654321"
}
}
}
Last updated