Twilio Flex Bağlayıcısı
Birleşik müşteri etkileşim geçmişi, konuşma sonrası pazarlama akışları ve destek odaklı etkileşim analitiği için Twilio Flex çağrı merkezinizi Tajo üzerinden Brevo’ya bağlayın.
Genel Bakış
| Özellik | Değer |
|---|---|
| Platform | Twilio Flex |
| Kategori | Özel |
| Kurulum Karmaşıklığı | İleri Düzey |
| Resmi Entegrasyon | Hayır |
| Senkronize Edilen Veri | Müşteriler, Konuşmalar, Olaylar |
| Kullanılan API’ler | Flex API, Conversations API, TaskRouter API |
| Kimlik Doğrulama | Account SID + Auth Token / API Anahtarı |
| Temel URL | https://flex-api.twilio.com |
Özellikler
- Konuşma senkronizasyonu - Sesli, SMS, WhatsApp ve sohbet etkileşimlerini Brevo zaman çizelgelerine iletin
- Müşteri profili zenginleştirme - Flex müşteri verilerini Brevo kişi özniteliklerine senkronize edin
- Etkileşim sonrası kampanyalar - Destek konuşmaları sona erdikten sonra Brevo iş akışlarını tetikleyin
- CSAT olay takibi - Memnuniyet anket sonuçlarını Brevo olayları olarak senkronize edin
- Temsilci aktivite verileri - Operasyonel raporlama için temsilci performans metriklerini izleyin
- Sıra analitiği - Deneyim optimizasyonu için bekleme süresi ve terk verilerini iletin
Ön Koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
- Flex etkinleştirilmiş bir Twilio hesabı
- Twilio Account SID ve Auth Token’ınız
- Aktif kanallara (ses, SMS, sohbet veya WhatsApp) sahip bir Flex örneği
- Yapılandırılmış TaskRouter çalışma alanı
- API erişimi olan bir Brevo hesabı
- Etkin aboneliği olan bir Tajo hesabı
Kimlik Doğrulama
Twilio Flex, Twilio’nun standart kimlik doğrulama yöntemlerini kullanır.
Hesap Kimlik Bilgileri
# Basic Auth: kullanıcı adı olarak Account SID, parola olarak Auth Tokencurl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"API Anahtarı (Üretim için Önerilen)
- Twilio Console > Account > API keys & tokens bölümüne gidin
- Create API Key öğesine tıklayın
- Standard anahtar türünü seçin
- SID ve Secret’ı güvenli şekilde saklayın
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_API_KEY_SID:$TWILIO_API_KEY_SECRET"Auth Token ve API Anahtarı Karşılaştırması
Auth Token’ınız tam hesap erişimine sahiptir. Üretim için bunun yerine kapsamlı API Anahtarları kullanın. API Anahtarları, diğer entegrasyonları etkilemeden tek tek iptal edilebilir.
Tajo’ya Bağlanma
tajo connectors install twilio-flex \ --account-sid $TWILIO_ACCOUNT_SID \ --auth-token $TWILIO_AUTH_TOKEN \ --flex-flow-sid $TWILIO_FLEX_FLOW_SIDYapılandırma
Temel Kurulum
connectors: twilio_flex: enabled: true account_sid: "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" flex_flow_sid: "FOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
sync: conversations: true tasks: true customers: true csat: true agent_activity: false
lists: support_contacts: 32 csat_respondents: 33
channels: - voice - sms - whatsapp - webchatAlan Eşleştirme
Flex müşteri ve etkileşim verilerini Brevo özniteliklerine eşleyin:
field_mapping: # Müşteri alanları identity: FLEX_IDENTITY friendly_name: FIRSTNAME attributes.email: email attributes.phone: SMS
# Etkileşim metrikleri last_conversation_date: LAST_SUPPORT_DATE total_conversations: SUPPORT_TICKET_COUNT avg_wait_time: AVG_WAIT_TIME last_csat_score: CSAT_SCORE preferred_channel: PREFERRED_CHANNEL
# Özel öznitelikler customer_tier: VIP_TIER account_id: ACCOUNT_IDOlay Eşleştirme
event_mapping: task.created: SUPPORT_REQUESTED task.completed: SUPPORT_RESOLVED task.canceled: SUPPORT_ABANDONED conversation.ended: CONVERSATION_ENDED survey.completed: CSAT_SUBMITTEDAPI Uç Noktaları
Tajo, aşağıdaki Twilio Flex ve ilgili API uç noktalarıyla entegre olur:
| Uç Nokta | Yöntem | API | Amaç |
|---|---|---|---|
/v1/Configuration | GET | Flex | Flex yapılandırmasını al |
/v1/Interactions | GET | Flex | Etkileşimleri listele |
/v1/Channels | GET | Flex | Flex kanallarını listele |
/v1/WebChannels | POST | Flex | Web sohbet kanalı oluştur |
/v1/Conversations | GET | Conversations | Konuşmaları listele |
/v1/Conversations/{sid}/Messages | GET | Conversations | Konuşma mesajlarını listele |
/v1/Conversations/{sid}/Participants | GET | Conversations | Katılımcıları listele |
/v1/Workspaces/{sid}/Tasks | GET | TaskRouter | Görevleri listele |
/v1/Workspaces/{sid}/Workers | GET | TaskRouter | Çalışanları (temsilcileri) listele |
/v1/Workspaces/{sid}/TaskQueues | GET | TaskRouter | Görev sıralarını listele |
/v1/Workspaces/{sid}/Events | GET | TaskRouter | Çalışma alanı olaylarını listele |
Kod Örnekleri
Bağlayıcıyı Başlatma
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
await tajo.connectors.connect('twilio-flex', { accountSid: process.env.TWILIO_ACCOUNT_SID, authToken: process.env.TWILIO_AUTH_TOKEN, flexFlowSid: process.env.TWILIO_FLEX_FLOW_SID});Konuşma Geçmişini Senkronize Etme
await tajo.connectors.sync('twilio-flex', { type: 'incremental', resources: ['conversations'], since: '2024-01-01', channels: ['voice', 'sms', 'whatsapp']});
const status = await tajo.connectors.status('twilio-flex');console.log(status);// {// connected: true,// lastSync: '2024-03-15T16:00:00Z',// conversationsTracked: 12400,// customersLinked: 8900,// agentsMonitored: 45// }Konuşma Sonrası Kampanya Tetikleyicisi
// Bir destek konuşması sona erdikten sonra Brevo takibini tetikleapp.post('/webhooks/flex/task-complete', async (req, res) => { const task = req.body;
await tajo.connectors.handleEvent('twilio-flex', { type: 'task.completed', payload: { taskSid: task.TaskSid, customerEmail: task.TaskAttributes?.email, channel: task.TaskChannelUniqueName, duration: task.Age, queueName: task.TaskQueueFriendlyName } });
res.status(200).send('OK');});Flex Eklenti Entegrasyonu
// Bir Flex UI Eklentisi içinde - Tajo'ya veri gönderimport { FlexPlugin } from '@twilio/flex-plugin';
class TajoPlugin extends FlexPlugin { init(flex, manager) { flex.Actions.addListener('afterCompleteTask', async (payload) => { await fetch('https://api.tajo.io/webhooks/flex/task-complete', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ TaskSid: payload.task.sid, TaskAttributes: payload.task.attributes, TaskChannelUniqueName: payload.task.taskChannelUniqueName, Age: payload.task.age }) }); }); }}Hız Sınırları
Twilio, API’leri genelinde hız sınırları uygular:
| API | Hız Sınırı | Notlar |
|---|---|---|
| Flex API | saniyede 100 istek | Hesap başına |
| Conversations API | saniyede 100 istek | Hesap başına |
| TaskRouter API | saniyede 30 okuma isteği | Çalışma alanı başına |
| TaskRouter Events | saniyede 20 istek | Çalışma alanı başına |
Event Streams
Yüksek hacimli olay işleme için TaskRouter olaylarını yoklamak yerine Twilio Event Streams kullanmayı düşünün. Event Streams olayları webhook’lar veya Kinesis aracılığıyla gerçek zamanlı olarak iletir.
Sorun Giderme
Yaygın Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
| 401 Unauthorized | Geçersiz SID veya belirteç | Twilio Console’da Account SID ve Auth Token’ı doğrulayın |
| 403 Forbidden | Flex etkin değil | Twilio hesabınızda Flex’in etkinleştirildiğinden emin olun |
| Konuşmalar eksik | Yanlış tarih aralığı | Senkronizasyon tarih aralığını genişletin veya konuşma durumunu kontrol edin |
| Görevler izlenmiyor | TaskRouter çalışma alanı uyuşmazlığı | Doğru çalışma alanı SID’sini doğrulayın |
| Eklenti tetiklenmiyor | Olay dinleyicisi kaydedilmemiş | Flex eklentisinin dağıtıldığından ve aktif olduğundan emin olun |
Hata Ayıklama Modu
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueBağlantı Testi
tajo connectors test twilio-flex# ✓ Flex API bağlantısı başarılı# ✓ Conversations API erişilebilir# ✓ TaskRouter çalışma alanı bulundu# ✓ Temsilci listesi okunabilir# ✓ Sıra yapılandırması yüklendiEn İyi Uygulamalar
- Auth Token yerine API Anahtarı kullanın - API Anahtarları kapsamlandırılabilir ve tek tek iptal edilebilir
- Event Streams’ten yararlanın - Push tabanlı olaylar TaskRouter yoklamaktan daha verimlidir
- Bir Flex Eklentisi oluşturun - Görev tamamlama olaylarını gerçek zamanlı yakalamak için UI eklentisi kullanın
- Kanalları tutarlı şekilde eşleyin - Sesli, SMS ve sohbet verilerini birleşik Brevo olaylarında normalize edin
- CSAT puanlarını izleyin - Deneyim odaklı segmentasyon için memnuniyet verilerini Brevo’ya senkronize edin
- Sıra metriklerini izleyin - Proaktif müşteri iletişimini tetiklemek için bekleme süresi verilerini kullanın
Güvenlik
- Account SID + Auth Token - Standart Twilio kimlik doğrulaması
- API Anahtarları - Üretim kullanımı için iptal edilebilir, kök olmayan kimlik bilgileri
- Yalnızca HTTPS - Tüm API iletişimi TLS 1.2+ ile şifrelenir
- Webhook Doğrulaması - Twilio webhook imzalarını
X-Twilio-Signatureile doğrulayın - PCI Uyumluluğu - Twilio Flex PCI DSS Level 1 uyumludur
- Şifreli Depolama - Kimlik bilgileri Tajo’da şifreli olarak saklanır