Personalización sin copia utilizando CDI
Aprende a sincronizar los desencadenantes de Canvas utilizando CDI para una personalización sin copia. Esta característica accede a información específica del usuario desde tu solución de almacenamiento de datos y la transfiere a un Canvas de destino. Los pasos en Canvas pueden incluir opcionalmente campos de personalización que no se conservan en los perfiles de usuario de Braze.
Sincronización de desencadenadores de Canvas
Pasos de inicio rápido
Si ya estás familiarizado con la ingesta de datos en la nube (CDI) de Braze, ten en cuenta que la configuración de una sincronización de desencadenadores de Canvas sigue de cerca el proceso de las integraciones CDI de datos de usuario, con las siguientes excepciones:
- Solo se admiten identificadores de ID externo o alias de usuario. Los números de correo electrónico y teléfono no son identificadores compatibles.
- Solo se pueden sincronizar usuarios existentes de Braze. No se pueden crear usuarios nuevos.
propertiesreemplaza la columnapayload. Es una cadena JSON de los campos que deseas usar como propiedades de entrada de Canvas para la personalización.
Para comenzar, selecciona el tipo de datos Canvas Triggers al crear una nueva sincronización.
Uso de desencadenadores de Canvas
Paso 1: Configura el origen de datos para desencadenadores de Canvas
Paso 1.1: Configura tu tabla de origen en Snowflake
Puedes usar los nombres del siguiente ejemplo o elegir tus propios nombres de base de datos, esquema y tabla. También puedes usar una vista o una vista materializada en lugar de una tabla.
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
--at least one of external_id or alias_name and alias_label is required
EXTERNAL_ID VARCHAR(16777216),
--if using user alias, both alias_name and alias_label are required
ALIAS_LABEL VARCHAR(16777216),
ALIAS_NAME VARCHAR(16777216),
PROPERTIES VARCHAR(16777216)
);
Puedes nombrar la base de datos, el esquema y la tabla como desees, pero los nombres de las columnas deben coincidir con la definición anterior.
UPDATED_AT: La hora en que se actualizó o añadió esta fila a la tabla. Braze sincroniza las filas en las queUPDATED_ATes posterior al último valor sincronizado. Las filas en la marca de tiempo exacta del límite pueden volver a sincronizarse si nuevas filas comparten esa misma marca de tiempo.external_idoalias_nameyalias_labelcomo columna de identificador de usuario. Estos identifican a los usuarios para los que deseas desencadenar la mensajería de Canvas.EXTERNAL_ID: Identifica al usuario que entrará en el Canvas. Debe coincidir con el valorexternal_idutilizado en Braze.ALIAS_NAMEyALIAS_LABEL: Estas columnas crean un objeto de alias de usuario.alias_namedebe ser un identificador único, yalias_labelespecifica el tipo de alias. Los usuarios pueden tener múltiples alias con diferentes etiquetas, pero solo un alias_name poralias_label.
PROPERTIES: Una cadena JSON de campos que estarán disponibles como propiedades de personalización en tu Canvas. Debe contener información específica del usuario.

Las propiedades no son obligatorias para cada fila o usuario. Sin embargo, los valores de las propiedades deben ser una cadena JSON válida. Ingresa una cadena vacía {} si no hay propiedades para la fila.
Paso 1.2: Configura las credenciales
Configura un rol, un almacén y un usuario, y otorga los permisos adecuados. Si ya tienes credenciales de una sincronización existente, puedes reutilizarlas, pero asegúrate de extender el acceso a la tabla de origen de desencadenadores de Canvas.
CREATE ROLE BRAZE_INGESTION_ROLE;
GRANT USAGE ON DATABASE BRAZE_CLOUD_PRODUCTION TO ROLE BRAZE_INGESTION_ROLE;
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC TO ROLE BRAZE_INGESTION_ROLE;
CREATE WAREHOUSE BRAZE_INGESTION_WAREHOUSE;
GRANT USAGE ON WAREHOUSE BRAZE_INGESTION_WAREHOUSE TO ROLE BRAZE_INGESTION_ROLE;
CREATE USER BRAZE_INGESTION_USER;
GRANT ROLE BRAZE_INGESTION_ROLE TO USER BRAZE_INGESTION_USER;
Paso 1.3: Configura las políticas de red
Si tu cuenta tiene políticas de red, incluye las IP de Braze en la lista de permitidos para habilitar la conexión del servicio CDI. Para ver la lista de IP, consulta Ingesta de datos en la nube.
Paso 1.1: Configura tu tabla de origen en Redshift
Puedes usar los nombres del siguiente ejemplo o elegir tus propios nombres de base de datos, esquema y tabla. También puedes usar una vista o una vista materializada en lugar de una tabla.
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC (
updated_at timestamptz default sysdate not null,
--at least one of external_id or alias_name and alias_label is required
external_id varchar not null,.
--if using user alias, both alias_name and alias_label are required
alias_label varchar,
alias_name varchar,
properties varchar(max)
);
Puedes nombrar la base de datos, el esquema y la tabla como desees, pero los nombres de las columnas deben coincidir con la definición anterior.
UPDATED_AT: La hora en que se actualizó o añadió esta fila a la tabla. Braze sincroniza las filas en las queUPDATED_ATes posterior al último valor sincronizado. Las filas en la marca de tiempo exacta del límite pueden volver a sincronizarse si nuevas filas comparten esa misma marca de tiempo.external_idoalias_nameyalias_labelcomo columna de identificador de usuario. Estos identifican a los usuarios para los que deseas desencadenar la mensajería de Canvas.EXTERNAL_ID: Identifica al usuario que entrará en el Canvas. Debe coincidir con el valorexternal_idutilizado en Braze.ALIAS_NAMEyALIAS_LABEL: Estas columnas crean un objeto de alias de usuario.alias_namedebe ser un identificador único, yalias_labelespecifica el tipo de alias. Los usuarios pueden tener múltiples alias con diferentes etiquetas, pero solo unalias_nameporalias_label.
PROPERTIES: Una cadena JSON de campos que estarán disponibles como propiedades de personalización en tu Canvas. Debe contener información específica del usuario.

