Comunicação · Push
Comunicação · Omnichannel

Push Notifications

O canal mais rápido e barato do Romeo. Push chega em segundos, custa zero, e captura atenção imediata. Disponível em mobile (iOS/Android) e web (browsers modernos).

Versão
2.0
Atualizado
junho/2026
Providers
FCM + APNs
Status
produção
1

Resumo

Push notifications são o primeiro canal de contato para notificações de alta urgência. Chegam instantaneamente, aparecem na lock screen do dispositivo e capturam atenção mesmo quando o usuário não está no app.

O Romeo usa push como canal primário para alertas em tempo real, com fallback para WhatsApp e SMS quando necessário. A estratégia é: push primeiro, escalar se não lido.

Vantagem
Push é gratuito (sem custo por mensagem), instantâneo (< 1s de latência) e onipresente (funciona em qualquer dispositivo moderno). É o canal mais eficiente do stack.
2

Arquitetura do sistema

O sistema de push usa Firebase Cloud Messaging (FCM) como camada de abstração, que roteia para APNs (iOS) e FCM nativo (Android/Web).

1
Evento

Ação no sistema gera notificação (ex: novo lead, visita agendada)

2
Enriquecimento

Sistema adiciona contexto: deep link, imagem, ações

3
Token lookup

Busca tokens de dispositivo do usuário (pode ter múltiplos)

4
FCM dispatch

Notificação enviada para FCM com payload estruturado

5
Delivery

FCM roteia para APNs (iOS) ou entrega direta (Android/Web)

6
Tracking

Callbacks de entrega e interação atualizados em tempo real

Componentes técnicos

ComponenteTecnologiaFunção
Token registryPostgreSQLArmazena tokens por usuário/dispositivo
Push queueRedis StreamsBuffer para envio em batch
FCM clientFirebase Admin SDKInterface com FCM
APNs passthroughVia FCMEntrega iOS sem setup direto
Web pushFCM + Service WorkerPush para browsers
AnalyticsBigQueryMétricas de entrega e engajamento

Multi-device: um usuário pode ter múltiplos tokens (celular pessoal, celular trabalho, tablet, browser). Sistema envia para todos, mas deduplica se lido em qualquer um.

3

Push mobile (iOS/Android)

Push mobile é o principal canal de alertas em tempo real. Apps Romeo para iOS e Android registram token no primeiro acesso e mantêm atualizado.

Diferenças iOS vs Android

AspectoiOSAndroid
PermissãoExplícita (prompt obrigatório)Implícita (padrão habilitado)
Taxa de opt-in~65%~95%
Entrega garantidaAPNs com prioridade altaFCM com prioridade alta
Rich mediaImagem, vídeo, áudioImagem
AçõesAté 4 botõesAté 3 botões
Notificação em focoControlável por appSempre aparece

Estratégia de permissão iOS

Como iOS requer permissão explícita, o timing do prompt é crítico. O Romeo usa "pre-permission" flow:

  1. Não pede permissão no primeiro acesso
  2. Espera o usuário completar primeira ação relevante (ex: cadastrar imóvel)
  3. Mostra tela educativa explicando valor das notificações
  4. Só então dispara o prompt nativo do iOS
  5. Se negar, tenta novamente após 30 dias com contexto diferente
Taxa de opt-in
Com essa estratégia, taxa de opt-in iOS subiu de 52% para 65%. Cada 1% representa ~200 usuários a mais recebendo alertas em tempo real.

Deep links

Toda push carrega deep link que abre a tela relevante no app:

NotificaçãoDeep linkTela destino
Novo leadromeo://leads/{id}Detalhe do lead
Visita agendadaromeo://visits/{id}Detalhe da visita
Proposta recebidaromeo://proposals/{id}Detalhe da proposta
Mensagem novaromeo://chat/{thread_id}Conversa específica
Pagamento vencendoromeo://payments/{id}Detalhe do pagamento
4

Push web (browsers)

Push web permite notificar usuários desktop mesmo quando não estão com o Romeo aberto. Funciona via Service Worker em browsers modernos.

Suporte por browser

BrowserSuporteMarket share Romeo
ChromeCompleto68%
FirefoxCompleto8%
Safari (macOS)Parcial (desde v16)12%
EdgeCompleto9%
Safari (iOS)Via PWA apenas (desde iOS 16.4)3%

Fluxo de opt-in web

1Trigger contextual

Após usuário completar ação relevante (ex: criar lead), mostra banner explicando benefícios de notificações.

2Prompt nativo

Se usuário clica "Habilitar", browser mostra prompt nativo de permissão. Taxa de conversão do banner: 34%.

3Service Worker

Se aceito, Service Worker é registrado e token FCM é salvo. Notificações funcionam mesmo com browser fechado.

