Pular para o conteúdo

ManyChat Importer

O ManyChatWorkflowImporter converte um flow do ManyChat em nós internos do workflow (actions) e em gatilhos (triggers). Ele:

  • Mescla contents e draft_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 reconecta success_target.
  • Coleta tags, customFields, uploads e warnings.
  • Extrai keywords, triggerType, mediaTypes, postSelected e repliesListMessages.

Arquivo principal: packages/common/src/services/workflow/importers/manychat/importer.ts.


  1. Edite o input em packages/common/src/tools/commands/manychat/input.json com:
    • flow: JSON do ManyChat.
    • extra_data: custom_fields e tags (note o snake_case aqui).
  2. Rode o comando na raiz do repo:
Terminal window
npm run tool manychat:import
  1. Confira o output em packages/common/src/tools/commands/manychat/output.json.
    • workflow existe quando a conversão passa.
    • Se falhar, verifique error e warnings.

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:

Terminal window
npm run test -w @gaio/common

  • Mantenha fixtures pequenas e focadas; deixe flows completos para o CLI.
  • Atualize extra-data.json quando adicionar tags/campos usados nos testes.
  • Cubra caminho feliz e warnings (ex.: unsupported_node, unresolved_entity).
  • Verifique encadeamento next e normalização de IDs nos outputs esperados.
  • Para uploads, use URLs HTTP/HTTPS válidas para acionar uploads.
  • Se alterar triggers, adicione casos com keywords e widgets.