Installs into .claude/skills of the current project.
Are you the author of Retellai Core Workflow A?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/jeremylongshore-retellai-core-workflow-a-f4c95dda)
---
name: retellai-core-workflow-a
description: "Retell AI core workflow a \u2014 AI voice agent and phone call automation.\n\
Use when working with Retell AI for voice agents, phone calls, or telephony.\nTrigger\
\ with phrases like \"retell core workflow a\", \"retellai-core-workflow-a\", \"\
voice agent\".\n"
allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep
version: 1.9.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- retellai
- voice
- telephony
- ai-agents
compatibility: Designed for Claude Code
---
# 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
```typescript
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
```typescript
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
```typescript
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` |
## Examples
### Create and validate a new appointment-intake agent
Build the agent in a development project with a narrow appointment-booking
tool and a synthetic calendar. Run representative happy-path, no-availability,
and human-handoff calls, checking that each tool request uses the expected
arguments. Review the redacted transcripts with the service owner, then create
a versioned preview for a limited internal canary; keep the previous agent
version available until the new flow meets its completion and transfer goals.
## Resources
- [Retell AI Documentation](https://docs.retellai.com)
- [retell-sdk npm](https://www.npmjs.com/package/retell-sdk)
## Next Steps
Phone call management: `retellai-core-workflow-b`