Fluxos interativos
Formulários com várias telas no estilo WhatsApp Flow (cadastro, listas de espera e coleta de dados).
Conceitos
| Objeto | Descrição |
|---|---|
| Bot | Contêiner (runtime_mode=local ou serviço do parceiro) |
| Flow | Percurso nomeado com várias etapas (code, imagem do cartão e CTA) |
| Step | Tela: form, input, select, end, … |
| Convite | Mensagem 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):
| Endpoint | Objetivo |
|---|---|
POST /me/flows/start | Iniciar / retomar a sessão |
POST /me/bots/sessions/{ref}/input | Enviar a etapa (form_submit, texto ou otp) |
GET /me/flows | Listar 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_jsonpara formulários com vários campos