6.2. Orquestrador

Orquestrador

O ClickFlow Orchestrator é o serviço central de governança da esteira: guarda a definição estrutural do flow e o estado de cada execução, e decide qual é o próximo passo — sem executar nada e sem conhecer o canal de comunicação com o usuário final.

💾 Modelo de dados

A API é stateless e possui duas entidades:

  • Flow — a definição: nome + lista ordenada de steps.
  • Execution — uma instância de um flow publicado, em execução: passo atual, histórico de passos, status.

Status do Flow

StatusSignificado
draftEditável livremente via PUT.
publishedDisponível para iniciar execuções. Não pode ser editado — use unpublish antes.
unpublishedVoltou a ser editável; não aceita novas execuções até publicar de novo.
deletedRemovido (soft delete via DELETE).

Status da Execution

running · waiting · completed · failed · canceled — este último é definitivo (POST .../cancel é irreversível; /next passa a responder 409).

🧩 Tipos de step

Cada step do flow tem um type e um context cujo formato depende do tipo:

typeMódulo acionadoO que o context carrega
acceptanceAceite via WhatsApptemplate_key, accept_replies (respostas que valem como aceite)
consentAceite (evolução desacoplada do módulo)channel_type, template_id, channel_params.steps[].variables
formClickFormversion_key; opcional contact (atualiza dados do contato) e context_map_keys (pré-preenchimento a partir de respostas de steps anteriores ou de placeholders como {{person_name}}/{{phone_number}})
verifyVerify (autenticação/biometria)authentication (liveness, biometric_behavior, identity_biometrics), result_policy (passthrough não interrompe a execução em caso de reprovação), provider_priority (ordem de fallback entre provedores), instructions (exibe ou oculta a tela de instruções antes da captura), contact_fields_map
kycKYC (Background Check)type (business ou customer)
signatureAssinaturadocuments[] (kind: file, template ou runner_files), settings do envelope (deadline_at, folder_key, locale, remind_interval, auto_close, block_after_refusal, default_message, default_subject, name), signers[] (signatários adicionais, com auths, roles, communicate_events; identidade — name, documentation, birthday, phone_number, email — aceita {{chave-do-campo}} de um form anterior da mesma jornada)

result_policy: "passthrough" cobre reprovação (resultado negativo válido) — não cobre falha operacional do provedor de Verify (sem resultado, ou resultado incompleto), que sempre falha o step e a execução, mesmo com passthrough declarado.

Exemplos completos de cada combinação estão nos exemplos do endpoint POST /flows na referência (aba Try It).

📍 Endpoints

RecursoMétodoEndpointDescrição
FlowsGET/api/v1/flowsLista flows
FlowsPOST/api/v1/flowsCria flow (draft)
FlowsGET/api/v1/flows/{id}Obtém flow por ID
FlowsPUT/api/v1/flows/{id}Atualiza flow
FlowsDELETE/api/v1/flows/{id}Remove flow
FlowsPATCH/api/v1/flows/{id}/publishPublica flow
FlowsPATCH/api/v1/flows/{id}/unpublishDespublica flow
ExecutionsGET/api/v1/flows/{id}/executionsLista execuções de um flow
ExecutionsPOST/api/v1/flows/{id}/executionsInicia execução de um flow publicado
ExecutionsGET/api/v1/executions/{execution_id}Estado da execução
ExecutionsPOST/api/v1/executions/{execution_id}/nextAvança para o próximo passo
ExecutionsPOST/api/v1/executions/{execution_id}/cancelCancela execução em andamento

Referência completa, com Try It: Orquestrador.

🔒 Autenticação

Header Authorization com o UUID do access_token (sem Bearer), validado por introspecção.




❓Precisa de ajuda? Entre em contato com o Suporte

💰Dúvida sobre planos e preços? Veja o comparativo

🔍Não sabe qual versão está usando? Descubra a sua versão

📚Respostas rápidas? Visite nosso FAQ


Did this page help you?