Sequenzy MCP
официальныйИнструмент email-маркетинга для SaaS
Что можно делать с Sequenzy MCP?
- Управление подписчиками и сегментами — Попросите ассистента создавать списки, применять теги, согласовывать массовые теги или тестировать синтетические события с помощью таких инструментов, как
create_listи . - Создание и отправка кампаний — Составляйте, планируйте, просматривайте или отправляйте email-кампании, включая предпросмотр аудитории и цели конверсии, с помощью таких инструментов, как
create_campaignиsend_campaign. - Создание целевых страниц и форм — Разрабатывайте формы подписки и целевые страницы с адаптивной блочной версткой, затем публикуйте их или получайте встраиваемые фрагменты для статических сайтов через
create_landing_page. - Синхронизация аудиторий с Meta — Отправляйте динамические сегменты в пользовательские аудитории Meta для ретаргетинга в Facebook и Instagram.
- Управление последовательностями и автоматизациями — Создавайте многошаговые email-последовательности с триггерами входа, условиями остановки и тестовыми отправками рецензентам с помощью
create_sequenceи . - Мониторинг доставляемости и отправки — Диагностируйте приостановленные отправки, проверяйте блокировки по жалобам и возвратам, а также восстанавливайте приостановки из-за жестких возвратов с помощью
get_sending_statusиresume_sending.
Документация
Сервер Sequenzy MCP
Официальный MCP-сервер для Sequenzy — платформы email-маркетинга на базе искусственного интеллекта.
Подключите Sequenzy к Claude Desktop, Claude Code, Codex, Cursor, Windsurf, VS Code Copilot, OpenClaw и другим MCP-клиентам, чтобы ваш ИИ-ассистент мог управлять email-операциями с помощью структурированных инструментов вместо рукописных API-вызовов.
Что вы можете делать
- Управляйте подписчиками, тегами, списками и динамическими сегментами, включая массовую сверку тегов и тестирование синтетических событий.
- Синхронизируйте сегменты с пользовательскими аудиториями Meta для ретаргетинга в Facebook и Instagram.
- Управляйте продуктами и прикрепляйте файлы цифровой доставки для автоматизации покупок.
- Загружайте размещенные email-изображения с альтернативным текстом и переиспользуемыми настройками адаптивной обрезки.
- Создавайте, обновляйте, планируйте и проверяйте кампании, включая предпросмотр разрешенной аудитории, сохраненные цели конверсии и идентичности From, Reply-To, CC и BCC.
- Рендерите кампании, шаги последовательностей и шаблоны в их точный email-безопасный HTML без отправки.
- Добавляйте блоки опросов в один клик и NPS-опросов в письма и просматривайте сводки ответов кампаний.
- Создавайте и редактируйте email-последовательности, включая триггеры по нескольким спискам/тегам, условия остановки по аудитории входа и фильтрам свойств, переопределения идентичности отправки, реструктуризацию существующих графов и прямые тестовые отправки шагов внутренним рецензентам.
- Отменяйте, приостанавливайте, возобновляйте, дублируйте или удаляйте кампании и записывайте контакты в последовательности.
- Управляйте транзакционными email-шаблонами и отправляйте транзакционные письма на общие списки получателей To, Cc и Bcc.
- Предоставляйте локализованные варианты шаблонов или ставьте в очередь ИИ-перевод для включенных локалей.
- Создавайте, просматривайте, редактируйте, публикуйте, снимайте с публикации и удаляйте целевые страницы.
- Создавайте сохраненные формы подписки с привязкой к списку с адаптивными группами блоков stack, row, grid и single-image overlay (включая элементы управления зазором переднего плана), затем возвращайте безопасные для клиента встраивания статических сайтов.
- Создавайте, нацеливайте, публикуйте, дублируйте и развертывайте сохраненные всплывающие окна подписки с теми же рекурсивными макетами блоков.
- Подключайте и проверяйте пользовательские домены для опубликованных целевых страниц.
- Управляйте приглашениями команды, беседами входящих сообщений и исходящими конечными точками вебхуков.
- Генерируйте email-копии, темы писем и многошаговые последовательности.
- Просматривайте аналитику, активность подписчиков, состояние доставляемости, паузы отправки на уровне компании, интеграции, опубликованные схемы полезных нагрузок событий, идентичности отправки, настройки отслеживания и URL-адреса панелей управления.
- Проверяйте, видна ли надпись «Отправлено с помощью Sequenzy» для рабочей области, почему подписка владельца удаляет ее или нет, и открывайте каноническую страницу подписки для обновления или продления. Изменения прав применяются к будущим отправкам из существующих живых последовательностей без редактирования их блоков.
- Диагностируйте, почему отправка приостановлена, и восстанавливайте подходящие паузы из-за жестких отказов после подтверждения очистки списка.
- Просматривайте отказы, жалобы и подавления по гигиене email для точных получателей и очищайте подходящие устаревшие отказы без раскрытия общего списка подавлений SES.
- Настраивайте информацию о продукте компании, значения по умолчанию для идентичности отправки по всему аккаунту, переименовывайте отдельные профили отправителя и ответа, управляйте доменами отправителя и просматривайте примеры интеграций для распространенных фреймворков.
Каждый опубликованный MCP-инструмент включает явные аннотации readOnlyHint, destructiveHint и openWorldHint, чтобы совместимые клиенты могли отображать точные подсказки использования инструментов. Инструменты также публикуют определения outputSchema и возвращают structuredContent, предоставляя клиентам и моделям машиночитаемые формы результатов для последующих вызовов.
Быстрая настройка
Самый простой путь настройки — мастер Sequenzy:
npx @sequenzy/setup
Мастер открывает поток входа в браузере, создает персональный API-ключ, обнаруживает поддерживаемые ИИ-клиенты и автоматически настраивает их, когда это возможно.
Размещенный удаленный MCP
Для клиентов, поддерживающих Streamable HTTP MCP, используйте размещенную конечную точку Sequenzy вместо запуска локального процесса stdio:
https://api.sequenzy.com/v1/mcp
ChatGPT и каталог плагинов OpenAI используют проверенную размещенную поверхность:
https://api.sequenzy.com/v1/mcp/openai
Эта поверхность использует ту же реализацию и сохраняет стандартный набор инструментов, за исключением шести операций: connect_integration, create_api_key,
create_webhook, list_webhook_deliveries, replay_webhook_delivery и
rotate_sequence_inbound_webhook_secret. Обратная связь остается доступной с
упрощенной схемой для обобщенной, явно запрошенной обратной связи о продукте.
Удаленные клиенты должны проходить аутентификацию через поток OAuth Sequenzy, когда это поддерживается. Локальные и автоматизированные клиенты по-прежнему могут использовать пакет stdio ниже с SEQUENZY_API_KEY.
Размещенная конечная точка и пакет stdio поддерживают спецификацию MCP
2026-07-28, оставаясь совместимыми с клиентами 2025 года. Современные HTTP-клиенты используют обнаружение по запросу и заголовки методов; существующие клиенты продолжают работать через ту же конечную точку и команду пакета.
Машиночитаемые файлы обнаружения:
- Манифест MCP-сервера:
server.json - Карточка агента:
.well-known/agent-card.json - Манифест возможностей агента:
agent-capability.json - Метаданные навыков OpenClaw:
openclaw/skill.json
Данные и конфиденциальность
Sequenzy отправляет MCP-клиенту только те данные, которые необходимы для инструмента, который пользователь просит запустить, в пределах выбранной рабочей области и ключа или областей OAuth, предоставленных этому клиенту. В зависимости от запрошенного инструмента это может включать имена и идентификаторы рабочих областей; контактные данные подписчиков, согласие, аудиторию, атрибуты, события, вовлеченность, ответы, опросы и коммерческие данные; контент кампаний и автоматизаций; аналитику доставки; и статус интеграций или вебхуков. См. Политику конфиденциальности Sequenzy для полных категорий, целей, получателей, сроков хранения и пользовательских контролей.
Не используйте открытые пользовательские атрибуты, события, заметки, формы, образцы вебхуков, переменные email или обратную связь для отправки данных платежных карт, медицинских данных, государственных идентификаторов, биометрических или генетических данных, учетных данных аутентификации, чувствительных демографических данных или точной геолокации.
Проверенный маршрут OpenAI указывает и обеспечивает соблюдение этих ограничений для соответствующих открытых входных данных, включая вложенные пути атрибутов, такие как profile.ssn, пары координат, такие как lat/lng, и помеченную прозу, такую как Religion: ... или GPS coordinates: .... Он отклоняет URL с учетными данными в любом аргументе, независимо от того, находятся ли учетные данные в userinfo, пути, запросе или фрагменте, например, форма или всплывающее окно redirectUrl с токеном доступа или подписью URL. Ограниченные селекторы атрибутов внутри merge-тегов отклоняются без блокировки обычного авторского текста на ту же тему. На этой поверхности render_email принимает образцы данных или проверенный политикой встроенный subscriber, но не subscriberId, поэтому он не может разрешать непроверенные сохраненные пользовательские атрибуты. Его результаты удаляют ограниченные поля, необработанные ошибки API, отладочные полезные нагрузки, внутренние идентификаторы запросов/трассировок/сессий, ненужные идентификаторы учетных записей или учетных данных, сохраненные URL с учетными данными и URL входящих вебхуков. Стандартный удаленный MCP и локальный пакет stdio сохраняют полный контракт для доверенных клиентов, включая настройку интеграций на основе учетных данных, одноразовые секреты API-ключей и вебхуков, URL входящих вебхуков и подробные ошибки API. Предпочитайте панель управления или локальный CLI, когда секреты должны оставаться вне ИИ-разговора. submit_feedback запускается только когда пользователь явно просит; его схема OpenAI ограничена обобщенным сообщением, категорией и необязательным контекстом рабочего процесса, и маршрут отклоняет текст обратной связи, содержащий адрес email или идентификатор ресурса.
Что гарантирует проверенная поверхность, ограничено. Она распознает ограниченные данные по форме: английские слова имен полей, такие как passport_id, user.ssn или api_secret на любой глубине вложенности, помеченную прозу, такую как Diagnosis: ..., известные формы учетных данных, десятичные пары координат и URL с учетными данными внутри любой строки, включая HTML. Она не интерпретирует непомеченную прозу, неанглийские имена полей или значения, которые клиент намеренно скрывает; они остаются под действием вышеуказанного ограничения использования, а не фильтра.
Ручная настройка
Все stdio MCP-клиенты используют одну и ту же команду:
- Команда:
npx - Аргументы:
-y @sequenzy/mcp - Требуемая переменная окружения:
SEQUENZY_API_KEY=seq_user_your_key_here
Необязательные переменные окружения:
SEQUENZY_API_URL— базовый URL API Sequenzy. По умолчанию:https://api.sequenzy.com.SEQUENZY_APP_URL— базовый URL панели управления Sequenzy, используемый помощниками URL приложений. По умолчанию:https://sequenzy.com.
Claude Desktop
Добавьте это в конфигурацию Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sequenzy": {
"command": "npx",
"args": ["-y", "@sequenzy/mcp"],
"env": {
"SEQUENZY_API_KEY": "seq_user_your_key_here"
}
}
}
}
Перезапустите Claude Desktop после редактирования конфигурации.
Claude Code
claude mcp add --scope user --env=SEQUENZY_API_KEY=seq_user_your_key_here sequenzy -- npx -y @sequenzy/mcp
В нативной Windows оберните npx с помощью cmd /c:
claude mcp add --scope user --env=SEQUENZY_API_KEY=seq_user_your_key_here sequenzy -- cmd /c npx -y @sequenzy/mcp
Для общей конфигурации проекта используйте .mcp.json:
{
"mcpServers": {
"sequenzy": {
"command": "npx",
"args": ["-y", "@sequenzy/mcp"],
"env": {
"SEQUENZY_API_KEY": "seq_user_your_key_here"
}
}
}
}
Codex
codex mcp add sequenzy --env SEQUENZY_API_KEY=seq_user_your_key_here -- npx -y @sequenzy/mcp
codex mcp list
Ручная конфигурация Codex в ~/.codex/config.toml:
[mcp_servers.sequenzy]
command = "npx"
args = ["-y", "@sequenzy/mcp"]
[mcp_servers.sequenzy.env]
SEQUENZY_API_KEY = "seq_user_your_key_here"
Cursor
Установите Sequenzy из Cursor Marketplace для размещенного подключения с Sequenzy OAuth. Плагин подключается к:
https://api.sequenzy.com/v1/mcp
После установки завершите поток входа в браузере. Агент Cursor затем может использовать инструменты Sequenzy из чата, в том числе когда выбранной моделью является Grok.
Для ручной локальной настройки stdio вместо этого добавьте это в ~/.cursor/mcp.json:
{
"mcpServers": {
"sequenzy": {
"command": "npx",
"args": ["-y", "@sequenzy/mcp"],
"env": {
"SEQUENZY_API_KEY": "seq_user_your_key_here"
}
}
}
}
Windsurf
Используйте ту же JSON-структуру, что и для Cursor.
- macOS:
~/Library/Application Support/Windsurf/mcp.json - Windows:
%APPDATA%\Windsurf\mcp.json
VS Code Copilot
VS Code использует объект servers:
{
"servers": {
"sequenzy": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@sequenzy/mcp"],
"env": {
"SEQUENZY_API_KEY": "seq_user_your_key_here"
}
}
}
}
Другие MCP-клиенты
Для OpenClaw, Hermes и других MCP-совместимых клиентов укажите клиенту на npx -y @sequenzy/mcp и установите SEQUENZY_API_KEY.
Получение API-ключа
- Откройте панель управления Sequenzy.
- Используйте поток настройки MCP для создания персонального ключа или откройте Настройки -> API-ключи, чтобы создать ключ компании.
- Выберите пресет разрешений или точные пользовательские области, необходимые интеграции.
- Добавьте ключ в конфигурацию вашего MCP-клиента.
Персональные ключи начинаются с seq_user_. Вы можете отозвать их в любое время в панели управления.
Ключи компании также можно очистить без раскрытия секретов. Вызовите
list_api_keys, чтобы сравнить идентификатор ключа, имя, несекретный префикс, разрешения,
метку времени последнего использования и маркер isCurrent, затем передайте точный идентификатор в
revoke_api_key. delete_api_key — это псевдоним совместимости для той же
постоянной операции. Ответы списка и отзыва никогда не содержат открытый ключ или
сохраненный хэш ключа.
Восстановление после отсутствия разрешений API-ключа
Если инструмент сообщает об отсутствующей области, такой как campaigns:read или
templates:write, вызовите get_account. Его поле apiKeyPermissions перечисляет
текущую идентичность и тип ключа, области, распространенные отсутствующие области чтения маркетинга и
прямой manageUrl. Проверенный маршрут OpenAI возвращает те же разрешения
без идентификатора учетной записи пользователя или идентичности активного ключа. Персональные ключи открывают
API-ключи учетной записи; ключи компании открывают настройки API-ключей выбранной рабочей области.
Если ключ не включает
account:read, откройте
панель управления Sequenzy напрямую и выберите
соответствующую страницу API-ключей.
Разрешения можно редактировать на месте, поэтому откройте manageUrl. Для ключа компании используйте
list_api_keys и его флаг isCurrent, чтобы идентифицировать активный ключ перед
его редактированием, затем повторите неудачный инструмент без замены учетных данных или
перезапуска клиента. Агент, использующий ключ компании с api_keys:manage, может
вместо этого вызвать update_api_key; персональные ключи должны редактироваться на странице уровня учетной записи,
потому что этот инструмент управляет только ключами компании. Его входные данные scopes и preset
заменяют весь выбор разрешений, а не объединяют, поэтому сохраните
каждую существующую область, которая все еще нужна. Размещенные OAuth-подключения могут
альтернативно отключиться и повторно авторизоваться с более широкими разрешениями.
Когда у самого активного ключа отсутствует api_keys:manage, вызывайте
request_api_key_handoff вместо повторных попыток с update_api_key. Для этого требуется
account:read, и возвращается URL-адрес для проверки владельцем с запрошенным именем ключа,
разрешениями и необязательным предшественником, заполненным заранее. Этот вызов никогда не создает и не возвращает
ключ; владелец рабочего пространства просматривает форму, создает замену в
браузере и копирует её в клиент. Передайте replaceApiKeyId: "current", чтобы
предложить отзыв активного ключа после создания замены. Если у
активного ключа также отсутствует account:read, используйте панель управления напрямую.
Пресет по умолчанию Safer agent access включает lists:write и
tags:write, поэтому агенты могут создавать и обновлять определения списков и тегов, а также включает
subscribers:tag для применения тегов к существующим контактам. Он также
включает ab_tests:read, ab_tests:write и sequences:write, чтобы агенты могли
аудитировать и редактировать варианты текста A/B-тестов последовательностей, включая сообщения о брошенной корзине
и просмотре страниц. Он не включает subscribers:write, поэтому не может добавлять контакты в
списки или удалять их из списков. Удаление списка или тега по-прежнему требует
соответствующего разрешения lists:delete или tags:delete.
Пресет AI drafting включает subscribers:write, поэтому агенты, занимающиеся черновиками, могут
создавать список, а также создавать его. Импорты, применяющие listIds, также требуют
lists:write; для включения в последовательность или доставки с двойным согласием дополнительно требуется
automations:trigger.
Инструменты
Стандартная поверхность в настоящее время предоставляет 243 инструмента MCP. Поверхность, проверенная OpenAI, предоставляет 237; опущены только шесть операций, перечисленных выше.
Инструменты отклоняют аргументы, которые они не объявляют, вместо того чтобы молча игнорировать их. Ошибки называют неподдерживаемые поля, перечисляют поддерживаемые аргументы и дают целевые рекомендации для распространенных ошибок, таких как выдуманные фильтры подписчиков или варианты сортировки.
Аккаунт, Компании, Настройка
| Инструмент | Описание |
|---|---|
get_account | Получить информацию об аккаунте, доступных компаниях, текущих разрешениях ключа и URL управления API-ключами. |
select_company | Установить активную компанию для будущих вызовов инструментов. |
get_app_urls | Создать URL-адреса панелей управления для кампаний, целевых страниц, последовательностей, писем, настроек, управления подписками, доменов и деталей отправленных писем. settingsTab: "billing" соответствует разделу «Аккаунт -> Подписка». |
create_company | Создать новую компанию или бренд. |
get_company | Прочитать детали компании, информацию о продукте, контекст бренда, локализацию, настройки отслеживания ответов, текущие значения по умолчанию для полей «От»/«Ответить» и действующее разрешение только для чтения emailBranding с причиной статуса плана и URL подписки; STO явно обозначен как только для кампаний. |
update_company | Изменить информацию о продукте, контекст бренда, тему писем, отслеживание ответов и общеаккаунтные значения по умолчанию или имена для профилей «От»/«Ответить». |
get_sync_rules | Прочитать правила сопоставления событий с тегами компании и узнать, использует ли она унаследованный пресет платформы. |
update_sync_rules | Заменить все правила синхронизации; передайте [], чтобы отключить их, или null, чтобы выбрать пресет платформы SaaS/электронной коммерции. |
get_shopify_automation_settings | Прочитать настройки брошенных просмотров, брошенных корзин и снижения цен для подключенного магазина Shopify. |
update_shopify_automation_settings | Частично обновить настройки автоматизации Shopify или сбросить отдельный раздел к значениям платформы по умолчанию. |
create_api_key | Создать API-ключ компании и вернуть его одноразовый секрет в стандартном MCP; исключено из маршрута, проверяемого OpenAI. |
request_api_key_handoff | Подготовить URL создания/ротации с проверкой владельцем, когда активный ключ не может управлять API-ключами самостоятельно. |
list_api_keys | Перечислить API-ключи компании как несекретные метаданные для безопасной идентификации и очистки. |
update_api_key | Переименовать API-ключ компании или заменить его пресет разрешений или области без изменения значения ключа. |
revoke_api_key | Навсегда отозвать точный API-ключ компании по ID после проверки с помощью list_api_keys. |
delete_api_key | Псевдоним совместимости для revoke_api_key. |
list_websites | Перечислить домены отправки с сохраненными агрегированными статусами SPF, DKIM и MAIL FROM. |
add_sending_domain | Добавить домен отправки и вернуть записи настройки DNS, специфичные для когорты. |
add_website | Псевдоним совместимости для add_sending_domain. |
check_website | Прочитать сохраненные детали проверки SPF, DKIM, MAIL FROM и агрегированные данные для домена отправки. |
verify_sending_domain | Запустить новую проверку DNS/провайдера для домена отправки и вернуть текущий статус и диагностику. |
list_integrations | Перечислить подключенные интеграции с состоянием соединения и синхронизации, без возврата учетных данных. |
get_sending_status | Диагностировать активную, приостановленную или заблокированную отправку, включая знаменатели правоприменения, этапы проверки и шаги по исправлению. |
resume_sending | Восстановить подходящую паузу из-за жесткого отскока после явного подтверждения очистки списка. |
get_tracking_settings | Прочитать общеаккаунтные и Transactional API настройки открытий/кликов по умолчанию, отписки, атрибуции, UTM, домена кликов, отслеживания ответов и двойного согласия. |
update_tracking_settings | Обновить общеаккаунтные и Transactional API настройки отслеживания по умолчанию, атрибуции, UTM и общеаккаунтное двойное согласие. |
get_integration_guide | Получить примеры интеграций для конкретного фреймворка. |
get_integration | Проверить одну подключенную интеграцию, ее настройку событий, таргетинг списков, недавнюю активность и рекомендации. |
list_integration_capabilities | Сравнить возможности провайдеров, независимо от того, подключены ли они. |
connect_integration | Подключить поддерживаемых провайдеров с API-ключами или вебхук-секретами в стандартном MCP, включая управляемые вебхуки Lemon Squeezy, исходящий только Attio и опциональный импорт истории PostHog/Segment; исключено из маршрута, проверяемого OpenAI. |
get_event_schema | Просмотреть опубликованные примеры полезных нагрузок событий, пути свойств, типы и теги слияния по провайдеру. |
list_integration_activity | Прочитать сохраненный журнал активности вебхуков и синхронизации для конкретной интеграции. |
set_integration_sync_enabled | Включить или отключить массовые импорты и обратные заполнения, оставляя живые вебхуки подключенными. |
set_integration_list_targeting | Выбрать, в какие списки контакты, созданные поддерживаемой интеграцией, будут добавляться при будущих записях провайдера. |
sync_integration | Поставить в очередь импорт платежного дохода, пользователей Supabase или истории событий PostHog/Segment, используя сохраненную конфигурацию интеграции. |
get_integration_pixel | Прочитать живое состояние пикселя/конфигурации Shopify и отличить подтвержденные темные события от неизвестного чтения. |
activate_integration_pixel | Установить или перенаправить пиксель витрины Shopify; идемпотентно, если он уже актуален. |
list_web_tracking_keys | Перечислить публикуемые ключи отслеживания веб-сайта, ограничения по источникам, состояние использования и фрагменты установки. |
get_web_tracking_key | Получить один ключ отслеживания веб-сайта с его точным фрагментом установки и конечной точкой приёма данных. |
create_web_tracking_key | Создать публикуемый ключ отслеживания для витрины или веб-сайта, не основанных на Shopify. |
update_web_tracking_key | Переименовать, ограничить, отозвать или повторно активировать ключ отслеживания веб-сайта. |
delete_web_tracking_key | Окончательно удалить ключ отслеживания веб-сайта после удаления его фрагмента. |
list_sender_profiles | Перечислить профили отправителя и адреса для ответов, значения по умолчанию и готовность домена отправки. |
update_sender_profile | Переименовать один профиль отправителя или адреса для ответов без изменения значений по умолчанию для аккаунта. |
delete_sender_profile | Окончательно удалить неиспользуемый профиль отправителя с защитой для активных поверхностей отправки и последнего оставшегося отправителя. |
get_notification_preferences | Прочитать текущие настройки уведомлений аккаунта текущего пользователя для компании и поддерживаемые режимы, включая еженедельный отчёт за понедельник. |
update_notification_preferences | Обновить режимы доставки уведомлений аккаунта текущего пользователя, включая отказ от еженедельного отчёта, не затрагивая коллег. |
render_email | Отобразить финальный HTML, безопасный для электронной почты, и диагностировать неразрешённые теги слияния, включая опечатки, скрытые значениями по умолчанию. Маршрут, проверенный OpenAI, принимает образцы данных или встроенного подписчика, проверенного политикой, а не сохранённый идентификатор подписчика. |
get_sending_status сохраняет состояние паузы на базе Postgres, контрольные проверки и | |
| исправления доступными, когда аналитика отправителя временно недоступна; | |
в этом ухудшенном случае senderHealth равен null. |
render_email возвращает unresolvedMergeTags, чтобы вызывающие стороны могли отличить
неизвестное имя от распознанного тега, который просто пуст для просматриваемого
контакта. Неизвестные имена сообщаются даже когда фильтр default содержит текст:
например, {{ subscriber.frstName | default: "there" }} формирует правдоподобное
приветствие для каждого контакта, обходя сохранённые имена. Распознанное
имя, которое пусто для одного контакта, не сообщается, когда используется его значение по умолчанию.
Маршрут с проверкой OpenAI отклоняет ограниченные селекторы пользовательских атрибутов внутри
merge-тегов. Он также опускает аргумент subscriberId; используйте проверенный политикой
встроенный subscriber или опустите данные подписчика для примерного предпросмотра.
Чтобы отобразить шаг последовательности, чей nodeType равен action_ab_test, передайте
sequenceId и nodeId шага вместе с variantId из
get_sequence.sequence.emails[].abTest.variants. У этих шагов нет собственного email,
поэтому вариант обязателен; чтение и отображение их конкурирующего
текста также требует области ab_tests:read.
Для Supabase sync_integration повторно использует проект, схему, таблицу, выбор
списка и сопоставления согласий, сохранённые в панели управления. Он не может нацеливаться на
произвольную таблицу. Запустите его после установки живого триггера базы данных, чтобы импортировать
пользователей, существовавших до установки триггера, затем опрашивайте get_integration
и list_integration_activity для прогресса и результатов на уровне строк.
set_integration_sync_enabled управляет только массовыми импортами и обратными заполнениями; он
не останавливает живой вебхук провайдера от создания контактов. Используйте
set_integration_list_targeting, чтобы выбрать их будущее членство в списках:
null следует настройкам рабочего пространства по умолчанию, [] не присоединяет ни к одному списку, а заполненный массив
нацеливается на эти списки. Изменение не является ретроактивным и никогда не удаляет существующие
членства. Оно также не останавливает последовательности по умолчанию any_contact, которые
зачисляют контакты без списков; явные any_list и последовательности для конкретных списков
требуют соответствующего членства. Сочетайте нацеливание на списки с
pause_sequence_enrollments, когда эти зачисления по умолчанию также должны быть остановлены.
Supabase, Stripe, Shopify, Wix и Webflow поддерживают этот контроль.
Для PostHog sync_integration перезапускает импорт истории событий с
начала, используя сохранённый личный API-ключ. Импортированные события дедуплицируются, поэтому
повторная попытка неудачного импорта не создаёт дубликатов.
Для Segment connect_integration на стандартном MCP может опционально импортировать недавнюю
историю событий из Unify после подключения живого вебхука. Импорт проходит
по существующим контактам через Profile API, охватывает последние 14 дней API,
пропускает контакты без соответствующего профиля и безопасно дедуплицирует повторные попытки и
перекрытие с живым вебхуком. Новые подключения пропускают автоматические вызовы page/screen,
если эти имена явно не добавлены в белый список. Секреты вебхука Segment должны быть 16–153
байта UTF-8. На маршруте с проверкой OpenAI, который опускает connect_integration,
подключите Segment в панели управления или локальном CLI. Используйте sync_integration,
чтобы повторить попытку с сохранёнными учётными данными.
Для Lemon Squeezy передайте provider: "lemon_squeezy", API-ключ и
числовой идентификатор магазина как providerAccountId. Опустите webhookSecret для настройки
по умолчанию с управлением; ответ сообщает webhookProvisioning и testMode.
Предоставьте секрет подписи длиной 16–40 символов только для ручной настройки вебхука, используя
возвращённый webhookUrl. Учётные данные никогда не возвращаются.
Для Attio connect_integration на стандартном MCP принимает токен доступа
рабочего пространства без секрета вебхука, с опциональным settings.listMap как картой
идентификаторов списков Sequenzy к UUID списков людей Attio или API-слагам, плюс
syncCompanyFromDomain для управления сопоставлением компаний из доменов не бесплатной почты.
На маршруте с проверкой OpenAI подключите Attio в панели управления или локальном CLI, затем
используйте update_attio_settings для тех же настроек. Интеграция только исходящая:
новые присоединения к сопоставленным спискам Sequenzy создают или обновляют человека и добавляют его в список
Attio; удаления из списков не удаляют записи из Attio.
Вызовите get_event_schema перед записью merge-тега {{event.*}} или фильтра
свойств события. Опустите eventName, чтобы перечислить документированные встроенные события; укажите
имя события, чтобы получить примеры полезных нагрузок и пути свойств, специфичные для провайдера,
и опционально отфильтруйте по provider. Пользовательские имена событий остаются действительными, даже когда
результат сообщает documented: false; это означает только, что нет опубликованного эталонного
примера. Используйте активность интеграции или зачисления в последовательности для фактических данных
доставки, потому что этот инструмент возвращает статические справочные данные.
Для нового домена отправки вызовите add_sending_domain, опубликуйте DNS-записи в
возвращённом website.dnsRecords, дождитесь распространения DNS, а затем вызовите
verify_sending_domain. Публикуйте каждую возвращённую запись, а не предполагайте
фиксированного провайдера или количество записей: унифицированные домены включают обязательный DMARC, а
устаревшие домены могут возвращать записи Amazon SES MAIL FROM и записей для входящих ответов. Если
проверка предпринята до создания, ошибка указывает обратно на
add_sending_domain с запрошенным доменом.
Для Shopify вызовите get_integration_pixel перед тем, как полагаться на просмотры продуктов,
активность корзины или триггеры брошенной корзины. Результат читается в реальном времени из
Shopify, потому что продавцы могут удалить пиксель независимо. Если
pixel.healthy равен false, dependentEvents называет триггеры, которые не могут
поступить; вызовите activate_integration_pixel, чтобы установить или перенаправить пиксель.
Активация идемпотентна, и события начинаются при следующем посещении витрины, а не
заполняются задним числом.
Для пользовательских, headless, тикетных или SaaS-сайтов используйте
list_web_tracking_keys перед тем, как полагаться на триггеры просмотра продуктов или корзины. Создайте
ключ с явным белым списком источников, установите возвращённый installSnippet,
затем пусть аутентифицированный бэкенд клиента создаст кратковременное доказательство через
POST /api/v1/web-tracking-identities и вызовет
sequenzy.identify(email, identityToken) при входе или оформлении заказа. Один только
публикуемый ключ записывает только анонимную активность и не может запускать автоматизацию
подписчиков. Возвращённый фрагмент устанавливает синхронные заглушки методов перед своим
асинхронным загрузчиком, поэтому вызовы идентичности и событий, сделанные во время загрузки страницы, ставятся в очередь
до готовности SDK. Предпочитайте отзыв ключа с помощью update_web_tracking_key
перед его окончательным удалением.
Новые компании начинают без правил синхронизации. Унаследованный пресет остаётся доступным
для SaaS/электронной коммерции, передавая null в update_sync_rules; сервисные
и консалтинговые компании обычно должны сохранять [] или определять явные правила.
Используйте list_sender_profiles, чтобы найти идентификатор профиля, затем вызовите
update_sender_profile, чтобы изменить только его отображаемое имя. Передайте type: "reply"
для профиля ответа; отправитель — по умолчанию. Адрес, домен отправки и
выборы From/Reply-To по умолчанию для всей учётной записи остаются неизменными. Переименование
требует области companies:manage.
Используйте delete_sender_profile, чтобы окончательно удалить устаревшую идентичность From.
Он отказывает последнему отправителю и любому профилю, используемому живой кампанией, активной
последовательностью (включая переопределение шага) или транзакционным email. Подходящие черновики
и значения по умолчанию учётной записи перемещаются в возвращённый fallbackSenderProfileId; проверьте его
перед отправкой. Профили ответа не поддерживаются этим инструментом удаления.
Брошенная корзина Shopify включена по умолчанию. Она срабатывает
ecommerce.cart_abandoned через один час бездействия корзины, с 24-часовым
периодом охлаждения на подписчика. Используйте update_shopify_automation_settings, чтобы изменить
поля cartAbandonment.enabled, delayHours или cooldownHours; передайте
cartAbandonment: null, чтобы восстановить эти значения по умолчанию без изменения настроек
брошенного просмотра или снижения цены. Значения времени должны быть положительными;
delayHours ограничен 168, а cooldownHours — 720.
Подписчики
| Инструмент | Описание |
|---|---|
add_subscriber | Добавить одного подписчика; статус только при создании, поэтому используйте update_subscriber для существующего контакта. |
create_subscriber_import | Поставить в очередь до 5 000 полных записей CRM с опциональным безопасным для повторных попыток idempotencyKey; включённые проверки гигиены email продолжаются отдельно после приёма. |
get_subscriber_import | Читать прогресс, счётчики результатов строк и сводки ошибок для поставленного в очередь импорта. |
update_subscriber | Обновить нативные поля профиля и телефона, согласие на SMS, атрибуты, теги или глобальный статус. |
remove_subscriber | Отписать, сохраняя историю подавления, или окончательно удалить только с hardDelete: true. |
get_subscriber | Получить детали подписчика по email или внешнему идентификатору. |
search_subscribers | Поиск по запросу, тегам, списку, статусу, сегменту или одному пользовательскому атрибуту, с автоматической или возобновляемой пагинацией. |
trigger_subscriber_event | Отправить одно пользовательское событие точно так, как это сделала бы интеграция, применяя правила синхронизации и сопоставляя триггеры последовательностей. |
trigger_subscriber_events | Отправить несколько упорядоченных пользовательских событий для одного подписчика. |
import_subscriber_events | Импортировать до 25 событий с идентифицированным источником по контактам; тихая история требует, чтобы каждая строка для контакта была старше одного часа. |
bulk_add_subscriber_tags | Добавить теги до 500 существующим подписчикам; требует subscribers:tag и может также требовать tags:write. |
bulk_remove_subscriber_tags | Удалить теги у до 500 существующих подписчиков; требует subscribers:tag или subscribers:write. |
Используйте create_subscriber_import для онбординга CRM вместо цикла по
add_subscriber. Один вызов принимает 5 000 полных записей и возвращает асинхронный
идентификатор импорта; опрашивайте его с помощью get_subscriber_import. Импорт completed может
всё ещё содержать ошибки строк, поэтому проверяйте failedCount и failedReasons. Каждая
исключённая строка учтена: skippedReasons суммируется в skippedCount, а
failedReasons суммируется в failedCount. Сообщайте о любой недостаче с идентификатором импорта
вместо предположений о том, какие строки были пропущены. Когда гигиена email включена,
проверки доставляемости продолжаются отдельно после приёма, и результаты появляются
в здоровье списка; статус импорта не ждёт и не включает эти вердикты.
Недействительные вердикты подавляются из последующих отправок. Используйте optInMode: "confirmed"
только когда согласие уже было проверено.
Для import_subscriber_events email обязателен, когда строка может создать новый
контакт; externalId может использоваться отдельно только для существующего контакта. Укажите
стабильный eventId в каждой строке. Повторная попытка повторно использует исходную квитанцию и
идемпотентно повторяет попытки последующего восстановления. Историческая классификация — на
контакт: если любая строка для контакта недавняя, вся группа этого контакта использует
путь живых побочных эффектов.
Для подавления по требованиям вызовите update_subscriber с
status: "unsubscribed" (или используйте remove_subscriber без hardDelete). Не
повторяйте add_subscriber с другим статусом: статус в этом инструменте применяется
только при первом создании контакта, и несовпадающий пропущенный результат
сообщается как ошибка.
Когда add_subscriber опускает listIds, контакт, созданный вызовом, следует спискам по умолчанию рабочего пространства, тогда как существующий контакт сохраняет текущее членство в списках. Передавайте идентификаторы списков явно, когда существующий контакт должен быть добавлен в конкретные списки; передайте [], чтобы не указывать списки.
update_subscriber.phone записывает нативное телефонное поле, отображаемое в контакте, а не пользовательский атрибут. Передавайте smsConsent: true только после подтверждения явного письменного согласия, либо false, чтобы отказаться от SMS-согласия. Изменение телефона без smsConsent сбрасывает SMS-согласие, поскольку согласие привязано к старому номеру.
add_subscriber, update_subscriber и create_subscriber_import принимают часовой пояс IANA timezone, например America/New_York. Значение сохраняется в нативном профиле контакта и обеспечивает доставку кампаний с учётом локального времени получателя. Передайте пустой часовой пояс в update_subscriber, чтобы очистить его; недопустимые значения в строках импорта игнорируются без отклонения остальной части импорта.
Продукты и цифровая доставка
| Инструмент | Описание |
|---|---|
list_products | Список синхронизированных продуктов из Stripe, Shopify, WooCommerce, вручную или через Commerce API. |
upsert_products | Создание или обновление до 100 продуктов Commerce API по вашему идентификатору продукта. |
delete_product | Удаление продукта, ранее отправленного через Commerce API. |
attach_product_file | Прикрепление размещённого или локально загруженного файла доставки к продукту. |
remove_product_file | Удаление прикреплённого файла доставки продукта. |
sync_products | Постановка в очередь синхронизации каталога продуктов Stripe, с возможностью выбора интеграции по ID. |
После прикрепления файла доставки продукта соответствующие события покупки включают download.url и download.name, поэтому электронные письма, запускаемые покупкой, могут использовать теги слияния, такие как {{event.download.url}}.
Для продуктов Stripe list_products возвращает каждую активную цену как вариант, с идентификатором цены Stripe в variantId. Используйте этот идентификатор для нацеливания на точную цену в последовательности покупки, даже если она не является ценой по умолчанию для продукта.
Изображения
| Инструмент | Описание |
|---|---|
upload_image_asset | Загрузка изображения для электронной почты и возврат записи размещённого медиафайла плюс готовый к вставке блок изображения. |
Инструмент принимает изображения PNG, JPEG, GIF и WebP размером до 5 МБ. Локальные stdio-клиенты могут передавать filePath. Размещённые/удалённые клиенты, которые могут получить доступ к байтам вложений, могут передавать imageBase64 с filename. Укажите altText для доступности, затем используйте displayWidthPercent, cropHeight, objectFit (cover или contain) и align для стандартизации представления скриншотов. Возвращённый imageBlock можно скопировать непосредственно в массив блоков, принимаемый инструментами кампаний, последовательностей, шаблонов и транзакционных писем.
Аутентифицированные байты изображений всегда загружаются в источник, настроенный через SEQUENZY_API_URL, даже если обратный прокси возвращает эквивалентный URL загрузки на другом хосте. Учётные данные API никогда не пересылаются на этот альтернативный источник.
{
"filePath": "/Users/me/Desktop/product-results.png",
"altText": "Product results dashboard",
"displayWidthPercent": 100,
"cropHeight": 320,
"objectFit": "cover",
"align": "center"
}
Списки, теги, сегменты
| Инструмент | Описание |
|---|---|
list_tags | Список всех тегов. |
create_tag | Создание определения тега с необязательным цветом. |
update_tag | Обновление цвета тега. |
delete_tag | Удаление тега и его удаление у подписчиков. |
list_lists | Список списков подписчиков. |
create_list | Создание списка подписчиков. |
update_list | Переименование или описание списка подписчиков. |
delete_list | Удаление списка подписчиков. |
add_subscribers_to_list | Добавление до 500 подписчиков в список из массива email. |
remove_subscribers_from_list | Удаление до 500 подписчиков из списка. |
list_segments | Список сохранённых сегментов и их количеств. |
create_segment | Создание вложенных сегментов или сегментов с фильтрацией по элементам массива. |
update_segment | Обновление имени сегмента, фильтров, корневой группы или оператора соединения. |
delete_segment | Удаление сегмента (требуется segments:delete). |
get_segment_count | Предпросмотр активного количества подписчиков для сегмента. |
Для экспорта подписчиков search_subscribers принимает listId, точное listName или list (сначала ID, затем точное имя). Он также принимает attribute плюс attributeValue, с attributeOperator для contains, числовых сравнений или is_not_empty; комбинированная форма "attributeName:value" остаётся поддерживаемой. Фильтры объединяются с помощью AND; используйте сохранённый сегмент для логики OR, вложенных групп, исключений, вовлечённости или условий событий. Если limit опущен, инструмент автоматически получает каждую соответствующую страницу. Для чтения по частям передайте limit и следуйте pagination.nextCursor (или pagination.nextOffset), пока hasMore истинно. offset и page поддерживаются при менее 1 000 000 пропущенных совпадений; используйте курсор для более глубоких аудиторий.
Для массового заполнения списка используйте add_subscribers_to_list; базовый endpoint API — POST /api/v1/lists/{listId}/subscribers без суффикса /bulk:
{
"emails": ["ada@example.com", "grace@example.com"],
"duplicateStrategy": "skip",
"enrollInSequences": false,
"optInMode": "default"
}
Отправляйте не более 500 писем на запрос. Стандартные ограничения скорости API по-прежнему действуют: 100 запросов в минуту на ключ API и 20 запросов в секунду при всплесках. Для импорта через CLI на основе CSV принимаемые заголовки email включают email, e-mail, email address и mail; если распознанного заголовка нет, CLI читает первый столбец.
Фильтры сегментов поддерживают атрибуты, события, членство в сохранённых сегментах, события вовлечённости, правила покупки продуктов Stripe и правила покупки продуктов commerce. Используйте filterJoinOperator: "or" для сегментов match-any или передайте группу v2 root для вложенной логики.
Для атрибутов-массивов объектов используйте пути с подстановочными знаками, такие как history_events[].eventvenue_id:2103. Когда группа AND также фильтрует history_events[].showing_date, оба условия должны соответствовать одному общему элементу history_events[]; значения из несвязанных записей истории не комбинируются. Удаление сегмента требует segments:delete; segments:write недостаточно.
Каждое поле фильтра сегмента проверяет свои собственные операторы:
status,segment:is,is_nottag:contains,not_contains,is_empty,is_not_emptyemail:contains,not_containsemailProvider,list:is,is_not,is_empty,is_not_emptyfirstName,lastName:contains,not_contains,is_empty,is_not_emptyadded:less_than,more_thanattribute:is,is_not,is_empty,is_not_empty,gte,lte,gt,lt,contains,not_containsevent, поля вовлечённости в email:is,is_not,at_least,less_than_countemailBounced: также поддерживаетis_temporary_bounce,is_permanent_bouncestripeProduct:is,is_not,at_least,less_than_countstripeCurrentProduct,stripeTrialProduct:is,is_not,gte,lte,gt,ltcommerceProduct:is,is_not,at_least,less_than_count
Примеры фильтров продуктов Stripe:
{ "field": "stripeProduct", "operator": "is", "value": "prod_pro" }
{ "field": "stripeProduct", "operator": "is_not", "value": "prod_pro" }
{ "field": "stripeProduct", "operator": "at_least", "value": "prod_pro:3" }
{ "field": "stripeProduct", "operator": "less_than_count", "value": "prod_pro:3" }
Фильтры продуктов commerce сопоставляют продукты, купленные через заказы commerce. Значения могут быть provider:productId для идентификаторов с областью провайдера (shopify, woocommerce или api), простым идентификатором продукта для сопоставления с любым провайдером или provider:productId:count для операторов порога:
{ "field": "commerceProduct", "operator": "is", "value": "api:starter-kit" }
{ "field": "commerceProduct", "operator": "at_least", "value": "shopify:42:2" }
Поля вовлечённости, такие как emailSent, emailDelivered, emailOpened, emailClicked, emailBounced и emailComplained, принимают скользящие окна, такие как 7d, 30d, 90d, 180d или all. Операторы присутствия могут ограничивать область по политике доставки с помощью marketing:<timeRange> (трафик кампаний с маркетинговой политикой, автоматизаций и Send API) или transactional:<timeRange> (отправки с транзакционной политикой); области политик требуют снимка политики на момент отправки, поэтому неоднозначные старые события автоматизаций и Send API остаются доступными только через фильтры без области. emailBounced также поддерживает значения с областью с помощью is_temporary_bounce и is_permanent_bounce. С at_least и less_than_count используйте count:timeRange, например 10:30d или 10:all. Операторы присутствия могут вместо этого использовать область кампании, такую как campaign:cmp_123; области кампании и типа email нельзя комбинировать с операторами подсчёта.
Синхронизация аудиторий (Meta Ads)
| Инструмент | Описание |
|---|---|
list_audience_syncs | Список синхронизаций сегмент-аудитория с расписанием и статусом последней синхронизации. |
list_ad_accounts | Список рекламных аккаунтов Meta, доступных для синхронизации. |
create_audience_sync | Отправка сегмента в пользовательскую аудиторию Meta по расписанию. |
update_audience_sync | Изменение частоты синхронизации (hourly, daily, weekly) или пауза/возобновление. |
delete_audience_sync | Удаление сопоставления синхронизации; сама аудитория Meta сохраняется. |
sync_audience_now | Запуск немедленной загрузки вне обычного расписания. |
Требуется подключённая интеграция Meta Ads в панели управления Sequenzy (Настройки -> Интеграции). create_audience_sync принимает существующий сегмент (segmentId) или готовый шаблон (predefinedSegmentId, например zero-ltv, no-purchase-1y, recent-buyers, high-spenders-ecom, non-buyers, engaged) — шаблонный сегмент создаётся автоматически при первом использовании, и первая загрузка запускается немедленно.
Аудитории только добавляются: подписчики, которые позже покидают сегмент, остаются в аудитории Meta. Meta требует 100+ совпавших людей, прежде чем аудиторию можно использовать для показа рекламы.
Шаблоны
| Инструмент | Описание |
|---|---|
list_templates | Список шаблонов со статусом локализации, меткой и фильтрацией по isTemplate, а также пагинацией. |
get_template | Чтение деталей шаблона, содержимого и локализованных вариантов. |
create_template | Создание шаблонов из подсказки, HTML или блоков Sequenzy; используйте isTemplate: true, чтобы сохранить переиспользуемый мастер-дизайн. |
update_template | Обновление метаданных шаблона, текста превью во входящих, меток, HTML или блоков; пометка или снятие пометки мастера с помощью isTemplate. |
set_template_localization | Создание или замена локализованного варианта, предоставленного вызывающей стороной. |
sync_template_localizations | Постановка в очередь AI-перевода для выбранных или всех включённых неосновных локалей. |
delete_template | Удаление шаблона. |
list_templates возвращает 50 тел писем, начиная с самых новых, по умолчанию и принимает
limit до 100. Продвигайте offset с помощью pagination.count, пока
pagination.hasMore имеет значение true; pagination.total сообщает полное количество
совпадений, включая кампании и тела транзакционных писем.
Установите isTemplate: true в list_templates, чтобы возвращать только сохранённые мастер-дизайны,
или false, чтобы возвращать обычные тела писем. Отмеченные мастера предлагаются как
отправные точки для шагов последовательностей и кампаний на дашборде; начало с такого мастера создаёт
независимую копию, поэтому правки не затрагивают оригинал.
Копирование исходного дизайна автономных/последовательных писем и AI-переписывание в рамках выбранного макета в настоящее время
доступны только на дашборде. В этом выпуске эти рабочие процессы намеренно остаются в интерактивном
редакторе, где пользователи могут просмотреть исходник, переводы и любой запасной текст
перед сохранением шага последовательности. REST, CLI и MCP не предоставляют эквивалентной операции для автономного/последовательного исходного дизайна. create_template с prompt генерирует новый контент без сохранения
существующего макета; предоставленные HTML или блоки создают новое тело без автоматического
копирования локализованных вариантов. См. документацию по доступности интерфейса.
Копии кампаний уже работают через REST POST /api/v1/campaigns и MCP
create_campaign с templateId; это нельзя комбинировать с prompt для AI-переписывания.
Для совершенно нового контента, запрошенного на естественном языке, передайте prompt, чтобы Sequenzy
генерировал фирменные нативные блоки на стороне сервера. Используйте blocks только для готового
контента Sequenzy, предоставленного вызывающей стороной, и используйте html только при сохранении предоставленной
или явно запрошенной разметки. prompt, blocks и html взаимоисключающие;
style и tone допустимы только с prompt.
Используйте set_template_localization, когда переведённый текст поступает из вашего собственного
рабочего процесса локализации. Требуется включённая неосновная locale, локализованный
subject и ровно один из html или blocks. Используйте
sync_template_localizations, чтобы попросить Sequenzy перевести выбранные локали;
опустите locales, чтобы синхронизировать все включённые неосновные локали. Явная синхронизация работает
даже при отключённой автоматической локализации при сохранении.
Переиспользуемые компоненты писем
| Инструмент | Описание |
|---|---|
list_email_components | Список сохранённых секций и футеров, опционально ограниченный закреплёнными по умолчанию. |
get_email_component | Чтение блоков, метаданных, версии и состояния слота по умолчанию одного компонента. |
get_default_email_component | Чтение компонента, закреплённого в слоте по умолчанию, например footer. |
set_default_email_component | Создание или замена футера компании по умолчанию, используемого в новых блочных письмах. |
create_email_component | Сохранение переиспользуемой секции или футера из списка блоков. |
update_email_component | Обновление метаданных компонента или замена его блоков с увеличением версии. |
delete_email_component | Удаление компонента без изменения писем, которые уже скопировали его блоки. |
Компоненты копируются в письма при их создании, поэтому последующие правки влияют на новые письма, а не перезаписывают существующий контент. Футер по умолчанию сохраняет ссылку отписки включённой, тогда как транзакционный рендеринг скрывает эту ссылку. Письма с сырым HTML сохраняют собственную разметку и не получают блочные компоненты; их обработка отписки при отправке остаётся неизменной.
A/B-тесты
| Инструмент | Описание |
|---|---|
list_ab_tests | Список A/B-тестов и вариантов, опционально ограниченных последовательностью. |
get_ab_test | Получение действующих настроек, вариантов, статуса локализации и копии шага последовательности. |
get_ab_test_stats | Получение агрегированной и по-вариантной статистики. |
restart_ab_test | Перезапуск остановленного или завершённого A/B-теста. |
select_ab_test_winner | Выбор победителя кампании и постановка в очередь оставшейся рассылки. |
update_ab_test | Обновление настроек выбора победителя для кампании или последовательности. |
update_ab_test_variant | Обновление черновика кампании или копии варианта последовательности. |
create_ab_test | Создание теста кампании или преобразование шага письма последовательности. |
add_ab_test_variant | Добавление варианта в существующий A/B-тест. |
delete_ab_test_variant | Удаление чернового варианта A/B-теста. |
delete_ab_test | Удаление A/B-теста. |
Используйте get_sequence.sequence.emails[].abTest.variants для обнаружения ID вариантов последовательности, тем, текста превью и количества блоков; вызовите get_ab_test для аудита полного blocks каждого варианта, действующего settings, статуса локализации или статистики. Настройки кампании используют testPercentage, testDurationMinutes и winnerCriteria; настройки последовательности используют testType, winnerThreshold и winnerCriteria. Устаревшие значения последовательности testPercentage: 100 и testDurationMinutes: 0 являются совместимыми маркерами, а не настройками времени выполнения. select_ab_test_winner применяется только к тесту кампании, который в данный момент тестируется, и немедленно ставит в очередь выигрышный вариант для оставшейся аудитории. update_ab_test изменяет соответствующую модель настроек и требует confirmLiveChange: true, когда настройки последовательности затрагивают активный или уже использованный тест. Обновления вариантов принимают либо html, либо blocks, но не оба.
create_ab_test принимает ровно один из campaignId или automationNodeId; последний требует от одного до четырёх дополнительных вариантов и преобразует узел письма последовательности в action_ab_test. Преобразование переносит тему шага, текст превью и блоки в независимые варианты писем. Получите ID теста и вариантов из get_sequence, прочитайте копию каждого варианта с помощью get_ab_test и отредактируйте каждый с помощью update_ab_test_variant; update_sequence_node и update_template не могут редактировать копию варианта, и изменение, предназначенное для всего шага, должно быть повторено для каждого варианта. Если update_ab_test_variant отсутствует в списке инструментов MCP, включите его на коннекторе Sequenzy, а не записывайте через другой инструмент писем. Полный рабочий процесс требует ab_tests:read, ab_tests:write и sequences:write, все включены в Безопасный доступ агента. Только с sequences:read, get_sequence сохраняет A/B-шаг и контрольную копию видимыми, но скрывает поля записей теста и возвращает пустой список вариантов. Явный winnerCriteria последовательности переопределяет значение по умолчанию testType, поэтому варианты контента всё ещё можно оценивать по открытиям. Передайте confirmLiveChange: true при преобразовании узла в активной последовательности. Вместе с контролем A A/B-тест поддерживает не более пяти вариантов. Варианты последовательности получают независимые шаблоны писем и могут быть отредактированы после создания; как только последовательность активна или тест имеет активность, update_ab_test_variant требует confirmLiveChange: true. Варианты можно добавлять или удалять только пока тест является черновиком, а изменения в живой последовательности также требуют подтверждения, поскольку они немедленно меняют ротацию.
Кампании
| Инструмент | Описание |
|---|---|
list_campaigns | Вывести постранично кампании по статусу или метке, включая отзывы рецензентов и поля темпа доставки для аудита STO по всему аккаунту. |
get_campaign | Получить детали, статистику, отзывы рецензентов и записанный темп доставки для кампании. |
get_campaign_audience | Разрешить сохранённый таргетинг, отсутствующие ссылки, сводку на простом языке и актуальное количество получателей. |
list_campaign_goals | Вывести список целей конверсии, сохранённых для одной email-кампании (SMS не поддерживается). |
create_campaign_goal | Добавить цель конверсии для email-кампании: событие, атрибут подписчика или применённый тег. |
update_campaign_goal | Обновить сохранённую цель конверсии для email-кампании. |
delete_campaign_goal | Удалить сохранённую цель конверсии для email-кампании. |
list_email_sends | Найти недавнюю историю доставки с идентификаторами ресурсов и URL, опционально ограничившись одним шагом последовательности. Успешные тестовые отправки вживую опускаются. |
get_email_send | Проверить доставку в очереди, тестовую, отправленную, подавленную или неудачную по постоянному идентификатору email-отправки. |
list_recipient_suppressions | Вывести список связанных подавленных получателей, включая защищённые глобальные недействительные адреса и жалобы. |
get_recipient_suppression | Проверить локальный отказ, жалобу, гигиену email и региональное подавление SES для одного точного получателя. |
remove_recipient_suppression | Удалить эскалацию мягкого отказа рабочего пространства, сохраняя глобальные защиты от жёстких отказов и жалоб. |
create_campaign | Создать кампанию с контентом, данными и опциональными переопределениями идентичности From/Reply-To. |
update_campaign | Обновить черновую кампанию, включая контент, данные, идентичности, аудиторию и сохранённую конфигурацию STO. |
schedule_campaign | Запланировать или перенести кампанию, опционально переопределяя STO и его окно доставки 1–24 часа. |
send_test_email | Отправить тестовое письмо на один адрес. |
render_email | Отрисовать точный email-безопасный HTML и сообщить о нерешённых тегах, включая опечатки, скрытые значениями по умолчанию. |
cancel_campaign | Отменить запланированную или отправляемую кампанию. |
pause_campaign | Поставить отправляемую кампанию на паузу. |
resume_campaign | Возобновить приостановленную кампанию, опционально распределяя доставку по времени. |
delete_campaign | Удалить кампанию. |
duplicate_campaign | Дублировать кампанию в новый черновик. |
resend_campaign_to_non_openers | Создать черновик повторной отправки для участников исходной аудитории, которые не открыли отправленную кампанию. |
Кампании, созданные через подсказки, генерируются и сохраняются одним запросом API и
остаются черновиками. Используйте templateId, blocks или html только при копировании или
сохранении существующего контента, а не когда агент должен создать его с нуля. Опустите все
поля контента, чтобы создать пустой черновик для последующего редактирования.
Цели кампании засчитывают получателей, которым эта кампания действительно была отправлена в пределах
настроенного окна атрибуции; открытие или клик остаётся более сильным
сигналом последнего касания, когда он существует. Цели событий требуют triggerEventName,
цели атрибутов подписчика требуют attributePath, а цели с применёнными тегами
требуют triggerTagName. Окно атрибуции кампании по умолчанию составляет 168
часов, если оно опущено.
Чтобы доставить в одно и то же настенное время в часовом поясе каждого получателя, вызовите
schedule_campaign с sendInRecipientTimezone: true и IANA
scheduledTimezone, который определяет настенные часы, представленные
scheduledAt. Контакты без сохранённого часового пояса получают кампанию в
момент scheduledAt. Этот режим нельзя комбинировать с повторяющейся или распределённой
доставкой.
Оптимизация времени отправки настраивается для каждой кампании, а не на уровне компании или
последовательности. Проверьте её по кампаниям с помощью list_campaigns или проверьте одну
кампанию с помощью get_campaign. Установите sendTimeOptimization и
sendTimeWindowHours (1–24, по умолчанию 12) в черновике с помощью update_campaign или
переопределите их при планировании с помощью schedule_campaign. spreadOverHours
имеет приоритет и отключает STO, как и доставка в часовом поясе получателя.
Последовательности вместо этого используют sendingWindow, общий шлюз разрешённых часов/дней, а
не предсказанные времена отправки для каждого получателя.
Для идентичностей на уровне кампании и последовательности fromEmail плюс fromName
выбирает идентичность отправителя с этим отображаемым именем на почтовом ящике, создавая её
при необходимости без переименования других идентичностей с тем же адресом. Адрес Reply-To
вместо этого имеет одно сохранённое имя на всю компанию: когда replyToName отличается от этого
имени, сохранённое имя сохраняется, и успешный ответ включает рекомендации
по восстановлению в warnings.
send_email и send_test_email возвращают постоянный emailSendId. Используйте
list_email_sends для поиска недавних идентификаторов по теме/заголовку, получателю, статусу
доставки, типу, типу отказов или источнику; передайте идентификатор в get_email_send для проверки
status, errorMessage, сохранённого тела и событий доставки. Строки списка доставки
хранятся 14 дней. Успешные живые тестовые и другие тестовые отправки
опускаются, чтобы они не засоряли реальные доставки. Ответы на эти тестовые отправки
отображаются в list_conversations только когда включён захват входящих ответов. Задания очереди
являются внутренними деталями выполнения и
не раскрываются через контракт MCP. Каждая возвращённая доставка имеет прямую
url в панели управления. Используйте list_recipient_suppressions для различения защищённых
глобальных недействительных получателей, защищённых жёстких отказов компании и строк жалоб от
удаляемых эскалаций мягких отказов компании, и используйте get_recipient_suppression для точного регионального статуса.
remove_recipient_suppression удаляет только эскалацию компании; глобальные и
подавления на уровне аккаунта Amazon SES, жалобы, отписки и защиты гигиены email
остаются нетронутыми. Локальный результат гигиены использует причину bounced с
email_hygiene в качестве источника, не изменяя статус согласия подписчика.
Агенты должны передавать принадлежащий вызывающему idempotencyKey в send_email перед
первой попыткой и повторно использовать его для каждой повторной попытки того же логического email. Sequenzy
возвращает исходный emailSendId в течение 14 дней вместо создания новой
доставки. Повторное использование ключа с другими аргументами отправки отклоняется, поэтому не
генерируйте новый ключ внутри цикла повторных попыток.
Блоки email могут использовать условные правила отображения или ветви conditional-group.
Условия поддерживают переменные времени рендеринга и атрибуты подписчика, а также живые
данные подписчика, такие как членство в сегментах/списках, теги, события, вовлечённость,
статус подписки/SMS и покупки Stripe или коммерции. Условия с живыми
данными используют те же значения полей и операторы, что и фильтры сегментов;
получатели без сохранённого совпадения подписчика используют ветвь OTHERWISE.
Основные формы блоков: { "type": "heading", "content": "Title", "level": 1 }, { "type": "text", "content": "<p>Copy</p>" }, { "type": "button", "text": "Book a call", "url": "https://example.com", "variant": "primary" } , and { "type": "image", "src": "https://...", "alt": "Description", "width": 100, "widthType": "percent" }. Buttons also accept content как
псевдоним для text и по умолчанию используют вариант primary. Поле изображения widthType принимает
percent или px.
Блоки видео YouTube принимают опциональную пользовательскую обложку: { "type": "video", "videoUrl": "https://www.youtube.com/watch?v=...", "thumbnailUrl": "https://cdn.example.com/cover.jpg", "alt": "Watch the product tour" }.
Замена блоков без thumbnailUrl восстанавливает собственный стоп-кадр YouTube, сохраняя
videoUrl как место назначения клика.
Сырой html хранится как один непрозрачный блок. Он сохраняет предоставленную разметку, но не
добавляет логотип компании, нативные брендированные секции или дизайн блоков на основе темы.
Используйте prompt для нового брендированного черновика или blocks для дизайна в редакторе; результаты
авторинга MCP включают предупреждение при использовании сырого HTML.
Используйте update_company с fromEmail и/или replyTo для установки общеаккаунтных
значений по умолчанию. fromEmail должен использовать настроенный, проверенный домен отправки; replyTo
может быть любым допустимым почтовым ящиком. create_campaign, update_campaign,
create_sequence и update_sequence принимают те же поля прямого адреса
для переопределений на уровне ресурсов и создают базовый профиль при необходимости.
Отправьте fromName или replyToName отдельно, чтобы переименовать существующий профиль по умолчанию
без изменения его адреса. Когда адрес имеет несколько отображаемых имён, используйте
senderProfileId или replyProfileId из list_sender_profiles, чтобы выбрать
точный профиль для установки по умолчанию и переименования.
update_company также управляет темой email компании по умолчанию через
emailTheme (presetId, colors, typography, layout). Обновления темы
частичные — опущенные поля сохраняют текущее значение (или значение пресета по умолчанию), а
числовые значения ограничиваются поддерживаемыми диапазонами. Передайте emailTheme: null, чтобы
сбросить компанию к теме платформы по умолчанию. Настройки макета могут управлять
общим baseRadius и отдельным buttonRadius. Внутри colors,
background окрашивает внешний холст, content окрашивает внутреннюю карточку контента,
а surface окрашивает вложенные карточки или тонированные плитки. Опускание content сохраняет
его текущее значение; когда цвет контента не сохранён, карточка следует
за background.
Отслеживание ответов доступно на тех же инструментах компании. Используйте
replyTrackingEnabled, replyTrackingDomainMode (sequenzy или custom) и
forwardReplies с update_company. Чтения компании также возвращают текущее
значение replyRetentionDays только для чтения.
Опросы и NPS-анкеты являются нативными блоками email, поэтому они работают везде, где инструмент email
принимает blocks, включая кампании, шаблоны, A/B-варианты,
транзакционные шаблоны и шаги email в последовательностях. Транзакционные отправки опросов
должны разрешаться ровно в одного эффективного получателя после фильтрации подавлений и
дедупликации получателей, и этот получатель уже должен существовать как подписчик;
в противном случае Sequenzy отклоняет отправку, потому что ссылку на ответ нельзя безопасно
атрибутировать. Используйте опрос с кнопками ответа:
{
"type": "poll",
"variant": "options",
"question": "What did you think of this email?",
"options": [
{ "label": "Loved it", "value": "loved" },
{ "label": "Not for me", "value": "not_for_me" }
],
"attributeKey": "email_feedback"
}
Для NPS используйте "variant": "nps", пустой массив options и атрибут
такой как nps_score. Шкала всегда 0–10; необязательные npsLowLabel и
npsHighLabel настраивают её подписи. Каждый ответ обновляет атрибут
подписчика и запускает poll.answered для автоматизаций и исходящих вебхуков.
Установите "allowMultiple": true в текстовом опросе с множественным выбором, чтобы открыть
размещённую страницу, где получатели могут отметить несколько ответов и сохранить
весь выбор сразу. Атрибут подписчика хранит список выбранных значений, поэтому
сегменты по атрибутам должны использовать contains. Опросы с множественным
выбором не могут использовать изображения вариантов или конфигурации, чьи
закодированные подписанные ссылки превышают безопасный лимит размера доставки.
Сводки опросов кампаний устанавливают allowMultiple: true, используют количество
респондентов для totalResponses и могут сообщать проценты ответов, сумма которых
превышает 100%.
Блоки опросов также поддерживают стилизацию под бренд. accentColor перекрашивает
все появления, включая "brutal"; optionRadius задаёт скругление углов
кнопок ответов в пикселях (0 — квадратные), независимо от
styles.borderRadius контейнера; а questionColor перекрашивает только вопрос.
fontFamily применяется к опросу. Используйте поля optionFontSize,
optionFontWeight, optionLetterSpacing и optionTextTransform для
ответов или соответствующие поля question* для вопроса. Размеры и
интервалы задаются в пикселях, насыщенность варьируется от 100 до 900, а
трансформации текста — это "none" или "uppercase".
Сохранённые формы
| Инструмент | Описание |
|---|---|
list_forms | Список сохранённых форм с настройками аудитории, управляемыми сервером, блоками контента и публичными URL действий. |
create_form | Создание и публикация сохранённой формы со стандартными полями email/имени, настройками аудитории, темой и поведением после отправки. |
update_form | Обновление сохранённой формы, включая полный упорядоченный массив блоков и типизированные пользовательские поля. |
get_form_embed | Возврат публичного URL действия, размещённого JavaScript, минимальной нативной формы и примера fetch для сохранённой формы. |
Для Astro, Hugo, Jekyll, Cloudflare Pages, Netlify, GitHub Pages или любого
другого статического сайта вызовите list_forms, используйте create_form,
если подходящей формы не существует, затем вызовите get_form_embed. Возвращённый
непрозрачный formId — это публичная возможность: списки, теги, поведение
дубликатов и обработка успеха остаются на стороне сервера, поэтому развёрнутый
браузерный код никогда не содержит ключ API Sequenzy. Сгенерированная нативная и
автономная разметка включает «Powered by Sequenzy» для бесплатных рабочих
пространств; платные рабочие пространства получают разметку без брендинга. API
разрешает это право на стороне сервера, поэтому вызывающие стороны должны
использовать возвращённый фрагмент без изменений. При обновлении формы пропущенные
поля остаются без изменений, а поля темы объединяются с текущей темой. Передайте
пустой массив tagIds, чтобы очистить теги, или пустой
redirectUrl, чтобы восстановить поведение подтверждающего сообщения. Поле
blocks — это полная замена, поэтому сначала прочитайте текущий контент
с помощью list_forms и сохраните ровно одно обязательное поле email и одну
кнопку отправки. Добавляйте пользовательские поля как блоки form-field с
поддерживаемым fieldType; поля select, radio и checkbox требуют вариантов,
а скрытые значения по умолчанию применяются на стороне сервера.
Сохранённые попапы
| Инструмент | Описание |
|---|---|
list_popups | Список сохранённых попапов со статусом и статистикой вовлечённости, опционально с полным контентом. |
get_popup | Получение блоков, триггера, таргетинга, расписания, частоты, темы и опубликованного embed-кода одного попапа. |
create_popup | Создание попапа из стартового шаблона, опубликованного по умолчанию, и возврат его скрипта развёртывания. |
update_popup | Частичное обновление текста, аудитории, поведения, темы, блоков или статуса публикации попапа. |
get_popup_embed | Возврат фрагментов HTML без секретов, React/Next.js, WordPress и Shopify. |
duplicate_popup | Копирование попапа в черновик с независимыми счётчиками вовлечённости. |
delete_popup | Полное удаление попапа и его счётчиков вовлечённости. |
Развёртывание попапа использует один публичный тег скрипта; ключи API, настройки
аудитории, триггеры, таргетинг, расписание и правила частоты остаются на стороне
сервера. Попапы захватывают данные во все списки по умолчанию, если не указан
listIds. При обновлении блоков сначала прочитайте попап и отправьте полный
массив замены, сохраняя ровно одно обязательное поле email и одну кнопку отправки.
Установка status в draft останавливает попап, не делая
недействительным его существующий embed-код.
Целевые страницы
| Инструмент | Описание |
|---|---|
list_landing_pages | Список целевых страниц со статусом, метриками, контентом и URL. |
get_landing_page | Получение деталей целевой страницы, контента конструктора, метрик и опубликованных URL. |
render_landing_page | Возврат подписанного 24-часового предпросмотра для посетителя без публикации, подсчёта просмотров или сбора подписок. |
create_landing_page | Создание черновика целевой страницы из контента шаблона по умолчанию или JSON. |
update_landing_page | Редактирование имени, слага или полного контента, совместимого с редактором. |
publish_landing_page | Публикация целевой страницы, опционально с сохранением изменений. |
unpublish_landing_page | Возврат целевой страницы в статус черновика, опционально с сохранением изменений. |
duplicate_landing_page | Дублирование целевой страницы в новый черновик с уникальным слагом. |
delete_landing_page | Удаление неопубликованной целевой страницы. |
connect_landing_page_domain | Подключение пользовательского домена целевой страницы и возврат деталей настройки DNS. |
update_landing_page_domain_settings | Замена или проверка настроек пользовательского домена целевой страницы. |
Контент целевых страниц использует совместимую с редактором Sequenzy JSON-схему с
version, template, seo, theme и blocks. Настройки SEO включают
faviconUrl и hideFromSearchEngines; скрытые страницы публикуют директиву
noindex. Используйте render_landing_page для просмотра текущей страницы для
посетителей перед публикацией. Её подписанный previewUrl истекает через 24 часа,
не индексируется, не увеличивает просмотры страницы; формы остаются видимыми, но
не собирают контакты. Блоки отображаются в порядке слотов:
top, hero, form, body, затем
footer; используйте top для полноширинного объявления или баннера над hero.
URL кнопок и CTA цен принимают внешние HTTPS-адреса или внутристраничные
якоря, такие как #form, #section-<sectionId>, #block-<blockId> и
#top. Установите theme.sectionAnimation в none, fade, slide-up или
zoom-in, с theme.sectionAnimationSpeed, установленным в slow, normal или
fast, чтобы управлять опубликованными эффектами появления при прокрутке. Пользовательские
поддомены целевых страниц требуют CNAME-записи, указывающей на pages.sequenzydns.com; корневые
домены используют A-запись, указывающую на 76.76.21.21, а их хост
www перенаправляет на корень, когда его CNAME указывает на pages.sequenzydns.com. Вызовите
update_landing_page_domain_settings с verify: true после распространения изменений DNS.
Последовательности
| Инструмент | Описание |
|---|---|
list_sequences | Список последовательностей со статусом панели управления, фильтрами поиска, метки, лимита и смещения. |
get_sequence | Получение деталей последовательности, идентификаторов A/B-вариантов и количества блоков с помощью ab_tests:read, узлов, рёбер, связанной копии и окна отправки последовательности. |
list_sequence_enrollments | Список включений контактов с пагинацией и точной атрибуцией входа по списку/тегу/событию/времени. Живые тесты последовательностей не создают включений. |
send_sequence_test_email | Отправка одного сохранённого шага action_email 1–10 рецензентам; A/B-шаги проверяются по каждому варианту. |
create_sequence | Создание пустого черновика панели управления или последовательности, сгенерированной ИИ/с явными шагами. |
update_sequence | Обновление идентичности, настроек, включения, существующих шагов, логики ветвления или вставка линейных шагов. |
update_sequence_node | Патч одного существующего узла последовательности с учётом типа. |
update_sequence_nodes | Атомарный патч нескольких существующих узлов последовательности. |
insert_sequence_step | Вставка любого типизированного шага панели управления, включая генерацию ИИ, исходящие вебхуки, ожидания и связанные ветви. |
edit_sequence_graph | Перемещение, переподключение, удаление или дублирование узлов графа; сообщает о перемещённых или завершённых получателях. |
simulate_sequence | Пробный прогон текущих совпадений, готовности к активации и необязательного пути ветвления контакта без включения или отправки. |
enable_sequence | Активация последовательности. |
disable_sequence | Заморозка последовательности, блокировка новых включений и удержание текущих получателей. |
duplicate_sequence | Создание независимой черновой копии графа, писем и A/B-тестов последовательности. |
archive_sequence | Перемещение последовательности в архив панели управления и остановка новых включений. |
unarchive_sequence | Восстановление архивной последовательности как отключённого черновика. |
list_sequence_goals | Список целей конверсии по событиям, атрибутам подписчиков и применённым тегам, сохранённых для последовательности. |
create_sequence_goal | Добавление цели конверсии по событию, атрибуту подписчика или применённому тегу. |
update_sequence_goal | Обновление сохранённой цели конверсии последовательности. |
delete_sequence_goal | Удаление сохранённой цели конверсии последовательности. |
get_sequence_inbound_webhook | Чтение входящего URL, состояния настройки, примера и сопоставления в стандартном MCP; маршрут OpenAI удаляет URL с учётными данными. |
configure_sequence_inbound_webhook | Настройка конечной точки, сопоставления полей и примера; маршрут OpenAI удаляет URL с учётными данными из своего результата. |
rotate_sequence_inbound_webhook_secret | Ротация секрета конечной точки входящей последовательности и возврат её заменяющего URL в стандартном MCP; опущено в маршруте, проверенном OpenAI. |
pause_sequence_enrollments | Остановка новых включений для активной последовательности, пока текущие получатели продолжают. |
resume_sequence_enrollments | Возобновление новых включений для активной последовательности без изменения текущих получателей. |
enroll_subscribers_in_sequence | Включение до 500 подписчиков по email, идентификатору подписчика или обоим, с идемпотентностью, безопасной для повторов. |
cancel_sequence_enrollments | Остановка активных или ожидающих включений по значениям полей подписчика или события входа. |
realign_sequence_enrollments | Предпросмотр или постановка в очередь переноса живых ожиданий раньше к открытию их окна отправки. |
get_sequence_enrollment_realignment | Опрос применённого задания перестройки и чтение его завершённого результата или курсора продолжения. |
delete_sequence | Удаление последовательности. |
Создание последовательности поддерживает:
- Создание только по имени для пустого, отключённого черновика от триггера до завершения, соответствующего панели управления.
- Метаданные панели управления и настройки доставки:
description,labels,userCancellable, скрытая копия последовательности и идентичность From/Reply-To. trigger: "contact_added"сlistId, несколькимиlistIdsилиlistScope:any_contact(по умолчанию) включает каждого добавленного контакта, включая контакты, которые не входят ни в один список, тогда какany_listожидает фактического членства в списке.trigger: "tag_added"сtagNameили несколькимиtagNames; любой настроенный тег включает контакт.trigger: "segment_entered"плюсsegmentIdдля автоматизаций входа по сохранённым сегментам.trigger: "event_received"плюс{{event.*}}для тегов слияния в темах или содержимом тела.trigger: "inbound_webhook"плюс метаданные интеграции для совместимых с панелью управления узлов входа через вебхук.trigger: "inactivity"плюсeventName,inactiveDaysи необязательныйinactivityBaseline(sequence_created_atилиsubscriber_created_at).goalдля контента писем, сгенерированного ИИ.emailStyle: "visual"или"plain"для выбора представления писем, сгенерированных ИИ на основе целей; при отсутствии используется сохранённое предпочтение компании.- Явный
stepsс Sequenzyblocks. - Явный
stepsс HTML, который Sequenzy преобразует в редактируемые блоки. - Явные шаги Update Subscriber, которые копируют свойства события триггера в поля профиля или типизированные пользовательские атрибуты.
- Фиксированные ожидания через
delay/delayMs, динамические ожидания по полю даты черезwaitUntilили календарные шлюзы черезwaitUntilWeekday. Шлюз по дню недели, такой как{ "day": "sunday", "startTime": "09:00", "endTime": "12:00", "timezone": "America/Los_Angeles" }, удерживает поток до следующего соответствующего окна. Разместите его непосредственно перед письмом, чтобы сохранить отправку в этом окне; любой промежуточный шаг может сдвинуть доставку за его пределы. Восстановление очереди повторно проверяет окно перед освобождением задержанного контакта. - Динамические шаги действий со скидками Stripe или Shopify. Шаг
create_discountсоздаёт новый код провайдера, когда каждый подписчик достигает его; последующие письма могут использовать теги слияния, такие как{{discount.code}},{{discount.percentOff}}и{{discount.expiresAt}}. enrollmentMode: "matching_field"и скалярныйenrollmentFieldPathдля автоматизаций событий, специфичных для продукта, варианта, заказа или подписки. Обход массива с помощью[]относится кpropertyFilters, а не к ключу включения.
Для триггера пользовательского события успешный результат create_sequence включает
eventTrackingCode и структурированный объект eventTracking. Объект содержит
конечную точку события, контракт идентичности и полезной нагрузки, любой путь свойства, требуемый для
включения matching_field, нормализованный триггер propertyFilters, пример
полезной нагрузки, examplePayloadMatchesFilters, прямой URL документации API события и
готовые к использованию аргументы для get_integration_guide. Если статус совпадения
false, адаптируйте пример с помощью examplePayloadNote и контракта полезной нагрузки.
Добавьте эту ленту событий и проверьте её обязательные свойства перед включением черновой
последовательности.
list_sequence_enrollments возвращает enteredVia для каждой строки. Источники списков и
сегментов сохраняют свой стабильный идентификатор в value и разрешают отображаемый name; источники тегов и
событий сохраняют свои имена в value. Триггеры на основе времени сообщают
inactivity или frequency, а не ошибочно идентифицируются как обычные
включения по полученным событиям. Живые тесты последовательностей не создают включений;
они отправляют изолированные тестовые письма и записывают активность в тестовом прогоне последовательности
вместо этого.
Для подтверждённого пакета ручного включения сгенерируйте idempotencyKey один раз и
повторно используйте этот точный ключ только с идентичными упорядоченными целями и targetNodeId.
Квитанции действительны 14 дней. Повторная попытка возвращает исходные значения enrolled, skipped,
notFound, targetNodeId и scheduledFor с
idempotentReplay: true; она не создаёт токены и не ставит пакет в очередь снова.
Пример динамического шага скидки Shopify:
{
"type": "create_discount",
"discount": {
"provider": "shopify",
"discountType": "percent",
"percentOff": 20,
"duration": "once",
"appliesToAllPlans": true,
"maxRedemptions": 1,
"codePrefix": "WINBACK"
}
}
Пример шага Update Subscriber:
{
"type": "update_subscriber",
"nodeType": "action_update_attributes",
"config": {
"firstName": "{{event.firstName}}",
"customAttributeUpdates": [
{ "name": "plan", "value": "{{event.plan}}", "valueType": "text" },
{ "name": "mrr", "value": "{{event.amount}}", "valueType": "number" },
{ "name": "active", "value": "{{event.active}}", "valueType": "boolean" }
]
}
}
Числовые и логические значения должны быть литералами или одним отдельным тегом слияния. Используйте
update_sequence.subscriberUpdateSteps с идентификатором узла action_update_attributes
из get_sequence, чтобы заменить конфигурацию существующего шага.
Обновления последовательностей поддерживают insertSteps для добавления новых линейных шагов после nodeId, возвращенного get_sequence. Опускайте afterNodeId только при добавлении в конец последовательности ровно с одним линейным хвостом. insertSteps поддерживает добавляемые шаги, не требующие сопутствующих записей, такие как email, задержка, действия с тегами/списками, обновления атрибутов, скидки, условия, шаги ожидания события, исходящие вебхуки и AI-шаги. Шаг action_ai требует merge-тег prompt, уникальный resultKey и один или несколько outputFields; последующие шаги читают сгенерированный или резервный текст с помощью {{ai.KEY.field}}. Комбинированные лимиты выходных полей должны укладываться в бюджет ответа шага в 2000 токенов. Используйте includeTags, includeEventProperties или includeAttributes, чтобы включить конкретный контекст контакта в генерацию, и onError (continue, exit или fail), чтобы выбрать поведение при сбое. Используйте branch для многоуровневых ветвлений if/else; укажите либо branch, либо insertSteps, но не оба. Условия ветвления поддерживают проверки наличия и отсутствия тегов с помощью has_tag и does_not_have_tag, а также списки, сохраненные сегменты, события, кликнутые ссылки и сравнения полей. Каждая ветвь может предоставить новый steps, существующий targetNodeId или оба; резервный вариант использует elseSteps и/или elseTargetNodeId. Целью может быть узел завершения, возвращенный get_sequence, поэтому один атомарный запрос может направить ответы на завершение, а Else — на существующий follow-up. Массивы emails и steps редактируют обычные шаги action_email по nodeId, emailId или порядку массива. get_sequence.sequence.emails также включает записи action_ab_test; с ab_tests:read каждая запись abTest.variants[] содержит ID варианта, тему, превью-текст и количество блоков. Вызовите get_ab_test для полных тел вариантов перед аудитом или переписыванием копии. Позиционное обновление, попадающее на такой вариант, отклоняется, и его копия должна быть изменена по каждому варианту с помощью update_ab_test_variant; не повторяйте через update_template или update_sequence_node. Используйте insertSteps для создания новых шагов и включите шаговый delay, delayMs, waitUntil или waitUntilWeekday, когда вставленному email нужен таймер. waitUntil принимает поле даты из события триггера плюс необязательные offset, direction (before или after) и missingAction (continue или exit). waitUntilWeekday принимает day или days, startTime, необязательный endTime (по умолчанию 24:00) и IANA timezone; контакты, уже находящиеся внутри окна, продолжаются немедленно. Для активных последовательностей передавайте confirmStructuralChange: true с insertSteps или branch только после подтверждения влияния на живой поток.
insert_sequence_step предоставляет прямой доступ к каждому шагу дашборда без сопутствующих записей: email, SMS, задержка, скидка, обновление подписчика, действие с тегом/списком, исходящий вебхук, AI-генерация, условие, ожидание и ветвление. Установите type: "ai" с prompt, resultKey и outputFields, чтобы генерировать текст для каждого контакта для последующих merge-тегов {{ai.KEY.field}}. Исходящие вебхуки принимают url, method (POST или GET) и строковые headers. Email-шаги поддерживают транзакционный режим, индивидуальную идентичность шага и настройки доставки CC/BCC. Для шлюза ожидания установите
type: "logic_wait_for_event" с eventName, необязательным timeoutDays (1–365)
и timeoutAction (continue или exit). Для ветвления установите
type: "logic_branch", укажите типизированные branches и подключите их цели:
{
"sequenceId": "seq_123",
"type": "logic_branch",
"afterNodeId": "node_email_1",
"branches": [
{
"id": "replied",
"conditionType": "event_received",
"eventName": "email.replied",
"activityScope": "this_sequence",
"targetNodeId": "node_complete"
}
],
"elseTargetNodeId": "node_email_2"
}
Каждый связанный email, возвращенный get_sequence, включает свой действующий
emailPreset (branded или minimal), соответствующий Style > Format в
дашборде. Установите emailPreset на элементе emails/steps или в
action_email узла changes, чтобы изменить только этот связанный email, не
меняя тему компании. Это применяет то же преобразование формата, что и
дашборд, к нативным блокам Sequenzy, включая email с поддерживаемыми
пользовательскими HTML-блоками. Email, полностью хранящиеся как один отдельный сырой HTML-блок,
возвращают null для emailPreset и не поддерживают изменения формата.
emailPreset нельзя комбинировать с html или htmlContent, потому что эти
поля заменяют весь email отдельным сырым HTML.
Для позиции в последовательности предпочитайте structuralStepNumber на связанных email и
верхнем уровне email-узлов. Он выводится из текущего графа и соответствует
значку шага в дашборде. Email параллельных ветвей намеренно разделяют
одинаковую структурную глубину, а неравное слияние ветвей продолжается от
более длинного входящего пути. Старое поле stepNumber в связанных email и конфигурациях
узлов остается сохраненным порядковым номером для обратной совместимости и может быть
устаревшим после правок графа.
Каждый связанный email также возвращает сохраненное переопределение emailTheme или null, когда
он следует теме компании. Установите emailTheme на элементе emails/steps или в
action_email узла changes, чтобы перестилизовать только этот шаг. Обновления темы —
это частичные патчи, поэтому changes: { "emailTheme": { "colors": { "background": "#f3f4f6", "content": "#ffffff" } } } дает этому email серый
внешний холст и белую карточку контента, сохраняя остальные цвета,
типографику и макет. Опускание любого цвета сохраняет его текущее значение. Передайте
emailTheme: null, чтобы сбросить переопределение и снова следовать теме компании. Используйте
update_company только когда должно измениться общеаккаунтное значение по умолчанию.
Используйте update_sequence_node для точечного редактирования на месте или
update_sequence_nodes, когда несколько патчей узлов должны фиксироваться атомарно. Сначала вызовите
get_sequence: каждый элемент в sequence.nodes включает узел id,
nodeType, текущий config, updatedAt и updateHints с редактируемыми и
управляемыми полями плюс точный токен конкуренции для возврата. Передайте этот токен как
expectedUpdatedAt, чтобы отклонять устаревшие записи. Инструменты поддерживают все сохраненные типы
узлов, включая задержки, контент email/SMS, действия, условия, вебхуки,
конфигурацию ветвления без изменений топологии и триггеры. Чтобы изменить
задержку 5 минут на 7 дней, отправьте changes: { "delay": { "days": 7 } } для ее
узла logic_delay. Чтобы сделать несколько заметок в стиле основателя Minimal, пропатчите их
узлы action_email с помощью changes: { "emailPreset": "minimal" }. Преобразование типов
узлов и изменения ребер/путей относятся к edit_sequence_graph. Активные
последовательности требуют confirmLiveChange: true после подтверждения пользователем влияния;
получатели, уже ожидающие, сохраняют свою существующую запланированную метку времени.
Существующие и вновь вставленные email-шаги могут установить собственную идентичность From с помощью
senderProfileId или fromEmail плюс необязательный fromName, и идентичность Reply-To
с помощью replyProfileId или replyTo плюс необязательный replyToName. Один
fromName сам по себе меняет только видимое имя отправителя этого шага. Шаговый
replyToName аналогично переопределяет видимое имя Reply-To для этого шага,
не переименовывая общеаккаунтный профиль ответов. Новые email-шаги без
явных полей идентичности наследуют действующую идентичность ближайшего
email последовательности. После слияния ветвей наследуются только поля идентичности, общие для каждого
входящего пути; конфликтующие поля используют значения по умолчанию последовательности или компании.
Используйте edit_sequence_graph с последним graphRevision из get_sequence, чтобы атомарно реструктурировать существующую последовательность. Он может переместить узел до или после другого узла, повторно использовать нормализованный массив sequence.edges для явного переподключения или многоузлового переупорядочивания, удалить узел или глубоко скопировать узел. Дублирование A/B-теста создает независимые записи теста, варианта, email и локализации со сброшенной статистикой. Перемещение узла перед общим узлом ниже ветви переподключает каждый сходящийся путь ветви через этот узел. Удаление узла немедленно перемещает припаркованных получателей к его уникальному выжившему преемнику или завершает их, когда преемника не остается; проверьте sequence.migratedRecipientCount и sequence.completedRecipientCount в результате. Удаление отклоняется, когда у припаркованных получателей было бы несколько выживших продолжений. Устаревшие ревизии, недопустимые полосы ветвей, циклы и недостижимые узлы также отклоняются. Активные последовательности требуют confirmStructuralChange: true.
Запустите cancel_sequence_enrollments с dryRun: true перед применением массовой отмены.
Запустите realign_sequence_enrollments после изменения окна отправки живой последовательности,
когда существующие ожидания, привязанные к email, должны переместиться раньше к новому открытию.
По умолчанию это dryRun: true. Передача dryRun: false ставит в очередь фоновое задание
и возвращает jobId; опрашивайте его с помощью get_sequence_enrollment_realignment. Когда
завершенный результат имеет hasMore: true, поставьте в очередь следующее ограниченное применение с его
nextCursor. Примененное выравнивание меняет время живой доставки и должно использоваться
только после подтверждения пользователем предпросмотра.
Email-блоки
| Инструмент | Описание |
|---|---|
get_email_block_schema | Перечислить каждый тип email-блока или просмотреть обязательные поля, значения перечислений, формы элементов и пример одного типа. |
Вызовите get_email_block_schema перед ручным написанием типа блока, который вы
раньше не использовали. Опустите blockType, чтобы перечислить все типы, передайте тип, такой как list или
steps, для его полной справки, или передайте creatableOnly: true, чтобы скрыть типы,
управляемые редактором. Сохраненные блоки group — это структурный контент редактора:
они рекурсивно оборачивают дочерние блоки в макеты Stack, Row, Grid или одноизображенческий Overlay,
но AI-генерация и creatableOnly намеренно их пропускают. Запросите
blockType: "group", чтобы просмотреть их поля при чтении или обновлении существующего
сгруппированного контента. Списки — это отдельный тип блока, а не вариант text:
элементы list используют content, тогда как элементы steps используют title и необязательный
description.
Инструменты, принимающие blocks, сохраняют визуальное стилизование каждого блока в объекте styles блока:
{
"type": "card",
"title": "Your update",
"content": "Everything is ready.",
"variant": "default",
"styles": {
"backgroundColor": "#f8fafc",
"backgroundOpacity": 85,
"borderColor": "#cbd5e1",
"borderWidth": 1,
"borderRadius": 12
}
}
Для совместимости со старыми промптами агентов ключи стилей верхнего уровня, такие как backgroundColor, backgroundOpacity, borderColor, borderWidth и borderRadius, также принимаются и сохраняются под styles.
Транзакционный email
| Инструмент | Описание |
|---|---|
list_transactional_emails | Поиск/фильтрация шаблонов и сортировка по метрикам доставки; возвращает темы и URL дашборда. |
get_transactional_email | Чтение транзакционного email по ID или слагу. |
create_transactional_email | Создание транзакционного шаблона из промпта, HTML или блоков. |
update_transactional_email | Обновление транзакционных метаданных или содержимого тела. |
send_email | Отправка одного email по шаблону или HTML общим получателям To, Cc и Bcc. |
Транзакционные шаблоны, созданные из промпта, генерируются на сервере и по умолчанию
отключены для проверки. Явные HTML- или блочные шаблоны сохраняют
совместимое значение по умолчанию «включено»; передайте enabled явно, чтобы переопределить любое
значение по умолчанию.
Для прямой отправки передайте to, subject и html; MCP-сервер сопоставляет html с полем body транзакционного API. Для сохраненного транзакционного письма передайте его API-слаг через совместимое по имени поле templateId.
Для транзакционных отправок to, cc и bcc принимают один адрес или массив до 50 элементов. API отправляет одно письмо с общим списком получателей и удаляет дубликаты между полями в порядке приоритета: сначала to, затем cc, затем bcc. Маркетинговые отправки по-прежнему требуют ровно один принятый адрес to и не поддерживают дополнительных получателей.
Переменные send_email поддерживают вложенные массивы для повторяющихся блоков, например { "event": { "items": [...] } }. Когда получатель совпадает с сохраненным подписчиком по внешнему ID или email, сохраненные имя и фамилия автоматически заполняют пропущенные переменные имени. Явные значения, включая пустые, имеют приоритет.
Необязательный массив attachments принимает до 10 файлов общим объемом 7 МБ. Каждый элемент требует filename и ровно одно из: Base64 content или публичный HTTP(S) path. Установите contentId для встраивания CID-изображения, на которое ссылается HTML, и при необходимости установите contentType для переопределения определения MIME-типа.
Когда trackingSettings опущен, применяются стандартные настройки отслеживания транзакционного API компании. Используйте trackingSettings.clickTracking: false или trackingSettings.openTracking: false, чтобы отключить переписывание ссылок или пиксель открытия для одной отправки. Эти параметры для конкретной отправки только отключают отслеживание; они не могут включить отслеживание, отключенное на уровне аккаунта или по умолчанию в транзакционном API. Используйте get_tracking_settings и update_tracking_settings для просмотра или изменения этих настроек по умолчанию.
Для повторных попыток агента и рабочих процессов включите стабильный idempotencyKey (до 255 символов) в send_email. Используйте один ключ на одно логическое письмо и передавайте те же аргументы при повторных попытках; ключ остается действительным в течение 14 дней.
Аналитика
| Инструмент | Описание |
|---|---|
get_stats | Получить сводную статистику для 7d, 30d или 90d; фильтрация по структурному типу письма. |
get_transactional_stats | Получить метрики за все время или за период для одного сохраненного транзакционного письма по ID или слагу. |
get_campaign_stats | Получить эффективность кампании, метрики ответов, прикрепленные цели конверсии и сводки Poll/NPS. |
list_poll_responses | Перечислить последние ответы Poll/NPS каждого респондента по блокам с идентификацией и временем ответа. |
get_sequence_stats | Получить агрегированную и пошаговую эффективность последовательности, а также текущее количество активных/ожидающих enrollments по текущему узлу. |
list_email_metrics | Сравнить воронки кампаний и шагов последовательности, ответы, конверсии и доход, включая кросс-последовательные шаги. |
list_campaign_events | Перечислить постранично необработанные события email для кампании. |
list_sequence_events | Перечислить постранично необработанные события для последовательности, при необходимости с ограничением по одному шагу email. |
get_subscriber_activity | Получить статистику подписчика по email, активность и enrollments. |
Фильтры событий кампаний и последовательностей принимают transport_failure наряду с событиями доставки, отказов, жалоб, вовлеченности, отписок и задержек. Сбои транспорта описывают инфраструктуру MTA или исчерпание путей исходящей почты; они не классифицируют действительный адрес получателя как отклоненный.
Инструменты аналитики по умолчанию исключают открытия/клики, обнаруженные как боты, сканеры, предпросмотры ссылок и отслеживаемые ресурсы. Передайте includeMachineEngagement: true в get_stats, get_campaign_stats, get_sequence_stats, get_ab_test_stats, get_subscriber или get_subscriber_activity, когда нужна необработанная диагностика вовлеченности; включенные строки активности открытий/кликов раскрывают поля machine, engagementQuality и classificationReasons, где API возвращает активность на уровне событий.
get_sequence_stats.enrollmentCounts — это мгновенный снимок текущих активных и ожидающих запусков enrollments, сгруппированных по текущему узлу. Он подсчитывает токены enrollments, а не обязательно уникальных подписчиков, и не ограничен историческими фильтрами period, start или end.
Используйте list_email_metrics для сравнений между кампаниями или шагами последовательностей. Передайте step с необязательными значениями sequenceId, чтобы суммировать один и тот же шаг по последовательностям; используйте возвращенный automationNodeId с list_sequence_events или list_email_sends для просмотра получателей. campaignId нельзя комбинировать с sequenceId или step. Явные области кампаний и последовательностей сохраняют настроенные письма с нулевой активностью, чтобы слабые исполнители не были молча пропущены.
Передайте emailType: "transactional" в get_stats для показателей доставки, открытий, кликов и ответов Send API и транзакционного SMTP. Это включает прямые отправки и отправки по сохраненным шаблонам. Используйте emailSendId, возвращенный send_email, с get_email_send, когда нужен статус одной доставки и временная шкала событий. Используйте get_transactional_stats, когда нужны агрегированные показатели для одного сохраненного транзакционного письма. Его ответ включает самые кликабельные ссылки, жалобы, ответы, последние классификации постоянных/временных отказов и отдельные подсчеты открытий/кликов людьми и машинами. Прямые отправки контента не имеют стабильного ID шаблона и остаются доступными через транзакционную статистику аккаунта и поиск доставок.
Когда кампания собирает ответы Poll или NPS, get_campaign_stats включает массив верхнего уровня polls. Каждый подписчик учитывается один раз на блок опроса с использованием последнего ответа. Сводки NPS включают оценку, среднее значение и количество промоутеров/пассивов/критиков. Это сводки ответов за все время, даже когда метрики вовлеченности используют временной фильтр.
Используйте list_poll_responses, чтобы узнать, кто ответил и когда. Он возвращает последний ответ каждого подписчика на блок опроса, сначала новые, включая email, сохраненное значение, ключ атрибута и время ответа. Передайте blockId для ограничения одним опросом; для шага email последовательности передайте его ID узла автоматизации как campaignId. Не восстанавливайте эту историю сканированием атрибутов подписчика: атрибут не имеет временной метки ответа и может быть перезаписан более поздним письмом, повторно использующим тот же ключ.
Чтобы перечислить точных исторических респондентов, стоящих за числом, вызовите create_segment с полем pollResponse, оператором is и JSON-значением, ограниченным кампанией и blockId сводки:
{
"v": 1,
"campaignId": "camp_123",
"blockId": "poll_1",
"match": { "kind": "answer", "value": "loved" }
}
Для NPS используйте совпадение, например {"kind":"npsBucket","bucket":"detractors"}; допустимые категории: promoters, passives и detractors. Поле attributeKey сводки хранит текущий/последний ответ подписчика и может быть перезаписано более поздним опросом, повторно использующим ключ, поэтому оно не является точным историческим drill-down.
Команда, Входящие, Вебхуки
| Инструмент | Описание |
|---|---|
list_team_members | Перечислить членов команды и ожидающие приглашения. |
invite_team_member | Пригласить коллегу как администратора или наблюдателя, с необязательным доступом к биллингу. |
cancel_team_invitation | Отменить ожидающее приглашение в команду. |
list_conversations | Перечислить разговоры ответов подписчиков с фильтрами статуса и непрочитанных. |
get_conversation | Прочитать разговор и его историю сообщений. |
reply_to_conversation | Поставить в очередь исходящий ответ или добавить внутреннюю заметку. |
update_conversation_status | Открыть или закрыть разговор. |
mark_conversation_read | Отметить все сообщения в разговоре как прочитанные. |
list_webhooks | Перечислить исходящие конечные точки вебхуков. |
create_webhook | Создать конечную точку и вернуть ее одноразовый секрет подписи на стандартном MCP; опущен в маршруте, проверенном OpenAI. |
update_webhook | Обновить имя вебхука, URL, события или статус. |
delete_webhook | Навсегда удалить конечную точку вебхука и историю доставок. |
test_webhook | Отправить тестовое событие на конечную точку вебхука. |
list_webhook_deliveries | Перечислить недавние попытки доставки для вебхука. |
replay_webhook_delivery | Повторить доставку вебхука. |
Изменения согласия по спискам доступны как исходящие события opt-in: subscriber.list_subscribed и subscriber.list_unsubscribed. Их полезные нагрузки идентифицируют подписчика и список, сообщают action как added или removed и включают изменение source (например, preferences_page, dashboard, api или automation).
Используйте событие email.failed для терминальных сбоев доставки, таких как исчерпанные пути транспорта MTA. Отказы получателей продолжают использовать email.bounced.
Используйте событие campaign.sent только для явного использования, когда рабочему процессу нужно одно терминальное уведомление после завершения email или SMS кампании, включая допустимую отправку с нулевым числом получателей. Оно не добавляется, когда create_webhook опускает events на стандартном MCP; на маршруте, проверенном OpenAI, добавьте его в панели управления при создании или редактировании вебхука.
AI Генерация
| Инструмент | Описание |
|---|---|
generate_email | Сгенерировать брендированные блоки email из подсказки. |
generate_sequence | Устаревший псевдоним, который сохраняет черновик последовательности на основе целей. |
generate_subject_lines | Сгенерировать варианты тем для A/B-тестирования. |
Сгенерированный контент email включает логотип и нижний колонтитул компании по умолчанию. generate_email принимает applyBranding: false для необработанных блоков контента и emailType: "transactional" для нижнего колонтитула без ссылки отписки. Кампании на основе подсказок наследуют настроенный шрифт email компании. Сгенерированный контент возвращается как черновик для проверки. Используйте create_sequence для генерации и сохранения отключенного черновика последовательности, который появляется в list_sequences; устаревший псевдоним generate_sequence делает то же самое.
SMS
| Инструмент | Описание |
|---|---|
generate_sms | Генерация SMS-текста по запросу. |
get_sms_settings | Просмотр готовности SMS-аддона, кредитов, настроек по умолчанию и выделенных номеров. |
get_sms_usage | Сравнение отправок, результатов доставки, списанных кредитов, последней активности и тестовых отправок по номерам. |
update_sms_number_label | Обновление метки номера или переопределения бренд-префикса для конкретного номера. |
release_sms_number | Окончательный возврат номера оператору и освобождение его слота в рабочем пространстве. |
send_test_sms | Отправка тестового сообщения с возможностью выбора выделенного отправителя через fromNumberId. |
release_sms_number необратимо. Шаги кампании или последовательности, привязанные к
высвобожденному номеру, будут пропускать SMS-отправки, пока их не перенаправят на активный
номер. get_sms_usage сообщает производственные итоги отдельно от testSends.
Когда send_test_sms опускает fromNumberId, используется тот же стандартный
выбор самого старого активного номера, что и для производственных отправок. Тестовые отправки — это реальные сообщения, за которые списываются кредиты; они обходят тихие часы и ограничены 100 сообщениями на компанию в скользящем 24-часовом окне.
Обратная связь о продукте
Используйте submit_feedback только когда пользователь явно просит ассистента отправить
обратную связь команде Sequenzy. Стандартный MCP может включать структурированные поля
воспроизведения userIntent, toolCalls, expected, actual и
resourceIds при необходимости для такого отчета. Маршрут, проверяемый OpenAI, принимает
только сообщение, категорию и необязательный обобщенный контекст рабочего процесса. Не включайте
несвязанные данные подписчиков, содержимое писем, необработанные API-полезные нагрузки, отладочные данные
или секреты.
Ресурсы
Сервер также предоставляет доступные только для чтения MCP-ресурсы.
| Ресурс | Описание |
|---|---|
sequenzy://dashboard | Живая сводная статистика за последние 7 дней. |
sequenzy://company | Текущие настройки компании и локализации. |
sequenzy://campaigns/recent | Последние 10 кампаний со статусом и базовой статистикой. |
sequenzy://subscribers/recent | Недавно добавленные подписчики. |
sequenzy://subscribers/engaged | Самые активные или вовлеченные подписчики. |
sequenzy://sequences | Все последовательности со статусом. |
sequenzy://templates | Шаблоны со статусом локализации. |
sequenzy://segments | Сохраненные сегменты с количеством подписчиков. |
sequenzy://tags | Теги с количеством использований. |
sequenzy://health | Метрики доставляемости и статус здоровья. |
sequenzy://email-blocks | Справочник полей для каждого типа блока письма. |
sequenzy://app-routes | Шаблоны маршрутов панели управления и вкладки настроек. |
Примеры запросов
Add john@example.com with tags "vip" and "developer", then put them on the beta list.
Create a 4-email churn prevention sequence for users whose subscription expires soon. Leave it in draft mode.
Create a segment for subscribers who bought Stripe product prod_pro at least 3 times.
Draft a campaign about our new analytics dashboard, target the Pro users segment, and send a test to me.
How did the last campaign perform compared with the one before it?
Безопасность
- Используйте личные API-ключи, а не общие командные секреты.
- Ключи дают доступ только к компаниям, доступным вашему пользователю Sequenzy.
- Отзывайте ключи в разделе Settings -> API Keys, когда доступ больше не нужен.
- Оставляйте включенными запросы подтверждения клиента для отправок, планирования, удалений и массовых изменений.
- Предпочитайте черновые рабочие процессы для кампаний и последовательностей, затем проверяйте их в Sequenzy перед запуском.
Устранение неполадок
SEQUENZY_API_KEY environment variable is required
Установите SEQUENZY_API_KEY в конфигурации MCP-клиента или выполните:
npx @sequenzy/setup
Недействительный API-ключ
Создайте новый личный ключ в разделе Settings -> API Keys, обновите конфигурацию MCP и перезапустите клиент.
Отсутствующая область API-ключа
Вызовите get_account и проверьте apiKeyPermissions. Локальные подключения должны
открыть apiKeyPermissions.manageUrl, добавить недостающую область к загруженному ключу и
повторить попытку без перезапуска. update_api_key может выполнить это только для ключей
компании, которые уже имеют api_keys:manage; редактируйте личные ключи на странице API-ключей
уровня учетной записи. Для размещенных OAuth-подключений можно также отключиться и
повторно авторизоваться с более широкими разрешениями. Ошибка инструмента включает точную область или
области, которые требуются.
Дублирующиеся ресурсы
Если вызов инструмента создаст дублирующееся имя сегмента или домен отправки, сервер возвращает стабильный code, понятное агенту description, конкретный resolution и docsUrl. Для сегментов вызовите list_segments и повторно используйте существующий ID сегмента или выберите другое имя. Для веб-сайтов вызовите list_websites; если домен не указан для выбранной компании, он принадлежит другой компании или учетной записи и должен быть удален, переназначен или заменен другим доменом отправки.
Инструменты не отображаются
- Убедитесь, что
npxдоступен в среде, которую использует клиент. - Перезапустите MCP-клиент после изменения конфигурации.
- Проверьте, что конфигурация находится в правильном для клиента месте.
Проблемы с сетью или URL API
Сервер по умолчанию использует https://api.sequenzy.com. Если вы переопределяете его, убедитесь, что SEQUENZY_API_URL указывает на доступный базовый URL API Sequenzy.
Разработка
bun install
bun test
bun run type-check
bun run build
Схемы MCP-инструментов должны оставаться совместимыми со строгими клиентами:
- Корни инструментов
inputSchemaдолжны быть простыми схемамиtype: "object". - Не публикуйте
anyOfнигде в схемах инструментов. - Не помещайте
oneOf,allOf,enumилиnotв корень схемы инструмента. - Применяйте условные требования в обработчиках и покрывайте их тестами.
Это отдельный репозиторий, зеркалирующий MCP-пакет, поддерживаемый в основном монорепозитории Sequenzy. См. AGENTS.md для правил синхронизации.
Лицензия
MIT
Обнаружение для агентов
Sequenzy публикует машиночитаемые манифесты для агентских сетей и обнаружения в стиле A2A:
- Удаленная MCP-конечная точка:
https://api.sequenzy.com/v1/mcp - Манифест возможностей агента:
agent-capability.json - Карточка агента в стиле A2A:
.well-known/agent-card.json - Метаданные навыков OpenClaw/Moltbot:
openclaw/skill.json - Руководство по эксплуатации OpenClaw/Moltbot:
openclaw/SKILL.md
Эти файлы описывают Sequenzy как авторизованную возможность автоматизации электронной почты для агентов. Они явно исключают использование для скрейпинга, спама и нежелательных холодных рассылок.
Роли в рабочем пространстве
Доступ с ключом учетной записи объединяет области ключа с вашей текущей ролью в рабочем пространстве. get_account сообщает о заблокированных областях в apiKeyPermissions.roleRestrictedScopes; canSendLive означает, что доступен хотя бы один разрешенный рабочий процесс доставки, а не то, что разрешен каждый инструмент отправки.
Вы можете пригласить marketer для управления подписчиками, маркетинговыми кампаниями и последовательностями без предоставления доступа к транзакционной почте, настройкам рабочего пространства, команде или биллингу. Маркетологи выбирают существующие профили отправителя/ответа. Источники кампаний, A/B-тестов и последовательностей на основе транзакционной почты остаются защищенными через предпросмотры, общий доступ, аналитику и историю отправок. Маркетологи и ограниченные участники не могут получить доступ к биллингу.