موصل Twilio Flex

اربط مركز اتصال Twilio Flex الخاص بك مع Brevo لتاريخ موحد لتفاعلات العملاء، وتدفقات تسويقية ما بعد المحادثة، وتحليلات تفاعل قائمة على الدعم عبر Tajo.

نظرة عامة

الخاصيةالقيمة
المنصةTwilio Flex
الفئةمخصص
تعقيد الإعدادمتقدم
تكامل رسميلا
البيانات المُزامَنةعملاء، محادثات، أحداث
واجهات البرمجة المستخدمةFlex API، Conversations API، TaskRouter API
المصادقةAccount SID + Auth Token / API Key
عنوان URL الأساسيhttps://flex-api.twilio.com

الميزات

  • مزامنة المحادثات - إعادة توجيه تفاعلات الصوت، وSMS، وWhatsApp، والدردشة إلى جداول Brevo الزمنية
  • إثراء ملف العميل - مزامنة بيانات عملاء Flex مع سمات جهات اتصال Brevo
  • حملات ما بعد التفاعل - تشغيل سير عمل Brevo بعد انتهاء محادثات الدعم
  • تتبع أحداث CSAT - مزامنة نتائج استبيانات الرضا كأحداث في Brevo
  • بيانات نشاط الوكلاء - تتبع مقاييس أداء الوكلاء لإعداد التقارير التشغيلية
  • تحليلات قائمة الانتظار - إعادة توجيه بيانات وقت الانتظار والتخلي لتحسين التجربة

المتطلبات الأساسية

قبل البدء، تأكد من توفر ما يلي:

  1. حساب Twilio مع تفعيل Flex
  2. Account SID وAuth Token الخاص بـ Twilio
  3. مثيل Flex مع قنوات نشطة (صوت، SMS، دردشة، أو WhatsApp)
  4. مساحة عمل TaskRouter مُعدَّة
  5. حساب Brevo مع وصول إلى API
  6. حساب Tajo مع اشتراك نشط

المصادقة

يستخدم Twilio Flex طرق المصادقة القياسية في Twilio.

بيانات اعتماد الحساب

Terminal window
# Basic Auth: Account SID as username, Auth Token as password
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \
-u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"

مفتاح API (موصى به للإنتاج)

  1. انتقل إلى Twilio Console > Account > API keys & tokens
  2. انقر على Create API Key
  3. اختر نوع المفتاح Standard
  4. خزّن SID والسر بأمان
Terminal window
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \
-u "$TWILIO_API_KEY_SID:$TWILIO_API_KEY_SECRET"

Auth Token مقابل API Key

يوفر Auth Token الخاص بك وصولاً كاملاً للحساب. للإنتاج، استخدم مفاتيح API مقيدة النطاق بدلاً من ذلك. يمكن إلغاء مفاتيح API بشكل فردي دون تعطيل التكاملات الأخرى.

الاتصال بـ Tajo

Terminal window
tajo connectors install twilio-flex \
--account-sid $TWILIO_ACCOUNT_SID \
--auth-token $TWILIO_AUTH_TOKEN \
--flex-flow-sid $TWILIO_FLEX_FLOW_SID

الإعداد

الإعداد الأساسي

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
- webchat

تعيين الحقول

ربط بيانات عملاء Flex وتفاعلاتهم بسمات Brevo:

field_mapping:
# Customer fields
identity: FLEX_IDENTITY
friendly_name: FIRSTNAME
attributes.email: email
attributes.phone: SMS
# Interaction metrics
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
# Custom attributes
customer_tier: VIP_TIER
account_id: ACCOUNT_ID

تعيين الأحداث

event_mapping:
task.created: SUPPORT_REQUESTED
task.completed: SUPPORT_RESOLVED
task.canceled: SUPPORT_ABANDONED
conversation.ended: CONVERSATION_ENDED
survey.completed: CSAT_SUBMITTED

نقاط نهاية واجهة البرمجة

يتكامل Tajo مع نقاط نهاية Twilio Flex وواجهات البرمجة ذات الصلة:

