Não existe ordem de canais universal
A maioria dos desenhos de fallback começa por uma escada de canais e só depois descobre que ela está errada para metade das jornadas. A ordem é um resultado, não uma entrada. As entradas são o objetivo de negócio e o prazo útil.
O que a política realmente avalia
Antes de cada tentativa: objetivo e critério de sucesso; prazo útil depois do qual entregar já não ajuda; consentimento e preferência declarada; destino verificado; disponibilidade do canal naquele mercado e aprovação do seu remetente; urgência e sensibilidade do conteúdo; custo por resultado obtido; e confiabilidade do sinal.
Sinais confiáveis e sinais ambíguos
Uma rejeição na submissão justifica passar ao canal seguinte. Um recibo de entrega diz que o canal chegou ao aparelho, não que alguém viu. Um indicador de leitura não prova atenção e pode estar desativado. Ausência de status é ambiguidade, não falha: tratar silêncio como falha gera duplicatas.
Uma jornada, uma identidade
Um ID de jornada, criado no momento em que se decide comunicar, presente em cada tentativa, callback e resultado. Com isso: a elegibilidade é reavaliada antes de cada tentativa; idempotência e deduplicação no nível da jornada; estado da tentativa e estado da jornada guardados separadamente; condições de parada têm prioridade quando o objetivo foi atingido ou o estado de negócio mudou; callbacks atrasados são registrados sem reabrir uma jornada concluída.
Serial ou paralelo
Serial por padrão. Paralelo quando a consequência de uma mensagem perdida pesa claramente mais do que o custo da duplicação — segurança, fraude, incidente — ou quando o prazo não permite uma cadeia serial. Para um código que o usuário está esperando, a restrição é o prazo, não uma regra sobre canais permitidos; o que se evita é um segundo código para a mesma sessão.
Tabela de decisão
| Jornada | Objetivo e prazo | Lógica de ordenação | Condições de parada |
|---|---|---|---|
| Código de autenticação | Código dentro da sessão ativa | Canal mais rápido com sinal confiável e destino verificado | Verificação, fim de sessão, prazo |
| Entrega ou agendamento | Informar o destinatário antes do evento | Canal preferido, depois o próximo adequado | Confirmação, evento ocorrido ou cancelado |
| Cobrança | Pagamento antes do vencimento | Canal com consentimento e confiança de identidade, escalando para canal de resposta | Pagamento, acordo, mudança de status |
| Follow-up de suporte | Resposta recebida | O canal da conversa | Resposta, ticket fechado |
| Promocional | Interação com consentimento | Canal permitido mais barato, sem repetir a mesma oferta | Opt-out, limite de frequência, fim da campanha |
| Operacional urgente | Confirmação | Paralelo nos canais adequados, depois escalada humana | Confirmação ou escalada concluída |
Máquina de estados
jornada: PLANEJADA -> TENTATIVA -> CONCLUIDA | PARADA | ESGOTADA
por tentativa: checar prazo e condições de parada, reavaliar elegibilidade,
criar tentativa com chave gravada antes da submissão
resultados: rejeição ou falha final -> próximo candidato
entregue sem objetivo atingido -> aguardar o prazo desta tentativa
sem status no prazo -> AMBIGUO (seguir é aceitar duplicação)
ação do destinatário -> CONCLUIDA, cancelar tentativas abertas
callback atrasado: registrar, nunca reabrir jornada concluída
O ramo ambíguo é onde a maioria dos desenhos falha em silêncio. Onde a duplicação causa dano — um segundo código, uma segunda cobrança — esperar ou parar costuma ser o certo.
Atribuição e custo
Resultados por tipo de jornada e posição na cadeia; custo por resultado obtido em toda a cadeia; taxa de duplicação; taxa de ambiguidade; eficácia das condições de parada. Se a maioria dos resultados aparece na segunda ou terceira posição, a primeira está errada para aquele público.
O modelo de fornecimento
A Flowstates vende e opera rotas de mensageria em vários canais, apoia contratos próprios de fornecedor (BYOV) e modelos híbridos. A lógica da cadeia é o mesmo trabalho em qualquer modelo e pertence ao lado do estado de negócio que define o objetivo.