Fluxos interativos

Formulários com várias telas no estilo WhatsApp Flow (cadastro, listas de espera e coleta de dados).

Conceitos

ObjetoDescrição
BotContêiner (runtime_mode=local ou serviço do parceiro)
FlowPercurso nomeado com várias etapas (code, imagem do cartão e CTA)
StepTela: form, input, select, end, …
ConviteMensagem do hub com content_type=flow; abre o formulário

Convidar um usuário para um fluxo

POST /api/v1/bots/{bot_code}/flows/{flow_code}/invite

{
  "phone": "+228XXXXXXXX",
  "body": "Rejoignez la liste d’attente SEED."
}

Cria um cartão de fluxo independente no hub do parceiro (não uma conversa de suporte).

Exemplo

curl -X POST "$API/bots/portail/flows/waitlist/invite" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+228XXXXXXXX"}'

Sessão do usuário final (aplicativos cliente)

Os aplicativos cliente usam o JWT do usuário (não a chave do parceiro):

EndpointObjetivo
POST /me/flows/startIniciar / retomar a sessão
POST /me/bots/sessions/{ref}/inputEnviar a etapa (form_submit, texto ou otp)
GET /me/flowsListar os fluxos disponíveis

Payload de envio do formulário

{
  "type": "form_submit",
  "values": {
    "full_name": "Ama Koffi",
    "phone": "+22890000000",
    "email": "[email protected]"
  }
}

Validação

O servidor valida os tipos de campo (e-mail, telefone E.164, número, data, select etc.).
Consulte Validação de campos.

Conclusão

Quando concluído com êxito, o mesmo cartão de fluxo passa para status=completed, com um resumo das respostas em modo somente leitura. As mensagens de chat das etapas intermediárias não são publicadas.

Definição de um fluxo local

Configure-o no Partner Hub (MorisBox → Bots) ou por meio de dados seed / provisioning:

  • Bot: runtime_mode=local
  • Flow: campos do cartão (code, imagem e CTA)
  • Steps: fields_json para formulários com vários campos