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

Field
Description
Type
Required
Default

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.

Field
Description
Type
Required

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.

Field
Description
Type
Required
Default

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.

Field
Description
Type
Required
Default

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.

Field
Description
Type
Required

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.

Field
Description
Type
Required
Default

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.

Field
Description
Type
Required
Default

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.

Field
Description
Type
Required

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.

Field
Description
Type
Required

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.

Field
Description
Type
Required
Default

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.

Field
Description
Type
Required
Default

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.

Field
Description
Type
Required

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.

Field
Description
Type
Required

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.

Field
Description
Type
Required

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.

Field
Description
Type
Required
Default

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