Por que usar um método de fallback?
Uma mensagem nem sempre pode ser enviada ou recebida através de um determinado canal. Razões comuns incluem:- O usuário não tem esse canal disponível (por exemplo, sem endereço de email ou número de telefone, ou não se inscreveu para push)
- A mensagem falhou ao enviar devido a erros de entrega ou tokens inválidos
- Usuários desabilitando ou revogando permissões
- Dispositivos estando offline ou em estados restritos (por exemplo, Modo Foco do iOS)
- Aplicativos desinstalados ou tokens push expirados
Visão geral da estratégia de fallback
1
Enviar mensagem primária
Tente entregar a mensagem através do seu canal preferido (por exemplo, Push, Email ou SMS).
2
Aguardar confirmação de entrega ou interação
Use dados de entrega ou lógica baseada em eventos para determinar se a mensagem foi entregue, clicada ou aberta com sucesso. Em Jornadas, isso acontece automaticamente usando nós Wait Until.
3
Acionar canal de fallback
Se a mensagem não reportou uma entrega confirmada ou não foi clicada/aberta, envie a mesma mensagem através de outro canal disponível (por exemplo, Email, SMS ou Push).
Requisitos
- External ID
- Os usuários devem ter pelo menos uma assinatura válida para cada canal (email, telefone, token push)
Exemplos de configuração
Opção 1: Jornadas do OneSignal
Use as Jornadas do OneSignal para automatizar visualmente a lógica de fallback sem código.- Interface de arrastar e soltar
- Suporta confirmação de entrega (com Entrega Confirmada)
- Combina Push, In-App, Email e SMS
- Automatiza fallback sem integração de API
Configuração recomendada
Em vez de ramificação sim/não, use um nó Wait Until: Configure-o para aguardar até que a mensagem seja entregue (entrega confirmada aplica-se apenas a push), clicada ou aberta (apenas email).- Defina um período de expiração para evitar esperas indefinidas
- Após a expiração, envie a mensagem de fallback através de outro canal

Mostra exemplo de jornada de fallback.
A Entrega Confirmada deve ser habilitada por plataforma. Consulte Entrega Confirmada.
Opção 2: Fluxo de trabalho de fallback personalizado (Avançado)
Você pode construir um sistema de fallback usando a API REST do OneSignal e a API View Message, mas requer implementação cuidadosa.1
Enviar uma mensagem para um usuário
Envie uma notificação para um único usuário usando seu
external_id e canal de destino.json
2
Verificar status de entrega
Consulte a API View Message usando o Se a mensagem falhou ou mostra
notification_id para determinar se foi entregue.json
"received": 0, prepare-se para reenviar através de outro canal.3
Enviar mensagem de fallback
Antes de reenviar, verifique os canais disponíveis do usuário recuperando seu registro (via API View User).
Em seguida, envie a mensagem novamente através do próximo canal disponível (Email, SMS ou Push).
Este método é complexo e não recomendado para a maioria dos casos de uso. Requer rastreamento no nível da mensagem, buscas de usuários e gerenciamento manual da lógica de fallback.
Opção 3: Event Streams
Use Event Streams para monitorar eventos de mensagens em tempo real. Isso permite que sistemas externos reajam automaticamente quando uma mensagem falha. Fluxo comum:- Envie uma notificação push ou email
- Capture eventos
notification_failedoudelivery_failedatravés do Event Streams - Determine se o usuário pode receber outro canal (verificando suas assinaturas disponíveis e inscritas através da API View User)
- Envie uma mensagem de fallback através do próximo canal disponível
Event Streams fornecem insights de entrega em tempo real, mas não emitem um evento para “não enviado”, pois mensagens não enviadas não têm evento. Use isso apenas para lidar com falhas, cliques, aberturas e cancelamentos de inscrição.
Opção 4: Detectar e segmentar usuários não inscritos
Você pode marcar usuários que cancelaram a inscrição de canais específicos e reorientá-los manualmente através de outro.1
Detectar status de não inscrição
Use o observador SDK
addPermissionObserver() para detectar mudanças de permissão push.2
Marcar usuários não inscritos
Quando a permissão for revogada, marque o usuário (por exemplo,
unsubscribed_from_push: true).3
Segmentar para fallback
No painel do OneSignal, crie um segmento:
unsubscribed_from_push = true- E tem assinatura de email ou SMS Em seguida, segmente esse segmento com sua campanha de fallback.
Esta é uma opção manual e não ideal para automação, mas funciona para campanhas de fallback periódicas.
Melhores práticas
- Escolha o canal de fallback com base na prioridade da mensagem.
- Use SMS para alertas urgentes (por exemplo, segurança ou inatividade).
- Use Email ou In-App para atualizações não urgentes.
- Jornadas são o método mais fácil e confiável para gerenciar fallback.
- Adicione expirações aos nós Wait Until para evitar esperas indefinidas.
- Entrega Confirmada é necessária para acionar fallback verdadeiramente baseado em entrega.
- Evite duplicatas multicanal garantindo que as mensagens de fallback referenciem o status de entrega.
Exemplos de casos de uso
Alerta de segurança
Se um push de alerta de segurança falhar, envie um alerta SMS imediatamente.Atualização de entrega de pedido
Envie um push com informações de rastreamento. Se não for entregue, envie a mesma atualização por Email.Notificação de falha de pagamento
Se um push falhar, envie um SMS incentivando o usuário a tentar o pagamento novamente.Lembrete de evento
Se um lembrete de email não for entregue, envie uma notificação Push.Alerta de inatividade do sistema
Se o push falhar, o fallback para SMS garante que os usuários permaneçam informados em tempo real.Aviso de cobrança
Se a entrega de email falhar, envie um lembrete push ou SMS.Notificação de venda relâmpago
Se o push não for entregue, envie um SMS com detalhes da promoção e um link para comprar.Need help?Chat with our Support team or email
support@onesignal.comPlease include:- Details of the issue you’re experiencing and steps to reproduce if available
- Your OneSignal App ID
- The External ID or Subscription ID if applicable
- The URL to the message you tested in the OneSignal Dashboard if applicable
- Any relevant logs or error messages