Saltar al contenido principal

Resumen

La integración de OneSignal + PostgreSQL permite la sincronización de eventos personalizados desde tu base de datos PostgreSQL a OneSignal para activar campañas de mensajería automatizadas y Journeys basados en el comportamiento del usuario.

Requisitos

PostgreSQL

  • PostgreSQL 9.6+ o base de datos compatible
  • Usuario de base de datos con permisos apropiados
  • Acceso de red desde OneSignal a tu instancia de PostgreSQL
  • Tablas de eventos que contengan datos comportamentales estructurados
Recomendamos encarecidamente no conectar OneSignal a una base de datos PostgreSQL de producción. Las consultas de sincronización de eventos son de naturaleza analítica y pueden impactar el rendimiento de producción. Usar solo con bases de datos configuradas para cargas de trabajo analíticas.

Configuración

1

Crear usuario dedicado para OneSignal

Crea una cuenta de usuario dedicada con permisos apropiados:
-- Crear usuario OneSignal con contraseña fuerte
CREATE USER CENSUS WITH PASSWORD '<strong-unique-password>';

-- Crear schema de contabilidad privado para estado de sincronización (omitir si modo solo lectura)
CREATE SCHEMA CENSUS;

-- Otorgar acceso completo a schema de contabilidad (omitir si modo solo lectura)
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Asegurar acceso a objetos existentes en schema de contabilidad (omitir si modo solo lectura)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;
2

Otorgar permisos a datos de eventos

Proporciona acceso de lectura a schemas que contengan tus datos de eventos:
-- Otorgar acceso a schema (repetir para cada schema con datos de eventos)
GRANT USAGE ON SCHEMA "<your_schema>" TO CENSUS;

-- Otorgar acceso de lectura a tablas existentes
GRANT SELECT ON ALL TABLES IN SCHEMA "<your_schema>" TO CENSUS;

-- Otorgar acceso de lectura a tablas futuras
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Otorgar permisos de ejecución en funciones
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 a OneSignal

In OneSignal, go to Data > Integrations and click Add Integration.
  1. Selecciona PostgreSQL de la lista
  2. Ingresa tus detalles de conexión:
    • Host: El nombre de host de tu servidor PostgreSQL
    • Port: Usualmente 5432
    • Database: El nombre de tu base de datos
    • Username: CENSUS
    • Password: La contraseña que creaste
  3. Prueba la conexión
  4. Configura qué tablas contienen tus datos 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

Ejemplo de Schema de Tabla de Eventos

-- Ejemplo de tabla 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

Escribe consultas SQL personalizadas para transformar tus datos de eventos:
-- Ejemplo: Eventos de compra recientes
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;

Configuración Avanzada de Red

OneSignal puede conectarse a instancias de PostgreSQL usando controles de red avanzados:
  • Listas de Permitidos de IP: Agrega las direcciones IP de OneSignal a tu firewall y pg_hba.conf
  • Tunelización SSH: Conéctate a través de un host bastión para redes privadas
  • Configuración VPC: Conexión directa dentro de entornos en la nube
  • Cifrado TLS: Conexiones seguras usando SSL/TLS

Configuración de Túnel SSH

Para instancias de PostgreSQL en redes privadas:
  1. Crear usuario SSH: Configura un usuario dedicado en tu host SSH
  2. Configurar túnel: Habilita “Use SSH Tunnel” en la configuración de integración de OneSignal
  3. Instalar par de claves: Agrega la clave pública de OneSignal a ~/.ssh/authorized_keys
  4. Probar conexión: Verifica la conectividad del túnel

Notas

  • Múltiples Schemas: Repite las concesiones de permisos para cada schema que contenga datos de eventos
  • Vistas con Referencias Entre Schemas: Pueden requerir permisos de lectura adicionales en versiones antiguas de PostgreSQL
  • Azure PostgreSQL: Usa el formato username@hostname para instancias de Azure
  • AWS RDS: Usa el formato estándar username
  • Rendimiento: Considera usar réplicas de lectura para procesamiento de eventos a gran escala

Limitaciones

  • Evita conectar a bases de datos de producción debido a la sobrecarga de consultas analíticas
  • Las consultas complejas entre schemas pueden requerir permisos adicionales
  • Se recomienda agrupación de conexiones para procesamiento de eventos de alta frecuencia

FAQ

¿Debería usar modo solo lectura?

Usa modo solo lectura si prefieres una configuración más simple y no puedes permitir que OneSignal cree tablas. Usa modo completo para mejor rendimiento con conjuntos de datos de eventos grandes.

¿Cómo manejo múltiples schemas de eventos?

Repite los comandos de concesión de permisos para cada schema que contenga datos de eventos. OneSignal puede leer desde múltiples schemas dentro de una sola conexión.