create-call — скилл для Claude Code: что делает и как установить
Скилл инициирует разовые исходящие, веб-звонки и простые пакетные вызовы через Vapi API. Пригодится для проверки голосовых ассистентов и звонков клиентам из кода.
npx skills add VapiAI/skills --skill create-call -a claude-codeЧто делает create-call
Скилл формирует запросы к Vapi API. С его помощью агент запускает звонки на телефонные номера и открывает веб-сессии. Конфигурацию ассистента можно взять готовую по assistantId или объявить прямо в теле запроса, указав модель и голос.
Для работы нужен ключ VAPI_API_KEY. Вызовы можно отложить на будущее через блок schedulePlan, задав временное окно с помощью earliestAt и latestAt. Переданные в поле metadata параметры будут доступны ассистенту во время разговора. Агент умеет удалять звонки, проверять смену статусов и запрашивать готовую стенограмму.
Инструмент рассчитан на точечные вызовы. Для массовых контактов с отслеживанием автор рекомендует брать скилл create-campaign. Автоматический набор номеров без согласия нарушает закон, поэтому пренебрегать требованиями TCPA нельзя.
Какие задачи решает
- сделать тестовый звонок на телефон со своего номера Vapi
- создать веб-звонок для браузерного интерфейса
- запланировать вызов на конкретное время в будущем
- проверить статус звонка и забрать стенограмму
Примеры запросов агенту
- Позвони на номер +11234567890 через Vapi, используя ассистента billing-bot и номер phone-1
- Запланируй звонок клиенту через endpoint /call на завтра с 14:00 до 15:00 UTC
- Получи стенограмму и статус завершённого звонка по его id
Как установить create-call
1Через Skills CLI (Vercel)
npx skills add VapiAI/skills --skill create-call -a claude-code2Вручную: положить файлы
~/.claude/skills/create-call/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/create-call/
1Через Skills CLI (Vercel)
npx skills add VapiAI/skills --skill create-call -a codex2Вручную: положить файлы
.agents/skills/create-call/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add VapiAI/skills --skill create-call -a cursor2Вручную: положить файлы
.cursor/skills/create-call/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install VapiAI/skills create-call2Вручную: положить файлы
.github/skills/create-call/SKILL.md1Через Skills CLI (Vercel)
npx skills add VapiAI/skills --skill create-call -a gemini-cli2Командой платформы
gemini skills install https://github.com/VapiAI/skills --path create-callВручную: положить файлы
.devin/skills/create-call/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add VapiAI/skills --skill create-call -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о create-call
Как установить create-call в Claude Code?
Выполните в терминале команду npx skills add VapiAI/skills --skill create-call -a claude-code. Файлы скилла сохранятся по пути ~/.claude/skills/create-call/SKILL.md.
Что делает скилл create-call?
Он отправляет запросы к Vapi API для запуска разовых исходящих телефонных звонков, сессий в браузере и простых пакетов вызовов. Также скилл позволяет задавать расписание звонка, передавать метаданные и читать расшифровку беседы.
Чем create-call отличается от create-campaign?
Скилл create-call предназначен для разовых вызовов и простых пакетов без сохранения состояния. Если требуется отслеживать жизненный цикл кампании, дублировать контакты, настраивать вебхуки или управлять отменой, автор рекомендует использовать скилл create-campaign.
Исходный текст
SKILL.md · MIT
---
name: create-call
description: Create one-off outbound phone calls, web calls, scheduled calls, and simple batch calls using the Vapi API. Use when making or testing individual calls or initiating a bounded /call request programmatically. Use create-campaign for a persistent multi-contact Campaign with lifecycle, reporting, cancellation, duplication, or campaign webhooks.
license: MIT
compatibility: Requires internet access and a Vapi API key (VAPI_API_KEY).
metadata:
author: vapi
version: "1.0"
---
# Vapi Call Creation
Initiate outbound phone calls, web calls, and batch calls using Vapi's API. Connect your voice assistants to real phone numbers and test them programmatically.
> **Setup:** Ensure `VAPI_API_KEY` is set. See the `setup-api-key` skill if needed.
## Quick Start — Outbound Phone Call
### cURL
```bash
curl -X POST https://api.vapi.ai/call \
-H "Authorization: Bearer $VAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assistantId": "your-assistant-id",
"phoneNumberId": "your-phone-number-id",
"customer": {
"number": "+11234567890"
}
}'
```
### TypeScript (Server SDK)
```typescript
import { VapiClient } from "@vapi-ai/server-sdk";
const vapi = new VapiClient({ token: process.env.VAPI_API_KEY! });
const call = await vapi.calls.create({
assistantId: "your-assistant-id",
phoneNumberId: "your-phone-number-id",
customer: {
number: "+11234567890",
},
});
console.log("Call created:", call.id);
```
### Python
```python
import requests
import os
response = requests.post(
"https://api.vapi.ai/call",
headers={
"Authorization": f"Bearer {os.environ['VAPI_API_KEY']}",
"Content-Type": "application/json",
},
json={
"assistantId": "your-assistant-id",
"phoneNumberId": "your-phone-number-id",
"customer": {"number": "+11234567890"},
},
)
call = response.json()
print(f"Call initiated: {call['id']}")
```
## Call Types
### Outbound Phone Call
Requires an assistant, a Vapi phone number, and a customer number.
```json
{
"assistantId": "assistant-id",
"phoneNumberId": "phone-number-id",
"customer": {
"number": "+11234567890",
"name": "John Doe",
"numberE164CheckEnabled": true
}
}
```
### Web Call
For browser-based calls — no phone number needed. Use the Vapi Web SDK on the client side.
```json
{
"assistantId": "assistant-id"
}
```
Client-side (JavaScript):
```javascript
import Vapi from "@vapi-ai/web";
const vapi = new Vapi("your-public-key");
vapi.start("your-assistant-id");
```
### Transient Assistant Call
Define an assistant inline instead of referencing a saved one:
```json
{
"assistant": {
"name": "Quick Test",
"firstMessage": "Hello! This is a test call.",
"model": {
"provider": "openai",
"model": "gpt-4.1",
"messages": [
{
"role": "system",
"content": "You are a test assistant. Confirm the call is working and end politely."
}
]
},
"voice": { "provider": "vapi", "voiceId": "Elliot", "version": 2 },
"transcriber": { "provider": "deepgram", "model": "nova-3", "language": "en" }
},
"phoneNumberId": "phone-number-id",
"customer": {
"number": "+11234567890"
}
}
```
## Scheduled Calls
Schedule a call for a future time:
```json
{
"assistantId": "assistant-id",
"phoneNumberId": "phone-number-id",
"customer": {
"number": "+11234567890"
},
"schedulePlan": {
"earliestAt": "2025-06-15T14:00:00Z",
"latestAt": "2025-06-15T15:00:00Z"
}
}
```
- `earliestAt` — Earliest time to attempt the call (ISO 8601)
- `latestAt` — Latest time to attempt the call (optional)
- If using `assistantId`, the latest version of the assistant is used at call time
- For a fixed assistant config, use `assistant` (transient) instead
## Batch Calls
Call multiple numbers in one request:
```json
{
"assistantId": "assistant-id",
"phoneNumberId": "phone-number-id",
"customers": [
{ "number": "+11234567890", "name": "Alice" },
{ "number": "+10987654321", "name": "Bob" },
{ "number": "+15551234567", "name": "Carol" }
]
}
```
Combine with `schedulePlan` for scheduled batch calls.
Use this `/call` batch only when the user does not need a persistent Campaign resource. Use the `create-campaign` skill for campaign-level monitoring, contact outcomes, duplication, cancellation, concurrency, or webhooks.
## Call with Metadata
Pass custom data accessible during the call:
```json
{
"assistantId": "assistant-id",
"phoneNumberId": "phone-number-id",
"customer": {
"number": "+11234567890"
},
"metadata": {
"orderId": "ORD-12345",
"department": "billing"
}
}
```
## Managing Calls
```bash
# List calls
curl "https://api.vapi.ai/call?limit=10" \
-H "Authorization: Bearer $VAPI_API_KEY"
# Get a specific call
curl https://api.vapi.ai/call/{id} \
-H "Authorization: Bearer $VAPI_API_KEY"
# Get call with transcript and recording
curl https://api.vapi.ai/call/{id} \
-H "Authorization: Bearer $VAPI_API_KEY"
# Response includes: artifact.transcript, artifact.recordingUrl,
# analysis.summary, and costBreakdown when those outputs are enabled
# Delete a call
curl -X DELETE https://api.vapi.ai/call/{id} \
-H "Authorization: Bearer $VAPI_API_KEY"
```
## Call Response
A successful call creation returns:
```json
{
"id": "call-uuid",
"orgId": "org-uuid",
"type": "outboundPhoneCall",
"status": "queued",
"assistantId": "assistant-id",
"phoneNumberId": "phone-number-id",
"customer": {
"number": "+11234567890"
},
"createdAt": "2025-01-15T10:00:00Z"
}
```
Call statuses: `queued` → `ringing` → `in-progress` → `ended`
## Compliance Warning
It is a violation of FCC law to dial phone numbers without consent in an automated manner. Review TCPA consent requirements before launching automated call campaigns.
## References
- [Vapi Outbound Calls Docs](https://docs.vapi.ai/calls/outbound-calling)
- [Call Features](https://docs.vapi.ai/calls/call-features)
- [Voicemail Detection](https://docs.vapi.ai/calls/voicemail-detection)
## Additional Resources
Vapi provides a **documentation MCP server** that gives compatible AI agents access to the Vapi knowledge base. Use its documentation search for advanced configuration, troubleshooting, SDK details, and anything beyond this skill.
**Manual setup:** If your agent doesn't auto-detect the config, run:
```bash
claude mcp add vapi-docs -- npx -y mcp-remote https://docs.vapi.ai/_mcp/server
```
See the [Vapi MCP integration guide](https://docs.vapi.ai/cli/mcp) for setup instructions across supported agents.
© vapi · MIT · VapiAI/skills