Retell AI Core Workflow A
Overview
Build and configure voice agents with custom prompts, function calling, and call flow logic.
Prerequisites
- Completed
retellai-hello-world
Instructions
Step 1: Agent with Function Calling
const llm = await retell.llm.create({
model: 'gpt-4o',
general_prompt: `You are a booking assistant for Dr. Smith's office.
- Help callers book, reschedule, or cancel appointments
- Collect: name, phone, preferred date/time
- Confirm all details before booking`,
functions: [
{
name: 'book_appointment',
description: 'Book a new appointment',
parameters: {
type: 'object',
properties: {
patient_name: { type: 'string' },
phone: { type: 'string' },
date: { type: 'string', description: 'YYYY-MM-DD format' },
time: { type: 'string', description: 'HH:MM format' },
},
required: ['patient_name', 'phone', 'date', 'time'],
},
url: 'https://your-api.com/appointments',
speak_during_execution: true,
speak_after_execution: true,
},
],
});
Step 2: Configure Voice and Behavior
const agent = await retell.agent.create({
response_engine: { type: 'retell-llm', llm_id: llm.llm_id },
voice_id: '11labs-Rachel',
agent_name: 'Dr. Smith Booking Agent',
language: 'en-US',
opt_out_sensitive_data_storage: false,
end_call_after_silence_ms: 10000, // End call after 10s silence
max_call_duration_ms: 300000, // 5-minute max
enable_backchannel: true, // "mhm", "yeah" responses
boosted_keywords: ['appointment', 'schedule', 'Dr. Smith'],
});
Step 3: Update Agent Configuration
await retell.agent.update(agent.agent_id, {
voice_id: '11labs-Dorothy', // Change voice
end_call_after_silence_ms: 15000,
});
Output
- Agent with custom LLM prompt and function calling
- Voice and behavior configuration
- Real-time function execution during calls
Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| Function not triggering | Prompt doesn't guide to function | Include function use in prompt |
| Voice quality issues | Wrong voice selection | Test different voices |
| Call ending too early | Short silence timeout | Increase end_call_after_silence_ms |
Resources
Next Steps
Phone call management: retellai-core-workflow-b