Saltar al contenido principal

Resumen de integración OneSignal Snowflake


Descripción general

La integración OneSignal + Snowflake soporta dos potentes pipelines de datos:
  • Exportar: Envía automáticamente datos de eventos de mensajería (push, email, SMS, in-app) desde OneSignal a Snowflake para análisis y reportes.
  • Importar: Sincroniza eventos personalizados de usuario desde tus conjuntos de datos de Snowflake a OneSignal para activar Journeys automatizados y mensajería personalizada.
Juntas, estas integraciones te dan control completo sobre los datos de compromiso del usuario—potenciando análisis avanzados y mensajería en tiempo real impulsada por el comportamiento.

Exportar eventos de OneSignal a Snowflake

Envía eventos de rendimiento de mensajería y compromiso (por ejemplo, envíos, aperturas, clics) a Snowflake para:
  • Construir dashboards y reportes personalizados
  • Rastrear tendencias de entrega y compromiso a través de canales
  • Combinar datos de OneSignal con otros datos empresariales para análisis
Requisitos
  • OneSignal Plan Profesional (no disponible en aplicaciones gratuitas).
  • Cuenta de Snowflake
  • Asegúrate de que tu cuenta de Snowflake tenga los roles IMPORT SHARE y CREATE DATABASE.
    • Recomendamos usar el rol ACCOUNTADMIN para aceptar el compartir.
Pasos de configuración

1. Registrarse

Para activar la integración de Snowflake, necesitarás solicitar acceso a través del listado del Marketplace de OneSignal para Message Events Data. Desde allí nos comunicaremos con tu equipo para obtener más información.

2. Proporcionar información de cuenta

Una vez que nos conectemos con tu equipo, necesitarás proporcionarnos algunos detalles para que podamos compartir datos contigo. Necesitaremos tu Snowflake Account ID y tu Snowflake Organization ID. La forma más fácil de obtener esa información es hacer clic en el botón “Copy account identifier” (como se muestra a continuación).
Deberías estar en contacto con nosotros a través del listado del Marketplace de OneSignal. Sin embargo, si tienes más preguntas sobre proporcionar información de cuenta, puedes enviar un email a snowflake-data-sharing@onesignal.com

Copiando el identificador de cuenta de Snowflake

Una vez que seas aceptado en el programa, estate atento a algunos elementos:
  • Email de OneSignal dándote la bienvenida al programa
  • Email de Snowflake notificando que el compartir de datos está completo

Email de notificación de compartir datos de Snowflake

3. Aceptar compartir datos dentro de Snowflake

Una vez que recibas un email de Snowflake notificándote sobre el compartir de datos estando completo, deberías poder iniciar sesión en la aplicación de Snowflake y aceptar el compartir de datos. Navega a DataPrivate Sharing donde deberías poder ver un nuevo Listado Compartido Privadamente. Una vez que hagas clic en Get, tus datos comenzarán a replicarse en tu región.

Interfaz de compartir privado de Snowflake

Nota: Si el botón Get no está disponible pero un botón Request sí, los permisos del rol que intenta hacer el compartir no incluyen CREATE DATABASE o IMPORT SHARE. Sugerimos cambiar al rol ACCOUNTADMIN. Tomará algo de tiempo para que los datos se repliquen. Snowflake hará seguimiento con un email adicional una vez que los datos estén disponibles. Deberías ver un diálogo que se ve así

Diálogo de estado de replicación de datos

Una vez que los datos estén listos para usar, tu listado debería tener un nuevo botón Get disponible. Haz clic en el botón Get y serás recibido con un nuevo diálogo

Diálogo de configuración de base de datos

Establece el nombre de la base de datos y los roles de la base de datos a algo que prefieras. Luego haz clic en Get

Finalización de configuración de compartir datos

¡Eso es todo! Los datos ahora se están sincronizando desde OneSignal a Snowflake. La cadencia de sincronización está establecida en una vez cada 24 horas, por lo que los datos iniciales pueden no estar disponibles hasta el día siguiente.

Eventos y propiedades

Un resumen de los datos disponibles en el Marketplace de Snowflake

Datos de eventos de mensajes

