К основному содержанию
скилл CX Codex

create-phone-number — скилл для Claude Code: номера Vapi через API

Помогает агенту планировать, подключать и маршрутизировать телефонные номера Vapi: от черновика payload до живого вызова API.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add VapiAI/skills --skill create-phone-number -a claude-code
Открыть на GitHub

Что делает create-phone-number

Скилл ведёт агента по шагам работы с номерами в Vapi: выбрать способ подключения, найти ассистента или squad для маршрутизации, проверить занятые номера, собрать запрос и выполнить его. По умолчанию агент отдаёт план или payload и не трогает живые данные, пока вы явно не попросите о мутации. Перед платным действием он обязан показать провайдера, код города или конкретный номер, маршрут и запросить подтверждение.

Внутри — процедура из семи шагов и два справочника: references/provider-api-procedures.md с примерами для Vapi-hosted, Twilio, Vonage, Telnyx и BYO-оператора, и references/api-examples.md с кодом на TypeScript, Python и cURL. Пароли оператора, токены и ключи скилл не просит в чате: для импорта используется существующий credentialId, а если публичная схема требует сырых секретов, они берутся из переменных окружения и не попадают в payload или логи.

Живые операции требуют доступа в интернет и переменной VAPI_API_KEY; без неё агент останется на уровне плана. Бесплатные номера Vapi — только для США, их лимит пять на аккаунт, а исходящие звонки с них идут лишь на +1. Для международных звонков нужен импортированный номер оператора или SIP. Ещё один момент: публичный OpenAPI принимает numberDesiredAreaCode, но эндпоинта со списком доступных кодов нет, поэтому fulfilment никто не гарантирует — агент честно предупредит об этом, а не подберёт код сам.

Какие задачи решает

  • подобрать код города и собрать payload для нового номера Vapi
  • подключить собственный номер Twilio, Vonage или Telnyx через credentialId
  • привязать номер к ассистенту или squad, не затерев текущие настройки
  • разобраться, почему исходящий звонок не проходит и на чьей стороне сбой
  • обновить маршрут существующего номера, не отправив служебные поля обратно

Примеры запросов агенту

  • Составь план подключения номера Vapi с кодом города 415 и маршрутом на ассистента поддержки
  • Покажи payload для импорта моего номера Twilio, ничего не создавай
  • Проверь через GET /phone-number, нет ли у меня уже такого номера, и предложи маршрут

Как установить create-phone-number

1Через Skills CLI (Vercel)

npx skills add VapiAI/skills --skill create-phone-number -a claude-code

2Вручную: положить файлы

~/.claude/skills/create-phone-number/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/create-phone-number/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о create-phone-number

Как установить create-phone-number в Claude Code?

Выполните npx skills add VapiAI/skills --skill create-phone-number -a claude-code. После этого файл скилла лежит в ~/.claude/skills/create-phone-number/SKILL.md.

Что делает create-phone-number?

Проводит агента по работе с номерами Vapi: планирование, подключение, импорт от оператора, маршрутизация на ассистента или squad, обновление и проверка. Живые вызовы API делает только по вашему явному запросу.

Какие номера можно звонить с бесплатного номера Vapi?

Только исходящие на американские +1. Международные звонки с бесплатных номеров не поддерживаются, для них нужен импортированный номер оператора или SIP-подключение.

Исходный текст

SKILL.md · MIT
---
name: create-phone-number
description: Plan, provision, import, route, update, and verify Vapi phone numbers through the public API. Use for Vapi-hosted US PSTN numbers, explicitly requested SIP addresses, Twilio/Vonage/Telnyx or BYO carrier numbers, secure credential handling, assistant or squad routing, area-code requests, outbound limitations, and phone-provider troubleshooting.
license: MIT
compatibility: Internet access and VAPI_API_KEY are required only for live Vapi API operations.
metadata:
  author: vapi
  version: "2.0"
---

# Vapi Phone Number Setup

Default to a payload or implementation plan. Provision, import, route, or release a number only when the user explicitly requests the live mutation. Require a final explicit confirmation immediately before provisioning or another potentially chargeable action.

## Security and Source Rules

