Kundensynchronisation
Kundensynchronisation
Synchronisieren Sie Kundendaten aus Ihrer E-Commerce-Plattform automatisch mit Brevo-Kontakten. Dieser Skill sorgt dafür, dass Ihre Brevo-Kontaktliste stets Ihren aktuellen Kundenstamm widerspiegelt.
Überblick
| Eigenschaft | Wert |
|---|---|
| Kategorie | Data Sync |
| Status | Stable |
| Version | 2.1 |
| Trigger | customer_created, customer_updated, customer_deleted |
| Aktionen | Kontakt erstellen, Kontakt aktualisieren, Kontakt löschen |
Funktionsweise
graph LR A[E-commerce Platform] -->|Customer Event| B[Customer Sync Skill] B -->|Map Data| C[Field Mapping] C -->|API Call| D[Brevo Contacts API] D -->|Success| E[Contact Updated] D -->|Error| F[Retry Queue]- Ereigniserkennung: Lauscht auf Kundenlebenszyklus-Ereignisse Ihrer Plattform
- Datenzuordnung: Ordnet Plattformfelder den Brevo-Kontaktattributen zu
- API-Sync: Erstellt, aktualisiert oder löscht Kontakte über die Brevo-API
- Fehlerbehandlung: Wiederholt fehlgeschlagene Operationen mit exponentiellem Backoff
Konfiguration
Grundeinrichtung
skills: customer-sync: enabled: true source: shopify # or woocommerce, magento, custom
# Map platform fields to Brevo attributes field_mapping: email: email firstName: FIRSTNAME lastName: LASTNAME phone: SMS
# Sync options options: sync_mode: realtime # or batch delete_behavior: soft # or hard list_id: 5 # Add to this listFeldzuordnung
Ordnen Sie die Kundenfelder Ihrer Plattform den Brevo-Kontaktattributen zu:
Standard-Feldzuordnungen
| Parameter | Type | Description |
|---|---|---|
email required | string | E-Mail-Adresse der Kund:in. Wird als eindeutiger Identifier in Brevo verwendet. |
firstName optional | string | Vorname der Kund:in. Wird dem Attribut FIRSTNAME zugeordnet. |
lastName optional | string | Nachname der Kund:in. Wird dem Attribut LASTNAME zugeordnet. |
phone optional | string | Telefonnummer im E.164-Format. Wird dem SMS-Attribut für WhatsApp/SMS zugeordnet. |
acceptsMarketing optional | boolean | Marketing-Opt-in-Status. Steuert den Status des E-Mail-Abonnements. |
Benutzerdefinierte Attribute
Fügen Sie benutzerdefinierte Attributzuordnungen für E-Commerce-Daten hinzu:
field_mapping: # Standard fields email: email firstName: FIRSTNAME
# Custom e-commerce attributes totalOrders: TOTAL_ORDERS totalSpent: TOTAL_SPENT lastOrderDate: LAST_ORDER_DATE customerTier: CUSTOMER_TIER tags: TAGSTip
Attribute zuerst anlegen: Benutzerdefinierte Attribute müssen in Brevo angelegt werden, bevor sie synchronisiert werden können. Nutzen Sie dafür das Brevo-Dashboard oder die API.
Trigger
customer_created
Wird ausgelöst, wenn in Ihrer Plattform eine neue Kund:in angelegt wird.
{ "event": "customer_created", "timestamp": "2024-01-15T10:30:00Z", "data": { "id": "cust_12345", "firstName": "Jane", "lastName": "Smith", "phone": "+1234567890", "acceptsMarketing": true, "createdAt": "2024-01-15T10:30:00Z" }}customer_updated
Wird ausgelöst, wenn Kundeninformationen geändert werden.
{ "event": "customer_updated", "timestamp": "2024-01-15T14:45:00Z", "data": { "id": "cust_12345", "changes": { "phone": { "old": null, "new": "+1234567890" } } }}customer_deleted
Wird ausgelöst, wenn eine Kund:in aus Ihrer Plattform entfernt wird.
{ "event": "customer_deleted", "timestamp": "2024-01-15T16:00:00Z", "data": { "id": "cust_12345", "deletedAt": "2024-01-15T16:00:00Z" }}Aktionen
Kontakt erstellen
Erstellt einen neuen Kontakt in Brevo, wenn eine Kund:in angelegt wird.
/v3/contacts Einen neuen Kontakt in Ihrem Brevo-Konto anlegen
Query Parameters
| Parameter | Description |
|---|---|
| email string required | E-Mail-Adresse des Kontakts |
| attributes object optional | Kontaktattribute |
| listIds array optional | Listen-IDs, denen der Kontakt hinzugefügt wird |
| updateEnabled boolean optional | Aktualisieren, falls Kontakt bereits existiert
Default: false |
Responses
Kontakt aktualisieren
Aktualisiert einen bestehenden Kontakt, wenn sich Kundendaten ändern.
/v3/contacts/{identifier} Attribute eines bestehenden Kontakts aktualisieren
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | E-Mail oder Kontakt-ID |
Query Parameters
| Parameter | Description |
|---|---|
| attributes object optional | Zu aktualisierende Attribute |
| listIds array optional | Listen, denen der Kontakt hinzugefügt wird |
| unlinkListIds array optional | Listen, aus denen der Kontakt entfernt wird |
Responses
Kontakt löschen
Entfernt einen Kontakt, wenn eine Kund:in gelöscht wird.
/v3/contacts/{identifier} Einen Kontakt dauerhaft aus Brevo löschen
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | E-Mail oder Kontakt-ID |
Responses
Code-Beispiele
JavaScript (Node.js)
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Enable customer sync skillawait tajo.skills.enable('customer-sync', { source: 'shopify', fieldMapping: { email: 'email', firstName: 'FIRSTNAME', lastName: 'LASTNAME', totalOrders: 'TOTAL_ORDERS', totalSpent: 'TOTAL_SPENT' }, options: { syncMode: 'realtime', listId: 5 }});
// Manually trigger a syncawait tajo.skills.trigger('customer-sync', { event: 'customer_created', data: { firstName: 'Jane', lastName: 'Smith' }});Python
from tajo import TajoClient
tajo = TajoClient( api_key=os.environ['TAJO_API_KEY'], brevo_api_key=os.environ['BREVO_API_KEY'])
# Enable customer sync skilltajo.skills.enable('customer-sync', { 'source': 'woocommerce', 'field_mapping': { 'email': 'email', 'first_name': 'FIRSTNAME', 'last_name': 'LASTNAME', 'total_orders': 'TOTAL_ORDERS' }, 'options': { 'sync_mode': 'realtime', 'list_id': 5 }})
# Manually trigger a synctajo.skills.trigger('customer-sync', { 'event': 'customer_updated', 'data': { 'total_orders': 10, 'total_spent': 1250.00 }})Monitoring
Sync-Status-Dashboard
Überwachen Sie die Synchronisationsleistung im Tajo-Dashboard:
- Sync-Erfolgsquote: Prozentsatz erfolgreicher Synchronisationen
- Durchschnittliche Latenz: Zeit vom Ereignis bis zum Brevo-Update
- Fehlerrate: Fehlgeschlagene Synchronisationsversuche
- Warteschlangentiefe: Ausstehende Synchronisationsvorgänge
Webhook-Benachrichtigungen
Erhalten Sie Benachrichtigungen zu Sync-Ereignissen:
notifications: webhook_url: https://your-app.com/webhooks/tajo events: - sync_completed - sync_failed - batch_completedFehlerbehebung
Häufige Probleme
Kontakt existiert bereits (409)
Aktivieren Sie updateEnabled: true in Ihrer Konfiguration, um bestehende Kontakte zu aktualisieren, anstatt einen Fehler zu erhalten.
| Fehler | Ursache | Lösung |
|---|---|---|
Contact already exists | Kontakt mit dieser E-Mail existiert | updateEnabled: true aktivieren |
Invalid attribute | Attribut existiert nicht in Brevo | Attribut zuerst in Brevo anlegen |
Rate limit exceeded | Zu viele API-Anfragen | Batch-Sync-Modus verwenden |
Invalid email format | Fehlerhaft formatierte E-Mail-Adresse | E-Mails vor Sync validieren |
Debug-Modus
Debug-Logging zur Fehlersuche aktivieren:
skills: customer-sync: debug: true log_level: verboseVerwandte Skills
- Bestellereignisse – Bestelldaten synchronisieren
- Produktkatalog – Produktdaten synchronisieren
- Warenkorb-Ereignisse – Warenkorbaktivität verfolgen
Nächste Schritte
- Feldzuordnungen konfigurieren für Ihre Plattform
- Benutzerdefinierte Attribute einrichten in Brevo
- Echtzeit-Sync aktivieren für sofortige Updates