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

sent-messaging — скилл для Claude Code: отправка SMS и WhatsApp

Скилл для работы с сообщениями Sent: готовит отправку по шаблону, проверяет статус и историю доставки через MCP-инструменты.

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

Что делает sent-messaging

Скилл закрывает три операции: messages.send, messages.get и messages.activities.list. Через них агент отправляет SMS, WhatsApp или RCS, смотрит текущее состояние сообщения и разбирает события его жизненного цикла. Отправка идёт только по заранее созданному шаблону: сначала нужно найти его через templates.list или templates.get и передать реальный идентификатор вместе со всеми объявленными переменными. Свободный текст в качестве шаблона не принимается.

Перед вызовом messages.send скилл требует показать превью полезной нагрузки — организацию, Sender Profile, канал, точный адрес получателя, шаблон и его содержимое, переменные, время отправки и ключ идемпотентности — и получить явное подтверждение именно для этого payload. Общее одобрение, выданное раньше в разговоре, не считается. Для отложенной отправки scheduledAt задаётся в ISO-8601 с явным смещением UTC или Z: метка без смещения отклоняется, а сам момент должен быть от 1 минуты до 30 дней вперёд. Инструментов переноса и отмены отправки нет.

Авторизацию проводит MCP-клиент по OAuth 2.1/PKCE, и скилл прямо запрещает запрашивать, печатать или хранить токены и ключи. Если клиент не поддерживает MCP или авторизация не прошла, скилл остаётся пригодным только для планирования полезной нагрузки — выполнить отправку не получится. Повторная отправка считается новой мутацией: нужно заново собрать payload, показать превью и получить свежее подтверждение.

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

  • отправить SMS или сообщение в WhatsApp по существующему шаблону
  • запланировать отправку на конкретное время с учётом часового пояса
  • проверить, доставлено ли сообщение, по его идентификатору
  • разобрать события жизненного цикла и найти причину сбоя
  • восстановиться после таймаута отправки без дублирования

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

  • Отправь сообщение по шаблону order_shipped на номер из заявки
  • Запланируй отправку на завтра, 10:00 по Москве
  • Проверь статус сообщения с идентификатором msg_123 и покажи историю событий

Как установить sent-messaging

1Через Skills CLI (Vercel)

npx skills add sentdm/sent-plugin --skill sent-messaging -a claude-code

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

~/.claude/skills/sent-messaging/SKILL.md

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

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

Вопросы о sent-messaging

Как установить sent-messaging в Claude Code?

Выполните npx skills add sentdm/sent-plugin --skill sent-messaging -a claude-code, после чего файл скилла окажется по пути ~/.claude/skills/sent-messaging/SKILL.md.

Что делает sent-messaging?

Готовит и отправляет сообщения через Sent по шаблону, а затем читает состояние конкретного сообщения и его события доставки. Сводную диагностику по многим отправкам скилл передаёт в messaging-performance-analyzer.

Нужно ли передавать API-ключ скиллу?

Нет. Авторизацию выполняет MCP-клиент по OAuth 2.1/PKCE, а скилл запрещает запрашивать, печатать и хранить токены и ключи. Если авторизация не проходит, доступно только планирование полезной нагрузки.

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

SKILL.md · MIT
---
name: sent-messaging
description: Sends SMS, WhatsApp, or RCS messages through Sent and retrieves individual message status and activity history with the Sent MCP tools. Use when a user asks to send, schedule, or preview a message, check a message ID, confirm delivery status, inspect lifecycle events, investigate a timed-out or ambiguous send, or retry safely. Use messaging-performance-analyzer for aggregate delivery diagnosis.
---

# Sent Messaging

Operate direct message workflows with `messages.send`, `messages.get`, and `messages.activities.list`.

## Establish connection and scope

1. Let the MCP client perform OAuth 2.1/PKCE authorization. Never request, accept, print, or store tokens, API keys, authorization headers, client IDs, or secrets.
2. Surface the organization and Sender Profile selected by the active connection before a mutation. If the client context does not expose both, use `sent-account-readiness` to inspect the authorized scope before continuing.
3. Use an explicit, validated acting profile when an organization grant supports it.
4. Minimize sensitive output. Mask phone numbers where practical and do not repeat message bodies after the operator has reviewed them.

If MCP is unsupported or authorization fails, keep the skill usable for payload planning. Explain that execution requires a compatible client or reauthorization; never ask the user to paste a credential.

An organization grant may select an owned Sender Profile with the tool schema's optional `profileId`; omit it to act as the authenticated account. Validate ownership with `sender_profiles.list` or `sender_profiles.get`, and use the same selector for preflight reads, mutations, and follow-up reads. Profile grants cannot use this selector. Reauthorize for a different organization or a profile outside the grant. Never invent scope fields or request credentials.

## Inspect a message

