Skip to main content

Descripción general de la integración de OneSignal Snowflake


Descripción general

La integración de OneSignal + Snowflake admite dos potentes canales de datos:
  • Exportar: Envía automáticamente datos de eventos de mensajería (push, correo electrónico, SMS, in-app) desde OneSignal a Snowflake para análisis y generación de informes.
  • Importar: Sincroniza eventos de usuario personalizados desde tus conjuntos de datos de Snowflake a OneSignal para activar Journeys automatizados y mensajería personalizada.
Juntas, estas integraciones te brindan control total sobre los datos de participación del usuario, lo que impulsa análisis avanzados y mensajería en tiempo real impulsada por el comportamiento.

Exportar eventos de OneSignal a Snowflake

Envía eventos de rendimiento y participación de mensajería (p. ej., envíos, aperturas, clics) a Snowflake para:
  • Crear paneles e informes personalizados
  • Rastrear tendencias de entrega y participación entre canales
  • Combinar datos de OneSignal con otros datos comerciales para análisis
Requisitos
  • Plan Professional de OneSignal (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 recurso compartido.
Pasos de configuración

1. Registrarse

Para activar la integración de Snowflake, deberás solicitar acceso a través de la lista de OneSignal Marketplace para Message Events Data. Desde allí nos pondremos en contacto con tu equipo para obtener más información.

2. Proporcionar información de la cuenta

Una vez que nos conectemos con tu equipo, deberás proporcionarnos algunos detalles para que podamos compartir datos contigo. Necesitaremos tu ID de cuenta de Snowflake y tu ID de organización de Snowflake. La forma más fácil de obtener esa información es hacer clic en el botón “Copiar identificador de cuenta” (como se muestra a continuación).
Debes estar en contacto con nosotros a través de la lista de OneSignal Marketplace. Sin embargo, si tienes alguna otra pregunta sobre cómo proporcionar información de la cuenta, puedes enviar un correo electrónico a [email protected]

Copiar el identificador de cuenta de Snowflake

Una vez que seas aceptado en el programa, estate atento a algunos elementos:
  • Correo electrónico de OneSignal dándote la bienvenida al programa
  • Correo electrónico de Snowflake notificando que el recurso compartido de datos está completo

Correo electrónico de notificación de recurso compartido de datos de Snowflake

3. Aceptar el recurso compartido de datos en Snowflake

Una vez que recibas un correo electrónico de Snowflake notificándote que el recurso compartido de datos está completo, deberías poder iniciar sesión en la aplicación de Snowflake y aceptar el recurso compartido de datos. Navega a DataPrivate Sharing donde deberías poder ver una nueva lista compartida privadamente. Una vez que hagas clic en Get, tus datos comenzarán a replicarse en tu región.

Interfaz de compartición privada de Snowflake

Nota: Si el botón Get no está disponible pero hay un botón Request, los permisos del rol que intenta realizar el recurso compartido no incluyen CREATE DATABASE o IMPORT SHARE. Sugerimos cambiar al rol ACCOUNTADMIN. La replicación de datos llevará algún tiempo. Snowflake hará un seguimiento con un correo electrónico adicional una vez que los datos estén disponibles. Deberías ver un cuadro de diálogo como este

Cuadro de diálogo de estado de replicación de datos

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

Cuadro de diálogo de configuración de base de datos

Establece el nombre de la base de datos y los roles de base de datos según tus preferencias. Luego haz clic en Get

Finalización de la configuración del recurso compartido de datos

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

Eventos y propiedades

Una descripción general de los datos disponibles en Snowflake Marketplace

Datos de eventos de mensajes

Consulta Event Streams para obtener más detalles. Para cada evento de mensaje generado por un usuario, se adjuntarán los siguientes metadatos 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 utiliza 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 obtener más detalles. Los eventos de mensajes son la primera categoría de datos que ofreceremos en Snowflake Marketplace. ¡Contáctanos en [email protected] con cualquier solicitud de categorías adicionales de datos!

Retención de datos

Los datos compartidos desde OneSignal a través de Snowflake se retienen durante un período de 30 días. Para garantizar la preservación de datos más allá de este plazo, te 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 mensajes basados en datos de comportamiento
Requisitos
  • Cuenta de Snowflake con acceso al almacén
  • Datos de eventos almacenados en tablas o vistas de Snowflake
  • Conectividad de red desde OneSignal a tu instancia de Snowflake
  • Credenciales de usuario con los 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:
-- Create a role for the census user
CREATE ROLE CENSUS_ROLE;

-- Ensure the sysadmin role inherits any privileges the census role is granted
GRANT ROLE CENSUS_ROLE TO ROLE SYSADMIN;
2

Crear almacén dedicado

Crea un almacén optimizado en costos para las operaciones de OneSignal:
-- Create a warehouse for the census role, optimizing for cost over performance
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:
-- Create the census user
CREATE USER CENSUS WITH
    DEFAULT_ROLE = CENSUS_ROLE
    DEFAULT_WAREHOUSE = CENSUS_WAREHOUSE
    PASSWORD = '<strong-unique-password>';

GRANT ROLE CENSUS_ROLE TO USER CENSUS;

-- Grant access to your event data (replace with your actual database/schema)
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:
-- Create a private bookkeeping database
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 utilizas el motor de sincronización básico o el modo de solo lectura.
5

Configurar autenticación

Configura la autenticación de par de claves (recomendado) para mayor seguridad:
  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 la configuración de conexión de OneSignal
Alternativamente, puedes usar autenticación por contraseña (obsoleto - se bloqueará en noviembre de 2025).
6

Conectar a OneSignal

En OneSignal, vaya a Datos > Integraciones y haga clic en Agregar integración.Selecciona Snowflake y proporciona los siguientes detalles de conexión:
  • Nombre de cuenta: Tu identificador de cuenta de Snowflake (p. ej., abc123.us-east-1)
  • Almacén: CENSUS_WAREHOUSE
  • Usuario: CENSUS
  • Base de datos: El nombre de tu base de datos de eventos
  • Esquema: El nombre de tu esquema de datos de eventos
  • Autenticación: Par de claves (proporciona la clave privada y la frase de contraseña opcional)

Mapeo de datos de eventos

Mapee su de al formato de eventos personalizados de OneSignal:
Campo de OneSignalDescripciónRequerido
nameevent_nameIdentificador de evento
external_iduser_idIdentificador de usuario
timestampevent_timestampCuándo ocurrió el eventoNo
propertiesevent_dataNo

Esquema de tabla de eventos de ejemplo

-- Example Snowflake event table
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:
-- Example: Recent high-value events
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

Gestión de costos del almacén

  • Usa tamaño de almacén X-Small para optimización de costos
  • Configura suspensión automática (60 segundos) y reanudación automática
  • Programa sincronizaciones durante horas de menor actividad
  • Considera compartir el almacén con otros sistemas de procesamiento por lotes

Soporte de sincronizaciones en vivo

Para el 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 utilizas 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 conocer los rangos de IP actuales.

Limitaciones

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

Desconectar recurso compartido de datos con OneSignal

Envíanos un correo electrónico a [email protected] para solicitar la desactivación de tu recurso compartido de datos con OneSignal.

Preguntas frecuentes

¿Qué método de autenticación debo usar?

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

¿Puedo usar un almacén existente?

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

¿Cómo puedo optimizar los costos?

  • Usa tamaño de almacén X-Small
  • Configura suspensión automática agresiva (60 segundos)
  • Programa sincronizaciones durante horas de menor actividad
  • Usa sincronizaciones por hora/diarias en lugar de sincronización continua