Zero-Copy-Personalisierung mit CDI
Erfahren Sie, wie Sie Canvas-Trigger mithilfe von CDI für eine Zero-Copy-Personalisierung synchronisieren können. Dieses Feature greift auf nutzerspezifische Informationen aus Ihrer Datenspeicher-Lösung zu und überträgt diese an einen Ziel-Canvas. Canvas-Schritte können optional Personalisierungsfelder enthalten, die nicht in Braze-Nutzerprofilen persistent gespeichert werden.
Canvas-Trigger synchronisieren
Schnelleinstieg
Wenn Sie bereits mit Braze CDI vertraut sind, beachten Sie, dass die Einrichtung einer Canvas-Trigger-Synchronisierung dem Prozess für CDI-Integrationen für Nutzerdaten weitgehend folgt, mit folgenden Besonderheiten:
- Es werden nur externe IDs oder Nutzer-Alias-Bezeichner unterstützt. E-Mail-Adressen und Telefonnummern werden nicht als Bezeichner unterstützt.
- Es können nur bestehende Braze-Nutzer:innen synchronisiert werden. Neue Nutzer:innen können nicht erstellt werden.
propertiesersetzt die Spaltepayload. Dies ist ein JSON-String der Felder, die Sie als Canvas-Entry-Eigenschaften zur Personalisierung verwenden möchten.
Wählen Sie zum Einstieg den Datentyp Canvas Triggers aus, wenn Sie eine neue Synchronisierung erstellen.
Canvas-Trigger verwenden
Schritt 1: Datenquelle für Canvas-Trigger einrichten
Schritt 1.1: Quelltabelle in Snowflake einrichten
Sie können die Namen aus dem folgenden Beispiel verwenden oder eigene Datenbank-, Schema- und Tabellennamen wählen. Anstelle einer Tabelle können Sie auch eine View oder eine materialisierte View verwenden.
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)
);
Sie können Datenbank, Schema und Tabelle benennen, wie Sie möchten, aber die Spaltennamen sollten der vorstehenden Definition entsprechen.
UPDATED_AT: Der Zeitpunkt, zu dem diese Zeile aktualisiert oder zur Tabelle hinzugefügt wurde. Braze synchronisiert Zeilen, bei denenUPDATED_ATnach dem zuletzt synchronisierten Wert liegt. Zeilen am exakten Grenz-Zeitstempel können erneut synchronisiert werden, wenn neue Zeilen denselben Zeitstempel teilen.- Entweder
external_idoderalias_nameundalias_labelals Nutzer-Bezeichner-Spalte. Diese identifizieren die Nutzer:innen, für die Sie Canvas-Messaging auslösen möchten.EXTERNAL_ID: Identifiziert die Nutzer:in für den Eintritt in das Canvas. Dieser Wert sollte mit dem in Braze verwendetenexternal_id-Wert übereinstimmen.ALIAS_NAMEundALIAS_LABEL: Diese Spalten erstellen ein Nutzer-Alias-Objekt.alias_namesollte ein eindeutiger Bezeichner sein, undalias_labelgibt den Alias-Typ an. Nutzer:innen können mehrere Aliase mit verschiedenen Labels haben, aber nur einenalias_nameproalias_label.
PROPERTIES: Ein JSON-String von Feldern, die als Personalisierungseigenschaften in Ihrem Canvas verfügbar gemacht werden. Dieser sollte nutzerspezifische Informationen enthalten.

