К основному содержанию
скилл CX Codex GP ChatGPT официальный · OpenAI

twilio-whatsapp-send-message — скилл для Codex: правила WhatsApp

Справочник по отправке сообщений WhatsApp через Twilio: 24-часовое окно, шаблоны, песочница и разбор ошибок доставки.

Установить в Codex · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add openai/plugins --skill twilio-whatsapp-send-message -a codex
Открыть на GitHub

Что делает twilio-whatsapp-send-message

Скилл объясняет, как Twilio проводит WhatsApp через Programmable Messaging API. Номера идут с префиксом whatsapp:+E.164, а режимов отправки два. Свободный текст можно слать только в течение 24 часов после последнего входящего от пользователя. Вне окна нужен шаблон: contentSid плюс contentVariables. Если отправить свободный текст не вовремя, доставка молча провалится — это повод проверять режим до отправки.

Внутри есть готовые примеры на Python и Node.js для обоих режимов, отправка медиа до 16 МБ (только в свободном режиме), таблица полей ответа вроде sid и status, а также разбор частых ошибок: 63003, 63018, 63020. Отдельно расписаны лимиты. Больше 80 сообщений в секунду на отправителя не пройдёт, очередь держит сообщение не дольше 4 часов, а песочница душит до 1 сообщения в 3 секунды и 50 в день.

Перед работой понадобится аккаунт Twilio с включённым WhatsApp, переменные TWILIO_ACCOUNT_SID и TWILIO_AUTH_TOKEN, SDK (pip install twilio или npm install twilio) и согласие получателя на рассылку. Для тестов хватит песочницы: отправьте join <your-code> на +14155238886, регистрация не нужна, но участники выпадают каждые 3 дня. Для продакшена сначала регистрируется WhatsApp Business sender. Отправка без opt-in грозит блокировкой аккаунта.

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

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

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

  • Помоги настроить отправку WhatsApp через Twilio: аккаунт, переменные окружения и первый тестовый запрос в песочнице
  • Моё сообщение в WhatsApp не доставляется. Посмотри по скиллу twilio-whatsapp-send-message, в чём причина и какой код ошибки это объясняет
  • Нужно отправить шаблонное сообщение вне 24-часового окна — покажи пример с contentSid и contentVariables

Как установить twilio-whatsapp-send-message

1Через Skills CLI (Vercel)

npx skills add openai/plugins --skill twilio-whatsapp-send-message -a codex

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

.agents/skills/twilio-whatsapp-send-message/SKILL.md

Для всех проектов — ~/.agents/skills/

По шагам, с командами для каждой платформы: Скиллы Codex: как установить, где лежат и как вызвать

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

Весь набор →
gsap Справочник по GSAP для агента: твины, таймлайны, easing и производительность. Пригодится, когда пишете анимацию в композициях HyperFrames. CX Codex GP ChatGPT 3установок wrangler Скилл для Codex и ChatGPT, который заставляет агента сверяться с документацией Cloudflare перед запуском команд wrangler. CX Codex GP ChatGPT 3установок microfrontends Разбивает большое приложение на независимо деплоящиеся части, которые для пользователя выглядят одним сайтом. Полезен, когда фронтенд делят между командами. CX Codex GP ChatGPT 2установок cdn-caching Помогает понять, почему страница отдаётся из кэша или мимо него: статусы, причины, ревалидация, стоимость ISR. CX Codex GP ChatGPT 2установок ngs-scrna-seq Скилл ведёт одноядерные и одноклеточные RNA-seq данные от FASTQ до матрицы подсчётов, а QC и кластеризацию передаёт встроенному скиллу. CX Codex GP ChatGPT 2установок ngs-bulk-rnaseq Диспетчер задач bulk RNA-seq: разводит обработку FASTQ в матрицу счётчиков и статистику по готовой матрице. Пригодится, когда нужно посчитать экспрессию и найти дифференциально экспрессированные гены. CX Codex GP ChatGPT 2установок ngs-bcl-to-fastq Проверяет папку прогона Illumina и sample sheet, планирует демультиплексирование и запускает конвертацию BCL в FASTQ. Нужен, когда на входе — папка прогона секвенатора. CX Codex GP ChatGPT 2установок hyperframes Скилл для сборки видео на HTML: композиции, титры, субтитры, озвучка и анимации под музыку. Пригодится, когда видео нужно собрать кодом, а не в редакторе. CX Codex GP ChatGPT 2установок

