Sequenzy MCP

oficial

Ferramenta de Email Marketing para SaaS

O que você pode fazer com Sequenzy MCP?

  • Gerenciar assinantes e segmentos — Peça ao seu assistente para criar listas, aplicar tags, reconciliar tags em massa ou testar eventos sintéticos por meio de ferramentas como create_list e .
  • Criar e enviar campanhas — Redija, agende, visualize ou envie campanhas de e-mail, incluindo prévias de público resolvido e metas de conversão, usando ferramentas como create_campaign e send_campaign.
  • Criar landing pages e formulários — Projete formulários de inscrição e landing pages vinculados a listas com layouts de blocos responsivos e, em seguida, publique-os ou obtenha embeds para sites estáticos via create_landing_page.
  • Sincronizar públicos com o Meta — Envie segmentos dinâmicos para públicos personalizados do Meta para retargeting no Facebook e Instagram.
  • Gerenciar sequências e automações — Crie sequências de e-mail em várias etapas com gatilhos de entrada, condições de parada e envios de teste para revisores usando create_sequence e .
  • Monitorar entregabilidade e envio — Diagnostique envios pausados, inspecione supressões de bounce/reclamação e restaure pausas elegíveis por hard bounce com get_sending_status e resume_sending.

Documentação

Servidor Sequenzy MCP

Servidor MCP oficial para Sequenzy, a plataforma de email marketing com tecnologia de IA.

Conecte o Sequenzy ao Claude Desktop, Claude Code, Codex, Cursor, Windsurf, VS Code Copilot, OpenClaw e outros clientes MCP para que seu assistente de IA possa gerenciar operações de email com ferramentas estruturadas em vez de chamadas de API escritas manualmente.

O Que Você Pode Fazer

  • Gerenciar assinantes, tags, listas e segmentos dinâmicos, incluindo reconciliação de tags em massa e testes de eventos sintéticos.
  • Sincronizar segmentos para públicos personalizados do Meta para retargeting no Facebook e Instagram.
  • Gerenciar produtos e anexar arquivos de entrega digital para automações de compra.
  • Enviar imagens de email hospedadas com texto alternativo e configurações reutilizáveis de corte responsivo.
  • Redigir, atualizar, agendar e inspecionar campanhas, incluindo visualizações de público resolvidas, metas de conversão persistidas e identidades De, Responder-Para, CC e CCO.
  • Renderizar campanhas, etapas de sequência e modelos para seu HTML exato seguro para email sem enviar.
  • Adicionar blocos de enquete e NPS com um clique a emails e inspecionar resumos de resposta de campanha.
  • Criar e editar sequências de email, incluindo gatilhos de múltiplas listas/tags, condições de parada filtradas por público de entrada e propriedades, substituições de identidade de envio, reestruturação de gráficos existentes e envios de teste diretos de etapas para revisores internos.
  • Cancelar, pausar, retomar, duplicar ou excluir campanhas e inscrever contatos em sequências.
  • Gerenciar modelos de email transacional e enviar emails transacionais para listas compartilhadas de destinatários Para, Cc e Cco.
  • Fornecer variantes de modelo localizadas ou enfileirar tradução por IA para idiomas habilitados.
  • Criar, visualizar, editar, publicar, despublicar e excluir páginas de destino.
  • Criar formulários de inscrição salvos com escopo de lista com grupos de blocos responsivos de pilha, linha, grade e sobreposição de imagem única (incluindo controles de lacuna de primeiro plano) e, em seguida, retornar incorporações de site estático seguras para o cliente.
  • Criar, segmentar, publicar, duplicar e implantar popups de inscrição salvos com os mesmos layouts de blocos recursivos.
  • Conectar e verificar domínios personalizados para páginas de destino publicadas.
  • Gerenciar convites de equipe, conversas de caixa de entrada e endpoints de webhook de saída.
  • Gerar cópia de email, linhas de assunto e sequências de múltiplas etapas.
  • Inspecionar análises, atividade de assinantes, saúde de entregabilidade, pausas de envio em nível de empresa, integrações, esquemas de payload de eventos publicados, identidades de envio, configurações de rastreamento e URLs de painel.
  • Inspecionar se "Enviado com Sequenzy" está visível para um espaço de trabalho, por que a assinatura do proprietário o remove ou não, e abrir a página canônica de assinatura para upgrade ou renovação. As mudanças de direito se aplicam a envios futuros de sequências ativas existentes sem editar seus blocos.
  • Diagnosticar por que o envio está pausado e restaurar pausas elegíveis por bounce permanente após confirmar a limpeza da lista.
  • Inspecionar supressão de bounce, reclamação e higiene de email de destinatários exatos, e limpar bounces permanentes elegíveis sem expor a lista de supressão SES compartilhada.
  • Configurar informações de produto da empresa, padrões de identidade de envio em toda a conta, renomear perfis individuais de remetente e responda-para, gerenciar domínios de remetente e inspecionar exemplos de integração para estruturas comuns.

Cada ferramenta MCP publicada inclui anotações explícitas de readOnlyHint, destructiveHint e openWorldHint para que clientes compatíveis possam exibir affordances precisas de uso de ferramentas. As ferramentas também publicam definições de outputSchema e retornam structuredContent, dando a clientes e modelos formas de resultado legíveis por máquina para chamadas de acompanhamento.

Configuração Rápida

O caminho de configuração mais fácil é o assistente do Sequenzy:

npx @sequenzy/setup

O assistente abre o fluxo de login no navegador, cria uma chave de API pessoal, detecta clientes de IA compatíveis e os configura automaticamente quando possível.

MCP Remoto Hospedado

Para clientes que suportam MCP HTTP Streamable, use o endpoint hospedado do Sequenzy em vez de executar um processo stdio local:

https://api.sequenzy.com/v1/mcp

O ChatGPT e o diretório de plugins da OpenAI usam a superfície hospedada revisada:

https://api.sequenzy.com/v1/mcp/openai

Essa superfície compartilha a mesma implementação e mantém o conjunto padrão de ferramentas, exceto por seis operações: connect_integration, create_api_key, create_webhook, list_webhook_deliveries, replay_webhook_delivery e rotate_sequence_inbound_webhook_secret. O feedback permanece disponível com um esquema reduzido para feedback de produto generalizado e explicitamente solicitado.

Clientes remotos devem autenticar com o fluxo OAuth do Sequenzy quando suportado. Clientes locais e de automação ainda podem usar o pacote stdio abaixo com SEQUENZY_API_KEY.

O endpoint hospedado e o pacote stdio suportam a especificação MCP 2026-07-28 permanecendo compatíveis com clientes da era 2025. Clientes HTTP modernos usam descoberta por solicitação e cabeçalhos de método; clientes existentes continuam funcionando através do mesmo endpoint e comando de pacote.

Arquivos de descoberta legíveis por máquina:

Dados e privacidade

O Sequenzy envia a um cliente MCP apenas os dados necessários para a ferramenta que o usuário pede para executar, dentro do espaço de trabalho selecionado e das chaves ou escopos OAuth concedidos a esse cliente. Dependendo da ferramenta solicitada, isso pode incluir nomes e IDs de espaços de trabalho; dados de contato, consentimento, público, atributo, evento, engajamento, resposta, pesquisa e comércio de assinantes; conteúdo de campanhas e automações; análises de entrega; e status de integração ou webhook. Consulte a Política de Privacidade do Sequenzy para as categorias completas, finalidades, destinatários, períodos de retenção e controles do usuário.

Não use atributos personalizados abertos, eventos, notas, formulários, amostras de webhook, variáveis de email ou feedback para enviar dados de cartão de pagamento, dados de saúde ou médicos, identificadores governamentais, dados biométricos ou genéticos, credenciais de autenticação, dados demográficos sensíveis ou geolocalização precisa.

A rota revisada pela OpenAI declara e aplica essas restrições em entradas abertas relevantes, incluindo caminhos de atributos aninhados como profile.ssn, pares de coordenadas como lat/lng e prosa rotulada como Religion: ... ou GPS coordinates: .... Ela rejeita uma URL com credenciais em qualquer argumento, esteja a credencial no userinfo, caminho, consulta ou fragmento, como um formulário ou popup redirectUrl com um token de acesso ou assinatura de URL. Seletores de atributos restritos dentro de tags de mesclagem são rejeitados sem bloquear cópia autoral comum sobre o mesmo tópico. Nesta superfície, render_email aceita dados de amostra ou um subscriber inline verificado por política, mas não subscriberId, então não pode resolver atributos personalizados armazenados não inspecionados. Seus resultados removem campos restritos, erros brutos de API, payloads de depuração, identificadores internos de solicitação/rastreamento/sessão, identificadores desnecessários de conta ou credenciais, URLs armazenadas com credenciais e URLs de webhook de entrada. O MCP remoto padrão e o pacote stdio local retêm o contrato completo para clientes confiáveis, incluindo configuração de integração baseada em credenciais, chaves de API e segredos de webhook de uso único, URLs de webhook de entrada e erros detalhados de API. Prefira o painel ou o CLI local quando segredos devem permanecer fora de uma conversa de IA. submit_feedback é executado apenas quando o usuário pede explicitamente; seu esquema OpenAI é limitado a uma mensagem generalizada, categoria e contexto opcional de fluxo de trabalho, e a rota rejeita texto de feedback que contém um endereço de email ou ID de recurso.

O que a superfície revisada garante é limitado. Ela reconhece dados restritos pela forma: palavras de nomes de campos em inglês como passport_id, user.ssn ou api_secret em qualquer profundidade de aninhamento, prosa rotulada como Diagnosis: ..., formas conhecidas de credenciais, pares de coordenadas decimais e URLs com credenciais dentro de qualquer string, incluindo HTML. Ela não interpreta prosa não rotulada, nomes de campos não ingleses ou valores que um cliente deliberadamente ofusca; esses permanecem cobertos pela restrição de uso acima, em vez do filtro.

Configuração Manual

Todos os clientes MCP stdio usam o mesmo comando:

  • Comando: npx
  • Argumentos: -y @sequenzy/mcp
  • Env obrigatório: SEQUENZY_API_KEY=seq_user_your_key_here

Variáveis de ambiente opcionais:

  • SEQUENZY_API_URL - URL base da API do Sequenzy. Padrão: https://api.sequenzy.com.
  • SEQUENZY_APP_URL - URL base do painel do Sequenzy usada pelos auxiliares de URL do aplicativo. Padrão: https://sequenzy.com.

Claude Desktop

Adicione isto à sua configuração do 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"
      }
    }
  }
}

Reinicie o Claude Desktop após editar a configuração.

Claude Code

claude mcp add --scope user --env=SEQUENZY_API_KEY=seq_user_your_key_here sequenzy -- npx -y @sequenzy/mcp

No Windows nativo, envolva npx com cmd /c:

claude mcp add --scope user --env=SEQUENZY_API_KEY=seq_user_your_key_here sequenzy -- cmd /c npx -y @sequenzy/mcp

Para uma configuração de projeto compartilhada, use .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

Configuração manual do Codex em ~/.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

Instale Sequenzy no Marketplace do Cursor para uma conexão hospedada com OAuth do Sequenzy. O plugin conecta-se a:

https://api.sequenzy.com/v1/mcp

Após instalar, complete o fluxo de login no navegador. O agente do Cursor pode então usar as ferramentas do Sequenzy no chat, inclusive quando Grok é o modelo selecionado.

Para uma configuração manual local stdio, adicione isto a ~/.cursor/mcp.json:

