界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

retellai-core-workflow-b

retellai-core-workflow-b

【效率与协作】Retell AI core workflow b — AI voice agent and phone call automation. Use when working with Retell AI for voice agents, phone calls, or telephony. Trigger with phrases like "retell core workflow b", "retellai-core-workflow-b", "voice agent".

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: retellai-core-workflow-b description: "Retell AI core workflow b \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 b", "retellai-core-workflow-b", "
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 B

Overview

Manage phone calls: outbound campaigns, call transfers, recordings, and concurrent call handling.

Prerequisites

  • Completed retellai-core-workflow-a

Instructions

Step 1: Outbound Call Campaign

const phoneNumbers = ['+14155551001', '+14155551002', '+14155551003'];

for (const number of phoneNumbers) {
  try {
    const call = await retell.call.createPhoneCall({
      from_number: process.env.RETELL_PHONE_NUMBER!,
      to_number: number,
      override_agent_id: agentId,
      metadata: { campaign: 'appointment-reminder', date: '2026-04-01' },
    });
    console.log(`Called ${number}: ${call.call_id}`);
  } catch (err) {
    console.error(`Failed to call ${number}: ${err.message}`);
  }
  // Rate limit: space calls apart
  await new Promise(r => setTimeout(r, 2000));
}

Step 2: List and Filter Calls

const calls = await retell.call.list({
  sort_order: 'descending',
  limit: 20,
});
for (const call of calls) {
  console.log(`${call.call_id}: ${call.call_status} — ${call.end_timestamp - call.start_timestamp}ms`);
}

Step 3: Get Call Recording and Transcript

const callDetail = await retell.call.retrieve(callId);
if (callDetail.recording_url) {
  console.log(`Recording: ${callDetail.recording_url}`);
}
if (callDetail.transcript) {
  console.log(`Transcript:\n${callDetail.transcript}`);
}

Output

  • Outbound call campaign with rate limiting
  • Call listing with status and duration
  • Recordings and transcripts retrieved

Error Handling

ErrorCauseSolution
Call fails immediatelyBad phone number formatUse E.164 format
No recordingRecording not enabledEnable in agent settings
Concurrent limitToo many active callsUpgrade plan or queue calls

Examples

Run a bounded outbound appointment reminder campaign

Upload only consented test contacts to a development campaign and set a small concurrency limit before enabling any production queue. For each test call, verify the E.164 number formatting, expected agent version, completion status, and redacted transcript retrieval. If a call result is ambiguous, query the call identifier before retrying so an operator does not create duplicate calls or overwrite the original outcome.

Resources

Next Steps

Handle call events: retellai-webhooks-events

我的收藏