Consulta Event Streams para más detalles. Para cada evento de mensaje generado por un usuario, los siguientes metadatos se adjuntarán al registro.
Nombre de columnaTipoDescripciónEjemplo
event_idUUIDUn ID único que representa el eventodc76df03-287c-403a-aabd-b2d4fe44e5c6
event_kindstringEl tipo de evento que ocurrió. La lista de tipos de eventos se puede encontrar aquí.message.email.opened
event_impression_timestampunix_timestampEl momento en que OneSignal procesa el evento1684951205
subscription_idUUIDUn ID único que representa el dispositivo/suscripción6e8b6978-75a4-4882-878c-2d15a78c2409
subscription_languagestringEl idioma de esta suscripciónen
subscription_timezoneintegerLa zona horaria especificada de esta suscripción-25200
subscription_device_typestringEl tipo de dispositivo que usa esta suscripción.SMS
onesignal_idUUIDEl onesignal_id del usuario que hizo la impresióndc76df03-287c-403a-aabd-b2d4fe44e5c6
external_idstringEl external_id del usuario que hizo la impresiónMyExternalId
message_idUUIDUn ID único que representa el mensajedc76df03-287c-403a-aabd-b2d4fe44e5c6
message_namestringEl id legible por humanos de la Notificación/MensajeCampaign 1
message_titlestringEl título de la Notificación/Mensaje.Solo inglés en este momentoBonus 50 coins when you play!
message_bodystringEl cuerpo del mensaje. (Truncado) Solo inglés en este momento.Play against your friends and earn an additional...

Tipos de eventos de mensajes

Consulta Event Streams para más detalles. Los Eventos de Mensajes son la primera categoría de datos que ofreceremos en el Marketplace de Snowflake. ¡Por favor contáctanos en snowflake-data-sharing@onesignal.com con cualquier solicitud de categorías adicionales de datos!

Retención de datos

Los datos compartidos desde OneSignal vía Snowflake se retienen por un período de 30 días. Para asegurar la preservación de datos más allá de este período de tiempo, recomendamos que copies los datos relevantes a tus propias tablas.

Importar eventos desde Snowflake

Envía datos de eventos de comportamiento desde Snowflake a OneSignal para:
  • Activar Journeys basados en la actividad del usuario
  • Personalizar mensajería basada en datos de comportamiento
Requisitos
  • Cuenta de Snowflake con acceso a warehouse
  • Datos de eventos almacenados en tablas o vistas de Snowflake
  • Conectividad de red desde OneSignal a tu instancia de Snowflake
  • Credenciales de usuario con permisos apropiados
Pasos de configuración
1

Crear rol dedicado para OneSignal

Crea una jerarquía de roles siguiendo las mejores prácticas de Snowflake:
-- Crear un rol para el usuario census
CREATE ROLE CENSUS_ROLE;

-- Asegurar que el rol sysadmin herede cualquier privilegio que se otorgue al rol census
GRANT ROLE CENSUS_ROLE TO ROLE SYSADMIN;
2

Crear warehouse dedicado

Crea un warehouse optimizado en costos para operaciones de OneSignal:
-- Crear un warehouse para el rol census, optimizando costo sobre rendimiento
CREATE WAREHOUSE CENSUS_WAREHOUSE WITH
    WAREHOUSE_SIZE = XSMALL
    AUTO_SUSPEND = 60
    AUTO_RESUME = TRUE
    INITIALLY_SUSPENDED = FALSE;

GRANT USAGE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT OPERATE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT MONITOR ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
3

Crear usuario y otorgar permisos

Crea el usuario de OneSignal y otorga acceso a tus datos de eventos:
-- Crear el usuario census
CREATE USER CENSUS WITH
    DEFAULT_ROLE = CENSUS_ROLE
    DEFAULT_WAREHOUSE = CENSUS_WAREHOUSE
    PASSWORD = '<strong-unique-password>';

GRANT ROLE CENSUS_ROLE TO USER CENSUS;

-- Otorgar acceso a tus datos de eventos (reemplaza con tu base de datos/esquema real)
GRANT USAGE ON DATABASE "<your-database>" TO ROLE CENSUS_ROLE;
GRANT USAGE ON SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
4

Crear base de datos de contabilidad (Motor de Sincronización Avanzado)

