Синхронизация на клиенти
Синхронизация на клиенти
Автоматично синхронизирайте клиентски данни от Вашата платформа за електронна търговия към контактите в Brevo. Това умение гарантира, че списъкът Ви с контакти в Brevo винаги отразява текущата Ви клиентска база.
Преглед
| Свойство | Стойност |
|---|---|
| Категория | Синхронизация на данни |
| Статус | Стабилно |
| Версия | 2.1 |
| Тригери | customer_created, customer_updated, customer_deleted |
| Действия | Създаване на контакт, Обновяване на контакт, Изтриване на контакт |
Как работи
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]- Откриване на събития: Следи за събития от жизнения цикъл на клиента от Вашата платформа
- Картографиране на данни: Преобразува полетата на платформата в атрибути на контакт в Brevo
- API синхронизация: Създава, обновява или изтрива контакти чрез API на Brevo
- Обработка на грешки: Повтаря неуспешните операции с експоненциално отстъпване
Конфигурация
Базова настройка
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 listКартографиране на полета
Преобразувайте полетата за клиент на Вашата платформа в атрибути на контакт в Brevo:
Картографирания на полета по подразбиране
| Parameter | Type | Description |
|---|---|---|
email required | string | Имейл адрес на клиента. Използва се като уникален идентификатор в Brevo. |
firstName optional | string | Собствено име на клиента. Картографира се към атрибут FIRSTNAME. |
lastName optional | string | Фамилия на клиента. Картографира се към атрибут LASTNAME. |
phone optional | string | Телефонен номер във формат E.164. Картографира се към атрибут SMS за WhatsApp/SMS. |
acceptsMarketing optional | boolean | Статус на съгласие за маркетинг. Контролира статуса на абонамент за имейли. |
Персонализирани атрибути
Добавете персонализирани картографирания на атрибути за данни от електронна търговия:
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
Първо създайте атрибутите: Персонализираните атрибути трябва да бъдат създадени в Brevo, преди да могат да бъдат синхронизирани. Използвайте таблото на Brevo или API, за да ги създадете.
Тригери
customer_created
Задейства се, когато в платформата Ви се създаде нов клиент.
{ "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
Задейства се, когато информацията за клиента е променена.
{ "event": "customer_updated", "timestamp": "2024-01-15T14:45:00Z", "data": { "id": "cust_12345", "changes": { "phone": { "old": null, "new": "+1234567890" } } }}customer_deleted
Задейства се, когато клиент е премахнат от платформата Ви.
{ "event": "customer_deleted", "timestamp": "2024-01-15T16:00:00Z", "data": { "id": "cust_12345", "deletedAt": "2024-01-15T16:00:00Z" }}Действия
Създаване на контакт
Създава нов контакт в Brevo, когато се създаде клиент.
/v3/contacts Създаване на нов контакт във Вашия акаунт в Brevo
Query Parameters
| Parameter | Description |
|---|---|
| email string required | Имейл адрес на контакта |
| attributes object optional | Атрибути на контакта |
| listIds array optional | ID на списъци, към които да се добави контактът |
| updateEnabled boolean optional | Обновяване, ако контактът вече съществува
Default: false |
Responses
Обновяване на контакт
Обновява съществуващ контакт, когато клиентските данни се променят.
/v3/contacts/{identifier} Обновяване на атрибутите на съществуващ контакт
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | Имейл или ID на контакта |
Query Parameters
| Parameter | Description |
|---|---|
| attributes object optional | Атрибути за обновяване |
| listIds array optional | Списъци, към които да се добави контактът |
| unlinkListIds array optional | Списъци, от които да се премахне контактът |
Responses
Изтриване на контакт
Премахва контакт, когато клиент бъде изтрит.
/v3/contacts/{identifier} Постоянно изтриване на контакт от Brevo
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | Имейл или ID на контакта |
Responses
Примери за код
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 }})Наблюдение
Табло за статус на синхронизацията
Наблюдавайте производителността на синхронизацията в таблото на Tajo:
- Успеваемост на синхронизацията: Процент на успешни синхронизации
- Средна латентност: Време от събитие до обновяване в Brevo
- Процент грешки: Неуспешни опити за синхронизация
- Дълбочина на опашката: Очакващи операции по синхронизация
Известия чрез webhook
Получавайте известия за събития по синхронизацията:
notifications: webhook_url: https://your-app.com/webhooks/tajo events: - sync_completed - sync_failed - batch_completedОтстраняване на проблеми
Често срещани проблеми
Контактът вече съществува (409)
Активирайте updateEnabled: true в конфигурацията си, за да обновявате съществуващи контакти, вместо да се получава грешка.
| Грешка | Причина | Решение |
|---|---|---|
Contact already exists | Съществува контакт с този имейл | Активирайте updateEnabled: true |
Invalid attribute | Атрибутът не съществува в Brevo | Първо създайте атрибута в Brevo |
Rate limit exceeded | Твърде много API заявки | Използвайте пакетен режим на синхронизация |
Invalid email format | Неправилно форматиран имейл | Валидирайте имейлите преди синхронизация |
Режим за отстраняване на грешки
Активирайте подробно логване за отстраняване на проблеми:
skills: customer-sync: debug: true log_level: verboseСвързани умения
- Събития за поръчки – Синхронизация на данни за поръчки
- Продуктов каталог – Синхронизация на данни за продукти
- Събития в количката – Проследяване на активността в количката
Следващи стъпки
- Конфигурирайте картографиранията на полета за Вашата платформа
- Настройте персонализирани атрибути в Brevo
- Активирайте синхронизация в реално време за мигновени обновления