Las propiedades no son obligatorias para cada fila o usuario. Sin embargo, los valores de las propiedades deben ser una cadena JSON válida. Ingresa una cadena vacía {} si no hay propiedades para la fila.
Paso 1.2: Configura las credenciales
Configura un rol, un almacén y un usuario, y otorga los permisos adecuados. Si ya tienes credenciales de una sincronización existente, puedes reutilizarlas, pero asegúrate de extender el acceso a la tabla de origen de desencadenadores de Canvas.
CREATE USER braze_user PASSWORD '{password}';
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT SELECT ON TABLE CANVAS_TRIGGERS_SYNC TO braze_user;
Paso 1.3: Configura las políticas de red
Si tu cuenta tiene políticas de red, incluye las IP de Braze en la lista de permitidos para habilitar la conexión del servicio CDI. Para ver la lista de IP, consulta Ingesta de datos en la nube.
Paso 1.1: Crea un proyecto o dataset nuevo para tu tabla de origen (opcional)
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
Paso 1.2: Configura tu tabla de origen en BigQuery
Consulta la siguiente información al crear tu tabla de origen:
| Nombre del campo | Tipo | ¿Obligatorio? |
|---|---|---|
UPDATED_AT |
Timestamp | Sí |
PROPERTIES |
JSON | Sí |
EXTERNAL_ID |
STRING | NULLABLE |
ALIAS_NAME |
STRING | NULLABLE |
ALIAS_LABEL |
STRING | NULLABLE |

