Müşteri Senkronizasyonu
Müşteri Senkronizasyonu
E-ticaret platformunuzdaki müşteri verilerini Brevo kişilerine otomatik olarak senkronize edin. Bu beceri, Brevo kişi listenizin her zaman güncel müşteri tabanınızı yansıtmasını sağlar.
Genel Bakış
| Özellik | Değer |
|---|---|
| Kategori | Veri Senkronizasyonu |
| Durum | Stabil |
| Sürüm | 2.1 |
| Tetikleyiciler | customer_created, customer_updated, customer_deleted |
| Eylemler | Kişi Oluştur, Kişi Güncelle, Kişi Sil |
Nasıl Çalışır
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]- Olay Algılama: Platformunuzdan gelen müşteri yaşam döngüsü olaylarını dinler
- Veri Eşleme: Platform alanlarını Brevo kişi özelliklerine eşler
- API Senkronizasyonu: Brevo API aracılığıyla kişileri oluşturur, günceller veya siler
- Hata Yönetimi: Başarısız işlemleri üstel geri çekilme ile yeniden dener
Yapılandırma
Temel Kurulum
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 listAlan Eşleme
Platformunuzun müşteri alanlarını Brevo kişi özelliklerine eşleyin:
Varsayılan Alan Eşlemeleri
| Parameter | Type | Description |
|---|---|---|
email required | string | Müşteri e-posta adresi. Brevo'da benzersiz tanımlayıcı olarak kullanılır. |
firstName optional | string | Müşterinin adı. FIRSTNAME özelliğine eşlenir. |
lastName optional | string | Müşterinin soyadı. LASTNAME özelliğine eşlenir. |
phone optional | string | E.164 formatında telefon numarası. WhatsApp/SMS için SMS özelliğine eşlenir. |
acceptsMarketing optional | boolean | Pazarlama onay durumu. E-posta abonelik durumunu kontrol eder. |
Özel Özellikler
E-ticaret verileri için özel özellik eşlemeleri ekleyin:
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
Önce özellikleri oluşturun: Özel özellikler, senkronize edilebilmeleri için önce Brevo’da oluşturulmalıdır. Oluşturmak için Brevo panosunu veya API’yi kullanın.
Tetikleyiciler
customer_created
Platformunuzda yeni bir müşteri oluşturulduğunda tetiklenir.
{ "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
Müşteri bilgileri değiştirildiğinde tetiklenir.
{ "event": "customer_updated", "timestamp": "2024-01-15T14:45:00Z", "data": { "id": "cust_12345", "changes": { "phone": { "old": null, "new": "+1234567890" } } }}customer_deleted
Platformunuzdan bir müşteri kaldırıldığında tetiklenir.
{ "event": "customer_deleted", "timestamp": "2024-01-15T16:00:00Z", "data": { "id": "cust_12345", "deletedAt": "2024-01-15T16:00:00Z" }}Eylemler
Kişi Oluştur
Bir müşteri oluşturulduğunda Brevo’da yeni bir kişi oluşturur.
/v3/contacts Brevo hesabınızda yeni bir kişi oluşturun
Query Parameters
| Parameter | Description |
|---|---|
| email string required | Kişi e-posta adresi |
| attributes object optional | Kişi özellikleri |
| listIds array optional | Kişinin ekleneceği liste kimlikleri |
| updateEnabled boolean optional | Kişi varsa güncelle
Default: false |
Responses
Kişi Güncelle
Müşteri verileri değiştiğinde mevcut bir kişiyi günceller.
/v3/contacts/{identifier} Mevcut bir kişinin özelliklerini güncelleyin
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | E-posta veya kişi kimliği |
Query Parameters
| Parameter | Description |
|---|---|
| attributes object optional | Güncellenecek özellikler |
| listIds array optional | Kişinin ekleneceği listeler |
| unlinkListIds array optional | Kişinin kaldırılacağı listeler |
Responses
Kişi Sil
Bir müşteri silindiğinde kişiyi kaldırır.
/v3/contacts/{identifier} Brevo'dan bir kişiyi kalıcı olarak silin
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | E-posta veya kişi kimliği |
Responses
Kod Örnekleri
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 }})İzleme
Senkronizasyon Durumu Panosu
Senkronizasyon performansını Tajo panosundan izleyin:
- Senkronizasyon Başarı Oranı: Başarılı senkronizasyonların yüzdesi
- Ortalama Gecikme: Olaydan Brevo güncellemesine kadar geçen süre
- Hata Oranı: Başarısız senkronizasyon denemeleri
- Kuyruk Derinliği: Bekleyen senkronizasyon işlemleri
Webhook Bildirimleri
Senkronizasyon olayları için bildirim alın:
notifications: webhook_url: https://your-app.com/webhooks/tajo events: - sync_completed - sync_failed - batch_completedSorun Giderme
Sık Karşılaşılan Sorunlar
Kişi Zaten Mevcut (409)
Mevcut kişileri başarısız olmak yerine güncellemek için yapılandırmanızda updateEnabled: true seçeneğini etkinleştirin.
| Hata | Neden | Çözüm |
|---|---|---|
Contact already exists | E-posta ile kişi mevcut | updateEnabled: true seçeneğini etkinleştirin |
Invalid attribute | Özellik Brevo’da mevcut değil | Önce Brevo’da özelliği oluşturun |
Rate limit exceeded | Çok fazla API isteği | Toplu senkronizasyon modunu kullanın |
Invalid email format | Hatalı e-posta adresi | Senkronizasyon öncesi e-postaları doğrulayın |
Hata Ayıklama Modu
Sorun gidermek için hata ayıklama günlüğünü etkinleştirin:
skills: customer-sync: debug: true log_level: verboseİlgili Beceriler
- Sipariş Olayları - Sipariş verilerini senkronize edin
- Ürün Kataloğu - Ürün verilerini senkronize edin
- Sepet Olayları - Sepet etkinliğini takip edin
Sonraki Adımlar
- Platformunuz için alan eşlemelerini yapılandırın
- Brevo’da özel özellikler ayarlayın
- Anlık güncellemeler için gerçek zamanlı senkronizasyonu etkinleştirin