Fallback: usuários que negam push web recebem notificações in-app (badge, dropdown) quando acessam a plataforma. Não perdemos comunicação, apenas imediatismo.

5

Segmentação de audiência

Nem toda notificação vai para todos. O sistema permite segmentar audiência por atributos do usuário, comportamento e contexto.

Critérios de segmentação

CritérioExemplosUso típico
RoleCorretor, Gestor, Proprietário, InquilinoNotificações específicas por papel
LocalizaçãoEstado, Cidade, RegiãoCampanhas regionais
ComportamentoAtivo, Inativo 7d, Inativo 30dReengajamento
DispositivoiOS, Android, WebFeatures específicas
PlanoFree, Pro, EnterpriseUpsell, features beta
EventosVisitou imóvel, Fez proposta, AssinouFollow-up contextual

Audiências salvas

O sistema mantém audiências pré-configuradas para casos de uso comuns:

AudiênciaDefiniçãoTamanho atual
all_usersTodos com push habilitado~18.000
active_brokersCorretores com ação nos últimos 7 dias~2.400
inactive_30dUsuários sem ação em 30 dias~3.200
mobile_onlySó usam app mobile~8.500
web_onlySó usam web~4.200
premium_usersPlanos Pro ou Enterprise~1.800
new_users_7dCadastrados nos últimos 7 dias~450
A/B Testing
Campanhas de push suportam A/B test. Sistema divide audiência em grupos, envia variantes diferentes e mede CTR para determinar vencedor antes de expandir.
6

Rich notifications

Além de texto simples, push pode incluir imagens, ações interativas e dados estruturados para experiência mais rica.

Elementos suportados

ElementoiOSAndroidWeb
Imagem grandeSim (1:1 ou 2:1)Sim (2:1)Sim (limitado)
Ícone customizadoNãoSimSim
Ações (botões)Até 4Até 3Até 2
Resposta inlineSimSimNão
Badge countSimNãoNão
Som customizadoSimSimNão
Prioridade visualSimSimParcial

Exemplos de rich notifications

Novo lead com imóvel
  • Título: "Novo lead interessado!"
  • Corpo: "Maria Silva quer visitar Ap na Rua das Flores"
  • Imagem: Foto principal do imóvel
  • Ações: [Ver lead] [Ligar agora]
Visita confirmada
  • Título: "Visita confirmada para amanhã"
  • Corpo: "João Silva, Quinta 14h, Rua das Flores 123"
  • Imagem: Mapa com pin da localização
  • Ações: [Ver detalhes] [Abrir Waze]
Proposta recebida
  • Título: "Nova proposta de R$ 2.800/mês"
  • Corpo: "Pedro Souza fez proposta para o Ap Centro"
  • Imagem: Foto do imóvel
  • Ações: [Aceitar] [Ver proposta] [Contraproposta]

Fallback: se o dispositivo não suporta elementos rich, a notificação é enviada em formato simples (título + corpo). Nunca falha silenciosamente.

7

Métricas e otimização

Push é monitorado em tempo real com métricas de entrega, engajamento e qualidade para otimização contínua.

KPIs principais

MétricaMetaAtualAlerta
Taxa de entrega> 99%99.6%< 98%
Taxa de abertura (mobile)> 25%32%< 20%
Taxa de abertura (web)> 15%18%< 10%
Latência P50< 500ms380ms> 1s
Latência P99< 3s1.8s> 5s
Taxa de opt-out< 0.5% / mês0.3%> 1%
Tokens inválidos< 5%3.2%> 10%

Breakdown por plataforma

PlataformaTokens ativosEntregaCTR
iOS7.20099.8%34%
Android9.10099.5%29%
Chrome (web)3.40099.2%19%
Firefox (web)42098.9%16%
Safari (web)68097.8%14%

Otimizações implementadas

  • Batching: notificações em rajada são agrupadas (ex: 5 leads em 1 min = 1 push com "5 novos leads")
  • Quiet hours: push não-urgente respeitam horário silencioso do usuário
  • Token cleanup: tokens sem interação em 90 dias são removidos do registro
  • Priority tuning: FCM priority ajustado por tipo (high para P1/P2, normal para outros)
  • Collapse key: múltiplas pushs do mesmo tipo substituem a anterior (evita flood)
Dashboard
Métricas de push disponíveis em tempo real no painel de operações. Alertas automáticos via Slack se entrega cai ou latência aumenta.

Testes de horário

A/B tests mostraram que horário ideal para push varia por tipo:

Tipo de pushHorário idealCTR médio
Novo leadImediato (qualquer hora)38%
Relatório diário8h–9h22%
Reengajamento11h–12h ou 18h–19h15%
Novidades do produto14h–15h12%
Lembrete de ação10h–11h28%