Похожие

whatsapp membrane Скилл подключает WhatsApp к вашему агенту: отправка текста, картинок, документов, реакций и шаблонов. Пригодится, когда нужно вести переписку из кода. CX Codex +1 368установок integrate-whatsapp gokapso Скилл подключает WhatsApp к продукту через Kapso, помогает выдавать ссылки на онбординг, ловить события через вебхуки и отправлять сообщения. CX Codex +1 4 700установок whatsapp-automation claude-office-skills Скилл описывает автоматизацию WhatsApp Business: поддержку клиентов, чат-ботов, уведомления о заказах и рассылки. CX Codex +1 6 500установок connector-twilio caffeinelabs Скилл для отправки SMS и MMS из Caffeine-канистры через пакет twilio-client. Экспериментальный: ни один вызов ещё не проверяли на живом Twilio. CX Codex +1 11 200установок Twilio SMS Automation Claude Office Skills Скилл для автоматизации SMS-рассылок, двусторонних переписок, кодов подтверждения и голосовых сценариев через Twilio. CX Codex +1 5 400установок whatsapp-marketing arnabbagxd Скилл помогает составить стратегию маркетинга в WhatsApp, спланировать авторассылки, цепочки сообщений и правила сбора согласий клиентов. CX Codex +1 1 600установок

Рядом в теме «Бэкенд и API»

Всё по теме «Бэкенд и API» →

Вопросы о twilio-whatsapp-send-message

Как установить twilio-whatsapp-send-message в Codex?

Выполните npx skills add openai/plugins --skill twilio-whatsapp-send-message, затем npx skills add openai/plugins --skill twilio-whatsapp-send-message -a codex. После этого файл скилла лежит в .agents/skills/twilio-whatsapp-send-message/SKILL.md.

Что делает twilio-whatsapp-send-message?

Разбирает отправку сообщений WhatsApp через Twilio: два режима (свободный текст и шаблон), правила 24-часового окна, настройку песочницы, требования к продакшен-отправителю и ошибки доставки.

Чем этот скилл отличается от twilio-send-message?

Это справочник по специфике WhatsApp. Для самой отправки сообщений берите twilio-send-message, а сюда обращайтесь при первой настройке канала или когда разбираетесь с доставкой именно в WhatsApp.

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

SKILL.md · MIT
---
name: twilio-whatsapp-send-message
description: >
  WhatsApp messaging deep-dive reference. Covers the 24-hour service
  window rules (free-form vs template mode), sandbox setup for testing,
  template approval workflow, production sender requirements, and
  WhatsApp-specific error handling. For sending WhatsApp messages, use
  twilio-send-message instead. Use this skill when setting up WhatsApp
  for the first time or debugging WhatsApp-specific delivery behavior.
---

## Overview

**WhatsApp is one channel in Twilio's Messaging platform.** All channels share the same `messages.create()` API — see `twilio-messaging-overview` for the full channel comparison and onboarding sequence.

Twilio routes WhatsApp through the Programmable Messaging API — all numbers use `whatsapp:+E.164` prefix. Two sending modes apply: **free-form** (within 24 hrs of last inbound) and **template** (anytime). Sending free-form outside the window causes silent delivery failure — always check which mode is required.

| Mode | When allowed | Parameters |
|------|-------------|------------|
| Free-form | Within 24 hrs of last inbound from user | `body`, optional `mediaUrl` |
| Template | Anytime | `contentSid` + `contentVariables` |

---

## Prerequisites

- Twilio account with WhatsApp enabled
  — New to Twilio? See `twilio-account-setup`
- Environment variables:
  - `TWILIO_ACCOUNT_SID`
  - `TWILIO_AUTH_TOKEN`
  — See `twilio-iam-auth-setup` for credential setup and best practices
- SDK: `pip install twilio` / `npm install twilio`
- Recipient opted in to receive messages from your WhatsApp Business Account

