ManyChat Importer
O ManyChatWorkflowImporter converte um flow do ManyChat em nós internos do
workflow (actions) e em gatilhos (triggers). Ele:
- Mescla
contentsedraft_batch.contents, filtra itens removidos e resolve o root. - Mapeia mensagens, ações, condições e nós simples (
goto,smart_delay,note,split). - Normaliza IDs dos nós (ex.:
n1,n2) e reconectasuccess_target. - Coleta
tags,customFields,uploadsewarnings. - Extrai
keywords,triggerType,mediaTypes,postSelectederepliesListMessages.
Arquivo principal: packages/common/src/services/workflow/importers/manychat/importer.ts.
Como testar via CLI (npm run tool)
Seção intitulada “Como testar via CLI (npm run tool)”- Edite o input em
packages/common/src/tools/commands/manychat/input.jsoncom:flow: JSON do ManyChat.extra_data:custom_fieldsetags(note o snake_case aqui).
- Rode o comando na raiz do repo:
npm run tool manychat:import- Confira o output em
packages/common/src/tools/commands/manychat/output.json.workflowexiste quando a conversão passa.- Se falhar, verifique
errorewarnings.
Como testar via JSONs dos testes
Seção intitulada “Como testar via JSONs dos testes”Fixtures ficam em:
- Inputs:
packages/common/test/workflow-importer/manychat/input - Outputs:
packages/common/test/workflow-importer/manychat/output - Extra data:
packages/common/test/workflow-importer/manychat/input/extra-data.json
Uso via ManyChatTestFactory em:
packages/common/test/workflow-importer/manychat/specs/*.spec.ts.
Boilerplate comum:
factory.testAction('add_tag')factory.testMessage('text_message')factory.testNode('smart_delay')factory.testTrigger('instagram')factory.testFullImport('flow_full')factory.testValidation('flow_invalid', false)
Rodar testes do pacote:
npm run test -w @gaio/commonMelhores práticas
Seção intitulada “Melhores práticas”- Mantenha fixtures pequenas e focadas; deixe flows completos para o CLI.
- Atualize
extra-data.jsonquando adicionar tags/campos usados nos testes. - Cubra caminho feliz e warnings (ex.:
unsupported_node,unresolved_entity). - Verifique encadeamento
nexte normalização de IDs nos outputs esperados. - Para uploads, use URLs HTTP/HTTPS válidas para acionar
uploads. - Se alterar triggers, adicione casos com
keywordsewidgets.