Visão Geral
Neste tutorial, você configurará um fluxo de trabalho comum de reserva:- Enviar um email de confirmação de reserva após um usuário completar uma reserva.
- Enviar um email de recuperação se um usuário iniciar uma reserva mas não completá-la a tempo.
- Dois Eventos Personalizados (
booking_started,booking_complete) - Uma Journey que se ramifica entre conclusão vs abandono
- Um Data Feed de reserva para detalhes de confirmação
- Um Data Feed de cupom opcional para incentivos de recuperação
Fluxo de configuração
- Seu app rastreia um evento personalizado
booking_started. - Isso faz o usuário entrar em uma Journey.
- A Journey aguarda um evento
booking_completee se não recebido a tempo, envia lembretes de acompanhamento. - Se a reserva for concluída, o OneSignal chama um Data Feed de reserva no momento do envio e envia um email de confirmação com os últimos detalhes da reserva.
- Se a reserva não for concluída dentro da janela de espera, a Journey segue o caminho de expiração e envia um email de recuperação.
Configuração
Pré-requisitos
Antes de começar, certifique-se de ter:- Um app OneSignal com o canal de Email habilitado
- Um endpoint backend que possa retornar dados de reserva e/ou cupom como JSON
- Um identificador de usuário estável compartilhado entre seu app, backend e ID Externo do OneSignal
- Acesso a Eventos Personalizados
1. Rastrear eventos de reserva
Rastreie os seguintes Eventos Personalizados. Estes podem vir do seu app (usando nosso SDK) ou do seu backend (usando nossa API REST). Nomes dos eventos:booking_started— quando o usuário inicia o fluxo de reservabooking_complete— quando a reserva é concluída com sucesso
- App - Mobile e Web
- Lado do Servidor
Use o método
trackEvent() em nosso SDK Mobile e/ou SDK Web para enviar eventos personalizados diretamente do seu app/website.Exemplo
Use a mesma identidade de usuário ao rastrear eventos e ao retornar dados do seu backend. IDs incompatíveis são a causa mais comum de personalização ausente.
2. Criar aliases de Data Feed
No OneSignal, vá para Configurações > Data Feeds e crie os seguintes aliases. Data Feed de Reserva: Use este feed para obter os últimos detalhes da reserva no momento do envio.- Alias:
booking_data - Método: GET
- URL:
Exemplo de endpoint
JSON
- Alias:
coupon - Método: GET
- URL:
Exemplo de endpoint
JSON
3. Criar templates de email
Email de confirmação de reserva:
Assunto:Email de recuperação de reserva
Assunto:- Usando um Data Feed de Cupom
- Sem um Data Feed de Cupom
Sempre inclua filtros
default no Liquid para prevenir conteúdo em branco se um campo do Data Feed estiver faltando.4. Construir a Journey
- No OneSignal, vá para Mensagens > Journeys > Criar Journey
-
Configure o Gatilho de Entrada como:
- Evento Personalizado:
booking_started
- Evento Personalizado:
-
Adicione um passo Aguardar Até:
- Condição: Evento Personalizado ocorre
- Nome do evento:
booking_complete - Tempo máximo de espera: 10 minutos
- Habilite o caminho de expiração
-
Configure as ramificações:
- Concluído: Enviar email de confirmação de reserva
- Data Feed:
booking_data
- Data Feed:
- Expirado: Enviar email de recuperação
- Data Feed:
coupon
- Data Feed:
- Concluído: Enviar email de confirmação de reserva
A ramificação de expiração permite que você trate o abandono sem lógica adicional no seu app. Veja:
- Configurações de Journey - para detalhes sobre regras de entrada e saída de Eventos Personalizados
- Ações de Journeys - para detalhes sobre passos Aguardar Até e ramificações de expiração
5. Testar e verificar
Verificar eventos
Dispare os eventos personalizados do seu app ou backend e confirme. No OneSignal, vá para Analytics > Eventos Personalizados e confirme que você vê:- Eventos
booking_startedaparecem para o seu ID Externo - Eventos
booking_completeaparecem para o seu ID Externo
Verificar Data Feeds
Chame manualmente seus endpoints de Data Feed usando um ID de usuário conhecido e confirme:- Uma resposta 200 é retornada
- Todos os campos esperados estão presentes
Verificar emails
Envie mensagens de teste do editor de Journey e confirme:- Emails de reserva contêm detalhes reais da reserva
- Emails de recuperação contêm um cupom válido
- Nenhuma variável Liquid renderiza vazia
Se a personalização estiver faltando, confirme que o ID do usuário na requisição do Data Feed corresponde ao usuário que disparou a Journey.
Exemplo: Implementação de Data Feed
Exemplos de endpoints de Data Feed Node.js
Exemplos de endpoints de Data Feed Node.js
Este exemplo mostra uma implementação Express mínima para Data Feeds de confirmação de reserva e recuperação. Sua linguagem backend, framework e fonte de dados podem diferir contanto que a forma da resposta JSON corresponda aos seus templates de email.
Exemplo de Data Feed de Reserva
Exemplo de Data Feed de Cupom
Diretrizes de implementação
- Mantenha as respostas rápidas (Data Feeds são chamados no momento do envio)
- Sempre retorne uma estrutura JSON previsível
- Use 404 quando não existirem dados
- Proteja endpoints com uma chave API enviada via headers de requisição
Problemas comuns
Email mostra valores vazios
- Data Feed retornou 404
- Nomes de campos mudaram na resposta JSON
- Incompatibilidade de identidade do usuário
Journey não se ramifica
- Evento
booking_completenão rastreado - Incompatibilidade de nome do evento (sensível a maiúsculas)
- Evento ocorre fora da janela de espera
Data Feed retorna 401 ou 403
- Chave API ausente ou inválida
- Header não configurado nas configurações do Data Feed
Próximos passos
- Adicionar propriedades de evento (tipo de serviço, preço) para condições de Journey mais avançadas
- Adicionar passos de recuperação adicionais como lembretes push ou SMS
- Usar regras de saída de Journey para prevenir mensagens de recuperação repetidas