Sequenzy MCP
oficialFerramenta 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_liste . - 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_campaignesend_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_sequencee . - 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_statuseresume_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:
- Manifesto do servidor MCP:
server.json - Cartão de agente:
.well-known/agent-card.json - Manifesto de capacidade do agente:
agent-capability.json - Metadados de habilidade do OpenClaw:
openclaw/skill.json
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
- Abra o painel do Sequenzy.
- 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.
- Escolha um preset de permissão ou os escopos personalizados exatos que a integração precisa.
- 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
| Ferramenta | Descrição |
|---|---|
get_account | Obtenha informações da conta, empresas disponíveis, permissões atuais da chave e a URL de gerenciamento de chaves de API. |
select_company | Defina a empresa ativa para chamadas futuras de ferramentas. |
get_app_urls | Construa 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_company | Crie uma nova empresa ou marca. |
get_company | Leia 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_company | Edite 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_rules | Leia as regras de evento-para-etiqueta da empresa e se ela usa o preset de plataforma herdado. |
update_sync_rules | Substitua todas as regras de sincronização; passe [] para desativá-las ou null para optar pelo preset de plataforma SaaS/ecommerce. |
get_shopify_automation_settings | Leia as configurações de abandono de navegação, abandono de carrinho e queda de preço para a loja Shopify conectada. |
update_shopify_automation_settings | Atualize parcialmente as configurações de automação do Shopify ou redefina uma seção individual para os padrões da plataforma. |
create_api_key | Crie 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_handoff | Prepare 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_keys | Liste chaves de API da empresa como metadados não secretos para identificação e limpeza seguras. |
update_api_key | Renomeie uma chave de API da empresa ou substitua seu preset de permissões ou escopos sem alterar o valor da chave. |
revoke_api_key | Revogue permanentemente uma chave de API exata da empresa por ID após verificá-la com list_api_keys. |
delete_api_key | Alias de compatibilidade para revoke_api_key. |
list_websites | Liste domínios de envio com status agregado armazenado, SPF, DKIM e MAIL FROM. |
add_sending_domain | Adicione um domínio de envio e retorne seus registros de configuração de DNS específicos da coorte. |
add_website | Alias de compatibilidade para add_sending_domain. |
check_website | Leia os detalhes de verificação SPF, DKIM, MAIL FROM e agregados armazenados de um domínio de envio. |
verify_sending_domain | Execute uma nova verificação de DNS/provedor do domínio de envio e retorne status atual e diagnósticos. |
list_integrations | Liste integrações conectadas com saúde de conexão e sincronização, sem retornar credenciais. |
get_sending_status | Diagnostique envios ativos, pausados ou suspensos, incluindo denominadores de aplicação, portões de revisão e etapas de correção. |
resume_sending | Restaure uma pausa elegível por bounce rígido após confirmar explicitamente que a lista foi saneada. |
get_tracking_settings | Leia 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_settings | Atualize 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_guide | Obtenha exemplos de integração específicos por framework. |
get_integration | Inspecione uma integração conectada, seu roteamento de eventos, segmentação de listas, atividade recente e recomendações. |
list_integration_capabilities | Compare capacidades de provedores, estejam eles conectados ou não. |
connect_integration | Conecte 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_schema | Inspecione exemplos publicados de payloads de eventos, caminhos de propriedades, tipos e merge tags por provedor. |
list_integration_activity | Leia o log de atividade de webhook e sincronização retido específico da integração. |
set_integration_sync_enabled | Ative ou desative importações em massa e backfills enquanto mantém webhooks ao vivo conectados. |
set_integration_list_targeting | Escolha quais listas contatos criados por uma integração suportada entram em futuras gravações do provedor. |
sync_integration | Enfileire 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_pixel | Leia o estado ao vivo do pixel/configuração do Shopify e distinga eventos escuros confirmados de uma leitura desconhecida. |
activate_integration_pixel | Instala ou reatribui o pixel da vitrine da Shopify; é idempotente quando já está atualizado. |
list_web_tracking_keys | Lista chaves de rastreamento de site publicáveis, restrições de origem, estado de uso e trechos de instalação. |
get_web_tracking_key | Obtém uma chave de rastreamento de site com seu trecho de instalação exato e endpoint de ingestão. |
create_web_tracking_key | Cria uma chave de rastreamento publicável para uma vitrine ou site que não seja da Shopify. |
update_web_tracking_key | Renomeia, restringe, revoga ou reativa uma chave de rastreamento de site. |
delete_web_tracking_key | Exclui permanentemente uma chave de rastreamento de site após a remoção do trecho. |
list_sender_profiles | Lista perfis de remetente e de resposta, padrões e prontidão do domínio de envio. |
update_sender_profile | Renomeia um perfil de remetente ou de resposta sem alterar os padrões da conta. |
delete_sender_profile | Exclui 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_preferences | Lê 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_preferences | Atualiza 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_email | Renderiza 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
| Ferramenta | Descrição |
|---|---|
add_subscriber | Adicionar um assinante; o status é somente na criação, então use update_subscriber para um contato existente. |
create_subscriber_import | Enfileirar 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_import | Ler progresso, contagens de resultados de linhas e resumos de falhas para uma importação enfileirada. |
update_subscriber | Atualizar campos nativos de perfil e telefone, consentimento de SMS, atributos, tags ou status global. |
remove_subscriber | Cancelar a inscrição preservando o histórico de supressão, ou excluir permanentemente apenas com hardDelete: true. |
get_subscriber | Buscar detalhes do assinante por email ou ID externo. |
search_subscribers | Pesquisar por consulta, tags, lista, status, segmento ou um atributo personalizado, com paginação automática ou retomável. |
trigger_subscriber_event | Emitir um evento personalizado exatamente como uma integração faria, aplicando regras de sincronização e correspondendo a gatilhos de sequência. |
trigger_subscriber_events | Emitir vários eventos personalizados ordenados para um assinante. |
import_subscriber_events | Importar 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_tags | Adicionar tags a até 500 assinantes existentes; requer subscribers:tag e pode também exigir tags:write. |
bulk_remove_subscriber_tags | Remover 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
| Ferramenta | Descrição |
|---|---|
list_products | Lista produtos sincronizados de dados Stripe, Shopify, WooCommerce, manuais ou da Commerce API. |
upsert_products | Cria ou atualiza até 100 produtos da Commerce API identificados pelo seu ID de produto. |
delete_product | Exclui um produto enviado anteriormente pela Commerce API. |
attach_product_file | Anexa um arquivo de entrega hospedado ou enviado localmente a um produto. |
remove_product_file | Remove um arquivo de entrega de produto anexado. |
sync_products | Coloca 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
| Ferramenta | Descrição |
|---|---|
upload_image_asset | Envia 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
| Ferramenta | Descrição |
|---|---|
list_tags | Lista todas as tags. |
create_tag | Cria uma definição de tag com uma cor opcional. |
update_tag | Atualiza a cor de uma tag. |
delete_tag | Exclui uma tag e a remove dos assinantes. |
list_lists | Lista listas de assinantes. |
create_list | Cria uma lista de assinantes. |
update_list | Renomeia ou descreve uma lista de assinantes. |
delete_list | Exclui uma lista de assinantes. |
add_subscribers_to_list | Adiciona até 500 assinantes a uma lista a partir de um array de e-mails. |
remove_subscribers_from_list | Remove até 500 assinantes de uma lista. |
list_segments | Lista segmentos salvos e contagens. |
create_segment | Cria segmentos com filtros de array aninhados ou de mesmo elemento. |
update_segment | Atualiza nome, filtros, grupo raiz ou operador de junção do segmento. |
delete_segment | Exclui um segmento (requer segments:delete). |
get_segment_count | Visualiza 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_nottag:contains,not_contains,is_empty,is_not_emptyemail:contains,not_containsemailProvider,list:is,is_not,is_empty,is_not_emptyfirstName,lastName:contains,not_contains,is_empty,is_not_emptyadded:less_than,more_thanattribute:is,is_not,is_empty,is_not_empty,gte,lte,gt,lt,contains,not_containsevent, campos de engajamento de e-mail:is,is_not,at_least,less_than_countemailBounced: também suportais_temporary_bounce,is_permanent_bouncestripeProduct:is,is_not,at_least,less_than_countstripeCurrentProduct,stripeTrialProduct:is,is_not,gte,lte,gt,ltcommerceProduct:is,is_not,at_least,less_than_count
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)
| Ferramenta | Descrição |
|---|---|
list_audience_syncs | Lista sincronizações de segmento para público com agendamento e status da última sincronização. |
list_ad_accounts | Lista as contas de anúncios Meta disponíveis para sincronização. |
create_audience_sync | Envia um segmento para um público personalizado Meta em um agendamento. |
update_audience_sync | Altera a frequência de sincronização (hourly, daily, weekly) ou pausa/retoma. |
delete_audience_sync | Remove um mapeamento de sincronização; o público Meta em si é mantido. |
sync_audience_now | Aciona 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
| Ferramenta | Descrição |
|---|---|
list_templates | Lista modelos com status de localização, rótulo e filtragem por isTemplate, além de paginação. |
get_template | Lê detalhes do modelo, conteúdo e variantes localizadas. |
create_template | Cria modelos a partir de um prompt, HTML ou blocos Sequenzy; use isTemplate: true para salvar um design mestre reutilizável. |
update_template | Atualiza 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_localization | Cria ou substitui uma variante localizada fornecida pelo chamador. |
sync_template_localizations | Enfileira tradução por IA para localidades não primárias selecionadas ou todas as habilitadas. |
delete_template | Exclui 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
| Ferramenta | Descrição |
|---|---|
list_email_components | Lista seções e rodapés salvos, opcionalmente limitados a padrões fixados. |
get_email_component | Lê blocos, metadados, versão e estado de slot padrão de um componente. |
get_default_email_component | Lê o componente atualmente fixado a um slot padrão, como footer. |
set_default_email_component | Cria ou substitui o rodapé padrão da empresa usado por e-mails de blocos recém-criados. |
create_email_component | Salva uma seção ou rodapé reutilizável a partir de uma lista de blocos. |
update_email_component | Atualiza metadados do componente ou substitui seus blocos e incrementa sua versão. |
delete_email_component | Exclui 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
| Ferramenta | Descrição |
|---|---|
list_ab_tests | Lista testes A/B e variantes, opcionalmente filtrados por sequência. |
get_ab_test | Obtém configurações efetivas, variantes, status de localização e cópia de etapa de sequência. |
get_ab_test_stats | Obtém estatísticas agregadas e por variante. |
restart_ab_test | Reinicia um teste A/B parado ou concluído. |
select_ab_test_winner | Seleciona um vencedor de teste de campanha e enfileira a entrega restante. |
update_ab_test | Atualiza configurações de seleção de vencedor de campanha ou sequência. |
update_ab_test_variant | Atualiza rascunho de campanha ou cópia de variante de sequência. |
create_ab_test | Cria um teste de campanha ou converte uma etapa de e-mail de sequência. |
add_ab_test_variant | Adiciona uma variante a um teste A/B existente. |
delete_ab_test_variant | Exclui uma variante de teste A/B em rascunho. |
delete_ab_test | Exclui 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
| Ferramenta | Descrição |
|---|---|
list_campaigns | Lista 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_campaign | Obtém detalhes, estatísticas, feedback do revisor e ritmo de entrega registrado de uma campanha. |
get_campaign_audience | Resolve segmentação salva, referências ausentes, um resumo em linguagem simples e a contagem de destinatários ao vivo. |
list_campaign_goals | Lista as metas de conversão persistidas para uma campanha de e-mail (SMS não é suportado). |
create_campaign_goal | Adiciona uma meta de conversão de campanha de e-mail por evento, atributo de assinante ou aplicação de tag. |
update_campaign_goal | Atualiza uma meta de conversão de campanha de e-mail persistida. |
delete_campaign_goal | Exclui uma meta de conversão de campanha de e-mail persistida. |
list_email_sends | Pesquisa 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_send | Inspeciona uma entrega na fila, de teste, enviada, suprimida ou com falha pelo ID durável de envio de e-mail. |
list_recipient_suppressions | Lista destinatários suprimidos associados, incluindo endereços inválidos globais protegidos e reclamações. |
get_recipient_suppression | Verifica bounce local, reclamação, higiene de e-mail e supressão SES regional para um destinatário exato. |
remove_recipient_suppression | Remove uma escalada de soft-bounce do workspace, preservando proteções globais, de hard-bounce e de reclamações. |
create_campaign | Cria uma campanha com conteúdo, dados e substituições opcionais de identidade De/Responder-Para. |
update_campaign | Atualiza uma campanha em rascunho, incluindo conteúdo, dados, identidades, público e configuração STO persistida. |
schedule_campaign | Agenda ou reagenda uma campanha, opcionalmente substituindo STO e sua janela de entrega de 1 a 24 horas. |
send_test_email | Envia um e-mail de teste para um endereço. |
render_email | Renderiza HTML exato seguro para e-mail e relata tags não resolvidas, incluindo erros de digitação ocultos por padrões. |
cancel_campaign | Cancela uma campanha agendada ou em envio. |
pause_campaign | Pausa uma campanha em envio. |
resume_campaign | Retoma uma campanha pausada, opcionalmente distribuindo a entrega ao longo do tempo. |
delete_campaign | Exclui uma campanha. |
duplicate_campaign | Duplica uma campanha em um novo rascunho. |
resend_campaign_to_non_openers | Cria 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
| Ferramenta | Descrição |
|---|---|
list_forms | Lista 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_form | Cria e publica um formulário salvo com campos padrão de email/nome, configurações de público, tema e comportamento de sucesso. |
update_form | Atualiza um formulário salvo, incluindo seu array completo de blocos ordenados e campos personalizados tipados. |
get_form_embed | Retorna 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
| Ferramenta | Descrição |
|---|---|
list_popups | Lista pop-ups salvos com status e estatísticas de engajamento, opcionalmente incluindo conteúdo completo. |
get_popup | Obtém os blocos, gatilho, segmentação, agendamento, frequência, tema e código de incorporação publicado de um pop-up. |
create_popup | Cria um pop-up a partir de um modelo inicial, publicado por padrão, e retorna seu script de implantação. |
update_popup | Atualiza parcialmente o texto, público, comportamento, tema, blocos ou status de publicação do pop-up. |
get_popup_embed | Retorna trechos de incorporação HTML sem segredos, React/Next.js, WordPress e Shopify. |
duplicate_popup | Copia um pop-up em um rascunho com contadores de engajamento independentes. |
delete_popup | Exclui 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
| Ferramenta | Descrição |
|---|---|
list_landing_pages | Lista páginas de destino com status, métricas, conteúdo e URLs. |
get_landing_page | Obtém detalhes da página de destino, conteúdo do construtor, métricas e URLs publicadas. |
render_landing_page | Retorna uma prévia de visitante assinada de 24 horas sem publicar, contar visualizações ou coletar inscrições. |
create_landing_page | Cria uma página de destino em rascunho a partir do conteúdo padrão do modelo ou JSON. |
update_landing_page | Edita o nome, slug ou conteúdo completo compatível com o editor de uma página de destino. |
publish_landing_page | Publica uma página de destino, opcionalmente salvando edições primeiro. |
unpublish_landing_page | Retorna uma página de destino ao status de rascunho, opcionalmente salvando edições primeiro. |
duplicate_landing_page | Duplica uma página de destino em um novo rascunho com um slug único. |
delete_landing_page | Exclui uma página de destino não publicada. |
connect_landing_page_domain | Conecta um domínio personalizado de página de destino e retorna detalhes de configuração de DNS. |
update_landing_page_domain_settings | Substitui 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
| Ferramenta | Descrição |
|---|---|
list_sequences | Lista sequências com status do dashboard, pesquisa, rótulo, limite e filtros de deslocamento. |
get_sequence | Obté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_enrollments | Lista 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_email | Envia uma etapa de e-mail de ação salva para 1 a 10 revisores; etapas A/B são inspecionadas por variante. |
create_sequence | Cria um rascunho em branco do dashboard ou uma sequência gerada por IA/etapas explícitas. |
update_sequence | Atualiza identidade, configurações, inscrição, etapas existentes, lógica de ramificação ou insere etapas lineares. |
update_sequence_node | Correção de um nó de sequência existente com reconhecimento de tipo. |
update_sequence_nodes | Corrige atomicamente vários nós de sequência existentes. |
insert_sequence_step | Insere qualquer etapa tipada do dashboard, incluindo geração por IA, webhooks de saída, esperas e ramificações conectadas. |
edit_sequence_graph | Move, reconecta, exclui ou duplica nós do grafo; relata destinatários movidos ou concluídos. |
simulate_sequence | Executa 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_sequence | Ativa uma sequência. |
disable_sequence | Congela uma sequência, bloqueando novas inscrições e mantendo os destinatários atuais. |
duplicate_sequence | Cria uma cópia de rascunho independente do grafo, e-mails e testes A/B da sequência. |
archive_sequence | Move uma sequência para o arquivo do dashboard e interrompe novas inscrições. |
unarchive_sequence | Restaura uma sequência arquivada como rascunho desabilitado. |
list_sequence_goals | Lista as metas de conversão por evento, atributo de assinante e etiqueta aplicada persistidas para uma sequência. |
create_sequence_goal | Adiciona uma meta de conversão por evento, atributo de assinante ou etiqueta aplicada. |
update_sequence_goal | Atualiza uma meta de conversão de sequência persistida. |
delete_sequence_goal | Exclui uma meta de conversão de sequência persistida. |
get_sequence_inbound_webhook | Lê 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_webhook | Configura o endpoint, mapeamento de campos e amostra; a rota OpenAI remove a URL com credenciais do resultado. |
rotate_sequence_inbound_webhook_secret | Rotaciona 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_enrollments | Interrompe novas inscrições para uma sequência ativa enquanto os destinatários atuais continuam. |
resume_sequence_enrollments | Reabre novas inscrições para uma sequência ativa sem alterar os destinatários atuais. |
enroll_subscribers_in_sequence | Inscreve até 500 assinantes por e-mail, ID de assinante ou ambos, com idempotência segura para novas tentativas. |
cancel_sequence_enrollments | Interrompe inscrições ativas ou em espera por valores de campos de assinante ou evento de entrada. |
realign_sequence_enrollments | Visualiza ou enfileira a movimentação de esperas ativas para mais cedo, na abertura de sua janela de envio. |
get_sequence_enrollment_realignment | Consulta um trabalho de realinhamento aplicado e lê seu resultado concluído ou cursor de continuação. |
delete_sequence | Exclui 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"comlistId, várioslistIdsoulistScope:any_contact(o padrão) inscreve todo contato adicionado, incluindo contatos que não entram em nenhuma lista, enquantoany_listaguarda uma associação real a uma lista.trigger: "tag_added"comtagNameou váriostagNames; qualquer etiqueta configurada inscreve o contato.trigger: "segment_entered"maissegmentIdpara 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"maiseventName,inactiveDayseinactivityBaselineopcional (sequence_created_atousubscriber_created_at).goalpara 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.stepsexplícito comblocksda Sequenzy.stepsexplí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 viawaitUntilou portões de calendário viawaitUntilWeekday. 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_discountcria 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 umenrollmentFieldPathescalar para automações de eventos específicos de produto, variante, pedido ou assinatura. A travessia de arrays com[]pertence apropertyFilters, 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
| Ferramenta | Descrição |
|---|---|
get_email_block_schema | Liste 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
| Ferramenta | Descrição |
|---|---|
list_transactional_emails | Pesquise/filtre modelos e classifique por métricas de entrega; retorna assuntos e URLs do painel. |
get_transactional_email | Leia um e-mail transacional por ID ou slug. |
create_transactional_email | Crie um modelo transacional a partir de um prompt, HTML ou blocos. |
update_transactional_email | Atualize metadados transacionais ou conteúdo do corpo. |
send_email | Envie 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
| Ferramenta | Descrição |
|---|---|
get_stats | Obtenha estatísticas gerais para 7d, 30d ou 90d; filtre por tipo estrutural de e-mail. |
get_transactional_stats | Obtenha métricas de todos os tempos ou com escopo de tempo para um e-mail transacional salvo por ID ou slug. |
get_campaign_stats | Obtenha desempenho de campanha, métricas de resposta, metas de conversão anexadas e resumos de Poll/NPS. |
list_poll_responses | Liste a resposta mais recente de Poll/NPS de cada respondente por bloco, com identidade e tempo de resposta. |
get_sequence_stats | Obtenha desempenho agregado e por etapa da sequência, além de contagens ativas/aguardando inscrição ao vivo por nó atual. |
list_email_metrics | Compare funis de campanha e etapas de sequência, respostas, conversões e receita, incluindo etapas entre sequências. |
list_campaign_events | Liste eventos de e-mail brutos paginados para uma campanha. |
list_sequence_events | Liste eventos brutos paginados para uma sequência, opcionalmente com escopo para uma etapa de e-mail. |
get_subscriber_activity | Obtenha 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
| Ferramenta | Descrição |
|---|---|
list_team_members | Liste membros da equipe e convites pendentes. |
invite_team_member | Convide um colega como administrador ou visualizador, com acesso opcional de cobrança. |
cancel_team_invitation | Cancele um convite de equipe pendente. |
list_conversations | Liste conversas de resposta de assinantes com filtros de status e não lidas. |
get_conversation | Leia uma conversa e seu histórico de mensagens. |
reply_to_conversation | Coloque na fila uma resposta de saída ou adicione uma nota interna. |
update_conversation_status | Abra ou feche uma conversa. |
mark_conversation_read | Marque todas as mensagens em uma conversa como lidas. |
list_webhooks | Liste endpoints de webhook de saída. |
create_webhook | Crie um endpoint e retorne seu segredo de assinatura único no MCP padrão; omitido na rota revisada pela OpenAI. |
update_webhook | Atualize nome, URL, eventos ou status do webhook. |
delete_webhook | Exclua permanentemente um endpoint de webhook e o histórico de entrega. |
test_webhook | Envie um evento de teste para um endpoint de webhook. |
list_webhook_deliveries | Liste tentativas de entrega recentes para um webhook. |
replay_webhook_delivery | Reproduza 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
| Ferramenta | Descrição |
|---|---|
generate_email | Gere blocos de e-mail com marca a partir de um prompt. |
generate_sequence | Alias obsoleto que persiste um rascunho de sequência baseado em meta. |
generate_subject_lines | Gere 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
| Ferramenta | Descrição |
|---|---|
generate_sms | Gere textos de SMS a partir de um prompt. |
get_sms_settings | Leia a prontidão do add-on de SMS, créditos, padrões e números provisionados. |
get_sms_usage | Compare envios, resultados de entrega, créditos cobrados, última atividade e envios de teste por número. |
update_sms_number_label | Atualize o rótulo de um número ou a substituição do prefixo da marca por número. |
release_sms_number | Devolva permanentemente um número à operadora e libere o espaço dele no workspace. |
send_test_sms | Envie 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.
| Recurso | Descrição |
|---|---|
sequenzy://dashboard | Estatísticas gerais ao vivo dos últimos 7 dias. |
sequenzy://company | Configurações atuais da empresa e de localização. |
sequenzy://campaigns/recent | Últimas 10 campanhas com status e estatísticas básicas. |
sequenzy://subscribers/recent | Assinantes adicionados mais recentemente. |
sequenzy://subscribers/engaged | Assinantes mais ativos ou engajados. |
sequenzy://sequences | Todas as sequências com status. |
sequenzy://templates | Modelos com status de localização. |
sequenzy://segments | Segmentos salvos com contagens de assinantes. |
sequenzy://tags | Tags com contagens de uso. |
sequenzy://health | Métricas de entregabilidade e status de saúde. |
sequenzy://email-blocks | Referência de campos para cada tipo de bloco de e-mail. |
sequenzy://app-routes | Modelos 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
npxestá 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
inputSchemadas ferramentas devem ser esquemastype: "object"simples. - Não publique
anyOfem nenhum lugar dos esquemas de ferramentas. - Não coloque
oneOf,allOf,enumounotna 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:
- Endpoint MCP remoto:
https://api.sequenzy.com/v1/mcp - Manifesto de capacidade do agente:
agent-capability.json - Cartão de agente no estilo A2A:
.well-known/agent-card.json - Metadados de habilidade OpenClaw/Moltbot:
openclaw/skill.json - Guia operacional OpenClaw/Moltbot:
openclaw/SKILL.md
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.