Crea una base de datos privada para la gestión del estado de sincronización de OneSignal:
-- Crear una base de datos de contabilidad privada
CREATE DATABASE "CENSUS";
GRANT ALL PRIVILEGES ON DATABASE "CENSUS" TO ROLE CENSUS_ROLE;

CREATE SCHEMA "CENSUS"."CENSUS";
GRANT ALL PRIVILEGES ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
GRANT CREATE STAGE ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
Omite este paso si usas el Motor de Sincronización Básico o modo de solo lectura.
5

Configurar autenticación

Configura autenticación de par de claves (recomendado) para seguridad mejorada:
  1. Genera un par de claves pública/privada siguiendo la documentación de Snowflake
  2. Configura la clave pública en tu usuario de Snowflake
  3. Usa la clave privada en las configuraciones de conexión de OneSignal
Alternativamente, puedes usar autenticación por contraseña (obsoleto - será bloqueado en noviembre de 2025).
6

Conectar a OneSignal

In OneSignal, go to Data > Integrations and click Add Integration.Selecciona Snowflake y proporciona los siguientes detalles de conexión:
  • Account Name: Tu identificador de cuenta de Snowflake (por ejemplo, abc123.us-east-1)
  • Warehouse: CENSUS_WAREHOUSE
  • User: CENSUS
  • Database: El nombre de tu base de datos de eventos
  • Schema: El nombre de tu esquema de datos de eventos
  • Authentication: Par de claves (proporciona clave privada y frase de contraseña opcional)

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 esquema de tabla de eventos

-- Ejemplo de tabla de eventos de Snowflake
CREATE TABLE analytics.user_events (
    event_id STRING,
    event_name STRING NOT NULL,
    user_id STRING NOT NULL,
    event_timestamp TIMESTAMP_TZ DEFAULT CURRENT_TIMESTAMP(),
    event_properties VARIANT,
    session_id STRING,
    device_type STRING
);

Modo de consulta SQL

Escribe consultas SQL personalizadas para transformar tus datos de eventos:
-- Ejemplo: Eventos recientes de alto valor
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, CURRENT_TIMESTAMP())
    AND event_properties:value::NUMBER > 100
ORDER BY event_timestamp DESC;

Configuración avanzada

Gestionar costos de Warehouse

  • Usa tamaño de warehouse X-Small para optimización de costos
  • Configura auto-suspend (60 segundos) y auto-resume
  • Programa sincronizaciones durante horas fuera de pico
  • Considera compartir warehouse con otros sistemas de procesamiento por lotes

Soporte de sincronizaciones en vivo

Para procesamiento de eventos en tiempo real, habilita el seguimiento de cambios en tus tablas de eventos:
ALTER TABLE "analytics"."user_events" SET CHANGE_TRACKING = TRUE;

Seguridad de red

Si usas la política de red de IPs Permitidas de Snowflake, agrega las direcciones IP de OneSignal a tu lista de permitidos. Contacta al soporte de OneSignal para los rangos IP actuales.

Limitaciones

  • Las consultas analíticas complejas pueden impactar el rendimiento del warehouse y los costos
  • La autenticación Usuario/Contraseña será obsoleta en noviembre de 2025
  • La base de datos CENSUS está reservada solo para operaciones de OneSignal

Desconectar compartir datos con OneSignal

Por favor envíanos un email a snowflake-data-sharing@onesignal.com para solicitar desactivar tu compartir de datos con OneSignal.

FAQ

¿Qué método de autenticación debería usar?

Usa autenticación de par de claves (recomendado). La autenticación Usuario/Contraseña será bloqueada por Snowflake a partir de noviembre de 2025.

¿Puedo usar un warehouse existente?

Sí, puedes compartir un warehouse con otros sistemas de procesamiento por lotes como dbt o Fivetran para optimizar costos. Asegúrate de que el warehouse tenga capacidad suficiente para tus necesidades de procesamiento de eventos.

¿Cómo puedo optimizar costos?

  • Usa tamaño de warehouse X-Small
  • Configura auto-suspend agresivo (60 segundos)
  • Programa sincronizaciones durante horas fuera de pico
  • Usa sincronizaciones horarias/diarias en lugar de sincronización continua