Properties sind nicht für jede Zeile oder jede:n Nutzer:in erforderlich. Die Properties-Werte müssen jedoch ein gültiger JSON-String sein. Geben Sie einen leeren {}-String ein, wenn keine Properties für die Zeile vorhanden sind.
Schritt 1.2: Zugangsdaten einrichten
Richten Sie eine Rolle, ein Warehouse und eine:n Nutzer:in ein und vergeben Sie die entsprechenden Berechtigungen. Wenn Sie bereits Zugangsdaten aus einer vorhandenen Synchronisierung haben, können Sie diese wiederverwenden. Stellen Sie jedoch sicher, dass der Zugriff auf die Canvas-Trigger-Quelltabelle erweitert wird.
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;
Schritt 1.3: Netzwerkrichtlinien konfigurieren
Wenn Ihr Konto über Netzwerkrichtlinien verfügt, setzen Sie die Braze-IPs auf die Allowlist, um die CDI-Dienstverbindung zu ermöglichen. Die Liste der IPs finden Sie unter Cloud-Datenaufnahme.
Schritt 1.1: Quelltabelle in Redshift einrichten
Sie können die Namen aus dem folgenden Beispiel verwenden oder eigene Datenbank-, Schema- und Tabellennamen wählen. Anstelle einer Tabelle können Sie auch eine View oder eine materialisierte View verwenden.
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)
);
Sie können Datenbank, Schema und Tabelle benennen, wie Sie möchten, aber die Spaltennamen sollten der vorstehenden Definition entsprechen.
UPDATED_AT: Der Zeitpunkt, zu dem diese Zeile aktualisiert oder zur Tabelle hinzugefügt wurde. Braze synchronisiert Zeilen, bei denenUPDATED_ATnach dem zuletzt synchronisierten Wert liegt. Zeilen am exakten Grenz-Zeitstempel können erneut synchronisiert werden, wenn neue Zeilen denselben Zeitstempel teilen.- Entweder
external_idoderalias_nameundalias_labelals Nutzer-Bezeichner-Spalte. Diese identifizieren die Nutzer:innen, für die Sie Canvas-Messaging auslösen möchten.EXTERNAL_ID: Identifiziert die Nutzer:in für den Eintritt in das Canvas. Dieser Wert sollte mit dem in Braze verwendetenexternal_id-Wert übereinstimmen.ALIAS_NAMEundALIAS_LABEL: Diese Spalten erstellen ein Nutzer-Alias-Objekt.alias_namesollte ein eindeutiger Bezeichner sein, undalias_labelgibt den Alias-Typ an. Nutzer:innen können mehrere Aliase mit verschiedenen Labels haben, aber nur einenalias_nameproalias_label.
PROPERTIES: Ein JSON-String von Feldern, die als Personalisierungseigenschaften in Ihrem Canvas verfügbar gemacht werden. Dieser sollte nutzerspezifische Informationen enthalten.

Properties sind nicht für jede Zeile oder jede:n Nutzer:in erforderlich. Die Properties-Werte müssen jedoch ein gültiger JSON-String sein. Geben Sie einen leeren {}-String ein, wenn keine Properties für die Zeile vorhanden sind.
Schritt 1.2: Zugangsdaten einrichten
Richten Sie eine Rolle, ein Warehouse und eine:n Nutzer:in ein und vergeben Sie die entsprechenden Berechtigungen. Wenn Sie bereits Zugangsdaten aus einer vorhandenen Synchronisierung haben, können Sie diese wiederverwenden. Stellen Sie jedoch sicher, dass der Zugriff auf die Canvas-Trigger-Quelltabelle erweitert wird.
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;
Schritt 1.3: Netzwerkrichtlinien konfigurieren
Wenn Ihr Konto über Netzwerkrichtlinien verfügt, setzen Sie die Braze-IPs auf die Allowlist, um die CDI-Dienstverbindung zu ermöglichen. Die Liste der IPs finden Sie unter Cloud-Datenaufnahme.
Schritt 1.1: Neues Projekt oder Dataset für Ihre Quelltabelle erstellen (optional)
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
Schritt 1.2: Quelltabelle in BigQuery einrichten
Beachten Sie beim Erstellen Ihrer Quelltabelle Folgendes:
| Feldname | Typ | Erforderlich? |
|---|---|---|
UPDATED_AT |
Timestamp | Ja |
PROPERTIES |
JSON | Ja |
EXTERNAL_ID |
STRING | NULLABLE |
ALIAS_NAME |
STRING | NULLABLE |
ALIAS_LABEL |
STRING | NULLABLE |