Las propiedades no son obligatorias para cada fila o usuario. Sin embargo, los valores de las propiedades deben ser una cadena JSON válida. Ingresa una cadena vacía {} si no hay propiedades para la fila.
CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC`
(
updated_at TIMESTAMP DEFAULT current_timestamp,
--At least one of external_id or alias_name and alias_label is required
external_id STRING,
--If using user alias, both alias_name and alias_label are required
alias_name STRING,
alias_label STRING,
properties JSON
);
Paso 1.3: Configura las credenciales
Crea un usuario y otorga permisos. Si ya tienes credenciales de otra sincronización, puedes reutilizarlas siempre que tengan acceso a la tabla de desencadenadores de Canvas.
| Permiso | Propósito |
|---|---|
| BigQuery Connection User | Permite que Braze se conecte. |
| BigQuery User | Permite que Braze ejecute consultas, lea metadatos y liste tablas. |
| BigQuery Data Viewer | Permite que Braze vea los datasets y su contenido. |
| BigQuery Job User | Permite que Braze ejecute trabajos. |
Después de otorgar los permisos, genera una clave JSON. Consulta Crear y eliminar claves para obtener instrucciones. La subirás al panel de Braze más adelante.
Paso 1.4: Configura las políticas de red
Si tu cuenta tiene políticas de red, incluye las IP de Braze en la lista de permitidos para habilitar la conexión del servicio CDI. Para ver la lista de IP, consulta Ingesta de datos en la nube.
Paso 1.1: Crea un catálogo o esquema para tu tabla de origen.
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
Paso 1.2: Configura tu tabla de origen en Databricks
Consulta la siguiente información al crear tu tabla de origen:
| Nombre del campo | Tipo | Obligatorio |
|---|---|---|
UPDATED_AT |
Timestamp | Sí |
PROPERTIES |
JSON | Sí |
EXTERNAL_ID |
STRING | NULLABLE |
ALIAS_NAME |
STRING | NULLABLE |
ALIAS_LABEL |
STRING | NULLABLE |
Puedes nombrar el esquema y la tabla como desees, pero los nombres de las columnas deben coincidir con la definición anterior.
UPDATED_AT: La hora en que se actualizó o añadió esta fila a la tabla. Braze sincroniza las filas en las queUPDATED_ATes posterior al último valor sincronizado. Las filas en la marca de tiempo exacta del límite pueden volver a sincronizarse si nuevas filas comparten esa misma marca de tiempo.external_idoalias_nameyalias_labelcomo columna de identificador de usuario. Estos identifican a los usuarios para los que deseas desencadenar la mensajería de Canvas.EXTERNAL_ID: Identifica al usuario que entrará en el Canvas. Debe coincidir con el valorexternal_idutilizado en Braze.ALIAS_NAMEyALIAS_LABEL: Estas columnas crean un objeto de alias de usuario.alias_namedebe ser un identificador único, yalias_labelespecifica el tipo de alias. Los usuarios pueden tener múltiples alias con diferentes etiquetas, pero solo un alias_name poralias_label.
PROPERTIES: Una cadena o estructura de campos que estarán disponibles como propiedades de personalización en tu Canvas. Debe contener información específica del usuario.

Las propiedades no son obligatorias para cada fila o usuario. Sin embargo, los valores de las propiedades deben ser cadenas JSON válidas. Ingresa una cadena vacía {} si no hay propiedades para la fila.
CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC`
(
updated_at TIMESTAMP DEFAULT current_timestamp(),
--At least one of external_id or alias_name and alias_label is required
external_id STRING,
--If using user alias, both alias_name and alias_label are required
alias_name STRING,
alias_label STRING,
properties STRING, STRUCT, or MAP
);
Paso 1.3: Configura las credenciales
Crea un principal de servicio con credenciales OAuth de máquina a máquina (M2M) (recomendado), o un token de acceso personal. Si ya tienes credenciales de otra sincronización, puedes reutilizarlas siempre que tengan acceso a la tabla de desencadenadores de Canvas.
OAuth M2M: Crea un principal de servicio, genera un secreto de cliente, otorga al principal de servicio el permiso Can use en tu almacén SQL y concédele SELECT en la tabla de desencadenadores de Canvas. Para ver los pasos, consulta Crear credenciales para Braze.
Token de acceso personal:
- Selecciona tu nombre de usuario y luego selecciona User Settings.
- En la pestaña Access tokens, selecciona Generate new token.
- Agrega un comentario para identificar el token, como “Braze CDI”.
- Deja Lifetime (days) en blanco para que no expire y luego selecciona Generate.
- Copia y guarda el token de forma segura para usarlo en el panel de Braze.
Paso 1.4: Configura las políticas de red
Si tu cuenta tiene políticas de red, incluye las IP de Braze en la lista de permitidos para habilitar la conexión del servicio CDI. Para ver la lista de IP, consulta Ingesta de datos en la nube.
Paso 1.1: Configura tu tabla de origen en Fabric
CREATE OR ALTER TABLE [warehouse].[schema].[CDI_table_name]
(
UPDATED_AT DATETIME2(6) NOT NULL,
PROPERTIES VARCHAR NOT NULL,
--at least one of external_id or alias_name and alias_label is required
EXTERNAL_ID VARCHAR,
--if using user alias, both alias_name and alias_label are required
ALIAS_NAME VARCHAR,
ALIAS_LABEL VARCHAR
)
GO
Paso 1.2: Configura las credenciales
Crea un principal de servicio y otorga permisos. Si ya tienes credenciales de otra sincronización, puedes reutilizarlas, solo asegúrate de que tengan acceso a la tabla de cuentas.
Paso 1.3: Configura las políticas de red
Si tu cuenta tiene políticas de red, incluye las IP de Braze en la lista de permitidos para habilitar la conexión del servicio CDI. Para ver la lista de IP, consulta Ingesta de datos en la nube.
Para sincronizar desencadenadores de Canvas desde almacenamiento de archivos, crea un archivo de origen con los siguientes campos.
| Campo | Obligatorio | Descripción |
|---|---|---|
EXTERNAL_ID |
Sí, uno de external_id o alias_name y alias_label |
Identifica al usuario que deseas actualizar. Debe coincidir con el valor external_id utilizado en Braze. |
ALIAS_NAME y ALIAS_LABEL |
Sí, uno de external_id o alias_name y alias_label |
Estas dos columnas crean un objeto de alias de usuario. alias_name debe ser un identificador único, y alias_label especifica el tipo de alias. Los usuarios pueden tener múltiples alias con diferentes etiquetas, pero solo un alias_name por alias_label. |
PROPERTIES |
Sí | Cadena JSON de campos que estarán disponibles como propiedades de personalización en tu Canvas. Debe contener información específica del usuario. |

