Pular para o conteúdo principal

Visão Geral

A integração OneSignal + PostgreSQL permite a sincronização de eventos personalizados do seu banco de dados PostgreSQL para o OneSignal para acionar campanhas de mensagens automatizadas e Jornadas com base no comportamento do usuário.

Requisitos

PostgreSQL

  • PostgreSQL 9.6+ ou banco de dados compatível
  • Usuário do banco de dados com permissões apropriadas
  • Acesso de rede do OneSignal à sua instância PostgreSQL
  • Tabelas de eventos contendo dados comportamentais estruturados
Nós recomendamos fortemente contra conectar o OneSignal a um banco de dados PostgreSQL de produção. As consultas de sincronização de eventos são de natureza analítica e podem impactar o desempenho de produção. Use apenas com bancos de dados configurados para cargas de trabalho analíticas.

Configuração

1

Criar usuário dedicado para OneSignal

Crie uma conta de usuário dedicada com permissões apropriadas:
-- Criar usuário OneSignal com senha forte
CREATE USER CENSUS WITH PASSWORD '<strong-unique-password>';

-- Criar esquema privado de contabilidade para estado de sincronização (pule se modo somente leitura)
CREATE SCHEMA CENSUS;

-- Conceder acesso completo ao esquema de contabilidade (pule se modo somente leitura)
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Garantir acesso a objetos existentes no esquema de contabilidade (pule se modo somente leitura)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;
2

Conceder permissões aos dados de eventos

Forneça acesso de leitura aos esquemas contendo seus dados de eventos:
-- Conceder acesso ao esquema (repita para cada esquema com dados de eventos)
GRANT USAGE ON SCHEMA "<your_schema>" TO CENSUS;

-- Conceder acesso de leitura a tabelas existentes
GRANT SELECT ON ALL TABLES IN SCHEMA "<your_schema>" TO CENSUS;

-- Conceder acesso de leitura a tabelas futuras
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Conceder permissões de execução em funções
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA "<your_schema>" TO CENSUS;
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT EXECUTE ON FUNCTIONS TO CENSUS;
3

Conectar ao OneSignal

In OneSignal, go to Data > Integrations and click Add Integration.
  1. Selecione PostgreSQL da lista
  2. Insira seus detalhes de conexão:
    • Host: Nome do host do seu servidor PostgreSQL
    • Port: Geralmente 5432
    • Database: Nome do seu banco de dados
    • Username: CENSUS
    • Password: A senha que você criou
  3. Teste a conexão
  4. Configure quais tabelas contêm seus dados de eventos

Event data mapping

Map your to OneSignal’s custom events format:
OneSignal FieldDescriptionRequired
nameevent_nameEvent identifierYes
external_iduser_idUser identifierYes
timestampevent_timestampWhen event occurredNo
propertiesevent_dataNo

Exemplo de Esquema de Tabela de Eventos

-- Exemplo de tabela de eventos PostgreSQL
CREATE TABLE analytics.user_events (
    event_id SERIAL PRIMARY KEY,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    event_data JSONB,
    session_id VARCHAR(255),
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

Modo de Consulta SQL

Escreva consultas SQL personalizadas para transformar seus dados de eventos:
-- Exemplo: Eventos de compra recentes
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= NOW() - INTERVAL '7 days'
    AND event_name = 'purchase'
ORDER BY event_timestamp DESC;

Configuração Avançada de Rede

O OneSignal pode conectar a instâncias PostgreSQL usando controles avançados de rede:
  • Listas de Permissão de IP: Adicione os endereços IP do OneSignal ao seu firewall e pg_hba.conf
  • Tunelamento SSH: Conecte através de um host bastion para redes privadas
  • Configuração VPC: Conexão direta dentro de ambientes de nuvem
  • Criptografia TLS: Conexões seguras usando SSL/TLS

Configuração do Túnel SSH

Para instâncias PostgreSQL em redes privadas:
  1. Criar usuário SSH: Configure um usuário dedicado em seu host SSH
  2. Configurar túnel: Ative “Usar Túnel SSH” nas configurações de integração do OneSignal
  3. Instalar par de chaves: Adicione a chave pública do OneSignal a ~/.ssh/authorized_keys
  4. Testar conexão: Verifique a conectividade do túnel

Notas

  • Múltiplos Esquemas: Repita as concessões de permissão para cada esquema contendo dados de eventos
  • Views com Referências entre Esquemas: Podem requerer permissões de leitura adicionais em versões mais antigas do PostgreSQL
  • Azure PostgreSQL: Use o formato username@hostname para instâncias do Azure
  • AWS RDS: Use o formato padrão username
  • Desempenho: Considere usar réplicas de leitura para processamento de eventos em larga escala

Limitações

  • Evite conectar a bancos de dados de produção devido à sobrecarga de consultas analíticas
  • Consultas complexas entre esquemas podem requerer permissões adicionais
  • Pooling de conexão recomendado para processamento de eventos de alta frequência

FAQ

Devo usar o modo somente leitura?

Use modo somente leitura se preferir uma configuração mais simples e não puder permitir que o OneSignal crie tabelas. Use modo completo para melhor desempenho com grandes conjuntos de dados de eventos.

Como lido com múltiplos esquemas de eventos?

Repita os comandos de concessão de permissão para cada esquema contendo dados de eventos. O OneSignal pode ler de múltiplos esquemas dentro de uma única conexão.