نقطة النهايةالطريقةAPIالغرض
/v1/ConfigurationGETFlexالحصول على إعدادات Flex
/v1/InteractionsGETFlexسرد التفاعلات
/v1/ChannelsGETFlexسرد قنوات Flex
/v1/WebChannelsPOSTFlexإنشاء قناة دردشة ويب
/v1/ConversationsGETConversationsسرد المحادثات
/v1/Conversations/{sid}/MessagesGETConversationsسرد رسائل المحادثة
/v1/Conversations/{sid}/ParticipantsGETConversationsسرد المشاركين
/v1/Workspaces/{sid}/TasksGETTaskRouterسرد المهام
/v1/Workspaces/{sid}/WorkersGETTaskRouterسرد العاملين (الوكلاء)
/v1/Workspaces/{sid}/TaskQueuesGETTaskRouterسرد قوائم انتظار المهام
/v1/Workspaces/{sid}/EventsGETTaskRouterسرد أحداث مساحة العمل

أمثلة على الكود

تهيئة الموصل

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
});

مزامنة تاريخ المحادثات

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
// }

محفز حملة ما بعد المحادثة

// تشغيل متابعة Brevo بعد انتهاء محادثة دعم
app.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 Plugin

// داخل Flex UI Plugin - إرسال البيانات إلى Tajo
import { 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
})
});
});
}
}

حدود المعدل

يفرض Twilio حدود معدل عبر واجهات البرمجة الخاصة به:

APIحد المعدلملاحظات
Flex API100 طلب/ثانيةلكل حساب
Conversations API100 طلب/ثانيةلكل حساب
TaskRouter API30 طلب قراءة/ثانيةلكل مساحة عمل
TaskRouter Events20 طلب/ثانيةلكل مساحة عمل

Event Streams

لمعالجة الأحداث عالية الحجم، ضع في اعتبارك استخدام Twilio Event Streams بدلاً من استطلاع أحداث TaskRouter. يدفع Event Streams الأحداث في الوقت الفعلي عبر webhooks أو Kinesis.

استكشاف الأخطاء وإصلاحها

المشاكل الشائعة

المشكلةالسببالحل
401 UnauthorizedSID أو الرمز غير صالحتحقق من Account SID وAuth Token في Twilio Console
403 ForbiddenFlex غير مفعَّلتأكد من تفعيل Flex على حساب Twilio الخاص بك
محادثات مفقودةنطاق تاريخ خاطئوسّع نطاق تاريخ المزامنة أو تحقق من حالة المحادثة
المهام لا تُتبَععدم تطابق مساحة عمل TaskRouterتحقق من SID مساحة العمل الصحيح
Plugin لا يعملمستمع الأحداث غير مُسجَّلتحقق من نشر Flex plugin وتفعيله

وضع التصحيح

connectors:
twilio_flex:
debug: true
log_level: verbose
log_api_calls: true

اختبار الاتصال

Terminal window
tajo connectors test twilio-flex
# ✓ Flex API connection successful
# ✓ Conversations API accessible
# ✓ TaskRouter workspace found
# ✓ Agent list readable
# ✓ Queue configuration loaded

أفضل الممارسات

  1. استخدم مفاتيح API بدلاً من Auth Tokens - يمكن تحديد نطاق مفاتيح API وإلغاؤها بشكل فردي
  2. استفد من Event Streams - الأحداث القائمة على الدفع أكثر كفاءة من استطلاع TaskRouter
  3. ابنِ Flex Plugin - استخدم UI plugin لالتقاط أحداث إتمام المهام في الوقت الفعلي
  4. عيّن القنوات باتساق - وحّد بيانات الصوت وSMS والدردشة في أحداث Brevo موحدة
  5. تتبع درجات CSAT - زامن بيانات الرضا مع Brevo للتقسيم القائم على التجربة
  6. راقب مقاييس قوائم الانتظار - استخدم بيانات وقت الانتظار لتشغيل تواصل استباقي مع العملاء

الأمان

  • Account SID + Auth Token - مصادقة Twilio القياسية
  • مفاتيح API - بيانات اعتماد قابلة للإلغاء وغير جذرية للاستخدام في الإنتاج
  • HTTPS فقط - جميع اتصالات API مشفرة عبر TLS 1.2+
  • التحقق من Webhook - تحقق من توقيعات Twilio webhook بـ X-Twilio-Signature
  • الامتثال لـ PCI - Twilio Flex متوافق مع PCI DSS Level 1
  • تخزين مشفر - بيانات الاعتماد مشفرة أثناء السكون في Tajo

موارد ذات صلة

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
مساعد AI

مرحباً! اسألني أي شيء عن الوثائق.