Properties sind nicht für jede Zeile oder jede:n Nutzer:in erforderlich. Die Properties-Werte müssen jedoch ein gültiger JSON-String sein. Geben Sie einen leeren {}-String ein, wenn keine Properties für die Zeile vorhanden sind.
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
);
Schritt 1.3: Zugangsdaten einrichten
Erstellen Sie eine:n Nutzer:in und vergeben Sie die Berechtigungen. Wenn Sie bereits Zugangsdaten aus einer anderen Synchronisierung haben, können Sie diese wiederverwenden, solange sie Zugriff auf die Canvas-Trigger-Tabelle haben.
| Berechtigung | Zweck |
|---|---|
| BigQuery Connection User | Ermöglicht Braze die Verbindung. |
| BigQuery User | Ermöglicht Braze das Ausführen von Abfragen, Lesen von Metadaten und Auflisten von Tabellen. |
| BigQuery Data Viewer | Ermöglicht Braze das Anzeigen von Datasets und Inhalten. |
| BigQuery Job User | Ermöglicht Braze das Ausführen von Jobs. |
Richten Sie nach dem Vergeben der Berechtigungen ein, wie sich Braze als Dienstkonto authentifiziert:
Workload Identity Federation: Binden Sie den Braze-Prinzipal an das Dienstkonto, sodass Sie keinen Schlüssel erstellen müssen. Die Schritte finden Sie unter Google Cloud für Workload Identity Federation konfigurieren.
Dienstkontoschlüssel: Generieren Sie einen JSON-Schlüssel. Anleitungen finden Sie unter Keys create and delete. Sie laden ihn später im Braze-Dashboard hoch.
Schritt 1.4: Netzwerkrichtlinien konfigurieren
Wenn Ihr Konto über Netzwerkrichtlinien verfügt, setzen Sie die Braze-IPs auf die Allowlist, um die CDI-Dienstverbindung zu ermöglichen. Die Liste der IPs finden Sie unter Cloud-Datenaufnahme.
Schritt 1.1: Katalog oder Schema für Ihre Quelltabelle erstellen
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
Schritt 1.2: Quelltabelle in Databricks einrichten
Beachten Sie beim Erstellen Ihrer Quelltabelle Folgendes:
| Feldname | Typ | Erforderlich |
|---|---|---|
UPDATED_AT |
Timestamp | Ja |
PROPERTIES |
JSON | Ja |
EXTERNAL_ID |
STRING | NULLABLE |
ALIAS_NAME |
STRING | NULLABLE |
ALIAS_LABEL |
STRING | NULLABLE |
Sie können Schema und Tabelle benennen, wie Sie möchten, aber die Spaltennamen sollten der vorstehenden Definition entsprechen.
UPDATED_AT: Der Zeitpunkt, zu dem diese Zeile aktualisiert oder zur Tabelle hinzugefügt wurde. Braze synchronisiert Zeilen, bei denenUPDATED_ATnach dem zuletzt synchronisierten Wert liegt. Zeilen am exakten Grenz-Zeitstempel können erneut synchronisiert werden, wenn neue Zeilen denselben Zeitstempel teilen.- Entweder
external_idoderalias_nameundalias_labelals Nutzer-Bezeichner-Spalte. Diese identifizieren die Nutzer:innen, für die Sie Canvas-Messaging auslösen möchten.EXTERNAL_ID: Identifiziert die Nutzer:in für den Eintritt in das Canvas. Dieser Wert sollte mit dem in Braze verwendetenexternal_id-Wert übereinstimmen.ALIAS_NAMEundALIAS_LABEL: Diese Spalten erstellen ein Nutzer-Alias-Objekt.alias_namesollte ein eindeutiger Bezeichner sein, undalias_labelgibt den Alias-Typ an. Nutzer:innen können mehrere Aliase mit verschiedenen Labels haben, aber nur einenalias_nameproalias_label.
PROPERTIES: Ein String oder Struct von Feldern, die als Personalisierungseigenschaften in Ihrem Canvas verfügbar gemacht werden. Dieser sollte nutzerspezifische Informationen enthalten.

