ManyChat: evidências e recriação

Análise feita em 23/10/2026 a partir de fontes públicas, e como cada parte foi recriada no protótipo FluxoChat.

Método e limites. O ManyChat é um serviço web com login, e o processamento das automações acontece nos servidores deles. Por isso esta análise usou só o que é público: a especificação OpenAPI da API (api.manychat.com/swagger) e os artigos da central de ajuda (help.manychat.com). Não houve login, nem leitura do código privado, nem cópia de código, marca ou interface. O FluxoChat foi escrito do zero e reproduz o comportamento documentado.

1. O que o ManyChat é, em uma frase

Uma plataforma de automação de conversas: você monta fluxos visuais de mensagens e lógica, e eles são disparados por gatilhos (palavra-chave, comentário em post, primeira mensagem, resposta padrão, transmissão) nos canais Instagram, Messenger, WhatsApp, Telegram, TikTok, SMS e e-mail. Cada pessoa vira um contato com tags e campos.

2. Evidências por funcionalidade

FuncionalidadeO que a evidência mostraFonteNo FluxoChat
Blocos de conteúdoAs mensagens são feitas de blocos: Texto (com botões), Imagem, Atraso de digitação (“typing…”), Coleta de dados, Arquivo, Áudio e Vídeo.Content Block typesTexto, imagem, digitando e botões
Gatilho por palavra-chaveSeis regras: é (exata), contém, contém a palavra inteira, começa com, não contém e joinha (só no Messenger). Não diferencia maiúsculas. Se duas casarem, vale a que estiver mais acima na lista.Keywords TriggerAs 5 regras multicanal + prioridade pela ordem
Comentário → DMO fluxo mais usado: alguém comenta uma palavra num post e recebe uma DM automática, com resposta pública opcional no comentário.Auto-DM links from commentsModo “Comentar no post” + resposta pública
CondiçãoDivide o caminho em “atende / não atende” por tag, campo, origem do opt-in (widget, anúncio) etc.Condition BlockTag, campo (8 operadores), inscrição; E/OU
AçõesAdicionar/remover tag, definir/limpar campo, apagar contato, opt-in/out do canal, definir campo do bot, sequências, requisição HTTP externa, notificar a equipe, atribuir conversa, eventos de conversão.ActionsTags, campos, campo do bot, opt-in/out, notificar, HTTP
Atraso inteligenteEspera por duração (minutos, horas, dias) ou até uma data, com janela opcional de horário e dias permitidos para continuar.Smart DelayPor duração (com modo demonstração acelerado)
RandomizadorDivide em caminhos com porcentagens (teste A/B). Sem “caminho novo a cada vez”, o contato fica preso no primeiro caminho sorteado.RandomizerPorcentagens + comportamento fixo/aleatório
Coleta de dadosPergunta e espera a resposta (texto, e-mail, telefone, número…), valida e salva num campo do contato.Data Collection Block4 tipos com validação e mensagem de erro
VariáveisTextos personalizados com {{First_name}}, {{Last_name}} e qualquer campo de sistema ou personalizado.Variables{{first_name}}, campos e {{bot.campo}}
Boas-vindasA primeira automação que a pessoa recebe ao falar com a conta pela primeira vez.Welcome MessageConfigurável
Resposta padrãoRede de segurança: responde quando nenhuma outra automação casa com a mensagem.Default ReplyConfigurável
TransmissõesEnvio em massa para listas de contatos filtradas, em vários canais.BroadcastingFiltro por tag, só inscritos
Campos e tagsCampos de sistema, campos personalizados do contato e campos do bot (um valor global para todos).Custom User Fields and Bot FieldsOs três tipos
Iniciar outra automaçãoUm fluxo pode encadear outro.Start another automationBloco “Iniciar automação”
Pré-visualizaçãoTestar a automação antes de publicar.Preview automationsSimulador de chat + contador por bloco

3. A API pública (o modelo de dados real)

A especificação OpenAPI pública (/swagger/compileJson?type=Page_API, versão “beta”) lista 34 endpoints em três grupos. Ela mostra quais objetos existem no sistema e foi a base do modelo de dados do FluxoChat.

Página / conta (16)

getInfo · createTag · getTags · removeTag · removeTagByName · getWidgets · getGrowthTools · getFlows · createCustomField · getCustomFields · getOtnTopics · getBotFields · createBotField · setBotField · setBotFieldByName · setBotFields

Envio (3)

sendContent · sendContentByUserRef · sendFlow
O conteúdo segue o formato “dynamic block” e exige message_tag fora da janela de 24 h.

Contato (15)

getInfo · findByName · getInfoByUserRef · findByCustomField · findBySystemField · addTag(ByName) · removeTag(ByName) · setCustomField(s/ByName) · verifyBySignedRequest · createSubscriber · updateSubscriber

Objeto “Subscriber” (contato)

id, page_id, user_refs, first_name, last_name, name, gender, profile_pic, locale, language, timezone, live_chat_url, last_input_text, optin_phone, phone, optin_email, email, subscribed, last_interaction, last_seen, is_followup_enabled, ig_username, ig_id, whatsapp_phone, whatsapp_bsuid, whatsapp_username, optin_whatsapp, custom_fields, tags

Outros objetos: Tag {id, name} · Custom Field {id, name, type, description} · Bot Field {…, value} · Flow {ns, name, folder_id} · Growth Tool {id, name, type}. Limites de taxa entre 10 e 100 requisições/s por endpoint.

O FluxoChat usa a mesma ideia: contato com first_name, last_name, email, phone, subscribed, last_interaction, last_input_text, tags, custom fields; tags; campos personalizados com tipo; campos do bot com valor; fluxos com nome.

4. O que ficou de fora do protótipo

5. Como usar o FluxoChat

  1. Abra fluxochat/index.html no navegador. Ele já vem com 5 automações de exemplo.
  2. Vá em Simulador e mande “oi”: roda a boas-vindas. Teste também “tem cupom?”, “oferta” e, no modo Comentar no post, “quero o ebook”.
  3. Em Automações → Editar, monte fluxos: arraste o ● de uma saída até outro bloco, ou solte no vazio para criar um bloco novo.