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-клиенты используют обнаружение по запросу и заголовки методов; существующие клиенты продолжают работать через ту же конечную точку и команду пакета.

Машиночитаемые файлы обнаружения:

Данные и конфиденциальность

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-ключа

  1. Откройте панель управления Sequenzy.
  2. Используйте поток настройки MCP для создания персонального ключа или откройте Настройки -> API-ключи, чтобы создать ключ компании.
  3. Выберите пресет разрешений или точные пользовательские области, необходимые интеграции.
  4. Добавьте ключ в конфигурацию вашего 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_not
  • tag: contains, not_contains, is_empty, is_not_empty
  • email: contains, not_contains
  • emailProvider, list: is, is_not, is_empty, is_not_empty
  • firstName, lastName: contains, not_contains, is_empty, is_not_empty
  • added: less_than, more_than
  • attribute: is, is_not, is_empty, is_not_empty, gte, lte, gt, lt, contains, not_contains
  • event, поля вовлечённости в email: is, is_not, at_least, less_than_count
  • emailBounced: также поддерживает is_temporary_bounce, is_permanent_bounce
  • stripeProduct: is, is_not, at_least, less_than_count
  • stripeCurrentProduct, stripeTrialProduct: is, is_not, gte, lte, gt, lt
  • commerceProduct: 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 с Sequenzy blocks.
  • Явный 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:

Эти файлы описывают Sequenzy как авторизованную возможность автоматизации электронной почты для агентов. Они явно исключают использование для скрейпинга, спама и нежелательных холодных рассылок.

Роли в рабочем пространстве

Доступ с ключом учетной записи объединяет области ключа с вашей текущей ролью в рабочем пространстве. get_account сообщает о заблокированных областях в apiKeyPermissions.roleRestrictedScopes; canSendLive означает, что доступен хотя бы один разрешенный рабочий процесс доставки, а не то, что разрешен каждый инструмент отправки.

Вы можете пригласить marketer для управления подписчиками, маркетинговыми кампаниями и последовательностями без предоставления доступа к транзакционной почте, настройкам рабочего пространства, команде или биллингу. Маркетологи выбирают существующие профили отправителя/ответа. Источники кампаний, A/B-тестов и последовательностей на основе транзакционной почты остаются защищенными через предпросмотры, общий доступ, аналитику и историю отправок. Маркетологи и ограниченные участники не могут получить доступ к биллингу.