Workflows que chamam outros workflows: sub-rotinas e ramos em paralelo
Reutilize logica comum com sub-workflows e acelere automacoes rodando ramos em paralelo no Omnifox, com Chamar outro workflow, Executar em paralelo e Try/Catch.
Quando suas automacoes crescem, voce comeca a copiar e colar os mesmos tres ou quatro nos em cada fluxo: etiquetar, notificar a equipe, registrar no CRM. Esse copy-paste e divida tecnica. A solucao sao os sub-workflows e a execucao em paralelo: voce extrai a logica comum para um workflow reutilizavel e o invoca a partir de qualquer outro, alem de rodar varios ramos ao mesmo tempo para o fluxo nao ficar lento. Este guia monta o padrao passo a passo com nos reais do Omnifox.
O gatilho Manual: a porta de um sub-workflow
Um workflow normal comeca por um evento (mensagem, etiqueta, deal). Mas se voce quer que outro workflow o chame, o gatilho dele precisa ser Manual (chamado por outro workflow). Esse gatilho nao escuta nenhum evento externo: so dispara quando um no Chamar outro workflow o invoca. Pense nele como uma funcao para a qual voce passa o contato e a conversa atuais.
Exemplo: crie um sub-workflow chamado "Registrar lead" com gatilho Manual e estes nos: Adicionar etiqueta (lead), Criar oportunidade (deal), Registrar atividade/nota. Agora qualquer fluxo pode rodar essa rotina inteira com um unico no.
Chamar outro workflow a partir do fluxo principal
No seu workflow principal voce adiciona o no Chamar outro workflow e escolhe "Registrar lead". O fluxo fica assim:
- Gatilho
Mensagem recebida(apenas a primeira). - No
Enviar mensagemde boas-vindas. - No
Chamar outro workflow-> executa "Registrar lead". - No
Transferir para um agente.
A ordem: Mensagem recebida -> Enviar mensagem -> Chamar outro workflow -> Transferir para um agente. Se amanha voce mudar como um lead e registrado, edita um unico sub-workflow e todos os fluxos que o chamam se atualizam. Isso e reutilizar logica comum.
Executar ramos em paralelo
Por padrao os nos rodam em sequencia: cada um espera o anterior. Quando voce tem tarefas independentes que nao dependem entre si, o no Executar em paralelo as dispara ao mesmo tempo. E ideal quando uma acao pode demorar (uma Requisicao HTTP a um ERP, por exemplo) e voce nao quer bloquear o resto.
Exemplo de um fluxo de pedido pago:
- Gatilho
Webhook de entradacom path_matchorder.paid. - No
Executar em paraleloque abre tres ramos simultaneos:- Ramo A:
Enviar template do WhatsAppde confirmacao ao cliente. - Ramo B:
Requisicao HTTPao sistema de faturamento. - Ramo C:
Publicar no Teamno espaco de Operacoes.
- Ramo A:
- No
Unir ramosque espera os tres terminarem. - No
Criar tarefa de acompanhamentopara o pos-venda.
A ordem: Webhook de entrada -> Executar em paralelo (A / B / C) -> Unir ramos -> Criar tarefa de acompanhamento. O no Unir ramos e essencial: sem ele, voce nao saberia quando todos os ramos terminaram para continuar com seguranca.
Tratar erros com Try/Catch
Integracoes externas falham: uma API cai, um token expira. O no Try/Catch envolve os nos arriscados e te da um ramo alternativo quando algo estoura. No exemplo acima, a Requisicao HTTP do ramo B e a candidata perfeita:
- Try:
Requisicao HTTPao sistema de faturamento. - Catch:
Adicionar nota interna("Faturamento falhou, revisar manualmente") +Notificar a equipe por email.
Assim, se a API nao responde, o cliente ainda recebe sua confirmacao (ramo A) e a equipe fica sabendo do problema em vez de perde-lo em silencio. Sem Try/Catch, um erro em um no pode cortar o fluxo inteiro.
Outros nos de controle que ajudam
Saltar para outro no: reorganiza o fluxo sem cabear conexoes longas; util para voltar a um ponto comum depois de varios ramos.Loop/para cada: percorre uma lista (varios itens, por exemplo) repetindo um bloco de nos.Definir variavel: guarda um valor no inicio e o reutiliza no sub-workflow e nos ramos.Buscar conversa anterior: antes de criar um deal, verifica se ja existe uma conversa para nao duplicar.
Boas praticas e erros comuns
- Nao coloque um gatilho de evento em um sub-workflow: se voce quer invoca-lo, o gatilho dele deve ser
Manual. Um gatilhoMensagem recebidanao pode ser chamado de outro fluxo. - Cuidado com a recursao: um sub-workflow que chama a si mesmo pode entrar em loop. Mantenha a arvore de chamadas rasa.
- Use
Unir ramosdepois deExecutar em paralelosempre que precisar que tudo termine antes de seguir. Se a ordem final nao importa, deixe os ramos terminarem sozinhos. - Reserve o
Try/Catchpara o que realmente pode falhar (HTTP, integracoes), nao para toda a logica interna.
Por que vale a pena
Modularizar suas automacoes permite mante-las como codigo limpo: uma mudanca em um unico lugar, ramos rapidos rodando juntos e erros que nao derrubam o fluxo. No Omnifox voce cria um sub-workflow com gatilho Manual, o chama com Chamar outro workflow e combina Executar em paralelo, Unir ramos e Try/Catch no mesmo editor visual. Comece extraindo sua logica repetida para um sub-workflow e voce sentira a diferenca ja na primeira manutencao. Monte seus sub-workflows no Omnifox.
Comentarios (0)
Todavía no hay comentarios. Sé el primero en compartir tu opinión.
Dejá un comentario
Tu email nunca se publica. Los comentarios se moderan antes de aparecer.