**Testing (sandbox):** Join by texting `join <your-code>` to `+14155238886`. No registration needed — see [Console > Messaging > Try it out > Send a WhatsApp message](https://console.twilio.com/us1/develop/sms/try-it-out/whatsapp-learn). Sandbox participants must re-join every 3 days.

**Production:** Register a WhatsApp Business sender first — see `twilio-whatsapp-manage-senders`.

---

## Quickstart

**Python**
```python
import os
from twilio.rest import Client

client = Client(os.environ["TWILIO_ACCOUNT_SID"], os.environ["TWILIO_AUTH_TOKEN"])

message = client.messages.create(
    from_="whatsapp:+14155238886",   # Sandbox sender (or your production number)
    to="whatsapp:+15005550006",      # Must have joined the sandbox
    body="Your order has been confirmed."
)

print(message.sid)     # MMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
print(message.status)  # queued | sent | delivered | failed
```

**Node.js**
```node
const twilio = require("twilio");
const client = twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);

const message = await client.messages.create({
    from: "whatsapp:+14155238886",
    to: "whatsapp:+15005550006",
    body: "Your order has been confirmed.",
});

console.log(message.sid);
console.log(message.status);
```

---

## Key Patterns

### Send a Template Message (outside service window)

Templates are created in Console > Messaging > Content Template Builder and must be approved by Meta. See `twilio-content-template-builder` for template creation.

**Python**
```python
message = client.messages.create(
    from_="whatsapp:+14155238886",
    to="whatsapp:+15005550006",
    content_sid="HXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    content_variables='{"1": "March 25", "2": "2:00 PM"}'
)
```

**Node.js**
```node
const message = await client.messages.create({
    from: "whatsapp:+14155238886",
    to: "whatsapp:+15005550006",
    contentSid: "HXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    contentVariables: JSON.stringify({ "1": "March 25", "2": "2:00 PM" }),
});
```

### Send Media (free-form only)

Max file size: 16 MB.

**Python**
```python
message = client.messages.create(
    from_="whatsapp:+14155238886",
    to="whatsapp:+15005550006",
    body="Here is your invoice.",
    media_url=["https://example.com/invoice.pdf"]
)
```

**Node.js**
```node
const message = await client.messages.create({
    from: "whatsapp:+14155238886",
    to: "whatsapp:+15005550006",
    body: "Here is your invoice.",
    mediaUrl: ["https://example.com/invoice.pdf"],
});
```

---

## Response Fields

| Field | Description |
|-------|-------------|
| `sid` | Unique message identifier (`MM...`) |
| `status` | `queued`, `sent`, `delivered`, `read`, `failed`, `undelivered` |
| `error_code` | Populated on failure |
| `error_message` | Human-readable error description |
| `date_sent` | UTC timestamp |

---

## Common Errors

| Code | Meaning | Fix |
|------|---------|-----|
| 63003 | Invalid WhatsApp destination number | Verify number is WhatsApp-enabled and correctly formatted |
| 63018 | Rate limit exceeded on sender | Reduce send rate; default is 80 MPS |
| 63020 | Business hasn't accepted Twilio's Meta invitation | Accept invite in Meta Business Manager |
| N/A | Free-form outside window | Switch to a template message |

---

## CANNOT

- **Cannot exceed 80 messages/second per sender** — Text-only can be raised to 400 MPS on request
- **Cannot queue messages beyond 4 hours** — Undelivered messages fail after 4 hours
- **Cannot exceed sandbox throttle limits** — 1 message per 3 seconds, 50 messages/day on trial, participants expire after 3 days
- **Cannot send without opt-in** — Sending without recipient opt-in risks account suspension
- **Cannot use WhatsApp Groups API** — Deprecated April 2020. Use Conversations API instead.

---

## Next Steps

- **Channel overview and onboarding guide:** `twilio-messaging-overview`
- **Register a production WhatsApp sender:** `twilio-whatsapp-manage-senders`
- **Create and manage message templates:** `twilio-content-template-builder`
- **Multi-channel conversations with history:** `twilio-conversations-api`

© Twilio · MIT · openai/plugins

Смотрите также

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

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