Properties sind nicht für jede Zeile oder jede:n Nutzer:in erforderlich. Die Properties-Werte müssen jedoch gültige JSON-Strings sein. Geben Sie einen leeren {}-String ein, wenn keine Properties für die Zeile vorhanden sind.
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
);
Schritt 1.3: Zugangsdaten einrichten
Erstellen Sie einen Service-Prinzipal mit OAuth Machine-to-Machine-Zugangsdaten (M2M) (empfohlen) oder ein persönliches Zugriffstoken. Wenn Sie bereits Zugangsdaten aus einer anderen Synchronisierung haben, können Sie diese wiederverwenden, solange sie Zugriff auf die Canvas-Trigger-Tabelle haben.
OAuth M2M: Erstellen Sie einen Service-Prinzipal, generieren Sie ein Client-Secret, vergeben Sie dem Service-Prinzipal die Berechtigung Can use für Ihr SQL-Warehouse und gewähren Sie SELECT auf die Canvas-Trigger-Tabelle. Die Schritte finden Sie unter Zugangsdaten für Braze erstellen.
Persönliches Zugriffstoken:
- Wählen Sie Ihren Nutzernamen und dann User Settings.
- Wählen Sie auf dem Tab Access tokens die Option Generate new token.
- Fügen Sie einen Kommentar zur Identifizierung des Tokens hinzu, z. B. „Braze CDI“.
- Lassen Sie Lifetime (days) leer für unbegrenzte Gültigkeit und wählen Sie dann Generate.
- Kopieren und speichern Sie das Token sicher für die Verwendung im Braze-Dashboard.
Schritt 1.4: Netzwerkrichtlinien konfigurieren
Wenn Ihr Konto über Netzwerkrichtlinien verfügt, setzen Sie die Braze-IPs auf die Allowlist, um die CDI-Dienstverbindung zu ermöglichen. Die Liste der IPs finden Sie unter Cloud-Datenaufnahme.
Schritt 1.1: Quelltabelle in Fabric einrichten
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
Schritt 1.2: Zugangsdaten einrichten
Erstellen Sie einen Service-Prinzipal und vergeben Sie die Berechtigungen. Wenn Sie bereits Zugangsdaten aus einer anderen Synchronisierung haben, können Sie diese wiederverwenden – stellen Sie nur sicher, dass sie Zugriff auf die Kontotabelle haben.
Schritt 1.3: Netzwerkrichtlinien konfigurieren
Wenn Ihr Konto über Netzwerkrichtlinien verfügt, setzen Sie die Braze-IPs auf die Allowlist, um die CDI-Dienstverbindung zu ermöglichen. Die Liste der IPs finden Sie unter Cloud-Datenaufnahme.
Um Canvas-Trigger aus einem Dateispeicher zu synchronisieren, erstellen Sie eine Quelldatei mit den folgenden Feldern.
| Feld | Erforderlich | Beschreibung |
|---|---|---|
EXTERNAL_ID |
Ja, eines von external_id oder alias_name und alias_label |
Identifiziert die Nutzer:in, die Sie aktualisieren möchten. Dieser Wert sollte mit dem in Braze verwendeten external_id-Wert übereinstimmen. |
ALIAS_NAME und ALIAS_LABEL |
Ja, eines von external_id oder alias_name und alias_label |
Diese beiden Spalten erstellen ein Nutzer-Alias-Objekt. alias_name sollte ein eindeutiger Bezeichner sein, und alias_label gibt den Alias-Typ an. Nutzer:innen können mehrere Aliase mit verschiedenen Labels haben, aber nur einen alias_name pro alias_label. |
PROPERTIES |
Ja | JSON-String von Feldern, die als Personalisierungseigenschaften in Ihrem Canvas verfügbar gemacht werden. Dieser sollte nutzerspezifische Informationen enthalten. |

