> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Exemplos de Journey

> Configurações passo a passo de Journey para onboarding, reengajamento, carrinho abandonado, testes A/B, envios recorrentes e fluxos baseados em eventos.

Cada exemplo abaixo inclui as configurações de Journey recomendadas e a configuração passo a passo. Comece com os padrões mais simples (onboarding, reengajamento) e avance para fluxos mais avançados (envios recorrentes, progressão baseada em eventos, ramificação por botão de ação).

<Frame caption="Vídeo: exemplos de Journey">
  <iframe width="560" height="315" src="https://www.youtube.com/embed/TnsBCXe_Opw?si=feFpzblCm_Hcpbd4" title="Exemplos de Journey" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

***

## Onboarding

Use este padrão para enviar uma sequência de boas-vindas ou onboarding para novos assinantes. Também é comumente chamado de campanha de boas-vindas, série de boas-vindas ou campanha de novos usuários. O objetivo é guiar os usuários a completar uma ação importante (terminar seu perfil, fazer sua primeira compra ou descobrir um recurso principal) em vez de enviar mensagens no momento em que eles se inscrevem.

| Configuração da Journey  | Descrição                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Regras de entrada**    | **Baseado em evento (recomendado):** Use um gatilho de [Evento Personalizado](./custom-events) (por exemplo, `signup_completed`) para que a sequência comece em um momento significativo: quando o usuário conclui o registro.<br /><br />**Alternativa baseada em segmento:** "Usuário corresponde aos critérios do segmento" usando o [segmento](./segmentation) "Usuários Inscritos", apenas adições futuras. Use isso se você não tiver um evento de inscrição configurado. |
| **Regras de saída**      | Eles avançaram por toda a journey, ou quando o usuário completa a ação-chave (por exemplo, eles saem de um segmento "não completou o onboarding").                                                                                                                                                                                                                                                                                                                              |
| **Regras de re-entrada** | Não                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Conteúdo**             | Uma sequência curta durante a primeira semana do usuário: um email de boas-vindas no dia 0, um lembrete push no dia 2 se não agiram, e um email de acompanhamento no dia 7 como último contato.                                                                                                                                                                                                                                                                                 |

**Etapas da Journey**