{
  "mcpServers": {
    "sequenzy": {
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Windsurf

Use a mesma forma JSON do Cursor.

  • macOS: ~/Library/Application Support/Windsurf/mcp.json
  • Windows: %APPDATA%\Windsurf\mcp.json

VS Code Copilot

O VS Code usa um objeto servers:

{
  "servers": {
    "sequenzy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Outros Clientes MCP

Para OpenClaw, Hermes e outros clientes compatíveis com MCP, aponte o cliente para npx -y @sequenzy/mcp e defina SEQUENZY_API_KEY.

Obtendo uma Chave de API

  1. Abra o painel do Sequenzy.
  2. Use o fluxo de configuração MCP para criar uma chave pessoal, ou abra Configurações -> Chaves de API para criar uma chave de empresa.
  3. Escolha um preset de permissão ou os escopos personalizados exatos que a integração precisa.
  4. Adicione a chave à configuração do seu cliente MCP.

Chaves pessoais começam com seq_user_. Você pode revogá-las a qualquer momento no painel.

Chaves de empresa também podem ser limpas sem expor segredos. Chame list_api_keys para comparar o ID da chave, nome, prefixo não secreto, permissões, timestamp do último uso e marcador isCurrent, então passe o ID exato para revoke_api_key. delete_api_key é um alias de compatibilidade para a mesma operação permanente. As respostas de listar e revogar nunca contêm a chave simples ou o hash da chave armazenada.

Recuperar-se de permissões de chave de API ausentes

Se uma ferramenta relatar um escopo ausente como campaigns:read ou templates:write, chame get_account. Seu campo apiKeyPermissions lista a identidade e o tipo atuais da chave, escopos, escopos comuns de leitura de marketing ausentes e um manageUrl direto. A rota revisada pela OpenAI retorna as mesmas permissões sem o ID da conta do usuário ou a identidade da chave ativa. Chaves pessoais abrem Chaves de API da Conta; chaves de empresa abrem as configurações de Chaves de API do espaço de trabalho selecionado. Se a chave não incluir account:read, abra o painel do Sequenzy diretamente e escolha a página de Chaves de API correspondente.

As permissões são editáveis no local, então abra manageUrl. Para uma chave de empresa, use list_api_keys e seu sinalizador isCurrent para identificar a chave ativa antes de editá-la, então tente novamente a ferramenta que falhou sem substituir a credencial ou reiniciar o cliente. Um agente usando uma chave de empresa com api_keys:manage pode, em vez disso, chamar update_api_key; chaves pessoais devem ser editadas na página de nível de conta porque essa ferramenta gerencia apenas chaves de empresa. Suas entradas scopes e preset substituem toda a seleção de permissões em vez de mesclar, então preserve cada escopo existente que ainda seja necessário. Conexões OAuth hospedadas podem alternativamente desconectar e reautorizar com permissões mais amplas. Quando a própria chave ativa não possui api_keys:manage, chame request_api_key_handoff em vez de tentar novamente update_api_key. Isso requer account:read e retorna uma URL de revisão do proprietário com o nome da chave solicitado, permissões e predecessor opcional pré-preenchidos. Nunca cria nem retorna uma chave; o proprietário do workspace revisa o formulário, cria a substituição no navegador e a copia para o cliente. Passe replaceApiKeyId: "current" para oferecer a revogação da chave ativa após a criação da substituição. Se a chave ativa também não possuir account:read, use o painel diretamente.

O preset padrão Safer agent access inclui lists:write e tags:write, para que agentes possam criar e atualizar definições de listas e tags, e inclui subscribers:tag para aplicar tags a contatos existentes. Também inclui ab_tests:read, ab_tests:write e sequences:write, para que agentes possam auditar e editar o texto das variantes A/B de sequências, incluindo mensagens de abandono de carrinho e de navegação. Não inclui subscribers:write, portanto não pode adicionar contatos a listas nem removê-los de listas. Excluir uma lista ou tag ainda exige a permissão correspondente lists:delete ou tags:delete.

O preset de rascunho com IA inclui subscribers:write, para que agentes de rascunho possam criar uma lista além de criá-la. Importações que aplicam listIds também precisam de lists:write; inscrição em sequências ou entrega com double opt-in adicionalmente exige automations:trigger.

Ferramentas

A superfície padrão atualmente expõe 243 ferramentas MCP. A superfície revisada pela OpenAI expõe 237; apenas as seis operações listadas acima são omitidas.

As ferramentas rejeitam argumentos que não declaram, em vez de ignorá-los silenciosamente. Erros nomeiam os campos não suportados, listam os argumentos suportados e fornecem orientação focada para erros comuns, como filtros de assinantes inventados ou opções de ordenação.

Conta, Empresas, Configuração

FerramentaDescrição
get_accountObtenha informações da conta, empresas disponíveis, permissões atuais da chave e a URL de gerenciamento de chaves de API.
select_companyDefina a empresa ativa para chamadas futuras de ferramentas.
get_app_urlsConstrua URLs de painel para campanhas, landing pages, sequências, e-mails, configurações, gerenciamento de assinaturas, domínios e detalhes de e-mails enviados. settingsTab: "billing" resolve para Conta -> Assinatura.
create_companyCrie uma nova empresa ou marca.
get_companyLeia detalhes da empresa, informações do produto, contexto da marca, localização, configurações de rastreamento de respostas, padrões atuais de De/Para (From/Reply-To) e o direito efetivo somente leitura emailBranding com motivo de plano/status e URL de assinatura; STO é explicitamente identificado como somente campanha.
update_companyEdite informações do produto, contexto da marca, tema de e-mail, rastreamento de respostas e padrões ou nomes de perfil De/Para (From/Reply-To) em toda a conta.
get_sync_rulesLeia as regras de evento-para-etiqueta da empresa e se ela usa o preset de plataforma herdado.
update_sync_rulesSubstitua todas as regras de sincronização; passe [] para desativá-las ou null para optar pelo preset de plataforma SaaS/ecommerce.
get_shopify_automation_settingsLeia as configurações de abandono de navegação, abandono de carrinho e queda de preço para a loja Shopify conectada.
update_shopify_automation_settingsAtualize parcialmente as configurações de automação do Shopify ou redefina uma seção individual para os padrões da plataforma.
create_api_keyCrie uma chave de API da empresa e retorne seu segredo de uso único no MCP padrão; omitido na rota revisada pela OpenAI.
request_api_key_handoffPrepare uma URL de criação/rotação revisada pelo proprietário quando a chave ativa não puder gerenciar chaves de API por conta própria.
list_api_keysListe chaves de API da empresa como metadados não secretos para identificação e limpeza seguras.
update_api_keyRenomeie uma chave de API da empresa ou substitua seu preset de permissões ou escopos sem alterar o valor da chave.
revoke_api_keyRevogue permanentemente uma chave de API exata da empresa por ID após verificá-la com list_api_keys.
delete_api_keyAlias de compatibilidade para revoke_api_key.
list_websitesListe domínios de envio com status agregado armazenado, SPF, DKIM e MAIL FROM.
add_sending_domainAdicione um domínio de envio e retorne seus registros de configuração de DNS específicos da coorte.
add_websiteAlias de compatibilidade para add_sending_domain.
check_websiteLeia os detalhes de verificação SPF, DKIM, MAIL FROM e agregados armazenados de um domínio de envio.
verify_sending_domainExecute uma nova verificação de DNS/provedor do domínio de envio e retorne status atual e diagnósticos.
list_integrationsListe integrações conectadas com saúde de conexão e sincronização, sem retornar credenciais.
get_sending_statusDiagnostique envios ativos, pausados ou suspensos, incluindo denominadores de aplicação, portões de revisão e etapas de correção.
resume_sendingRestaure uma pausa elegível por bounce rígido após confirmar explicitamente que a lista foi saneada.
get_tracking_settingsLeia padrões de abertura/clique em toda a conta e da API Transacional, cancelamento de inscrição, atribuição, UTM, domínio de clique, rastreamento de respostas e configurações de duplo opt-in.
update_tracking_settingsAtualize padrões de rastreamento em toda a conta e da API Transacional, atribuição, UTM e duplo opt-in em toda a conta.
get_integration_guideObtenha exemplos de integração específicos por framework.
get_integrationInspecione uma integração conectada, seu roteamento de eventos, segmentação de listas, atividade recente e recomendações.
list_integration_capabilitiesCompare capacidades de provedores, estejam eles conectados ou não.
connect_integrationConecte provedores suportados por chave de API ou segredo de webhook no MCP padrão, incluindo webhooks gerenciados do Lemon Squeezy, Attio somente saída e importação opcional de histórico PostHog/Segment; omitido na rota revisada pela OpenAI.
get_event_schemaInspecione exemplos publicados de payloads de eventos, caminhos de propriedades, tipos e merge tags por provedor.
list_integration_activityLeia o log de atividade de webhook e sincronização retido específico da integração.
set_integration_sync_enabledAtive ou desative importações em massa e backfills enquanto mantém webhooks ao vivo conectados.
set_integration_list_targetingEscolha quais listas contatos criados por uma integração suportada entram em futuras gravações do provedor.
sync_integrationEnfileire receita de pagamento, usuários do Supabase ou uma importação de histórico de eventos PostHog/Segment usando a configuração de integração salva.
get_integration_pixelLeia o estado ao vivo do pixel/configuração do Shopify e distinga eventos escuros confirmados de uma leitura desconhecida.
activate_integration_pixelInstala ou reatribui o pixel da vitrine da Shopify; é idempotente quando já está atualizado.
list_web_tracking_keysLista chaves de rastreamento de site publicáveis, restrições de origem, estado de uso e trechos de instalação.
get_web_tracking_keyObtém uma chave de rastreamento de site com seu trecho de instalação exato e endpoint de ingestão.
create_web_tracking_keyCria uma chave de rastreamento publicável para uma vitrine ou site que não seja da Shopify.
update_web_tracking_keyRenomeia, restringe, revoga ou reativa uma chave de rastreamento de site.
delete_web_tracking_keyExclui permanentemente uma chave de rastreamento de site após a remoção do trecho.
list_sender_profilesLista perfis de remetente e de resposta, padrões e prontidão do domínio de envio.
update_sender_profileRenomeia um perfil de remetente ou de resposta sem alterar os padrões da conta.
delete_sender_profileExclui permanentemente um perfil de remetente não utilizado, com proteções para superfícies de envio ativas e para o último remetente restante.
get_notification_preferencesLê as configurações de notificação da conta do usuário atual por empresa e os modos suportados, incluindo o relatório semanal de segunda-feira.
update_notification_preferencesAtualiza os modos de entrega de notificação da conta do usuário atual, incluindo a opção de não receber o relatório semanal, sem afetar colegas de equipe.
render_emailRenderiza HTML final seguro para e-mail e diagnostica tags de mesclagem não resolvidas, incluindo erros de digitação ocultos por padrões. A rota revisada pela OpenAI aceita dados de amostra ou um assinante inline verificado por política, não um ID de assinante armazenado.
get_sending_status mantém o estado de pausa com suporte a Postgres, os portões de revisão e a
remediação disponíveis quando as análises de saúde do remetente estão temporariamente
indisponíveis; nesse caso degradado, senderHealth é null.

render_email retorna unresolvedMergeTags para que os chamadores possam distinguir um nome desconhecido de uma tag reconhecida que está simplesmente em branco para o contato pré-visualizado. Nomes desconhecidos são relatados mesmo quando um filtro default forneceu texto: por exemplo, {{ subscriber.frstName | default: "there" }} renderiza uma saudação plausível para cada contato enquanto ignora os primeiros nomes armazenados. Um nome reconhecido que está em branco para um contato não é relatado quando seu padrão é usado. A rota revisada pela OpenAI rejeita seletores restritos de atributos personalizados dentro de tags de mesclagem. Ela também omite o argumento subscriberId; use um subscriber inline verificado por política, ou omita os dados do assinante para uma pré-visualização de amostra.

Para renderizar uma etapa de sequência cujo nodeType é action_ab_test, passe o sequenceId e nodeId da etapa juntamente com um variantId de get_sequence.sequence.emails[].abTest.variants. Essas etapas não têm email próprio, então a variante é obrigatória; ler e renderizar sua cópia concorrente também requer o escopo ab_tests:read.

Para Supabase, sync_integration reutiliza o projeto, esquema, tabela, seleção de lista e mapeamentos de consentimento salvos no painel. Ele não pode direcionar uma tabela arbitrária. Execute-o após instalar o gatilho de banco de dados ao vivo para importar usuários que existiam antes da instalação do gatilho e, em seguida, consulte get_integration e list_integration_activity para progresso e resultados em nível de linha.

set_integration_sync_enabled controla apenas importações em massa e backfills; ele não impede que o webhook ao vivo de um provedor crie contatos. Use set_integration_list_targeting para escolher suas futuras associações de lista: null segue os padrões do espaço de trabalho, [] não entra em nenhuma lista, e um array preenchido direciona essas listas. A alteração não é retroativa e nunca remove associações existentes. Ela também não interrompe as sequências padrão any_contact, que inscrevem contatos sem lista; sequências com any_list explícito e sequências de listas específicas exigem uma associação correspondente. Combine o direcionamento de lista com pause_sequence_enrollments quando essas inscrições padrão também precisarem parar. Supabase, Stripe, Shopify, Wix e Webflow suportam esse controle.

Para PostHog, sync_integration reinicia a importação do histórico de eventos desde o início com a chave de API pessoal armazenada. Os eventos importados são deduplicados, então repetir uma importação com falha não cria duplicatas.

Para Segment, connect_integration no MCP padrão pode opcionalmente importar o histórico recente de eventos do Unify após o webhook ao vivo ser conectado. A importação percorre os contatos existentes através da API de Perfil, cobre os 14 dias mais recentes da API, ignora contatos sem um perfil correspondente e deduplica com segurança repetições e sobreposição do webhook ao vivo. Novas conexões ignoram chamadas automáticas de página/tela, a menos que esses nomes sejam explicitamente permitidos. Os segredos do webhook do Segment devem ter 16-153 bytes UTF-8. Na rota revisada pela OpenAI, que omite connect_integration, conecte o Segment no painel ou CLI local. Use sync_integration para tentar novamente com as credenciais salvas.

Para Lemon Squeezy, passe provider: "lemon_squeezy", uma chave de API e o ID numérico da loja como providerAccountId. Omita webhookSecret para a configuração gerenciada padrão; a resposta relata webhookProvisioning e testMode. Forneça um segredo de assinatura de 16-40 caracteres apenas para configuração manual de webhook, usando o webhookUrl retornado. As credenciais nunca são retornadas.

Para Attio, connect_integration no MCP padrão aceita um token de acesso ao espaço de trabalho sem um segredo de webhook, com settings.listMap opcional como um mapa de IDs de lista do Sequenzy para UUIDs de listas de pessoas do Attio ou slugs de API, além de syncCompanyFromDomain para controlar a correspondência de empresas de domínios de email não gratuitos. Na rota revisada pela OpenAI, conecte o Attio no painel ou CLI local e, em seguida, use update_attio_settings para as mesmas configurações. A integração é somente de saída: novas entradas em listas do Sequenzy mapeadas fazem upsert da pessoa e a adicionam à lista do Attio; remoções de lista não removem registros do Attio.

Chame get_event_schema antes de escrever uma tag de mesclagem {{event.*}} ou um filtro de propriedade de evento. Omita eventName para listar eventos integrados documentados; forneça um nome de evento para receber payloads de exemplo e caminhos de propriedade específicos do provedor, e opcionalmente filtre por provider. Nomes de eventos personalizados permanecem válidos mesmo quando o resultado relata documented: false; isso apenas significa que nenhuma amostra de referência está publicada. Use a atividade de integração ou inscrições em sequência para dados reais de entrega, porque esta ferramenta retorna dados de referência estáticos.

Para um novo domínio de envio, chame add_sending_domain, publique os registros DNS no website.dnsRecords retornado, aguarde a propagação do DNS e, em seguida, chame verify_sending_domain. Publique cada registro retornado em vez de assumir um provedor fixo ou contagem de registros: domínios unificados incluem DMARC obrigatório, enquanto domínios legados podem retornar registros de MAIL FROM do Amazon SES e de resposta de entrada. Se a verificação for tentada antes da criação, o erro aponta de volta para add_sending_domain com o domínio solicitado.

Para Shopify, chame get_integration_pixel antes de confiar em visualizações de produto, atividade de carrinho ou gatilhos de abandono de navegação. O resultado é lido ao vivo do Shopify porque os comerciantes podem remover o pixel independentemente. Se pixel.healthy for falso, dependentEvents nomeia os gatilhos que não podem chegar; chame activate_integration_pixel para instalar ou redirecionar o pixel. A ativação é idempotente, e os eventos começam na próxima visita à loja, em vez de serem retroativamente preenchidos.

Para sites personalizados, headless, de tickets ou SaaS, use list_web_tracking_keys antes de confiar em gatilhos de visualização de produto ou carrinho. Crie uma chave com uma lista de permissões de origem explícita, instale o installSnippet retornado, e então faça o backend autenticado do cliente emitir uma prova de curta duração através de POST /api/v1/web-tracking-identities e chame sequenzy.identify(email, identityToken) no login ou checkout. Uma chave publicável sozinha apenas registra atividade anônima e não pode acionar automação de assinante. O snippet retornado instala stubs de método síncronos antes de seu carregador assíncrono, então chamadas de identidade e evento feitas durante o bootstrap da página são enfileiradas até que o SDK esteja pronto. Prefira revogar uma chave com update_web_tracking_key antes de excluí-la permanentemente.

Novas empresas começam sem regras de sincronização. O preset herdado permanece disponível para empresas de SaaS/ecommerce passando null para update_sync_rules; empresas de serviços e consultoria normalmente devem manter [] ou definir regras explícitas.

Use list_sender_profiles para encontrar o ID do perfil e, em seguida, chame update_sender_profile para alterar apenas seu nome de exibição. Passe type: "reply" para um perfil de resposta; remetente é o padrão. O endereço, domínio de envio e seleções padrão de De/Responder-Para em toda a conta permanecem inalterados. Renomear requer o escopo companies:manage.

Use delete_sender_profile para remover permanentemente uma identidade de remetente obsoleta. Ele recusa o último remetente e qualquer perfil usado por uma campanha ativa, sequência ativa (incluindo uma substituição de etapa) ou email transacional. Rascunhos elegíveis e padrões de conta passam para o fallbackSenderProfileId retornado; revise-o antes de enviar. Perfis de resposta não são suportados por esta ferramenta de exclusão.

O abandono de carrinho do Shopify está habilitado por padrão. Ele dispara ecommerce.cart_abandoned após uma hora de inatividade no carrinho, com um período de espera de 24 horas por assinante. Use update_shopify_automation_settings para alterar os campos cartAbandonment.enabled, delayHours ou cooldownHours; passe cartAbandonment: null para restaurar esses padrões sem alterar as configurações de abandono de navegação ou queda de preço. Os valores de tempo devem ser positivos; delayHours é limitado a 168 e cooldownHours a 720.

Assinantes

FerramentaDescrição
add_subscriberAdicionar um assinante; o status é somente na criação, então use update_subscriber para um contato existente.
create_subscriber_importEnfileirar até 5.000 registros completos de CRM com um idempotencyKey opcional seguro para repetição; as verificações de higiene de email habilitadas continuam separadamente após a ingestão.
get_subscriber_importLer progresso, contagens de resultados de linhas e resumos de falhas para uma importação enfileirada.
update_subscriberAtualizar campos nativos de perfil e telefone, consentimento de SMS, atributos, tags ou status global.
remove_subscriberCancelar a inscrição preservando o histórico de supressão, ou excluir permanentemente apenas com hardDelete: true.
get_subscriberBuscar detalhes do assinante por email ou ID externo.
search_subscribersPesquisar por consulta, tags, lista, status, segmento ou um atributo personalizado, com paginação automática ou retomável.
trigger_subscriber_eventEmitir um evento personalizado exatamente como uma integração faria, aplicando regras de sincronização e correspondendo a gatilhos de sequência.
trigger_subscriber_eventsEmitir vários eventos personalizados ordenados para um assinante.
import_subscriber_eventsImportar até 25 eventos identificados por fonte entre contatos; histórico silencioso requer que cada linha de um contato tenha mais de uma hora.
bulk_add_subscriber_tagsAdicionar tags a até 500 assinantes existentes; requer subscribers:tag e pode também exigir tags:write.
bulk_remove_subscriber_tagsRemover tags de até 500 assinantes existentes; requer subscribers:tag ou subscribers:write.

Use create_subscriber_import para integração de CRM em vez de fazer um loop sobre add_subscriber. Uma chamada aceita 5.000 registros completos e retorna um ID de importação assíncrono; consulte-o com get_subscriber_import. Uma importação completed ainda pode conter falhas de linha, então inspecione failedCount e failedReasons. Cada linha excluída é contabilizada: skippedReasons soma a skippedCount, e failedReasons soma a failedCount. Relate qualquer deficiência com o ID de importação em vez de adivinhar quais linhas foram omitidas. Quando a higiene de email está habilitada, as verificações de entregabilidade continuam separadamente após a ingestão e os resultados aparecem na saúde da Lista; o status da importação não espera nem inclui esses veredictos. Veredictos inválidos são suprimidos de envios posteriores. Use optInMode: "confirmed" somente quando o consentimento já foi verificado.

Para import_subscriber_events, o email é obrigatório quando uma linha pode criar um novo contato; externalId pode ficar sozinho apenas para um contato existente. Forneça um eventId estável em cada linha. Repetir reutiliza o recibo original e tenta novamente de forma idempotente a recuperação downstream. A classificação histórica é por contato: se qualquer linha de um contato for recente, todo o grupo desse contato usa o caminho de efeitos colaterais ao vivo.

Para supressão de conformidade, chame update_subscriber com status: "unsubscribed" (ou use remove_subscriber sem hardDelete). Não repita add_subscriber com um status diferente: o status nessa ferramenta se aplica apenas quando o contato é criado pela primeira vez, e um resultado ignorado incompatível é relatado como um erro. Quando add_subscriber omite listIds, um contato criado pela chamada segue as listas padrão do workspace, enquanto um contato existente mantém suas associações de lista atuais. Passe IDs de lista explicitamente quando um contato existente deve entrar em listas específicas; passe [] para não atingir nenhuma lista.

update_subscriber.phone grava o campo de telefone nativo exibido no contato, não um atributo personalizado. Passe smsConsent: true somente após verificar consentimento expresso por escrito, ou false para cancelar o consentimento do contato. Alterar o telefone sem smsConsent redefine o consentimento de SMS, pois o consentimento pertence ao número antigo.

add_subscriber, update_subscriber e create_subscriber_import aceitam um fuso horário IANA timezone como America/New_York. O valor é armazenado no perfil de contato nativo e permite a entrega de campanhas localizadas para o destinatário. Passe um fuso horário vazio para update_subscriber para limpá-lo; valores inválidos em linhas de importação são ignorados sem rejeitar o restante da importação.

Produtos e Entrega Digital

FerramentaDescrição
list_productsLista produtos sincronizados de dados Stripe, Shopify, WooCommerce, manuais ou da Commerce API.
upsert_productsCria ou atualiza até 100 produtos da Commerce API identificados pelo seu ID de produto.
delete_productExclui um produto enviado anteriormente pela Commerce API.
attach_product_fileAnexa um arquivo de entrega hospedado ou enviado localmente a um produto.
remove_product_fileRemove um arquivo de entrega de produto anexado.
sync_productsColoca na fila uma sincronização do catálogo de produtos Stripe, opcionalmente selecionando uma integração por ID.

Depois que um arquivo de entrega de produto é anexado, eventos de compra correspondentes incluem download.url e download.name, para que e-mails acionados por compra possam usar tags de mesclagem como {{event.download.url}}.

Para produtos Stripe, list_products retorna cada preço ativo como uma variante, com o ID de preço Stripe em variantId. Use esse ID para segmentar um preço exato em uma sequência de compra, mesmo quando ele não for o preço padrão do produto.

Recursos de Imagem

FerramentaDescrição
upload_image_assetEnvia uma imagem de e-mail e retorna seu registro de mídia hospedada, além de um bloco de imagem pronto para inserção.

A ferramenta aceita imagens PNG, JPEG, GIF e WebP de até 5MB. Clientes stdio locais podem passar filePath. Clientes hospedados/remotos que podem acessar bytes de anexos podem passar imageBase64 com filename. Forneça altText para acessibilidade e, em seguida, use displayWidthPercent, cropHeight, objectFit (cover ou contain) e align para padronizar a apresentação de capturas de tela. O imageBlock retornado pode ser copiado diretamente para o array de blocos aceito pelas ferramentas de campanha, sequência, template e e-mail transacional.

Bytes de imagem autenticados são sempre enviados para a origem configurada por SEQUENZY_API_URL, mesmo que um proxy reverso retorne uma URL de upload equivalente sob outro host. As credenciais da API nunca são encaminhadas para essa origem alternativa.

{
  "filePath": "/Users/me/Desktop/product-results.png",
  "altText": "Product results dashboard",
  "displayWidthPercent": 100,
  "cropHeight": 320,
  "objectFit": "cover",
  "align": "center"
}

Listas, Tags, Segmentos

FerramentaDescrição
list_tagsLista todas as tags.
create_tagCria uma definição de tag com uma cor opcional.
update_tagAtualiza a cor de uma tag.
delete_tagExclui uma tag e a remove dos assinantes.
list_listsLista listas de assinantes.
create_listCria uma lista de assinantes.
update_listRenomeia ou descreve uma lista de assinantes.
delete_listExclui uma lista de assinantes.
add_subscribers_to_listAdiciona até 500 assinantes a uma lista a partir de um array de e-mails.
remove_subscribers_from_listRemove até 500 assinantes de uma lista.
list_segmentsLista segmentos salvos e contagens.
create_segmentCria segmentos com filtros de array aninhados ou de mesmo elemento.
update_segmentAtualiza nome, filtros, grupo raiz ou operador de junção do segmento.
delete_segmentExclui um segmento (requer segments:delete).
get_segment_countVisualiza a contagem ativa de assinantes de um segmento.

Para exportações de assinantes, search_subscribers aceita listId, listName exato, ou list (ID primeiro, depois nome exato). Também aceita attribute mais attributeValue, com attributeOperator para contains, comparações numéricas, ou is_not_empty; a forma combinada "attributeName:value" permanece suportada. Filtros combinam com AND; use um segmento salvo para lógica OR, grupos aninhados, exclusões, engajamento ou condições de eventos. Se limit for omitido, a ferramenta busca automaticamente todas as páginas correspondentes. Para leituras em partes, passe limit e siga pagination.nextCursor (ou pagination.nextOffset) enquanto hasMore for verdadeiro. offset e page são suportados abaixo de 1.000.000 correspondências ignoradas; use o cursor para públicos mais profundos.

Para preenchimento em massa de listas, use add_subscribers_to_list; o endpoint da API de suporte é POST /api/v1/lists/{listId}/subscribers sem o sufixo /bulk:

{
  "emails": ["ada@example.com", "grace@example.com"],
  "duplicateStrategy": "skip",
  "enrollInSequences": false,
  "optInMode": "default"
}

Envie no máximo 500 e-mails por solicitação. Os limites padrão de taxa da API ainda se aplicam: 100 solicitações por minuto por chave de API e 20 solicitações por segundo em rajada. Para importações CLI orientadas por CSV, os cabeçalhos de e-mail aceitos incluem email, e-mail, email address e mail; se nenhum cabeçalho reconhecido existir, o CLI lê a primeira coluna.

Os filtros de segmento suportam atributos, eventos, associação a segmentos salvos, eventos de engajamento, regras de compra de produtos Stripe e regras de compra de produtos de comércio. Use filterJoinOperator: "or" para segmentos de correspondência-any, ou passe um grupo root v2 para lógica aninhada.

Para atributos de array de objetos, use caminhos curinga como history_events[].eventvenue_id:2103. Quando um grupo AND também filtra history_events[].showing_date, ambas as condições devem corresponder a um único elemento history_events[] compartilhado; valores de entradas de histórico não relacionadas não são combinados. Excluir um segmento requer segments:delete; segments:write não é suficiente.

Cada campo de filtro de segmento valida seus próprios operadores:

  • 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, campos de engajamento de e-mail: is, is_not, at_least, less_than_count
  • emailBounced: também suporta 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

Exemplos de filtros de produtos 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" }

Filtros de produtos de comércio correspondem a produtos comprados por meio de pedidos de comércio. Os valores podem ser provider:productId para IDs com escopo de provedor (shopify, woocommerce ou api), um ID de produto simples para corresponder a qualquer provedor, ou provider:productId:count para operadores de limite:

{ "field": "commerceProduct", "operator": "is", "value": "api:starter-kit" }
{ "field": "commerceProduct", "operator": "at_least", "value": "shopify:42:2" }

Campos de engajamento como emailSent, emailDelivered, emailOpened, emailClicked, emailBounced e emailComplained aceitam janelas contínuas como 7d, 30d, 90d, 180d ou all. Operadores de presença podem definir escopo por política de entrega com marketing:<timeRange> (tráfego de campanha com política de marketing, automação e API de Envio) ou transactional:<timeRange> (envios com política transacional); escopos de política exigem um snapshot de política no momento do envio, portanto, eventos ambíguos mais antigos de automação e API de Envio permanecem disponíveis apenas por meio de filtros sem escopo. emailBounced também suporta valores com escopo com is_temporary_bounce e is_permanent_bounce. Com at_least e less_than_count, use count:timeRange, como 10:30d ou 10:all. Operadores de presença podem, em vez disso, usar um escopo de campanha como campaign:cmp_123; escopos de campanha e tipo de e-mail não podem ser combinados com operadores de contagem.

Sincronizações de Público (Meta Ads)

FerramentaDescrição
list_audience_syncsLista sincronizações de segmento para público com agendamento e status da última sincronização.
list_ad_accountsLista as contas de anúncios Meta disponíveis para sincronização.
create_audience_syncEnvia um segmento para um público personalizado Meta em um agendamento.
update_audience_syncAltera a frequência de sincronização (hourly, daily, weekly) ou pausa/retoma.
delete_audience_syncRemove um mapeamento de sincronização; o público Meta em si é mantido.
sync_audience_nowAciona um envio imediato fora do agendamento regular.

Requer que a integração Meta Ads esteja conectada no painel Sequenzy (Configurações -> Integrações). create_audience_sync aceita um segmento existente (segmentId) ou um template pronto (predefinedSegmentId, por exemplo zero-ltv, no-purchase-1y, recent-buyers, high-spenders-ecom, non-buyers, engaged) - o segmento de template é criado automaticamente no primeiro uso, e o primeiro envio é executado imediatamente.

Públicos são somente adição: assinantes que depois saem do segmento permanecem no público Meta. A Meta exige 100+ pessoas correspondentes antes que um público possa ser usado para entrega de anúncios.

Templates

FerramentaDescrição
list_templatesLista modelos com status de localização, rótulo e filtragem por isTemplate, além de paginação.
get_templateLê detalhes do modelo, conteúdo e variantes localizadas.
create_templateCria modelos a partir de um prompt, HTML ou blocos Sequenzy; use isTemplate: true para salvar um design mestre reutilizável.
update_templateAtualiza metadados do modelo, texto de pré-visualização da caixa de entrada, rótulos, HTML ou blocos; marca ou desmarca um mestre com isTemplate.
set_template_localizationCria ou substitui uma variante localizada fornecida pelo chamador.
sync_template_localizationsEnfileira tradução por IA para localidades não primárias selecionadas ou todas as habilitadas.
delete_templateExclui um modelo.

list_templates retorna 50 corpos de e-mail do mais recente para o mais antigo por padrão e aceita um limit de até 100. Avance offset por pagination.count enquanto pagination.hasMore for verdadeiro; pagination.total relata a contagem total de correspondências, incluindo corpos de campanhas e e-mails transacionais.

Defina isTemplate: true em list_templates para retornar apenas designs mestres salvos, ou false para retornar corpos de e-mail comuns. Mestres marcados são oferecidos como pontos de partida para etapas de sequência e campanhas no painel; começar a partir de um cria uma cópia independente, então edições deixam o mestre intacto.

Cópia de design de origem autônoma/sequência e reescrita por IA dentro de um layout selecionado são atualmente apenas no painel. Esta versão mantém intencionalmente esses fluxos de trabalho na autoria interativa, onde os usuários podem revisar a origem, traduções e qualquer cópia de fallback antes de salvar uma etapa de sequência. REST, CLI e MCP não expõem operação equivalente de design de origem autônoma/sequência. create_template com prompt gera novo conteúdo sem preservar um layout existente; HTML ou blocos fornecidos criam um novo corpo sem copiar automaticamente variantes localizadas. Consulte a documentação de disponibilidade de interface.

Cópias de campanha já funcionam via REST POST /api/v1/campaigns e MCP create_campaign com templateId; não pode ser combinado com prompt para uma reescrita por IA.

Para conteúdo totalmente novo solicitado em linguagem natural, passe prompt para que o Sequenzy gere blocos nativos com marca no servidor. Use blocks apenas para conteúdo Sequenzy finalizado fornecido pelo chamador, e use html apenas ao preservar marcação fornecida ou explicitamente solicitada. prompt, blocks e html são mutuamente exclusivos; style e tone são válidos apenas com prompt.

Use set_template_localization quando a cópia traduzida vier do seu próprio fluxo de trabalho de localização. Requer uma locale não primária habilitada, um subject localizado e exatamente um de html ou blocks. Use sync_template_localizations para pedir ao Sequenzy que traduza localidades selecionadas; omita locales para sincronizar todas as localidades não primárias habilitadas. A sincronização explícita funciona mesmo quando a localização automática ao salvar está desabilitada.

Componentes de E-mail Reutilizáveis

FerramentaDescrição
list_email_componentsLista seções e rodapés salvos, opcionalmente limitados a padrões fixados.
get_email_componentLê blocos, metadados, versão e estado de slot padrão de um componente.
get_default_email_componentLê o componente atualmente fixado a um slot padrão, como footer.
set_default_email_componentCria ou substitui o rodapé padrão da empresa usado por e-mails de blocos recém-criados.
create_email_componentSalva uma seção ou rodapé reutilizável a partir de uma lista de blocos.
update_email_componentAtualiza metadados do componente ou substitui seus blocos e incrementa sua versão.
delete_email_componentExclui um componente sem alterar e-mails que já copiaram seus blocos.

Componentes são copiados para e-mails quando esses e-mails são criados, então edições posteriores afetam e-mails recém-criados em vez de reescrever conteúdo existente. O rodapé padrão mantém seu link de cancelamento de inscrição habilitado, enquanto a renderização transacional oculta esse link. E-mails HTML brutos mantêm sua própria marcação e não recebem componentes de blocos; seu tratamento de cancelamento de inscrição no envio permanece inalterado.

Testes A/B

FerramentaDescrição
list_ab_testsLista testes A/B e variantes, opcionalmente filtrados por sequência.
get_ab_testObtém configurações efetivas, variantes, status de localização e cópia de etapa de sequência.
get_ab_test_statsObtém estatísticas agregadas e por variante.
restart_ab_testReinicia um teste A/B parado ou concluído.
select_ab_test_winnerSeleciona um vencedor de teste de campanha e enfileira a entrega restante.
update_ab_testAtualiza configurações de seleção de vencedor de campanha ou sequência.
update_ab_test_variantAtualiza rascunho de campanha ou cópia de variante de sequência.
create_ab_testCria um teste de campanha ou converte uma etapa de e-mail de sequência.
add_ab_test_variantAdiciona uma variante a um teste A/B existente.
delete_ab_test_variantExclui uma variante de teste A/B em rascunho.
delete_ab_testExclui um teste A/B.

Use get_sequence.sequence.emails[].abTest.variants para descobrir IDs de variantes de sequência, assuntos, texto de pré-visualização e contagens de blocos; chame get_ab_test para auditar o blocks completo de cada variante, settings efetivo, status de localização ou estatísticas. Configurações de campanha usam testPercentage, testDurationMinutes e winnerCriteria; configurações de sequência usam testType, winnerThreshold e winnerCriteria. Os valores legados de sequência testPercentage: 100 e testDurationMinutes: 0 são sentinelas de compatibilidade, não configurações de tempo de execução. select_ab_test_winner aplica-se apenas a um teste de campanha que está atualmente em teste e enfileira imediatamente a variante vencedora para o público restante. update_ab_test altera o modelo de configurações apropriado e requer confirmLiveChange: true quando configurações de sequência afetam um teste ativo ou já usado. Atualizações de variante aceitam html ou blocks, não ambos.

create_ab_test aceita exatamente um de campaignId ou automationNodeId; o último requer de uma a quatro variantes extras e converte um nó de e-mail de sequência em action_ab_test. A conversão move o assunto, texto de pré-visualização e blocos da etapa para e-mails de variante independentes. Obtenha os IDs de teste e variante de get_sequence, leia a cópia de cada variante com get_ab_test e edite cada uma com update_ab_test_variant; update_sequence_node e update_template não podem editar cópia de variante, e uma alteração destinada a toda a etapa deve ser repetida para cada variante. Se update_ab_test_variant não estiver na lista de ferramentas MCP, habilite-o no conector Sequenzy em vez de escrever por outra ferramenta de e-mail. O fluxo de trabalho completo requer ab_tests:read, ab_tests:write e sequences:write, todos incluídos em Acesso de agente mais seguro. Com apenas sequences:read, get_sequence mantém a etapa A/B e a cópia de controle visíveis, mas oculta campos de registro de teste e retorna uma lista de variantes vazia. Um winnerCriteria de sequência explícito substitui o padrão testType, então variantes de conteúdo ainda podem ser avaliadas por aberturas. Passe confirmLiveChange: true ao converter um nó em uma sequência ativa. Junto com o controle A, um teste A/B suporta no máximo cinco variantes. Variantes de sequência recebem modelos de e-mail independentes e podem ser editadas após a criação; uma vez que a sequência está ativa ou o teste tem atividade, update_ab_test_variant requer confirmLiveChange: true. Variantes só podem ser adicionadas ou removidas enquanto o teste é um rascunho, e alterações em sequência ativa também exigem confirmação porque mudam imediatamente a rotação.

Campanhas

FerramentaDescrição
list_campaignsLista campanhas paginadas por status ou rótulo, incluindo feedback do revisor e campos de ritmo de entrega para auditorias STO em toda a conta.
get_campaignObtém detalhes, estatísticas, feedback do revisor e ritmo de entrega registrado de uma campanha.
get_campaign_audienceResolve segmentação salva, referências ausentes, um resumo em linguagem simples e a contagem de destinatários ao vivo.
list_campaign_goalsLista as metas de conversão persistidas para uma campanha de e-mail (SMS não é suportado).
create_campaign_goalAdiciona uma meta de conversão de campanha de e-mail por evento, atributo de assinante ou aplicação de tag.
update_campaign_goalAtualiza uma meta de conversão de campanha de e-mail persistida.
delete_campaign_goalExclui uma meta de conversão de campanha de e-mail persistida.
list_email_sendsPesquisa o histórico recente de entregas com IDs de recursos e URLs, opcionalmente limitado a uma etapa da sequência. Envios de teste ao vivo bem-sucedidos são omitidos.
get_email_sendInspeciona uma entrega na fila, de teste, enviada, suprimida ou com falha pelo ID durável de envio de e-mail.
list_recipient_suppressionsLista destinatários suprimidos associados, incluindo endereços inválidos globais protegidos e reclamações.
get_recipient_suppressionVerifica bounce local, reclamação, higiene de e-mail e supressão SES regional para um destinatário exato.
remove_recipient_suppressionRemove uma escalada de soft-bounce do workspace, preservando proteções globais, de hard-bounce e de reclamações.
create_campaignCria uma campanha com conteúdo, dados e substituições opcionais de identidade De/Responder-Para.
update_campaignAtualiza uma campanha em rascunho, incluindo conteúdo, dados, identidades, público e configuração STO persistida.
schedule_campaignAgenda ou reagenda uma campanha, opcionalmente substituindo STO e sua janela de entrega de 1 a 24 horas.
send_test_emailEnvia um e-mail de teste para um endereço.
render_emailRenderiza HTML exato seguro para e-mail e relata tags não resolvidas, incluindo erros de digitação ocultos por padrões.
cancel_campaignCancela uma campanha agendada ou em envio.
pause_campaignPausa uma campanha em envio.
resume_campaignRetoma uma campanha pausada, opcionalmente distribuindo a entrega ao longo do tempo.
delete_campaignExclui uma campanha.
duplicate_campaignDuplica uma campanha em um novo rascunho.
resend_campaign_to_non_openersCria um rascunho de reenvio para os membros do público original que não abriram uma campanha enviada.

Campanhas criadas por prompt são geradas e persistidas em uma única solicitação de API e permanecem como rascunhos. Use templateId, blocks ou html apenas ao copiar ou preservar conteúdo existente, em vez de pedir ao agente para criá-lo. Omita todos os campos de conteúdo para criar um rascunho vazio para edição posterior.

As metas de campanha creditam destinatários que realmente receberam essa campanha dentro da janela de atribuição configurada; uma abertura ou clique permanece o sinal de último toque mais forte quando existir. Metas de evento exigem triggerEventName, metas de atributo de assinante exigem attributePath e metas de tag aplicada exigem triggerTagName. A janela de atribuição da campanha tem como padrão 168 horas quando omitida.

Para entregar no mesmo horário de relógio de parede no fuso horário de cada destinatário, chame schedule_campaign com sendInRecipientTimezone: true e um IANA scheduledTimezone que identifique o relógio de parede representado por scheduledAt. Contatos sem fuso horário armazenado recebem a campanha no instante scheduledAt. Este modo não pode ser combinado com entrega recorrente ou distribuída.

A Otimização de Horário de Envio é configurada por campanha, não no nível da empresa ou da sequência. Audite-a entre campanhas com list_campaigns, ou inspecione uma campanha com get_campaign. Defina sendTimeOptimization e sendTimeWindowHours (1-24, padrão 12) em um rascunho com update_campaign, ou substitua-os ao agendar com schedule_campaign. spreadOverHours tem precedência e desativa o STO, assim como a entrega no fuso horário do destinatário. Sequências usam sendingWindow, um portão compartilhado de horários/dias permitidos em vez de horários de envio previstos por destinatário.

Para identidades em nível de campanha e sequência, fromEmail mais fromName seleciona a identidade do remetente com esse nome de exibição na caixa de correio, criando-a quando necessário sem renomear outras identidades com o mesmo endereço. Um endereço Responder-Para tem, em vez disso, um nome salvo em toda a empresa: quando replyToName difere desse nome, o nome salvo é mantido e a resposta bem-sucedida inclui orientação de recuperação em warnings.

send_email e send_test_email retornam um emailSendId durável. Use list_email_sends para descobrir IDs recentes por assunto/título, destinatário, status de entrega, tipo, tipo de bounce ou fonte; passe um ID para get_email_send para inspecionar status, errorMessage, o corpo armazenado e eventos de entrega. As linhas da lista de entregas são retidas por 14 dias. Envios de teste ao vivo bem-sucedidos e outros envios de teste são omitidos para que não enterrem entregas reais. Respostas a esses envios de teste aparecem em list_conversations somente quando a captura de respostas de entrada está habilitada. Trabalhos em fila são detalhes internos de execução e não são expostos pelo contrato MCP. Cada entrega retornada tem um url direto do painel. Use list_recipient_suppressions para distinguir linhas protegidas de destinatário inválido global, hard-bounce protegido da empresa e reclamações de escaladas de soft-bounce removíveis da empresa, e use get_recipient_suppression para o status regional exato. remove_recipient_suppression remove apenas a escalada da empresa; supressões globais e em nível de conta Amazon SES, reclamações, cancelamentos de inscrição e proteções de higiene de e-mail permanecem intactas. Um resultado de higiene local usa o motivo bounced com email_hygiene como sua fonte, sem alterar o status de consentimento do assinante.

Os agentes devem passar um idempotencyKey de propriedade do chamador para send_email antes da primeira tentativa e reutilizá-lo em cada nova tentativa desse mesmo e-mail lógico. O Sequenzy retorna o emailSendId original por 14 dias em vez de criar outra entrega. Reutilizar a chave com argumentos de envio diferentes é rejeitado, então não gere uma nova chave dentro de um loop de nova tentativa.

Blocos de e-mail podem usar regras de exibição condicionais ou ramificações conditional-group. Condições suportam variáveis de tempo de renderização e atributos de assinante, além de dados ao vivo do assinante, como associação a segmento/lista, tags, eventos, engajamento, status de assinatura/SMS e compras Stripe ou de comércio. Condições de dados ao vivo usam os mesmos valores de campo e operadores que filtros de segmento; destinatários sem uma correspondência de assinante armazenada usam a ramificação OTHERWISE.

As formas principais de bloco são { "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 como um alias para text e padrão para a variante primary. O widthType de imagem aceita percent ou px.

Blocos de vídeo do YouTube aceitam uma capa personalizada opcional: { "type": "video", "videoUrl": "https://www.youtube.com/watch?v=...", "thumbnailUrl": "https://cdn.example.com/cover.jpg", "alt": "Watch the product tour" }. Substituir blocos sem thumbnailUrl restaura o still do próprio YouTube enquanto mantém videoUrl como destino do clique.

html bruto é armazenado como um bloco opaco. Ele preserva a marcação fornecida, mas não adiciona um logotipo da empresa, seções de marca nativas ou design de bloco orientado por tema. Use prompt para um novo rascunho com marca ou blocks para design nativo do editor; resultados de autoria MCP incluem um aviso quando HTML bruto é usado.

Use update_company com fromEmail e/ou replyTo para definir padrões em toda a conta. fromEmail deve usar um domínio de envio configurado e verificado; replyTo pode ser qualquer caixa de correio válida. create_campaign, update_campaign, create_sequence e update_sequence aceitam os mesmos campos de endereço direto para substituições específicas de recurso e criam o perfil de suporte quando necessário. Envie fromName ou replyToName sozinho para renomear o perfil padrão existente sem alterar seu endereço. Quando um endereço tem vários nomes de exibição, use senderProfileId ou replyProfileId de list_sender_profiles para selecionar o perfil exato a ser tornado padrão e renomeado.

update_company também gerencia o tema de e-mail padrão da empresa através de emailTheme (presetId, colors, typography, layout). Atualizações de tema são parciais - campos omitidos mantêm seu valor atual (ou o padrão do preset) e valores numéricos são limitados a intervalos suportados. Passe emailTheme: null para redefinir a empresa para o tema padrão da plataforma. Configurações de layout podem controlar o baseRadius compartilhado e um buttonRadius separado. Dentro de colors, background pinta a tela externa, content pinta o cartão de conteúdo interno e surface pinta cartões aninhados ou blocos coloridos. Omitir content preserva seu valor atual; quando nenhuma cor de conteúdo é armazenada, o cartão segue background.

O rastreamento de respostas está disponível nas mesmas ferramentas da empresa. Use replyTrackingEnabled, replyTrackingDomainMode (sequenzy ou custom) e forwardReplies com update_company. Leituras da empresa também retornam o valor atual somente leitura de replyRetentionDays.

Enquetes e pesquisas NPS são blocos de e-mail nativos, então funcionam em qualquer lugar onde uma ferramenta de e-mail aceite blocks, incluindo campanhas, modelos, variantes A/B, modelos transacionais e etapas de e-mail de sequência. Envios transacionais de enquetes devem resolver para exatamente um destinatário efetivo após filtragem de supressão e deduplicação de destinatários, e esse destinatário já deve existir como assinante; caso contrário, o Sequenzy rejeita o envio porque o link de resposta não pode ser atribuído com segurança. Use uma enquete com botão de resposta:

{
  "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"
}

Para NPS, use "variant": "nps", um array vazio options, e um atributo como nps_score. A escala é sempre 0-10; npsLowLabel e npsHighLabel opcionais personalizam suas legendas. Cada resposta atualiza o atributo do assinante e dispara poll.answered para automações e webhooks de saída.

Defina "allowMultiple": true em uma enquete somente de texto para abrir uma página hospedada onde os destinatários podem marcar várias respostas e salvar toda a seleção de uma vez. O atributo do assinante armazena a lista de valores selecionados, então segmentos de atributos devem usar contains. Enquetes de múltipla escolha não podem usar imagens de opção ou configurações cujos links assinados codificados excedam o limite de tamanho seguro para entrega. Resumos de enquetes de campanha definem allowMultiple: true, usam a contagem de respondentes para totalResponses, e podem relatar porcentagens de respostas que somam mais de 100%.

Blocos de enquete também suportam estilos específicos de marca. accentColor recoloriza cada aparência, incluindo "brutal"; optionRadius define os cantos dos botões de resposta em pixels (0 é quadrado), independentemente do styles.borderRadius do contêiner; e questionColor recoloriza apenas a pergunta. fontFamily se aplica à enquete. Use os campos optionFontSize, optionFontWeight, optionLetterSpacing, e optionTextTransform para respostas, ou os campos question* correspondentes para a pergunta. Tamanhos e espaçamentos são em pixels, pesos variam de 100 a 900, e transformações de texto são "none" ou "uppercase".

Formulários Salvos

FerramentaDescrição
list_formsLista formulários salvos com suas configurações de público gerenciadas pelo servidor, blocos de conteúdo e URLs de ação públicas.
create_formCria e publica um formulário salvo com campos padrão de email/nome, configurações de público, tema e comportamento de sucesso.
update_formAtualiza um formulário salvo, incluindo seu array completo de blocos ordenados e campos personalizados tipados.
get_form_embedRetorna a URL de ação pública, JavaScript hospedado, formulário nativo mínimo e exemplo de fetch para um formulário salvo.

Para Astro, Hugo, Jekyll, Cloudflare Pages, Netlify, GitHub Pages, ou qualquer outro site estático, chame list_forms, use create_form se um formulário adequado não existir, então chame get_form_embed. O formId opaco retornado é a capacidade pública: listas, tags, comportamento de duplicação e tratamento de sucesso permanecem no lado do servidor, então o código do navegador implantado nunca contém uma chave de API Sequenzy. A marcação nativa e autônoma gerada inclui "Powered by Sequenzy" para espaços de trabalho gratuitos; espaços de trabalho pagos recebem marcação sem marca. A API resolve essa permissão no lado do servidor, então os chamadores devem usar o trecho retornado sem alterações. Ao atualizar um formulário, campos omitidos permanecem inalterados e campos de tema são mesclados no tema atual. Passe um array vazio tagIds para limpar tags ou um redirectUrl vazio para restaurar o comportamento da mensagem de confirmação. O campo blocks é uma substituição completa, então leia o conteúdo atual com list_forms primeiro e mantenha exatamente um campo de email obrigatório e um botão de envio. Adicione entradas personalizadas como blocos form-field com um fieldType suportado; campos de seleção, botão de opção e caixa de seleção exigem opções, enquanto padrões ocultos são aplicados no lado do servidor.

Pop-ups Salvos

FerramentaDescrição
list_popupsLista pop-ups salvos com status e estatísticas de engajamento, opcionalmente incluindo conteúdo completo.
get_popupObtém os blocos, gatilho, segmentação, agendamento, frequência, tema e código de incorporação publicado de um pop-up.
create_popupCria um pop-up a partir de um modelo inicial, publicado por padrão, e retorna seu script de implantação.
update_popupAtualiza parcialmente o texto, público, comportamento, tema, blocos ou status de publicação do pop-up.
get_popup_embedRetorna trechos de incorporação HTML sem segredos, React/Next.js, WordPress e Shopify.
duplicate_popupCopia um pop-up em um rascunho com contadores de engajamento independentes.
delete_popupExclui permanentemente um pop-up e seus contadores de engajamento.

A implantação de pop-ups usa uma tag de script pública; chaves de API, configurações de público, gatilho, segmentação, agendamento e regras de frequência permanecem no lado do servidor. Pop-ups capturam em todas as listas por padrão, a menos que listIds seja fornecido. Ao atualizar blocos, leia o pop-up primeiro e envie o array de substituição completo, mantendo exatamente um campo de email obrigatório e um botão de envio. Definir status como draft interrompe um pop-up sem invalidar seu código de incorporação existente.

Páginas de Destino

FerramentaDescrição
list_landing_pagesLista páginas de destino com status, métricas, conteúdo e URLs.
get_landing_pageObtém detalhes da página de destino, conteúdo do construtor, métricas e URLs publicadas.
render_landing_pageRetorna uma prévia de visitante assinada de 24 horas sem publicar, contar visualizações ou coletar inscrições.
create_landing_pageCria uma página de destino em rascunho a partir do conteúdo padrão do modelo ou JSON.
update_landing_pageEdita o nome, slug ou conteúdo completo compatível com o editor de uma página de destino.
publish_landing_pagePublica uma página de destino, opcionalmente salvando edições primeiro.
unpublish_landing_pageRetorna uma página de destino ao status de rascunho, opcionalmente salvando edições primeiro.
duplicate_landing_pageDuplica uma página de destino em um novo rascunho com um slug único.
delete_landing_pageExclui uma página de destino não publicada.
connect_landing_page_domainConecta um domínio personalizado de página de destino e retorna detalhes de configuração de DNS.
update_landing_page_domain_settingsSubstitui ou verifica configurações de domínio personalizado da página de destino.

O conteúdo da página de destino usa o esquema JSON compatível com o editor da Sequenzy com version, template, seo, theme, e blocks. Configurações de SEO incluem faviconUrl e hideFromSearchEngines; páginas ocultas publicam uma diretiva noindex. Use render_landing_page para revisar a página atual voltada ao visitante antes de publicar. Seu previewUrl assinado expira após 24 horas, não é listado, não é indexado e não incrementa visualizações de página; formulários permanecem visíveis, mas não coletam contatos. Blocos são renderizados na ordem dos slots: top, hero, form, body, depois footer; use top para um anúncio ou banner de largura total acima do herói. URLs de CTA de botão e preço aceitam destinos HTTPS externos ou âncoras na página, como #form, #section-<sectionId>, #block-<blockId>, e #top. Defina theme.sectionAnimation como none, fade, slide-up, ou zoom-in, com theme.sectionAnimationSpeed definido como slow, normal, ou fast, para controlar revelações de rolagem publicadas. Subdomínios personalizados de páginas de destino exigem um registro CNAME apontando para pages.sequenzydns.com; domínios raiz usam um registro A apontando para 76.76.21.21, e seu host www redireciona para a raiz quando seu CNAME aponta para pages.sequenzydns.com. Chame update_landing_page_domain_settings com verify: true após as alterações de DNS propagarem.

Sequências

FerramentaDescrição
list_sequencesLista sequências com status do dashboard, pesquisa, rótulo, limite e filtros de deslocamento.
get_sequenceObtém detalhes da sequência, IDs de variantes A/B e contagens de blocos com ab_tests:read, nós, arestas, cópia vinculada e a janela de envio da sequência.
list_sequence_enrollmentsLista inscrições de contatos com paginação e atribuição precisa de entrada baseada em lista/etiqueta/evento/tempo. Testes ao vivo de sequência não criam inscrições.
send_sequence_test_emailEnvia uma etapa de e-mail de ação salva para 1 a 10 revisores; etapas A/B são inspecionadas por variante.
create_sequenceCria um rascunho em branco do dashboard ou uma sequência gerada por IA/etapas explícitas.
update_sequenceAtualiza identidade, configurações, inscrição, etapas existentes, lógica de ramificação ou insere etapas lineares.
update_sequence_nodeCorreção de um nó de sequência existente com reconhecimento de tipo.
update_sequence_nodesCorrige atomicamente vários nós de sequência existentes.
insert_sequence_stepInsere qualquer etapa tipada do dashboard, incluindo geração por IA, webhooks de saída, esperas e ramificações conectadas.
edit_sequence_graphMove, reconecta, exclui ou duplica nós do grafo; relata destinatários movidos ou concluídos.
simulate_sequenceExecuta simulação das correspondências atuais, prontidão de ativação e o caminho de ramificação opcional de um contato sem inscrever ou enviar.
enable_sequenceAtiva uma sequência.
disable_sequenceCongela uma sequência, bloqueando novas inscrições e mantendo os destinatários atuais.
duplicate_sequenceCria uma cópia de rascunho independente do grafo, e-mails e testes A/B da sequência.
archive_sequenceMove uma sequência para o arquivo do dashboard e interrompe novas inscrições.
unarchive_sequenceRestaura uma sequência arquivada como rascunho desabilitado.
list_sequence_goalsLista as metas de conversão por evento, atributo de assinante e etiqueta aplicada persistidas para uma sequência.
create_sequence_goalAdiciona uma meta de conversão por evento, atributo de assinante ou etiqueta aplicada.
update_sequence_goalAtualiza uma meta de conversão de sequência persistida.
delete_sequence_goalExclui uma meta de conversão de sequência persistida.
get_sequence_inbound_webhookLê a URL de entrada, estado de configuração, amostra e mapeamento no MCP padrão; a rota OpenAI remove a URL com credenciais.
configure_sequence_inbound_webhookConfigura o endpoint, mapeamento de campos e amostra; a rota OpenAI remove a URL com credenciais do resultado.
rotate_sequence_inbound_webhook_secretRotaciona o segredo de um endpoint de sequência de entrada e retorna sua URL substituta no MCP padrão; omitido na rota revisada pela OpenAI.
pause_sequence_enrollmentsInterrompe novas inscrições para uma sequência ativa enquanto os destinatários atuais continuam.
resume_sequence_enrollmentsReabre novas inscrições para uma sequência ativa sem alterar os destinatários atuais.
enroll_subscribers_in_sequenceInscreve até 500 assinantes por e-mail, ID de assinante ou ambos, com idempotência segura para novas tentativas.
cancel_sequence_enrollmentsInterrompe inscrições ativas ou em espera por valores de campos de assinante ou evento de entrada.
realign_sequence_enrollmentsVisualiza ou enfileira a movimentação de esperas ativas para mais cedo, na abertura de sua janela de envio.
get_sequence_enrollment_realignmentConsulta um trabalho de realinhamento aplicado e lê seu resultado concluído ou cursor de continuação.
delete_sequenceExclui uma sequência.

A criação de sequências suporta:

  • Criação apenas com nome para um rascunho em branco, desabilitado, de gatilho a conclusão, correspondente ao dashboard.
  • Metadados do dashboard e configurações de entrega: description, labels, userCancellable, BCC da sequência e identidade De/Responder-Para.
  • trigger: "contact_added" com listId, vários listIds ou listScope: any_contact (o padrão) inscreve todo contato adicionado, incluindo contatos que não entram em nenhuma lista, enquanto any_list aguarda uma associação real a uma lista.
  • trigger: "tag_added" com tagName ou vários tagNames; qualquer etiqueta configurada inscreve o contato.
  • trigger: "segment_entered" mais segmentId para automações de entrada por segmento salvo.
  • trigger: "event_received" mais {{event.*}} mesclam tags em assuntos ou conteúdo do corpo.
  • trigger: "inbound_webhook" mais metadados de integração para nós de entrada por webhook compatíveis com o dashboard.
  • trigger: "inactivity" mais eventName, inactiveDays e inactivityBaseline opcional (sequence_created_at ou subscriber_created_at).
  • goal para conteúdo de e-mail gerado por IA.
  • emailStyle: "visual" ou "plain" para escolher a apresentação de e-mails gerados por IA baseados em metas; quando omitido, a preferência salva da empresa é usada.
  • steps explícito com blocks da Sequenzy.
  • steps explícito com HTML, que a Sequenzy converte em blocos editáveis.
  • Etapas explícitas de Atualizar Assinante que copiam propriedades do evento de gatilho para campos de perfil ou atributos personalizados tipados.
  • Esperas fixas via delay / delayMs, esperas dinâmicas por campo de data via waitUntil ou portões de calendário via waitUntilWeekday. Um portão de dia da semana como { "day": "sunday", "startTime": "09:00", "endTime": "12:00", "timezone": "America/Los_Angeles" } mantém o fluxo até a próxima janela correspondente. Coloque-o imediatamente antes de um e-mail para manter esse envio dentro da janela; qualquer etapa intermediária pode deslocar a entrega para fora dela. A recuperação de fila reavalia a janela antes de liberar um contato atrasado.
  • Etapas dinâmicas de ação de desconto do Stripe ou Shopify. Uma etapa create_discount cria um novo código do provedor quando cada assinante a alcança; e-mails posteriores podem usar tags de mesclagem como {{discount.code}}, {{discount.percentOff}} e {{discount.expiresAt}}.
  • enrollmentMode: "matching_field" e um enrollmentFieldPath escalar para automações de eventos específicos de produto, variante, pedido ou assinatura. A travessia de arrays com [] pertence a propertyFilters, não à chave de inscrição.

Para um gatilho de evento personalizado, o resultado bem-sucedido de create_sequence inclui eventTrackingCode e um objeto estruturado eventTracking. O objeto contém o endpoint do evento, contrato de identidade e payload, qualquer caminho de propriedade exigido pela inscrição matching_field, o propertyFilters de gatilho normalizado, um payload de exemplo, examplePayloadMatchesFilters, a URL direta da documentação da API de eventos e argumentos prontos para uso para get_integration_guide. Se o status de correspondência for falso, adapte o exemplo usando examplePayloadNote e o contrato de payload. Adicione esse feed de eventos e verifique suas propriedades obrigatórias antes de habilitar o rascunho da sequência.

list_sequence_enrollments retorna enteredVia para cada linha. Fontes de lista e segmento mantêm seu ID estável em value e resolvem um name de exibição; fontes de etiqueta e evento mantêm seus nomes em value. Gatilhos baseados em tempo relatam inactivity ou frequency em vez de serem identificados erroneamente como inscrições comuns de evento recebido. Testes ao vivo de sequência não criam inscrições; eles enviam e-mails de teste isolados e registram atividade na execução do teste da sequência em vez disso.

Para um lote confirmado de inscrição manual, gere idempotencyKey uma vez e reutilize essa chave exata apenas com alvos ordenados idênticos e targetNodeId. Os recibos duram 14 dias. Uma nova tentativa retorna os valores originais de enrolled, skipped, notFound, targetNodeId e scheduledFor com idempotentReplay: true; ela não cria tokens nem enfileira o lote novamente.

Exemplo de etapa dinâmica de desconto do Shopify:

{
  "type": "create_discount",
  "discount": {
    "provider": "shopify",
    "discountType": "percent",
    "percentOff": 20,
    "duration": "once",
    "appliesToAllPlans": true,
    "maxRedemptions": 1,
    "codePrefix": "WINBACK"
  }
}

Exemplo de etapa de Atualizar Assinante:

{
  "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" }
    ]
  }
}

Valores numéricos e booleanos devem ser literais ou uma única tag de mesclagem autônoma. Use update_sequence.subscriberUpdateSteps com um ID de nó action_update_attributes de get_sequence para substituir a configuração de uma etapa existente. As atualizações de sequência suportam insertSteps para adicionar novas etapas lineares após um nodeId retornado por get_sequence. Omita afterNodeId somente ao anexar a uma sequência com exatamente uma cauda linear. insertSteps suporta etapas adicionáveis que não exigem registros complementares, como e-mail, atraso, ações de tag/lista, atualizações de atributos, descontos, condições, etapas de espera por evento, webhooks de saída e etapas de IA. Uma etapa action_ai exige uma tag de mesclagem prompt, um resultKey exclusivo e um ou mais outputFields; etapas posteriores leem o texto gerado ou de fallback com {{ai.KEY.field}}. Os limites combinados de campos de saída devem caber no orçamento de resposta de 2000 tokens da etapa. Use includeTags, includeEventProperties ou includeAttributes para optar por incluir contexto de contato específico na geração, e onError (continue, exit ou fail) para escolher o comportamento em caso de falha. Use branch para ramificações if/else de múltiplos caminhos; forneça branch ou insertSteps, não ambos. As condições de ramificação suportam verificações de presença e ausência de tags com has_tag e does_not_have_tag, além de listas, segmentos salvos, eventos, links clicados e comparações de campos. Cada caminho de ramificação pode fornecer um novo steps, um targetNodeId existente, ou ambos; o fallback usa elseSteps e/ou elseTargetNodeId. Um destino pode ser o nó de conclusão retornado por get_sequence, de modo que uma única solicitação atômica pode rotear respostas para a conclusão e o Else para um acompanhamento existente. Os arrays emails e steps editam etapas action_email comuns por nodeId, emailId ou ordem de array. get_sequence.sequence.emails também inclui entradas action_ab_test; com ab_tests:read, cada entrada abTest.variants[] contém o ID da variante, assunto, texto de pré-visualização e contagem de blocos. Chame get_ab_test para obter os corpos completos das variantes antes de auditar ou reescrever o texto. Uma atualização posicional que atinge uma delas é rejeitada, e seu texto deve ser alterado por variante com update_ab_test_variant; não tente novamente por meio de update_template ou update_sequence_node. Use insertSteps para criar novas etapas e inclua um delay, delayMs, waitUntil ou waitUntilWeekday no nível da etapa quando o e-mail inserido precisar de um temporizador. waitUntil aceita um campo de data do evento de gatilho, além de offset, direction (before ou after) e missingAction (continue ou exit) opcionais. waitUntilWeekday aceita day ou days, startTime, endTime opcional (padrão 24:00) e um timezone IANA; contatos já dentro da janela continuam imediatamente. Para sequências ativas, passe confirmStructuralChange: true com insertSteps ou branch somente após confirmar o impacto no fluxo ao vivo.

insert_sequence_step expõe diretamente cada etapa do painel sem registro complementar: e-mail, SMS, atraso, desconto, atualização de assinante, ação de tag/lista, webhook de saída, geração de IA, condição, espera e ramificação. Defina type: "ai" com prompt, resultKey e outputFields para gerar texto por contato para tags de mesclagem {{ai.KEY.field}} posteriores. Webhooks de saída aceitam url, method (POST ou GET) e headers com valor de string. Etapas de e-mail suportam modo transacional, identidade por etapa e configurações de entrega com CC/CCO. Para uma espera, defina type: "logic_wait_for_event" com eventName, timeoutDays opcional (1-365) e timeoutAction (continue ou exit). Para uma ramificação, defina type: "logic_branch", forneça branches tipados e conecte seus destinos:

{
  "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"
}

Cada e-mail vinculado retornado por get_sequence inclui seu emailPreset efetivo (branded ou minimal), correspondente a Style > Format no painel. Defina emailPreset em um item emails/steps, ou no changes de um nó action_email, para alterar apenas esse e-mail vinculado sem alterar o tema da empresa. Isso aplica a mesma transformação de formato que o painel aos blocos nativos do Sequenzy, incluindo e-mails que contêm blocos HTML personalizados suportados. E-mails armazenados inteiramente como um único bloco HTML bruto autônomo retornam null para emailPreset e não suportam alterações de formato. emailPreset não pode ser combinado com html ou htmlContent porque esses campos substituem o e-mail inteiro por HTML bruto autônomo.

Para a posição na sequência, prefira structuralStepNumber em e-mails vinculados e no nível superior dos nós de e-mail. Ela é derivada do grafo atual e corresponde ao selo de etapa mostrado no painel. E-mails de ramificações paralelas compartilham intencionalmente a mesma profundidade estrutural, e uma mesclagem de ramificação desigual continua a partir do caminho de entrada mais longo. O campo mais antigo stepNumber em e-mails vinculados e configurações de nó permanece como um ordinal armazenado para compatibilidade retroativa e pode estar desatualizado após edições no grafo.

Cada e-mail vinculado também retorna sua substituição emailTheme armazenada, ou null quando segue o tema da empresa. Defina emailTheme em um item emails/steps ou no changes de um nó action_email para reestilizar apenas essa etapa. As atualizações de tema são correções parciais, portanto changes: { "emailTheme": { "colors": { "background": "#f3f4f6", "content": "#ffffff" } } } dá a esse e-mail uma tela externa cinza e um cartão de conteúdo branco, mantendo suas outras cores, tipografia e layout. Omitir qualquer uma das cores preserva seu valor atual. Passe emailTheme: null para remover a substituição e seguir o tema da empresa novamente. Use update_company somente quando o padrão da conta inteira deve mudar.

Use update_sequence_node para uma edição focada no local, ou update_sequence_nodes quando vários patches de nó precisam ser confirmados atomicamente. Chame get_sequence primeiro: cada item em sequence.nodes inclui o id do nó, nodeType, o config atual, updatedAt e updateHints com campos editáveis e gerenciados, além do token de concorrência exato a ser retornado. Passe esse token como expectedUpdatedAt para rejeitar gravações desatualizadas. As ferramentas suportam todos os tipos de nó armazenados, incluindo atrasos, conteúdo de e-mail/SMS, ações, condições, webhooks, configuração de ramificação sem alterações de topologia e gatilhos. Para alterar um atraso de 5 minutos para 7 dias, envie changes: { "delay": { "days": 7 } } para seu nó logic_delay. Para tornar várias notas de estilo fundador Minimalistas, aplique patch em seus nós action_email com changes: { "emailPreset": "minimal" }. Conversão de tipo de nó e alterações de borda/caminho pertencem a edit_sequence_graph. Sequências ativas exigem confirmLiveChange: true após o usuário confirmar o impacto; destinatários já em espera mantêm seu carimbo de data/hora agendado existente.

Etapas de e-mail existentes e recém-inseridas podem definir sua própria identidade De com senderProfileId ou fromEmail, além de fromName opcional, e sua identidade Responder-Para com replyProfileId ou replyTo, além de replyToName opcional. Um fromName por conta própria altera apenas o nome visível do remetente dessa etapa. Um replyToName no nível da etapa substitui de forma semelhante o nome visível de Responder-Para dessa etapa sem renomear o perfil de resposta da empresa inteira. Novas etapas de e-mail sem campos de identidade explícitos herdam a identidade efetiva do e-mail de sequência mais próximo. Após uma mesclagem de ramificação, apenas campos de identidade compartilhados por cada caminho de entrada são herdados; campos conflitantes usam os padrões da sequência ou da empresa.

Use edit_sequence_graph com o graphRevision mais recente de get_sequence para reestruturar uma sequência existente atomicamente. Ela pode mover um nó para antes ou depois de outro nó, reutilizar o array normalizado sequence.edges para reconexão explícita ou reordenação de vários nós, excluir um nó ou copiar profundamente um nó. A duplicação de teste A/B cria registros independentes de teste, variante, e-mail e localização com estatísticas redefinidas. Mover um nó para antes do nó compartilhado abaixo de uma ramificação reconecta cada caminho de ramificação convergente por meio desse nó. Excluir um nó move imediatamente destinatários em espera para seu único sucessor sobrevivente, ou os conclui quando nenhum sucessor permanece; inspecione sequence.migratedRecipientCount e sequence.completedRecipientCount no resultado. A exclusão é recusada quando destinatários em espera teriam múltiplas continuações sobreviventes. Revisões desatualizadas, faixas de ramificação inválidas, ciclos e nós inalcançáveis também são rejeitados. Sequências ativas exigem confirmStructuralChange: true.

Execute cancel_sequence_enrollments com dryRun: true antes de aplicar cancelamento em massa.

Execute realign_sequence_enrollments após alterar a janela de envio de uma sequência ativa quando esperas existentes vinculadas a e-mail devem ser movidas para mais cedo, para a nova abertura. O padrão é dryRun: true. Passar dryRun: false enfileira um trabalho em segundo plano e retorna jobId; consulte-o com get_sequence_enrollment_realignment. Quando um resultado concluído tiver hasMore: true, enfileire a próxima aplicação limitada com seu nextCursor. O realinhamento aplicado altera os horários de entrega ao vivo e só deve ser usado após o usuário confirmar a pré-visualização.

Blocos de E-mail

FerramentaDescrição
get_email_block_schemaListe cada tipo de bloco de e-mail ou inspecione os campos obrigatórios, valores de enumeração, formatos de item e exemplo de um tipo.

Chame get_email_block_schema antes de criar manualmente um tipo de bloco que você não usou antes. Omita blockType para listar todos os tipos, passe um tipo como list ou steps para sua referência completa, ou passe creatableOnly: true para ocultar tipos gerenciados pelo editor. Blocos group persistidos são conteúdo estrutural do editor: eles envolvem recursivamente blocos filhos em layouts Stack, Row, Grid ou Overlay de imagem única, mas a geração de IA e creatableOnly os omitem intencionalmente. Solicite blockType: "group" para inspecionar seus campos ao ler ou atualizar conteúdo agrupado existente. Listas são seu próprio tipo de bloco, em vez de uma variante text: itens list usam content, enquanto itens steps usam title e um description opcional.

Ferramentas que aceitam blocks persistem o estilo visual por bloco sob o objeto styles de um bloco:

{
  "type": "card",
  "title": "Your update",
  "content": "Everything is ready.",
  "variant": "default",
  "styles": {
    "backgroundColor": "#f8fafc",
    "backgroundOpacity": 85,
    "borderColor": "#cbd5e1",
    "borderWidth": 1,
    "borderRadius": 12
  }
}

Para compatibilidade com prompts de agente mais antigos, chaves de estilo de nível superior, como backgroundColor, backgroundOpacity, borderColor, borderWidth e borderRadius, também são aceitas e salvas sob styles.

E-mail Transacional

FerramentaDescrição
list_transactional_emailsPesquise/filtre modelos e classifique por métricas de entrega; retorna assuntos e URLs do painel.
get_transactional_emailLeia um e-mail transacional por ID ou slug.
create_transactional_emailCrie um modelo transacional a partir de um prompt, HTML ou blocos.
update_transactional_emailAtualize metadados transacionais ou conteúdo do corpo.
send_emailEnvie um e-mail por modelo ou HTML para destinatários compartilhados em Para, Cc e Cco.

Modelos transacionais criados por prompt são gerados no servidor e, por padrão, ficam desabilitados para revisão. Modelos HTML ou de blocos explícitos mantêm o padrão de compatibilidade de habilitado; passe enabled explicitamente para substituir qualquer um dos padrões. Para um envio direto, passe to, subject e html; o servidor MCP mapeia html para o campo body da API transacional. Para um e-mail transacional salvo, passe o slug da API dele pelo campo templateId com nome de compatibilidade. Para envios transacionais, to, cc e bcc aceitam cada um um endereço ou um array de até 50. A API envia um e-mail com uma lista de destinatários compartilhada e remove duplicatas entre campos na ordem de prioridade to, depois cc e depois bcc. Envios de marketing ainda exigem exatamente um endereço to aceito e não suportam destinatários adicionais. As variáveis send_email suportam arrays aninhados para blocos repetidos, como { "event": { "items": [...] } }. Quando o destinatário corresponde a um assinante armazenado por ID externo ou e-mail, os nomes próprios e sobrenomes salvos preenchem automaticamente variáveis de nome omitidas. Valores explícitos, incluindo espaços em branco, têm precedência. O array opcional attachments aceita até 10 arquivos / 7MB no total. Cada item precisa de filename e exatamente um de Base64 content ou um path HTTP(S) público. Defina contentId para incorporar uma imagem CID referenciada no HTML e, opcionalmente, defina contentType para substituir a detecção de MIME. Quando trackingSettings é omitido, os padrões de rastreamento da API transacional da empresa são aplicados. Use trackingSettings.clickTracking: false ou trackingSettings.openTracking: false para desativar a reescrita de links ou o pixel de abertura para um envio. Essas opções por envio apenas optam por sair; elas não podem ativar rastreamento desativado por um padrão da conta ou da API transacional. Use get_tracking_settings e update_tracking_settings para inspecionar ou alterar esses padrões.

Para tentativas de agente e fluxo de trabalho, inclua um idempotencyKey estável (até 255 caracteres) em send_email. Use uma chave por e-mail lógico e envie os mesmos argumentos ao tentar novamente; a chave permanece válida por 14 dias.

Analytics

FerramentaDescrição
get_statsObtenha estatísticas gerais para 7d, 30d ou 90d; filtre por tipo estrutural de e-mail.
get_transactional_statsObtenha métricas de todos os tempos ou com escopo de tempo para um e-mail transacional salvo por ID ou slug.
get_campaign_statsObtenha desempenho de campanha, métricas de resposta, metas de conversão anexadas e resumos de Poll/NPS.
list_poll_responsesListe a resposta mais recente de Poll/NPS de cada respondente por bloco, com identidade e tempo de resposta.
get_sequence_statsObtenha desempenho agregado e por etapa da sequência, além de contagens ativas/aguardando inscrição ao vivo por nó atual.
list_email_metricsCompare funis de campanha e etapas de sequência, respostas, conversões e receita, incluindo etapas entre sequências.
list_campaign_eventsListe eventos de e-mail brutos paginados para uma campanha.
list_sequence_eventsListe eventos brutos paginados para uma sequência, opcionalmente com escopo para uma etapa de e-mail.
get_subscriber_activityObtenha estatísticas de e-mail do assinante, atividade e inscrições.

Filtros de eventos de campanha e sequência aceitam transport_failure junto com eventos de entrega, bounce, reclamação, engajamento, cancelamento de inscrição e atraso. Falhas de transporte descrevem infraestrutura MTA ou esgotamento do caminho de saída; elas não classificam um endereço de destinatário válido como bounce.

As ferramentas de analytics excluem aberturas/cliques detectados de bot, scanner, pré-visualização de link e ativos rastreados por padrão. Passe includeMachineEngagement: true para get_stats, get_campaign_stats, get_sequence_stats, get_ab_test_stats, get_subscriber ou get_subscriber_activity quando precisar de diagnósticos brutos de engajamento; linhas de atividade de abertura/clique incluídas expõem campos machine, engagementQuality e classificationReasons onde a API retorna atividade em nível de evento.

get_sequence_stats.enrollmentCounts é um instantâneo ao vivo de execuções de inscrição ativas e aguardando, agrupadas por nó atual. Ele conta tokens de inscrição em vez de assinantes necessariamente distintos, e não é limitado por filtros históricos de period, start ou end.

Use list_email_metrics para comparações entre campanhas ou etapas de sequência. Passe step com valores opcionais de sequenceId para totalizar a mesma etapa entre sequências; use o automationNodeId retornado com list_sequence_events ou list_email_sends para inspecionar destinatários. campaignId não pode ser combinado com sequenceId ou step. Escopos explícitos de campanha e sequência retêm e-mails configurados com zero atividade para que desempenhos fracos não sejam omitidos silenciosamente.

Passe emailType: "transactional" para get_stats para taxas de entrega, abertura, clique e resposta da API de Envio e SMTP transacional. Isso inclui envios diretos e de modelo salvo. Use o emailSendId retornado por send_email com get_email_send quando precisar do status e da linha do tempo de eventos de uma entrega. Use get_transactional_stats quando precisar de taxas agregadas para um e-mail transacional salvo. A resposta inclui links mais clicados, reclamações, respostas, classificações mais recentes de bounce permanente/transitório e contagens separadas de abertura/clique humano e máquina. Envios de conteúdo direto não têm um ID de modelo estável e permanecem disponíveis por meio de estatísticas transacionais da conta e busca de entrega.

Quando uma campanha coleta respostas de Poll ou NPS, get_campaign_stats inclui um array polls de nível superior. Cada assinante conta uma vez por bloco de poll usando sua resposta mais recente. Resumos de NPS incluem a pontuação, a média e contagens de promotores/passivos/detratores. Estes são resumos de resposta vitalícios mesmo quando métricas de engajamento usam um filtro de tempo.

Use list_poll_responses para ler quem respondeu o quê e quando. Ele retorna a resposta mais recente de cada assinante por bloco de poll, da mais nova para a mais antiga, incluindo o e-mail, valor armazenado, chave de atributo e tempo de resposta. Passe blockId para definir escopo de um poll; para uma etapa de e-mail de sequência, passe o ID do nó de automação como campaignId. Não reconstrua este histórico escaneando atributos de assinante: um atributo não tem timestamp de resposta e pode ter sido sobrescrito por um e-mail posterior que reutilizou a mesma chave.

Para listar os respondentes históricos exatos por trás de uma contagem, chame create_segment com o campo pollResponse, operador is e um valor JSON com escopo para a campanha e o blockId do resumo:

{
  "v": 1,
  "campaignId": "camp_123",
  "blockId": "poll_1",
  "match": { "kind": "answer", "value": "loved" }
}

Para NPS, use uma correspondência como {"kind":"npsBucket","bucket":"detractors"}; buckets válidos são promoters, passives e detractors. O attributeKey do resumo armazena a resposta atual/mais recente do assinante e pode ser sobrescrito por um poll posterior que reutilize a chave, então não é um drill-down histórico exato.

Equipe, Caixa de Entrada, Webhooks

FerramentaDescrição
list_team_membersListe membros da equipe e convites pendentes.
invite_team_memberConvide um colega como administrador ou visualizador, com acesso opcional de cobrança.
cancel_team_invitationCancele um convite de equipe pendente.
list_conversationsListe conversas de resposta de assinantes com filtros de status e não lidas.
get_conversationLeia uma conversa e seu histórico de mensagens.
reply_to_conversationColoque na fila uma resposta de saída ou adicione uma nota interna.
update_conversation_statusAbra ou feche uma conversa.
mark_conversation_readMarque todas as mensagens em uma conversa como lidas.
list_webhooksListe endpoints de webhook de saída.
create_webhookCrie um endpoint e retorne seu segredo de assinatura único no MCP padrão; omitido na rota revisada pela OpenAI.
update_webhookAtualize nome, URL, eventos ou status do webhook.
delete_webhookExclua permanentemente um endpoint de webhook e o histórico de entrega.
test_webhookEnvie um evento de teste para um endpoint de webhook.
list_webhook_deliveriesListe tentativas de entrega recentes para um webhook.
replay_webhook_deliveryReproduza uma entrega de webhook.

Alterações de consentimento por lista estão disponíveis como eventos de saída opt-in: subscriber.list_subscribed e subscriber.list_unsubscribed. Seus payloads identificam o assinante e a lista, relatam action como added ou removed, e incluem a alteração source (por exemplo, preferences_page, dashboard, api ou automation).

Use o evento email.failed para falhas terminais de entrega, como caminhos de transporte MTA esgotados. Bounces de destinatário continuam usando email.bounced.

Use o evento campaign.sent somente explícito quando um fluxo de trabalho precisar de uma notificação terminal após uma campanha de e-mail ou SMS se estabelecer, incluindo um envio válido com zero destinatários. Ele não é adicionado quando create_webhook omite events no MCP padrão; na rota revisada pela OpenAI, adicione-o no painel ao criar ou editar o webhook.

Geração de IA

FerramentaDescrição
generate_emailGere blocos de e-mail com marca a partir de um prompt.
generate_sequenceAlias obsoleto que persiste um rascunho de sequência baseado em meta.
generate_subject_linesGere variantes de linha de assunto A/B.

O conteúdo de e-mail gerado inclui o logotipo e o rodapé da empresa por padrão. generate_email aceita applyBranding: false para blocos de conteúdo bruto e emailType: "transactional" para um rodapé sem link de cancelamento de inscrição. Campanhas baseadas em prompt herdam a fonte de e-mail configurada da empresa. O conteúdo gerado é retornado como conteúdo de rascunho para revisão. Use create_sequence para gerar e persistir um rascunho de sequência desativado que aparece em list_sequences; o alias obsoleto generate_sequence faz o mesmo.

SMS

FerramentaDescrição
generate_smsGere textos de SMS a partir de um prompt.
get_sms_settingsLeia a prontidão do add-on de SMS, créditos, padrões e números provisionados.
get_sms_usageCompare envios, resultados de entrega, créditos cobrados, última atividade e envios de teste por número.
update_sms_number_labelAtualize o rótulo de um número ou a substituição do prefixo da marca por número.
release_sms_numberDevolva permanentemente um número à operadora e libere o espaço dele no workspace.
send_test_smsEnvie uma mensagem de teste, opcionalmente escolhendo um remetente provisionado com fromNumberId.

release_sms_number é irreversível. Etapas de campanha ou sequência vinculadas a um número liberado pularão os envios de SMS até serem redirecionadas para um número ativo. get_sms_usage relata totais de produção separadamente de testSends. Quando send_test_sms omite fromNumberId, ele usa o mesmo padrão de número ativo mais antigo dos envios de produção. Envios de teste são mensagens reais, com cobrança de créditos, que ignoram o horário de silêncio e são limitados a 100 por empresa em uma janela contínua de 24 horas.

Feedback do Produto

Use submit_feedback somente quando o usuário pedir explicitamente ao assistente para enviar feedback à equipe Sequenzy. O MCP padrão pode incluir os campos estruturados de reprodução userIntent, toolCalls, expected, actual e resourceIds quando necessário para esse relatório. A rota revisada pela OpenAI aceita apenas a mensagem, a categoria e o contexto opcional de fluxo de trabalho generalizado. Não inclua dados não relacionados de assinantes, conteúdo de e-mail, payloads brutos de API, dados de depuração ou segredos.

Recursos

O servidor também expõe recursos MCP somente leitura.

RecursoDescrição
sequenzy://dashboardEstatísticas gerais ao vivo dos últimos 7 dias.
sequenzy://companyConfigurações atuais da empresa e de localização.
sequenzy://campaigns/recentÚltimas 10 campanhas com status e estatísticas básicas.
sequenzy://subscribers/recentAssinantes adicionados mais recentemente.
sequenzy://subscribers/engagedAssinantes mais ativos ou engajados.
sequenzy://sequencesTodas as sequências com status.
sequenzy://templatesModelos com status de localização.
sequenzy://segmentsSegmentos salvos com contagens de assinantes.
sequenzy://tagsTags com contagens de uso.
sequenzy://healthMétricas de entregabilidade e status de saúde.
sequenzy://email-blocksReferência de campos para cada tipo de bloco de e-mail.
sequenzy://app-routesModelos de rotas do painel e abas de configurações.

Exemplos de Prompts

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?

Segurança

  • Use chaves de API pessoais, não segredos compartilhados da equipe.
  • As chaves acessam apenas empresas que seu usuário Sequenzy pode acessar.
  • Revogue chaves em Configurações -> Chaves de API quando o acesso não for mais necessário.
  • Mantenha os prompts de aprovação do cliente ativados para envios, agendamentos, exclusões e alterações em massa.
  • Prefira fluxos de trabalho de rascunho para campanhas e sequências e revise no Sequenzy antes do lançamento.

Solução de Problemas

SEQUENZY_API_KEY environment variable is required

Defina SEQUENZY_API_KEY na configuração do cliente MCP ou execute:

npx @sequenzy/setup

Chave de API Inválida

Crie uma nova chave pessoal em Configurações -> Chaves de API, atualize sua configuração MCP e reinicie o cliente.

Escopo de Chave de API Ausente

Chame get_account e inspecione apiKeyPermissions. Conexões locais devem abrir apiKeyPermissions.manageUrl, adicionar o escopo ausente à chave carregada e tentar novamente sem reiniciar. update_api_key pode fazer isso apenas para chaves de empresa que já possuem api_keys:manage; edite chaves pessoais na página de Chaves de API no nível da conta. Conexões OAuth hospedadas podem alternativamente desconectar e reautorizar com permissões mais amplas. O erro da ferramenta inclui o escopo ou os escopos exatos necessários.

Recursos Duplicados

Se uma chamada de ferramenta criaria um nome de segmento ou domínio de envio duplicado, o servidor retorna um code estável, um description amigável ao agente, um resolution concreto e um docsUrl. Para segmentos, chame list_segments e reutilize o ID de segmento existente ou escolha um nome diferente. Para sites, chame list_websites; se o domínio não estiver listado para a empresa selecionada, ele pertence a outra empresa ou conta e deve ser removido, reatribuído ou substituído por um domínio de envio diferente.

Ferramentas Não Aparecem

  • Confirme que npx está disponível no ambiente que o cliente usa.
  • Reinicie o cliente MCP após editar a configuração.
  • Verifique se a configuração está no local correto específico do cliente.

Problemas de Rede ou URL de API

O servidor usa https://api.sequenzy.com por padrão. Se você o substituir, verifique se SEQUENZY_API_URL aponta para uma URL base da API Sequenzy acessível.

Desenvolvimento

bun install
bun test
bun run type-check
bun run build

Os esquemas de ferramentas MCP devem permanecer compatíveis com clientes estritos:

  • As raízes inputSchema das ferramentas devem ser esquemas type: "object" simples.
  • Não publique anyOf em nenhum lugar dos esquemas de ferramentas.
  • Não coloque oneOf, allOf, enum ou not na raiz de um esquema de ferramenta.
  • Imponha requisitos condicionais nos manipuladores e cubra-os com testes.

Este repositório independente espelha o pacote MCP mantido no monorepo principal da Sequenzy. Consulte AGENTS.md para regras de sincronização.

Licença

MIT

Descoberta nativa para agentes

A Sequenzy publica manifestos legíveis por máquina para redes de agentes e descoberta no estilo A2A:

Esses arquivos descrevem a Sequenzy como uma capacidade autorizada de automação de e-mail para agentes. Eles excluem explicitamente casos de uso de raspagem, spam e prospecção não solicitada.

Funções no workspace

O acesso por chave de conta combina os escopos da chave com sua função atual no workspace. get_account relata escopos bloqueados em apiKeyPermissions.roleRestrictedScopes; canSendLive significa que pelo menos um fluxo de trabalho de entrega permitido está disponível, não que todas as ferramentas de envio sejam permitidas.

Você pode convidar um marketer para gerenciar assinantes, campanhas de marketing e sequências sem conceder acesso a e-mails transacionais, configurações do workspace, equipe ou cobrança. Os profissionais de marketing escolhem perfis existentes de remetente/resposta. Fontes de campanha, A/B e sequência com suporte transacional permanecem protegidas por meio de visualizações, compartilhamento, análises e histórico de envios. Profissionais de marketing e membros restritos não podem receber acesso de cobrança.