- Use `messages.get` for the current record when a message identifier is known.
- Use `messages.activities.list` for lifecycle events and delivery evidence.
- State that an accepted or queued send is not proof of delivery. Report delivered only when the returned state or activity establishes delivery.
- Return identifiers, timestamps, and status evidence needed to answer the question, masking recipient data and omitting the message body unless it is necessary.

For aggregate trends, funnels, or root-cause analysis across many delivery records, hand off to `messaging-performance-analyzer`.

## Prepare a send

1. Resolve the intended channel, Sender Profile, recipient, existing template, variables, `scheduledAt`, and `idempotencyKey`. Sends are template-only: first use `templates.list` or `templates.get` in the same acting scope, reference its real ID or name in `template`, and provide every declared variable in `template.parameters`. Never pass message text as a template name or invent a free-form text argument. Do not invent missing values.
2. For a high-volume send, use `sent-account-readiness` to check `balance.get` before preparing the mutation. Stop if the available balance or account readiness is insufficient or unclear.
3. Build the exact `messages.send` arguments without calling the tool.
4. Show a payload preview that includes the selected organization, Sender Profile, channel, exact destination, existing template identifier and its reviewed content, variables, and scheduling/idempotency inputs. Show sensitive content once only; mask it where the operator can still verify the target.
5. Ask for explicit confirmation for this exact payload. General approval given earlier in the conversation is not sufficient.
6. Call `messages.send` immediately after that confirmation. If any payload value, scope, or elapsed context changes, discard the confirmation and preview again.

Never call `messages.send` without the preview and explicit confirmation immediately before the call.

## Schedule a send

`scheduledAt` is optional. Resolve the user's date, time, and timezone into an ISO-8601 timestamp with an explicit UTC offset or `Z`; offset-free timestamps are rejected. The instant must be 1 minute to 30 days ahead at execution. Include the exact local time and UTC instant in the preview, and revalidate the window before calling.

Acceptance returns `QUEUED` with `scheduledAt`; the message then moves to `SCHEDULED`, visible through `messages.get`, and releases around the requested time within a few minutes. Recipient quiet hours can defer it to the next allowed time, reported through `message.scheduled`. Do not promise an exact delivery time. Account scheduling limits can reject the send. There is no MCP reschedule or cancellation tool; do not invent one.

For schema-supported idempotency, use camelCase `idempotencyKey`; the same key can replay a cached send result for 24 hours. Keep the original key and arguments when recovering the same operation. A different intended send needs its own key. Idempotency does not replace review and confirmation.

## Handle results and retries

- Report the message identifier and the returned acceptance state. Say "accepted" or "queued" when that is all the response establishes; do not say "delivered."
- Use `messages.get` or `messages.activities.list` when the user asks for subsequent delivery state.
- Treat every retry as a new mutation: reconstruct the payload, show a fresh preview, and obtain new explicit confirmation immediately before the retry.
- Never blindly retry an ambiguous send. If the first call times out or its outcome is unknown, inspect `messages.get` and `messages.activities.list` when an identifier exists. Without conclusive evidence, report the unknown outcome and duplication risk. Only attempt another send after the operator chooses to do so and completes a new preview and confirmation.

© sentdm · MIT · sentdm/sent-plugin

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

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
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установок

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

sent-account-readiness Скилл проверяет через MCP-инструменты Sent, готов ли аккаунт к отправке: баланс, онбординг, KYC и выбранный Sender Profile. CX Codex +1 2 900установок sent-templates Находит, проверяет статус и удаляет шаблоны сообщений Sent через MCP-инструменты. Пригодится при поиске утверждённых шаблонов и очистке базы. CX Codex +1 2 900установок sent-contacts Скилл для работы с контактами Sent через MCP-инструменты: поиск, импорт списком, сводка по переписке, удаление. Создание и удаление проходят через подтверждение. CX Codex +1 2 900установок sent-analytics Скилл для Claude, Codex и Cursor: тянет из MCP-инструментов Sent метрики сообщений, доставляемости и контактов, а также проверяет возможности номера. CX Codex +1 2 900установок sender-profile-architect Скилл помогает спроектировать архитектуру профилей отправителя в Sent v3 для мультиарендных систем. Пригодится при настройке биллинга, номеров WABA и 10DLC. CX Codex +1 2 900установок sms-10dlc-registration Готовит и проверяет заявку на регистрацию бренда и кампании US A2P 10DLC в Sent: доказательства согласия, сценарии использования, примеры сообщений. CX Codex +1 2 900установок rcs-agent-onboarding Проведёт по шагам подключения RCS и RBM в Sent: чек-лист доказательств, проверка Sender Profile, шаблоны и тесты маршрутизации. CX Codex +1 2 900установок template-builder-ui Скилл помогает спроектировать интерфейс конструктора шаблонов под контракт Sent v3, настроить предпросмотр каналов и валидацию перед отправкой на модерацию. CX Codex +1 2 900установок

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

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