Dateinamen müssen den AWS-Regeln entsprechen und eindeutig sein. Fügen Sie Zeitstempel hinzu, um die Eindeutigkeit sicherzustellen. Weitere Informationen zur Amazon-S3-Synchronisierung finden Sie unter Dateispeicher-Integrationen.
Schritt 2: Ziel-Canvas konfigurieren
- Richten Sie Ihr Ziel-Canvas für Canvas-Trigger ein. Erstellen Sie ein neues oder wählen Sie ein bestehendes API-getriggertes Canvas aus. Anleitungen zum Erstellen eines Canvas mit einem API-getriggerten Zustellungszeitplan finden Sie unter Entry-Zeitplantypen.
- Nachdem Sie den API-getriggerten Zustellungszeitplan ausgewählt haben, fahren Sie mit der Canvas-Einrichtung fort und erstellen Sie Ihr Canvas. Canvases können von einfachen Einzelnachrichtenversänden bis hin zu komplexen Kund:innen-Workflows mit mehreren Schritten reichen.
- Verwenden Sie innerhalb Ihrer Canvas-Schritte Canvas-Entry-Eigenschaften, um Nachrichten mit Properties-Feldern zu personalisieren, die Sie aus Ihrer Quelltabelle synchronisieren möchten.
- Wenn Sie beispielsweise in Schritt 1 ein Properties-Feld für
account_balanceeingerichtet haben, würden Sie das folgende Liquid-Templating verwenden, um Ihre Nachricht zu personalisieren:\{\{canvas_entry_properties.\$\{account_balance\}\}\}.
- Wenn Sie beispielsweise in Schritt 1 ein Properties-Feld für
- Starten Sie Ihr Canvas nach der Erstellung und fahren Sie mit Schritt 3 fort.
Schritt 3: Zero-Copy-Synchronisierung erstellen
Nachdem die Quelleneinrichtung abgeschlossen und das Ziel-Canvas gestartet ist, erstellen Sie eine neue Datensynchronisierung:
- Gehen Sie in Braze zu Data Settings > Cloud Data Ingestion.
- Richten Sie die Verbindung ein, indem Sie die Verbindungsdetails eingeben (oder vorhandene Zugangsdaten wiederverwenden) sowie die Quelltabelle aus Schritt 1.
- Geben Sie einen Namen für die Integration an.
- Wählen Sie den Datentyp Canvas triggers aus.
- Wählen Sie Ihr Ziel-Canvas aus (aus Schritt 2).
- Wählen Sie eine Synchronisierungsfrequenz.
- Richten Sie die Benachrichtigungseinstellungen ein.
- Wählen Sie Test Connection, um zu bestätigen, dass alles wie erwartet funktioniert. Wenn Sie eine Verbindung zu Snowflake herstellen, fügen Sie zunächst den auf dem Dashboard angezeigten Public Key der für die Braze-Verbindung erstellten Nutzer:in hinzu. Für diesen Schritt benötigen Sie SECURITYADMIN-Zugriff oder höher in Snowflake.
- Speichern Sie die Synchronisierung, um mit der Synchronisierung der Canvas-Trigger zu beginnen.
Wenn die Synchronisierung läuft, beginnen die Nutzer:innen in Ihrer Quelltabelle, das Canvas zu betreten. Verwenden Sie Canvas-Analytics und die Seite mit den Cloud-Datenaufnahme-Synchronisierungsprotokollen, um die Performance zu überwachen.

Überprüfen Sie Ihre gesamte Konfiguration (vom Synchronisierungsverhalten bis zur Canvas-Einrichtung), um unerwartete Versendungen zu vermeiden. Canvas-Einstellungen wie Rate-Limiting, Frequency-Capping und Segmentierungsfilter können die Nachrichtenzustellung weiter verfeinern.
Wir empfehlen, einen Testlauf mit einer kleinen Testzielgruppe durchzuführen, bevor Sie Produktions-Anwendungsfälle implementieren.
Hinweise
CDI-Canvas-Trigger nutzen Ihr REST-API-Rate-Limit für /canvas/trigger/send. Wenn Sie diesen Endpunkt gleichzeitig mit CDI-Canvas-Triggern und Ihrer REST-API-Integration verwenden, wird die kombinierte Nutzung auf Ihr Rate-Limit angerechnet.
Jeder Synchronisierungslauf lässt Nutzer:innen mit einer maximalen Rate von ca. 3,75 Millionen Nutzer:innen pro Stunde in das jeweilige Ziel-Canvas eintreten. Rechnen Sie mit längeren Zeiten vom Quellsystem bis zum Canvas-Eintritt, wenn:
- Mehr als 3,75 Millionen Nutzer:innen pro Synchronisierungslauf synchronisiert werden.
- CDI-Canvas-Trigger verwendet werden, während Ihr REST-API-Rate-Limit für
/canvas/trigger/sendbereits ausgeschöpft ist.
Beachten Sie Folgendes zur Zero-Copy-CDI, wenn die Nachrichtenarchivierung aktiviert ist:
- Die Ergebnisse der Tabelle werden während der Verarbeitung vorübergehend in Braze gespeichert. Sie werden außerdem für 30 Tage nach Snowflake exportiert, damit Sie genau sehen können, was synchronisiert wurde.
- Archivierte Nachrichten werden nirgendwo innerhalb von Braze gespeichert. Die Kopien werden ausschließlich in Ihrem konfigurierten Speicher abgelegt.
- Bei der Verwendung von Zero-Copy-CDI mit Canvas-Triggern speichert Braze kein Backup der Abfrageergebnisse aus dem Data Warehouse, und es werden keine Daten in das Nutzerprofil kopiert.
- Canvas-Kontexteigenschaften können bis zu 30 Tage lang in internen Systemen protokolliert werden.