- Never ask for carrier passwords, auth tokens, API keys, API secrets, or private keys in chat.
- Use an existing Vapi `credentialId` for provider imports when the current public schema supports it. If a required credential does not exist, stop and state that API prerequisite.
- If the public API requires raw carrier secrets and exposes no credential-based alternative, source them from local environment variables without displaying them, writing them to payload files, or logging the request body.
- Verify provider fields against the current [Create Phone Number API](https://docs.vapi.ai/api-reference/phone-numbers/create) or public OpenAPI schema.
- Never invent phone numbers, SIP realms, credentials, resource IDs, area-code availability, or routing destinations.

## Procedure

1. Determine the execution mode.
   - Return a payload or plan when the user asks for a draft or does not clearly authorize a live mutation.
   - For a live request, confirm that `VAPI_API_KEY` is set without printing it.

2. Choose the transport path.
   - For a nontechnical request for an ordinary number, prefer the documented Vapi-hosted US PSTN path.
   - Use SIP only when the user explicitly asks for SIP. Require an exact supported SIP URI from the user or current public API documentation; if it is unavailable, stop and state the missing prerequisite. Do not invent a regional realm.
   - Use a carrier import only when the user owns the number and the required secure credential path is available.

3. Resolve routing before mutation.
   - List or get assistants and squads through public endpoints. Match a supplied name to one resource.
   - If several resources are plausible, ask the user to choose. Never guess an ID.
   - Route to either one `assistantId` or one `squadId`; clear conflicting destination fields when changing an existing route.

4. Check inventory safely.
   - Review existing phone numbers with `GET /phone-number` to avoid duplicate provisioning.
   - The current public OpenAPI accepts `numberDesiredAreaCode` but does not expose a public available-area-code inventory endpoint. Accept the user's desired three-digit US area code after explaining that fulfillment is not guaranteed.
   - Do not purchase a number merely to test availability. Do not infer global unavailability from one provisioning response.

5. Confirm and execute.
   - Show the provider, area code or exact owned number, routing destination, and whether the action may incur carrier or usage charges.
   - Obtain explicit confirmation immediately before `POST /phone-number` or another potentially chargeable mutation.
   - Validate the response for `id`, provider, number or SIP URI, status when present, and resolved route.

6. Update without destroying configuration.
   - `GET /phone-number/{id}` first.
   - Build the provider-specific update DTO. Change only requested writable fields and preserve the current provider, hooks, server, fallback destination, and provider-specific settings by omission or exact carry-forward as required by the public schema.
   - Do not send response-only fields such as `id`, timestamps, or organization metadata.
   - Re-fetch the number and verify the requested route or setting.

7. Handle failures precisely.
   - `400`: report the rejected field or unavailable request; correct a documented shape error before at most one retry.
   - `401`/`403`: stop for Vapi authentication or permission issues.
   - `404`: report the missing phone number, assistant, squad, or credential.
   - `5xx`: report a Vapi service failure and do not claim success.
   - Separate carrier-side ownership, credential, provisioning, or transport failures from Vapi routing configuration.

## Free Vapi Number Limits

Vapi-hosted free numbers are for US national use and have a limit of five per account. The first free number can be requested without a payment method. Additional free numbers require a payment method on file, but the numbers themselves remain free.

Free Vapi numbers support outbound calls only to US `+1` destinations and do not support international calling. Use an imported provider number or supported SIP/carrier path for international use. Do not describe free numbers as unlimited production telephony.

## Payload-Only Example

This template does not provision anything:

```json
{
  "provider": "vapi",
  "numberDesiredAreaCode": "<confirmed-three-digit-area-code>",
  "assistantId": "<verified-assistant-id>",
  "name": "Main Support Line"
}
```

Read [Provider API Procedures](references/provider-api-procedures.md) for Vapi-hosted, Twilio, Vonage, Telnyx, BYO carrier, and routing examples. Read [Phone Number API Examples](references/api-examples.md) when the user requests TypeScript, Python, or cURL implementation code. Keep placeholders out of live requests.

## Public Sources

- [Phone calling](https://docs.vapi.ai/phone-calling) and [Phone quickstart](https://docs.vapi.ai/quickstart/phone)
- [Create Phone Number API](https://docs.vapi.ai/api-reference/phone-numbers/create)
- [Free Vapi phone numbers](https://docs.vapi.ai/free-telephony)
- [Import a Twilio number](https://docs.vapi.ai/phone-numbers/import-twilio)

© vapi · MIT · VapiAI/skills

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок ask-matt Matt Pocock Помогает выбрать подходящий скилл или рабочий поток из набора Matt Pocock. Пригодится, когда непонятно, с чего начать задачу: от идеи до разбора бага. 766 587установок to-tickets Matt Pocock Разбивает план, спецификацию или переписку на небольшие сквозные задачи и отмечает, какие из них блокируют остальные. Пригодится, когда нужно согласовать порядок работы до публикации задач в трекере. 711 230установок writing-plans Jesse Vincent Скилл превращает требования к многошаговой задаче в подробный план реализации до начала работы с кодом. Пригодится, когда исполнителю нужно зафиксировать файлы, интерфейсы и проверки. CX Codex 282 859установок caveman-review JuliusBrussee Пишет замечания к коду одной строкой: место, проблема, исправление. Пригодится, когда ревью диффа или PR надо пройти быстро и без воды. CX Codex +1 411 800установок caveman-compress JuliusBrussee Сжимает CLAUDE.md, списки задач и другие текстовые файлы в краткий формат, сохраняя читаемую резервную копию. CX Codex +1 411 500установок

Из того же набора6

create-assistant Скилл для проектирования и создания голосовых ассистентов Vapi: телефонных и веб-агентов, системных промптов, выбора модели и голоса. Пригодится, если собираете агента под Vapi. CX Codex +1 1 100установок create-call Скилл инициирует разовые исходящие, веб-звонки и простые пакетные вызовы через Vapi API. Пригодится для проверки голосовых ассистентов и звонков клиентам из кода. CX Codex +1 1 000установок setup-api-key Скилл помогает получить и безопасно настроить ключ Vapi, а затем проверить доступ к API. Пригодится при первом подключении или если запросы не проходят из-за ключа. CX Codex +1 947установок create-tool Помогает проектировать, создавать и привязывать инструменты к ассистентам Vapi через публичный API. Поддерживает вызовы телефонии, интеграции с сервисами, REST-запросы и MCP. CX Codex +1 925установок create-squad Помогает решить, нужна ли команда ассистентов вместо одного, и собирает Squad через публичный API Vapi с проверкой ID и хендоффов. CX Codex +1 884установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой