Si estás utilizando Snowflake con la integración heredada de OneSignal, consulta la guía de Integración heredada de Snowflake.

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.
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
- Plan Professional de OneSignal (no disponible en aplicaciones gratuitas)
- Cuenta de Snowflake
- Rol SECURITYADMIN o ACCOUNTADMIN en Snowflake (para configuración)
1. Recopila los detalles de tu cuenta de Snowflake
Antes de configurar la integración, recopila la siguiente información de tu cuenta de Snowflake:- Host de Snowflake: La URL de tu cuenta en el formato
<account_identifier>.snowflakecomputing.com - Nombre de la base de datos: La base de datos donde OneSignal escribirá los datos de eventos
- Nombre del esquema: El esquema dentro de la base de datos para las tablas de OneSignal (esto será creado automáticamente por OneSignal)
- Nombre del almacén: El almacén a utilizar para operaciones de carga de datos

Ubicación del identificador de cuenta de Snowflake
2. Ejecuta el script de configuración en Snowflake
Ejecuta el siguiente script SQL en tu almacén de Snowflake para crear el rol, usuario, almacén y base de datos necesarios para OneSignal:Puedes personalizar los valores de las variables en la parte superior del script para que coincidan con tus convenciones de nomenclatura. Si estás utilizando un almacén o base de datos existentes, modifica el script en consecuencia.
3. Genera un par de claves para autenticación
OneSignal requiere autenticación de par de claves para un acceso seguro a tu cuenta de Snowflake. Sigue estos pasos para generar y configurar las claves:1
Genera una clave privada
Ejecuta uno de los siguientes comandos para generar una clave privada:Clave privada sin cifrar (más simple, pero menos segura):Clave privada cifrada (recomendado para producción):Si utilizas una clave cifrada, se te pedirá que crees una frase de contraseña. Guarda esta frase de contraseña de forma segura: la necesitarás al configurar OneSignal.
2
Genera la clave pública
Genera la clave pública a partir de tu clave privada:
3
Asigna la clave pública a tu usuario de Snowflake
Copia el contenido del archivo de clave pública (excluyendo las líneas de encabezado y pie de página), luego ejecuta este comando SQL en Snowflake:Reemplaza
<YOUR_PUBLIC_KEY_CONTENT> con el contenido de la clave (sin las líneas -----BEGIN PUBLIC KEY----- y -----END PUBLIC KEY-----).4. Conecta OneSignal
1
Activa la integración
En OneSignal, navega a Data > Integrations > Snowflake.
2
Ingresa los detalles
- Host:
<your_account>.snowflakecomputing.com - Base de datos: p. ej.,
ONESIGNAL - Esquema
- Tabla: p. ej.,
message_events - Usuario:
ONESIGNAL_USER(o el nombre de usuario que creaste) - Clave privada: Pega el contenido de tu archivo de clave privada (
rsa_key.p8) - Frase de contraseña de clave privada (opcional, solo si tu clave privada está cifrada)
3
Configura la integración
- Frecuencia de sincronización: tan frecuente como cada 15 minutos
- Nombres de esquema/tabla: preestablecidos como
onesignal_events_<app-id>ymessage_events(editable) - Tipos de eventos: elige cuáles sincronizar: selecciona todos o solo los que necesitas
4
Selecciona eventos
Selecciona los eventos que deseas recibir en tu almacén de Snowflake.
5
Completa la configuración
Haz clic en Save y espera la confirmación de éxito
La sincronización de datos inicial puede tardar entre 15 y 30 minutos en aparecer en Snowflake.Mientras esperas, envía mensajes a través de push, correo electrónico, in-app o SMS para activar los eventos seleccionados.
5. Ver datos en Snowflake
Una vez que se complete la sincronización inicial, consulta los datos de eventos de OneSignal:Si encuentras problemas como esquemas faltantes, errores de permisos o eventos con formato incorrecto, contacta a
[email protected].Eventos y propiedades de mensajes
Tipos de eventos de mensajes
Propiedad:event_kind
Tipo: String
El tipo de mensaje y evento (por ejemplo, message.push.received, message.push.sent).
| Evento de mensaje (OneSignal) | event_kind | Descripción |
|---|---|---|
| Push enviado | message.push.sent | Notificación push enviada exitosamente. |
| Push recibido | message.push.received | Push entregado (ver Entrega confirmada). |
| Push clic | message.push.clicked | El usuario hizo clic en el push. |
| Push fallido | message.push.failed | Fallo de entrega. Ver informes de mensajes. |
| Push dado de baja | message.push.unsubscribed | El usuario se dio de baja del push. |
| Impresión in-app | message.iam.displayed | Mensaje in-app mostrado. |
| In-app clic | message.iam.clicked | Mensaje in-app clicado. |
| Página in-app vista | message.iam.pagedisplayed | Página in-app mostrada. |
| Email enviado | message.email.sent | Email entregado. |
| Email recibido | message.email.received | Email aceptado por el servidor de correo del destinatario. |
| Email abierto | message.email.opened | Email abierto. Ver Informes de email. |
| Enlace de email clicado | message.email.clicked | Enlace en el email clicado. |
| Email dado de baja | message.email.unsubscribed | Destinatario dado de baja. |
| Email marcado como spam | message.email.resporedasspam | Marcado como spam. Ver Entregabilidad de email. |
| Email rebotado | message.email.hardbounced | Rebote debido a fallo de entrega permanente. |
| Email fallido | message.email.failed | Entrega fallida. |
| Email suprimido | message.email.supressed | Suprimido debido a lista de supresión. |
| SMS enviado | message.sms.sent | SMS enviado. |
| SMS entregado | message.sms.delivered | SMS entregado exitosamente. |
| SMS fallido | message.sms.failed | SMS falló al entregar. |
| SMS no entregado | message.sms.undelivered | SMS rechazado o inalcanzable. |
Esquema de datos de eventos
Para cada evento de mensaje generado por un usuario, los siguientes metadatos se adjuntarán al registro.| Nombre de columna | Tipo | Descripción |
|---|---|---|
event_id | UUID | Identificador único del evento |
event_timestamp | Timestamp | Hora de ocurrencia del evento |
event_kind | String | El Tipo de evento |
subscription_device_type | String | Tipo de dispositivo (por ejemplo, iOS, Android, Web, Email, SMS) |
language | String | Código de idioma de suscripción |
version | String | Versión de integración |
device_os | String | Versión del sistema operativo del dispositivo |
device_type | Number | Tipo de dispositivo numérico |
token | String | Token push, número de teléfono o email |
subscription_id | UUID | ID de suscripción |
subscribed | Boolean | Estado de suscripción |
onesignal_id | UUID | ID de usuario de OneSignal |
last_active | String | Marca de tiempo de última actividad |
sdk | String | Versión del SDK de OneSignal |
external_id | String | ID de usuario externo que debe coincidir con el ID de usuario de integración |
app_id | UUID | ID de aplicación de OneSignal |
template_id | UUID | ID de plantilla (si aplica) |
message_id | UUID | ID de lote/solicitud de mensaje |
message_name | String | Nombre del mensaje |
message_title | String | Título del mensaje (solo en inglés) |
message_contents | String | Cuerpo del mensaje truncado (solo en inglés) |
_created, _id, _index, _fivetran_synced | Uso interno | Metadatos de sincronización de Fivetran |
Notas
- Las sincronizaciones después de guardar/activar pueden tardar de 15 a 30 minutos adicionales en completarse.
- Desactivar aún puede resultar en una sincronización final después de la desactivación.
- Para garantizar una sincronización de datos eficiente, nuestro sistema crea y gestiona automáticamente conjuntos de datos de preparación. Estos conjuntos de datos, nombrados con un patrón como
fivetran_{dos palabras aleatorias}_staging, almacenan temporalmente datos durante el procesamiento antes de que se integren en su esquema principal. Estos conjuntos de datos de preparación son esenciales para mantener un flujo de trabajo optimizado y no deben eliminarse, ya que se recrearán automáticamente.
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
- Acceso a flujos de eventos para eventos de mensajes salientes (Se aplican limitaciones del plan y sobrecargos)
- Acceso a eventos personalizados para sincronización de eventos entrantes (Se aplican limitaciones del plan y sobrecargos)
- Plan de cuenta actualizado (no disponible en aplicaciones gratuitas)
- 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
1
Crear rol dedicado para OneSignal
Crea una jerarquía de roles siguiendo las mejores prácticas de Snowflake:
2
Crear almacén dedicado
Crea un almacén optimizado en costos para las operaciones de OneSignal:
3
Crear usuario y otorgar permisos
Crea el usuario de OneSignal y otorga acceso a tus datos de eventos:
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:
5
Configurar autenticación
Configura la autenticación de par de claves (recomendado) para mayor seguridad:
- Genera un par de claves pública/privada siguiendo la documentación de Snowflake
- Configura la clave pública en tu usuario de Snowflake
- Usa la clave privada en la configuración de conexión de OneSignal
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 OneSignal | Descripción | Requerido | |
|---|---|---|---|
name | event_name | Identificador de evento | Sí |
external_id | user_id | Identificador de usuario | Sí |
timestamp | event_timestamp | Cuándo ocurrió el evento | No |
properties | event_data | No |
Esquema de tabla de eventos de ejemplo
Modo de consulta SQL
Escribe consultas SQL personalizadas para transformar tus datos de eventos: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: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
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