<Steps>
  <Step title="Imediatamente: Enviar um email de boas-vindas">
    O usuário acabou de se inscrever e provavelmente ainda está no seu aplicativo. Um email é o primeiro contato certo: é esperado, não intrusivo e pode incluir mais detalhes do que uma notificação push. Guarde o push para quando eles saírem.
  </Step>

  <Step title="Aguardar 1 dia">
    Dê ao usuário tempo para explorar por conta própria antes de fazer o acompanhamento.
  </Step>

  <Step title="Dia 2: Ramificar se ação-chave foi concluída?">
    Adicione uma ramificação sim/não com base em se o usuário completou seu objetivo de onboarding. Rastreie com uma [tag](./add-user-data-tags) (por exemplo, `onboarding_complete = true`) ou associação ao segmento.

    * **Ramificação Sim:** Sair da journey. O usuário não precisa de um lembrete.
    * **Ramificação Não:** Enviar uma notificação push com um prompt específico e acionável. Por exemplo: "Termine de configurar seu perfil" ou "Faça sua primeira \[ação]".
  </Step>

  <Step title="Aguardar 5 dias">
    Dê tempo para o push chegar antes de enviar a mensagem final.
  </Step>

  <Step title="Dia 7: Ramificar se ação-chave foi concluída?">
    * **Ramificação Sim:** Sair da journey.
    * **Ramificação Não:** Enviar um email de acompanhamento como último contato. Evite mais mensagens. Usuários que não se engajaram após uma semana são melhores candidatos para uma [campanha de reengajamento](#re-engagement-campaign).
  </Step>
</Steps>

<Frame caption="Exemplo de journey de boas-vindas de onboarding">
  <img src="https://mintcdn.com/onesignal/uQXaZLJRo_iX3RUv/images/journeys/onboarding-journey.png?fit=max&auto=format&n=uQXaZLJRo_iX3RUv&q=85&s=fdd555052bb0d43d1202d5bff2ca56b4" alt="Fluxo de journey de boas-vindas de onboarding com etapas de push e email" width="748" height="1426" data-path="images/journeys/onboarding-journey.png" />
</Frame>

***

## Campanha de reengajamento

Use este padrão para recuperar usuários que não abriram seu aplicativo ou visitaram seu site recentemente. A journey envia uma série de mensagens cada vez mais convincentes e sai assim que o usuário retorna.

| Configuração da Journey  | Descrição                                                                                                                                                                                            |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Regras de entrada**    | **A última sessão do usuário é maior que 7 dias;** usuários inscritos. (Você pode querer **excluir certos segmentos** como clientes pagos se seu objetivo é fazer mais usuários gratuitos voltarem.) |
| **Regras de saída**      | **Eles avançaram por toda a journey ou atendem certas condições** — sair quando o usuário se tornar ativo no seu aplicativo/site.                                                                    |
| **Regras de re-entrada** | **Sim, após um certo período de tempo: 7 dias** (reengajamento pode acontecer sempre que eles não abrirem seu aplicativo por um tempo).                                                              |
| **Conteúdo**             | Lembre os usuários de voltar ao seu aplicativo quando eles não o abrirem há um tempo e seduza-os com recompensas ou descontos.                                                                       |

**Etapas da Journey**

<Steps>
  <Step title="Enviar uma notificação push">
    Comece com um push — é o canal mais visível para reengajar usuários inativos. Use uma mensagem clara e orientada para ação como "Sentimos sua falta! Veja o que há de novo."
  </Step>

  <Step title="Aguardar 2 dias">
    Dê ao usuário tempo para responder ao push antes de escalar.
  </Step>

  <Step title="Ramificar na atividade do usuário">
    Adicione uma ramificação sim/não para verificar se o usuário retornou (por exemplo, última sessão nos últimos 2 dias).

    * **Ramificação Sim:** Sair da journey. O usuário está reengajado.
    * **Ramificação Não:** Enviar um email com um incentivo mais forte (por exemplo, desconto, novo conteúdo ou destaque de recurso).
  </Step>

  <Step title="Aguardar 3 dias">
    Dê tempo para o email trazer o usuário de volta.
  </Step>

  <Step title="Verificação final">
    * **Ativo:** Sair da journey.
    * **Ainda inativo:** Opcionalmente enviar um SMS final ou sair. Evite mais mensagens — usuários que não responderam após múltiplos contatos têm pouca probabilidade de converter com mais mensagens.
  </Step>
</Steps>

<Frame caption="Exemplo de journey de campanha de reengajamento">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/reengagement-journey.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=63990452d48a0d82b27a87469bf7d00a" alt="Fluxo de journey de reengajamento com etapas de espera e condições de saída" width="1427" height="1495" data-path="images/docs/reengagement-journey.png" />
</Frame>

***

## Carrinho abandonado

<Card title="Exemplo de carrinho abandonado" href="./abandoned-cart" icon="money-bill">
  Use Eventos Personalizados ou Tags para rastrear a atividade do carrinho e enviar mensagens de carrinho abandonado.
</Card>

***

## Campanha promocional

Use este padrão para promoções por tempo limitado, eventos de vendas ou lançamentos de produtos. A journey cria antecipação, lembra os usuários durante o evento e cria urgência à medida que ele se aproxima do fim.

| Configuração da Journey  | Descrição                                                                                                                                                                     |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Regras de entrada**    | **Usuário corresponde aos critérios do segmento.** Usuários inscritos ou segmente o segmento ao qual sua campanha promocional é relevante.                                    |
| **Regras de saída**      | **Eles avançaram por toda a journey ou atendem certas condições.** Selecione um segmento que defina o objetivo que você deseja atingir (por exemplo, usuários que compraram). |
| **Regras de re-entrada** | **Não** (se esta é uma campanha única, envie uma vez).                                                                                                                        |
| **Conteúdo**             | Prepare-os para o evento, lembre-os quando começar e ofereça um desconto ou recompensa quando estiver próximo de terminar.                                                    |

**Etapas da Journey**

<Steps>
  <Step title="Anúncio: Enviar uma mensagem teaser">
    Envie um email ou push anunciando a promoção que está por vir. Inclua a data, o que esperar e um motivo para prestar atenção.
  </Step>

  <Step title="Aguardar até o início do evento">
    Adicione uma etapa de espera sincronizada com o início da sua promoção.
  </Step>

  <Step title="Início do evento: Enviar a oferta principal">
    Envie uma notificação push ou email com os detalhes da promoção, código de desconto ou chamada para ação.
  </Step>

  <Step title="Aguardar 2–3 dias (meio do evento)">
    Dê tempo aos usuários para agir na mensagem inicial.
  </Step>

  <Step title="Lembrete: Mensagem de última chance">
    Envie um push ou email final com urgência — "A promoção termina amanhã" ou "Última chance para 20% de desconto". Usuários que já converteram sairão via a regra de saída.
  </Step>
</Steps>

<Frame caption="Exemplo de journey de campanha promocional">
  <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/promotional-journey.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=fa69c44b733a2b2f97973a64e24395fa" alt="Fluxo de journey de campanha promocional com mensagens temporizadas" width="1487" height="1596" data-path="images/docs/promotional-journey.png" />
</Frame>

***

## Enviar mensagem após o usuário sair do aplicativo se a ação estiver incompleta

**Configuração inicial**

1. Use [tags de dados](./add-user-data-tags) para marcar que a ação precisa ser executada pelo usuário. Remova a tag quando a ação for concluída.
2. Configure o [segmento](./segmentation) para esta tag.

| Configuração da Journey  | Opção                                                                | Descrição                                                                                                      |
| ------------------------ | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Regras de entrada**    | A última sessão do usuário é maior que o período de tempo.           | O período de tempo que você determina que o usuário esteve ativo pela última vez no seu aplicativo ou site.    |
| **Público**              | Inclua o segmento que você deseja segmentar com a tag.               | Estes são os usuários elegíveis para receber a mensagem.                                                       |
| **Regras de saída**      | Sair quando o usuário não corresponder mais às condições do público. | Quando o usuário sai do segmento, ele não é mais elegível para a mensagem da journey.                          |
| **Regras de re-entrada** | Sim, após um certo período de tempo.                                 | O período de tempo que você deseja esperar para que o usuário seja elegível para receber a mensagem novamente. |

**Etapas da Journey**

<Steps>
  <Step title="Adicione a(s) mensagem(ns) desejada(s)">
    Escolha um template para a etapa de mensagem. Você pode usar push, email, SMS ou in-app dependendo da ação que deseja que o usuário realize.
  </Step>

  <Step title="Defina um nó de espera para o período de tempo que você deseja que o usuário espere">
    Isso pode ser um intervalo curto ou longo dependendo se a mensagem deve se repetir como lembrete. No exemplo, usamos 104 semanas (2 anos).
  </Step>
</Steps>

## Teste A/B dentro de uma journey

Usando um nó de **ramificação dividida**, você pode definir uma divisão 50/50 dentro da sua journey. Crie dois templates de mensagem diferentes e conforme seus usuários fluem, metade receberá o "Template A" e a outra metade o "Template B".

Exporte os dados de mensagem de cada template para comparar as [análises](./analytics-overview) entre as variantes.

<Frame caption="Um teste A/B">
  <img src="https://mintcdn.com/onesignal/w9XjWmVBB-0WycSD/images/docs/ab-test-journey.png?fit=max&auto=format&n=w9XjWmVBB-0WycSD&q=85&s=ef12a5ca93a5b5cf6cc48a6f2184a5d6" alt="Journey de teste A/B com uma ramificação dividida 50/50 e dois templates de mensagem" width="1608" height="772" data-path="images/docs/ab-test-journey.png" />
</Frame>

***

## Exibir mensagens in-app em ordem e uma vez por dia

Neste exemplo, queremos exibir 3+ mensagens in-app seguidas, mas mostrá-las apenas uma vez por dia. Se um usuário não abrir o aplicativo, ele ainda verá na próxima vez que abrir o aplicativo.

**Configuração inicial**

<Steps>
  <Step title="Crie um novo segmento">
    Crie um segmento chamado `iam_journey` com filtro: User Tag `iam_journey` é `1`

    1. Você pode alterar `iam_journey` para qualquer nome que escolher.
    2. Esta tag será definida em cada usuário que concluir a journey e receber todas as mensagens.

    <Frame caption="Tela de criação de segmento">
      <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/iam-journey-segment.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=c5c3444e720b727a73a4f8b73bb488df" alt="Tela de criação de segmento com filtro de tag iam_journey" width="803" height="433" data-path="images/docs/iam-journey-segment.png" />
    </Frame>
  </Step>

  <Step title="Crie as mensagens in-app">
    Veja [design de mensagens in-app com arrastar e soltar](./design-your-in-app-message) para mais.
  </Step>

  <Step title="Configure a seguinte journey">
    | Configuração da Journey  | Opção                                         | Descrição                                                                             |
    | ------------------------ | --------------------------------------------- | ------------------------------------------------------------------------------------- |
    | **Regras de entrada**    | Usuário corresponde aos critérios do segmento | Estes são os usuários elegíveis para receber a mensagem.                              |
    | **Público**              | Incluir segmento & excluir segmento           | Inclua o segmento "Usuários Inscritos". Exclua o segmento "`iam_journey`" da etapa 1. |
    | **Regras de saída**      | Eles avançaram por toda a journey             | Nenhuma condição adicional necessária.                                                |
    | **Regras de re-entrada** | Sim, após um certo período de tempo           | 2 minutos                                                                             |

    **Etapas da Journey**

    Repita esta ordem para o número de mensagens que você deseja exibir. Neste exemplo, exibiremos 3 mensagens in-app (IAM 1, IAM 2, IAM 3).

    1. **Adicione uma etapa de mensagem in-app.**
       1. Nomeie a mensagem, por exemplo: `IAM 1`.
       2. Na parte inferior da mensagem, defina **agendamento de entrega** para **1 dia**.

    2. **Adicione uma ação de ramificação sim/não antes da etapa de mensagem in-app.**
       1. Defina sua condição de ramificação: comportamento de mensagem anterior: "`IAM 1` visualizada".
       2. **Siga a ramificação Não**
          1. Arraste o `IAM 1` para a ramificação Não.
          2. Adicione uma etapa de espera por 1 dia.
       3. **Siga a ramificação Sim**
          1. Dentro da ramificação Sim, repita as etapas 1 e 2 para todas as mensagens, substituindo `IAM 1` pela nova mensagem in-app (por exemplo, `IAM 2`, `IAM 3`).
          2. Na ramificação Sim final, adicione a ação **marcar usuário**.
             1. Marque a mesma chave usada em Configuração inicial → Etapa 1 segmento.
                1. Exemplo `iam_journey : 1`.

    <Frame caption="A journey completa">
      <img src="https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/iam-journey-complete.png?fit=max&auto=format&n=QOf62tdZP66tkOD2&q=85&s=ed5c5c36d00e786c9ad91dffd9699564" alt="Journey de mensagem in-app completa com ramificação e entrega diária" width="1376" height="1522" data-path="images/docs/iam-journey-complete.png" />
    </Frame>
  </Step>
</Steps>

## Journey de entrada limitada

Garanta que os usuários possam entrar em uma journey apenas um número limitado de vezes, controlando a experiência em cada estágio.

| Configuração da Journey  | Descrição                                                                                                                                                                      |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Regras de entrada**    | Usuário corresponde aos critérios do segmento (por exemplo, usuários inscritos ou qualquer segmento de destino relevante).                                                     |
| **Público**              | Inclua seu segmento de destino. Exclua usuários com a tag `journey_count = 2` para limitar entradas a duas vezes.                                                              |
| **Regras de saída**      | Eles avançaram por toda a journey.                                                                                                                                             |
| **Regras de re-entrada** | Sim, após um certo período de tempo: 15 dias.                                                                                                                                  |
| **Conteúdo**             | Forneça uma experiência de primeira vez na entrada inicial e uma experiência de segunda vez personalizada na re-entrada. Impeça quaisquer entradas adicionais além da segunda. |

<Frame caption="Configurações de entrada limitada">
  <img src="https://mintcdn.com/onesignal/Kryww3qVcdmjY27T/images/journeys/limited-entry-settings.png?fit=max&auto=format&n=Kryww3qVcdmjY27T&q=85&s=71647a50f354d2174200298b11678e6b" alt="Configurações de journey de entrada limitada com exclusão de público e regras de re-entrada" width="646" height="1490" data-path="images/journeys/limited-entry-settings.png" />
</Frame>

**Configuração inicial**

<Steps>
  <Step title="Prepare sua estratégia de tags">
    Use uma tag de usuário chamada `journey_count` para rastrear entradas. Tags são criadas automaticamente quando você as define na Journey. Veja [ação de tag](./journeys-actions#tag-user) para detalhes.
  </Step>

  <Step title="Configure inclusão/exclusão de público">
    No público da journey:

    * Inclua seu segmento de destino (por exemplo, "Usuários Inscritos").
    * Exclua usuários onde a tag de usuário `journey_count` é `2`.
  </Step>

  <Step title="Defina regras de re-entrada">
    Defina regras de re-entrada para "Sim, após um certo período de tempo: 15 dias."
    Isso permite exatamente uma re-entrada entre a primeira e segunda execução.
  </Step>
</Steps>

**Etapas da Journey**

<Frame caption="Fluxo de entrada limitada">
  <img src="https://mintcdn.com/onesignal/Kryww3qVcdmjY27T/images/journeys/limited-entry.png?fit=max&auto=format&n=Kryww3qVcdmjY27T&q=85&s=3d8652adedf2610bb444ee217eb52856" alt="Fluxo de journey de entrada limitada com ramificação sim/não baseada na tag journey_count" width="932" height="1468" data-path="images/journeys/limited-entry.png" />
</Frame>

<Steps>
  <Step title="Adicione uma ramificação sim/não no início">
    Condição: tag de usuário `journey_count` é igual a `1`.

    * **Ramificação Sim** = usuários retornantes (segunda entrada).
    * **Ramificação Não** = usuários de primeira vez (sem tag presente ainda).
  </Step>

  <Step title="Ramificação Não (primeira entrada)">
    * Adicione ação marcar usuário: defina `journey_count` para `1`.
    * Envie suas mensagens e ações de primeira vez.
    * Continue até o final ou lógica adicional conforme necessário.
  </Step>

  <Step title="Ramificação Sim (segunda entrada)">
    * Adicione ação marcar usuário: defina `journey_count` para `2`.
    * Envie suas mensagens e ações para usuários retornantes.
    * Continue até o final ou lógica adicional conforme necessário.
  </Step>

  <Step title="Aplique o limite">
    Como o público exclui usuários com `journey_count = 2`, qualquer tentativa de terceira entrada será bloqueada automaticamente.
  </Step>
</Steps>

## Journeys recorrentes para dias específicos

Envie mensagens recorrentes que se alinhem com um dia específico da semana (por exemplo, promoções semanais, lembretes de eventos).

| Configuração da Journey  | Descrição                                                                                                               |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| **Regras de entrada**    | Usuário corresponde aos critérios do segmento (por exemplo, usuários inscritos ou outro segmento de destino relevante). |
| **Público**              | Inclua seu segmento de destino.                                                                                         |
| **Regras de saída**      | Eles avançaram por toda a journey.                                                                                      |
| **Regras de re-entrada** | Sim, após um certo período de tempo: 7 dias.                                                                            |
| **Conteúdo**             | Uma mensagem semanal enviada em um dia específico (por exemplo, toda sexta-feira).                                      |

<Frame caption="Configurações de journey recorrente">
  <img src="https://mintcdn.com/onesignal/lYMMkFJp3v40a2sJ/images/journeys/recurring-journey-settings.png?fit=max&auto=format&n=lYMMkFJp3v40a2sJ&q=85&s=774b448a2c3789fcf5173ad71630d2aa" alt="Configurações de journey recorrente com re-entrada de 7 dias" width="648" height="1446" data-path="images/journeys/recurring-journey-settings.png" />
</Frame>

**Configuração inicial**

<Steps>
  <Step title="Configure o público">
    Inclua seu segmento de destino para que usuários elegíveis possam entrar na journey a qualquer momento durante a semana.
  </Step>

  <Step title="Defina regras de re-entrada">
    Defina regras de re-entrada para "Sim, após um certo período de tempo: 7 dias" para habilitar recorrência semanal.

    * O timer de re-entrada começa quando o usuário **sai** da Journey, não quando entrou.
    * Uma re-entrada de 7 dias garante que os usuários entrem novamente a tempo para a janela de tempo da próxima semana.
    * A duração da re-entrada deve ser **maior que a duração da janela de tempo** para evitar envios duplicados.

    Veja [Usando janelas de tempo para envios recorrentes](./journeys-actions#using-time-windows-for-recurring-sends) para detalhes.
  </Step>
</Steps>

**Etapas da Journey**

<Frame caption="Fluxo de journey recorrente">
  <img src="https://mintcdn.com/onesignal/lYMMkFJp3v40a2sJ/images/journeys/recurring-journey-steps.png?fit=max&auto=format&n=lYMMkFJp3v40a2sJ&q=85&s=12657ad8e9b0cfc2de32a9d87f9eed2c" alt="Fluxo de journey recorrente com nó de janela de tempo e etapa de mensagem" width="598" height="1460" data-path="images/journeys/recurring-journey-steps.png" />
</Frame>

<Steps>
  <Step title="Adicione um nó de janela de tempo (primeira etapa)">
    Configure a janela de tempo para filtrar seu dia da semana de destino (por exemplo, sexta-feira).
    Os usuários que entrarem na journey aguardarão até o próximo dia correspondente.
  </Step>

  <Step title="Adicione sua mensagem após a janela de tempo">
    Coloque o nó de mensagem imediatamente após a janela de tempo para que ela seja enviada quando o dia for alcançado.
  </Step>

  <Step title="Finalize a journey">
    Deixe os usuários saírem após o envio da mensagem. Com re-entrada em 7 dias, eles voltarão e repetirão semanalmente.
  </Step>
</Steps>

<Tip>
  Atualize o conteúdo da mensagem regularmente para evitar repetir a mesma cópia a cada semana.
</Tip>

## Journeys progressivas (baseadas em eventos)

Escalone o engajamento com base na progressão do usuário usando [eventos personalizados](./custom-events) e condições de [esperar até](./journeys-actions#wait-until).

| Configuração da Journey  | Descrição                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Regras de entrada**    | **Evento Personalizado** = `Progression_Level`, com filtro `progression_level = 0`.                                                                                                                                                                                                                                                                               |
| **Público**              | Filtro de segmento opcional. Você pode executar isso para todos os usuários ou restringir a um subconjunto; nenhuma tag necessária.                                                                                                                                                                                                                               |
| **Regras de saída**      | - Eles avançaram por toda a journey.<br />- Ou quando o nível máximo de progressão for alcançado (por exemplo, `progression_level = 3`).<br />- Opcionalmente: sair quando um nó **Wait Until** expirar.<br />- Opcionalmente: ramificar de um nó **Wait Until** para marcar usuários que não completarem o evento, levando-os para uma journey de reengajamento. |
| **Regras de re-entrada** | Não                                                                                                                                                                                                                                                                                                                                                               |
| **Conteúdo**             | Mensagens baseadas em estágios que escalonam conforme os usuários completam marcos (emails neste exemplo).                                                                                                                                                                                                                                                        |

<Frame caption="Fluxo de journey progressiva">
  <img src="https://mintcdn.com/onesignal/86gjHZhU_WHClFAO/images/journeys/progression-journeys.png?fit=max&auto=format&n=86gjHZhU_WHClFAO&q=85&s=d1115ca7a2a7c06aa0cc0fa4b81a0533" alt="Fluxo de journey progressiva com nós wait-until para cada marco de nível" width="690" height="1482" data-path="images/journeys/progression-journeys.png" />
</Frame>

**Etapas da Journey**

<Steps>
  <Step title="Usuário entra na journey">
    Todos os usuários elegíveis entram com base nas regras de entrada.
    Gatilho: **Evento Personalizado** `Progression_Level` com `progression_level = 0`.
    Início: **Imediatamente**.
  </Step>

  <Step title="Nível 1">
    * Espere até que o evento personalizado `Progression_Level` ocorra com `progression_level = 1`.
    * Envie: mensagem **Nível 1 Concluído!**.
    * (Opcional) Aplique expiração no nó de espera → sair do usuário se o marco não for alcançado.
    * (Opcional) Ramificar: se a expiração ocorrer, marque o usuário e envie-o para uma journey de reengajamento.
  </Step>

  <Step title="Nível 2">
    * Espere até que o evento personalizado `Progression_Level` ocorra com `progression_level = 2`.
    * Envie: mensagem **Nível 2 Concluído, você está indo muito bem!**.
    * (Opcional) Aplique expiração ou ramificar/marcar para reengajamento.
  </Step>

  <Step title="Nível 3">
    * Espere até que o evento personalizado `Progression_Level` ocorra com `progression_level = 3`.
    * Envie: mensagem **Você alcançou o nível 3!**.
    * (Opcional) Aplique expiração ou ramificar/marcar para reengajamento.
  </Step>

  <Step title="Sair">
    Finalize a journey quando os usuários completarem o Nível 3 ou quando um nó Wait Until expirar.
    Opcionalmente, use caminhos de ramificação/tag para rotear usuários paralisados para uma trilha de reengajamento.
    Agendamento: **Iniciar imediatamente**, **Nunca para**.
  </Step>
</Steps>

<Tip>
  Este método garante que a progressão aconteça apenas quando sinais de engajamento reais ocorrerem. Adicionar lógica de expiração e ramificação/tag permite que você lide graciosamente com usuários paralisados — seja saindo deles ou re-roteando para uma journey de reengajamento.
</Tip>

***

## Ramificar uma Journey pelo botão de ação clicado

Roteie usuários por diferentes caminhos de Journey com base em qual botão de ação de notificação push eles tocaram. Este padrão usa [botões de ação](./action-buttons), um [evento personalizado](./custom-events) e uma etapa [Wait Until](./journeys-actions#wait-until) para ramificar usuários pelo clique específico no botão — não apenas se eles clicaram ou não.

<Info>
  Este exemplo requer código de website ou aplicativo para capturar o clique no botão e enviar um evento personalizado. Não pode ser feito inteiramente pelo painel do OneSignal.
</Info>

| Configuração da Journey  | Descrição                                                                                                                        |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| **Regras de entrada**    | Usuário corresponde aos critérios do segmento (por exemplo, usuários inscritos ou um segmento específico de campanha).           |
| **Regras de saída**      | Eles avançaram por toda a journey.                                                                                               |
| **Regras de re-entrada** | Não                                                                                                                              |
| **Conteúdo**             | Envie um push com múltiplos botões de ação, depois ramifique mensagens de acompanhamento com base em qual botão o usuário tocou. |

As condições de comportamento de mensagem da [ramificação Sim/Não](./journeys-actions#yesno-branch) integradas detectam se um usuário **clicou** ou **recebeu** uma mensagem — mas não *qual* botão foi clicado. Para ramificar por botão específico, você captura o ID de ação do evento de clique e o envia como uma propriedade de Evento Personalizado em que a Journey pode ramificar.

<Steps>
  <Step title="Adicione botões de ação ao seu push">
    Ao criar a mensagem push na Journey (ou em um [template](./templates)), abra **Opções Avançadas > Botões de Ação** e atribua um **ID de ação** único a cada botão.

    **Exemplo**: Um push promocional com dois CTAs:

    * Botão 1: "Comprar Agora" → ID de ação: `shop_now`
    * Botão 2: "Saiba Mais" → ID de ação: `learn_more`

    Veja [Botões de ação](./action-buttons) para detalhes completos de configuração.
  </Step>

  <Step title="Adicione um listener de clique e envie um Evento Personalizado">
    No seu website ou aplicativo, ouça o evento de clique na notificação e envie um Evento Personalizado que inclua o ID de ação como propriedade.

    <Note>
      O exemplo do Web SDK requer versão `160500` ou posterior. Os usuários devem estar [logados](./web-sdk-reference#login) para que eventos personalizados sejam rastreados.
    </Note>

    <CodeGroup>
      ```javascript Web SDK theme={null}
      OneSignalDeferred.push(function(OneSignal) {
        OneSignal.Notifications.addEventListener("click", function(event) {
          var actionId = event.result.actionId;
          if (actionId) {
            OneSignal.User.trackEvent("cta_clicked", { button: actionId });
          }
        });
      });
      ```

      ```kotlin Android SDK theme={null}
      OneSignal.Notifications.addClickListener { event ->
          val actionId = event.result.actionId
          if (actionId != null) {
              OneSignal.User.trackEvent("cta_clicked", mapOf("button" to actionId))
          }
      }
      ```

      ```swift iOS SDK theme={null}
      let listener = { (event: OSNotificationClickEvent) in
          if let actionId = event.result.actionId {
              OneSignal.User.trackEvent("cta_clicked", properties: ["button": actionId])
          }
      }
      OneSignal.Notifications.addClickListener(listener)
      ```
    </CodeGroup>

    Veja [Eventos personalizados](./custom-events) para requisitos e limites de eventos.
  </Step>

  <Step title="Adicione uma etapa Wait Until na Journey">
    Após a etapa de mensagem push na sua Journey:

    1. Adicione uma etapa **Wait Until**.
    2. Adicione uma condição para cada botão: Evento Personalizado `cta_clicked` onde a propriedade `button` é igual ao ID de ação (por exemplo, `shop_now`).
    3. Adicione condições adicionais para cada ID de ação em que deseja ramificar (por exemplo, `learn_more`).
    4. Defina uma **expiração** (por exemplo, 3 dias) para que usuários que não clicarem em nenhum botão continuem por um caminho de fallback.

    Os usuários seguem a ramificação para a **primeira condição que atendem**. Se nenhuma condição for atendida antes da expiração, eles seguem a ramificação de expiração.
  </Step>

  <Step title="Adicione mensagens de acompanhamento a cada ramificação">
    Em cada ramificação após a etapa Wait Until, adicione a mensagem ou ação de acompanhamento adequada:

    * **Ramificação "Comprar Agora"**: Envie uma recomendação de produto ou código de desconto.
    * **Ramificação "Saiba Mais"**: Envie conteúdo educativo ou visão geral de funcionalidades.
    * **Ramificação de expiração**: Envie uma mensagem de reengajamento ou saia da Journey.
  </Step>
</Steps>

<Tip>
  Você pode encadear múltiplas etapas Wait Until para ramificar em interações subsequentes também — não há limite no número de etapas Wait Until em uma Journey.
</Tip>

***

## FAQ

### Posso agendar uma mensagem para enviar todos os dias?

Sim. Adicione um nó de [janela de tempo](./journeys-actions#time-window) como a primeira etapa e configure-o para todos os dias da semana com as horas em que deseja que a mensagem seja enviada (por exemplo, das 10h às 18h no fuso horário do usuário). Em seguida, defina as **regras de re-entrada** para re-entrar após um tempo menor que um dia, mas **maior que a duração da janela de tempo** — por exemplo, 12 horas para uma janela de 8 horas. Isso garante que os usuários entrem novamente cedo o suficiente para alcançar a janela de tempo do dia seguinte sem o risco de envio duplicado na mesma janela.

### Posso fazer teste A/B de mensagens diferentes em uma Journey?

Sim. Adicione um nó de [ramificação dividida](./journeys-actions#random-split) para dividir os usuários uniformemente (por exemplo, 50/50). Coloque um template de mensagem diferente em cada ramificação, depois compare as análises entre os dois templates após a Journey ser executada.

### Como limito quantas vezes um usuário pode entrar em uma Journey?

Use uma tag (por exemplo, `journey_count`) para rastrear entradas. Incremente a tag cada vez que o usuário entrar e adicione uma regra de exclusão de público que bloqueie usuários assim que a tag atingir seu limite desejado. Veja o exemplo de [Journey de entrada limitada](#limited-entry-journey) acima.

### Por que minha Journey recorrente enviou no dia errado?

O nó de [janela de tempo](./journeys-actions#time-window) filtra pelo fuso horário local do usuário se dados de fuso horário estiverem disponíveis. Se um usuário não tiver dados de fuso horário, a mensagem é enviada com base no fuso horário padrão do seu aplicativo. Verifique se as configurações de janela de tempo e os dados de fuso horário do usuário estão corretos.

### Como paro uma Journey em execução?

Defina o status da Journey como **Pausada** ou **Parada** nas configurações da Journey. Journeys pausadas retêm os usuários na etapa atual; journeys paradas saem todos os usuários imediatamente. Veja [Configurações da Journey](./journeys-settings) para detalhes.

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Visão geral de Journeys" icon="route" href="./journeys-overview">
    Introdução a Journeys e como funcionam.
  </Card>

  <Card title="Ações de Journey" icon="code-branch" href="./journeys-actions">
    Adicione etapas de espera, lógica de ramificação, janelas de tempo e caminhos divididos.
  </Card>

  <Card title="Configurações de Journey" icon="gear" href="./journeys-settings">
    Configure regras de entrada, regras de saída, reentrada e agendamento.
  </Card>

  <Card title="Mensagens de Journey" icon="envelope" href="./journeys-messages">
    Configure etapas de push, email, SMS e mensagem in-app em uma Journey.
  </Card>

  <Card title="Carrinho abandonado" icon="cart-shopping" href="./abandoned-cart">
    Tutorial completo para criar uma Journey de carrinho abandonado.
  </Card>

  <Card title="Eventos personalizados" icon="bolt" href="./custom-events">
    Acione Journeys e passe propriedades de eventos para personalização.
  </Card>

  <Card title="Analytics de Journey" icon="chart-bar" href="./journeys-analytics">
    Acompanhe o desempenho da Journey com métricas de entrega, atividade de usuários e insights de conversão.
  </Card>
</Columns>

<AccordionGroup>
  <Accordion title="Recursos adicionais no blog do OneSignal">
    * [Maximizando o Engajamento do Usuário: A Sinergia de Notificações Push e Email](https://onesignal.com/blog/use-push-notifications-and-email-together/)
    * [Entregue Valor Consistentemente com Journeys](https://onesignal.com/blog/consistently-drive-value-with-journeys/)
    * [Aumente o Engajamento com Email para Journeys Cross-Channel](https://onesignal.com/blog/increase-engagement-with-email-for-cross-channel-journeys/)
    * [Melhore a Retenção com In-App e SMS para Journeys](https://onesignal.com/blog/improve-retention-with-in-app-and-sms-for-journeys/)
  </Accordion>
</AccordionGroup>