Los nombres de archivo deben seguir las reglas de AWS y ser únicos. Agrega marcas de tiempo para ayudar a garantizar la unicidad. Para más información sobre la sincronización con Amazon S3, consulta Integraciones de almacenamiento de archivos.
Paso 2: Configura tu Canvas de destino
- Configura tu Canvas de destino para desencadenadores de Canvas. Crea un Canvas nuevo o selecciona uno existente activado por API. Consulta Tipos de programación de entrada para obtener instrucciones sobre cómo crear un Canvas con un tipo de programación de entrega activado por API.
- Después de seleccionar el tipo de programación de entrega activado por API, continúa con la configuración del Canvas y constrúyelo. Los Canvas pueden variar desde envíos simples de un solo mensaje hasta flujos de trabajo complejos de clientes con múltiples pasos.
- Dentro de los pasos de tu Canvas, utiliza las propiedades de entrada de Canvas para personalizar los mensajes con los campos de propiedades que planeas sincronizar desde tu tabla de origen.
- Por ejemplo, si en el paso 1 instrumentaste un campo de propiedades para
account_balance, usarías la siguiente plantilla de Liquid para personalizar tu mensaje:\{\{canvas_entry_properties.\$\{account_balance\}\}\}.
- Por ejemplo, si en el paso 1 instrumentaste un campo de propiedades para
- Después de construir tu Canvas, lánzalo y continúa con el Paso 3.
Paso 3: Crea tu sincronización zero-copy
Con la configuración de tu origen completa y el Canvas de destino lanzado, crea una nueva sincronización de datos:
- En Braze, ve a Data Settings > Cloud Data Ingestion.
- Configura la conexión ingresando los detalles de conexión (o reutiliza las credenciales existentes) y la tabla de origen del Paso 1.
- Proporciona un nombre para la integración.
- Selecciona el tipo de datos Canvas triggers.
- Elige tu Canvas de destino (del Paso 2).
- Elige una frecuencia de sincronización.
- Configura las preferencias de notificación.
- Selecciona Test Connection para confirmar que todo funciona como se espera. Si te conectas a Snowflake, primero agrega la clave pública que se muestra en el panel al usuario creado para que Braze se conecte a Snowflake. Para completar este paso, necesitarás acceso de SECURITYADMIN o superior en Snowflake.
- Guarda la sincronización para comenzar a sincronizar los desencadenadores de Canvas.
Cuando se ejecute la sincronización, los usuarios en tu tabla de origen comenzarán a entrar al Canvas. Usa los análisis de Canvas y la página de registros de sincronización de la ingesta de datos en la nube para monitorear el rendimiento.

Revisa toda tu configuración (desde el comportamiento de la sincronización hasta la configuración del Canvas) para evitar envíos inesperados. La configuración del Canvas, como el límite de velocidad, la limitación de frecuencia y los filtros de segmentación, pueden refinar aún más la entrega de mensajes.
Te recomendamos realizar una prueba con una audiencia pequeña o de prueba antes de implementar casos de uso en producción.
Consideraciones
Los desencadenadores de Canvas por CDI utilizan tu límite de velocidad de la REST API para /canvas/trigger/send. Si estás usando este endpoint simultáneamente con los desencadenadores de Canvas por CDI y tu integración REST API, espera que el uso combinado cuente para tu límite de velocidad.
Cada ejecución de sincronización ingresa usuarios en su respectivo Canvas de destino a una tasa máxima de aproximadamente 3.75 millones de usuarios por hora. Prepárate para tiempos de entrada más largos desde el origen al Canvas cuando:
- Sincronices más de 3.75 millones de usuarios por ejecución de sincronización.
- Uses desencadenadores de Canvas por CDI cuando ya estés saturando el límite de velocidad de tu REST API para
/canvas/trigger/send.
Ten en cuenta lo siguiente sobre CDI zero-copy cuando el archivado de mensajes está habilitado:
- Los resultados de la tabla se almacenan temporalmente en Braze durante el procesamiento. También se exportan a Snowflake durante 30 días para que puedas ver exactamente lo que se sincronizó.
- Los mensajes archivados no se guardan en ningún lugar dentro de Braze. Las copias se envían para almacenarse exclusivamente en tu almacenamiento configurado.
- Al usar CDI zero-copy con desencadenadores de Canvas, Braze no almacena una copia de seguridad de los resultados de la consulta del almacén de datos y no se copian datos en el perfil de usuario.
- Las propiedades de contexto de Canvas pueden registrarse en sistemas internos por hasta 30 días.