Twilio Flex कनेक्टर
एकीकृत ग्राहक इंटरैक्शन इतिहास, पोस्ट-वार्तालाप मार्केटिंग फ़्लोज़, और Tajo के माध्यम से सपोर्ट-संचालित एंगेजमेंट एनालिटिक्स के लिए अपने Twilio Flex कॉन्टैक्ट सेंटर को Brevo से कनेक्ट करें।
अवलोकन
| गुण | मान |
|---|---|
| प्लेटफ़ॉर्म | Twilio Flex |
| श्रेणी | Custom |
| सेटअप जटिलता | उन्नत |
| आधिकारिक इंटीग्रेशन | नहीं |
| सिंक किया गया डेटा | कस्टमर्स, वार्तालाप, इवेंट्स |
| उपयोग की गई APIs | Flex API, Conversations API, TaskRouter API |
| प्रमाणीकरण | Account SID + Auth Token / API Key |
| Base URL | https://flex-api.twilio.com |
विशेषताएं
- वार्तालाप सिंक - Brevo टाइमलाइन्स में voice, SMS, WhatsApp, और chat इंटरैक्शन्स को फ़ॉरवर्ड करें
- ग्राहक प्रोफ़ाइल संवर्धन - Flex ग्राहक डेटा को Brevo कॉन्टैक्ट एट्रिब्यूट्स में सिंक करें
- पोस्ट-इंटरैक्शन कैंपेन - सपोर्ट वार्तालाप समाप्त होने के बाद Brevo वर्कफ़्लोज़ ट्रिगर करें
- CSAT इवेंट ट्रैकिंग - संतुष्टि सर्वे परिणामों को Brevo इवेंट्स के रूप में सिंक करें
- एजेंट गतिविधि डेटा - ऑपरेशनल रिपोर्टिंग के लिए एजेंट प्रदर्शन मेट्रिक्स ट्रैक करें
- क्यू एनालिटिक्स - अनुभव अनुकूलन के लिए वेट टाइम और परित्याग डेटा फ़ॉरवर्ड करें
पूर्वावश्यकताएं
शुरू करने से पहले, सुनिश्चित करें कि आपके पास है:
- Flex सक्षम के साथ एक Twilio खाता
- आपका Twilio Account SID और Auth Token
- सक्रिय चैनलों (voice, SMS, chat, या WhatsApp) के साथ एक Flex इंस्टेंस
- कॉन्फ़िगर किया गया TaskRouter वर्कस्पेस
- API एक्सेस वाला एक Brevo खाता
- एक सक्रिय सब्सक्रिप्शन वाला Tajo खाता
प्रमाणीकरण
Twilio Flex Twilio की मानक प्रमाणीकरण विधियों का उपयोग करता है।
खाता क्रेडेंशियल्स
# Basic Auth: Account SID as username, Auth Token as passwordcurl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"API Key (प्रोडक्शन के लिए अनुशंसित)
- Twilio Console > Account > API keys & tokens पर जाएं
- Create API Key पर क्लिक करें
- Standard key type चुनें
- SID और Secret को सुरक्षित रूप से संग्रहीत करें
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 के पास पूर्ण खाता एक्सेस है। प्रोडक्शन के लिए, इसके बजाय scoped API Keys का उपयोग करें। API Keys को अन्य इंटीग्रेशन्स को बाधित किए बिना व्यक्तिगत रूप से रद्द किया जा सकता है।
Tajo से कनेक्ट करना
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_SUBMITTEDAPI एंडपॉइंट्स
Tajo निम्नलिखित Twilio Flex और संबंधित API एंडपॉइंट्स के साथ इंटीग्रेट होता है:
| एंडपॉइंट | मेथड | API | उद्देश्य |
|---|---|---|---|
/v1/Configuration | GET | Flex | Flex कॉन्फ़िगरेशन प्राप्त करें |
/v1/Interactions | GET | Flex | इंटरैक्शन्स सूचीबद्ध करें |
/v1/Channels | GET | Flex | Flex चैनल्स सूचीबद्ध करें |
/v1/WebChannels | POST | Flex | Web chat चैनल बनाएं |
/v1/Conversations | GET | Conversations | वार्तालाप सूचीबद्ध करें |
/v1/Conversations/{sid}/Messages | GET | Conversations | वार्तालाप संदेश सूचीबद्ध करें |
/v1/Conversations/{sid}/Participants | GET | Conversations | प्रतिभागी सूचीबद्ध करें |
/v1/Workspaces/{sid}/Tasks | GET | TaskRouter | टास्क्स सूचीबद्ध करें |
/v1/Workspaces/{sid}/Workers | GET | TaskRouter | वर्कर्स (एजेंट्स) सूचीबद्ध करें |
/v1/Workspaces/{sid}/TaskQueues | GET | TaskRouter | टास्क क्यूज़ सूचीबद्ध करें |
/v1/Workspaces/{sid}/Events | GET | TaskRouter | वर्कस्पेस इवेंट्स सूचीबद्ध करें |
कोड उदाहरण
कनेक्टर प्रारंभ करें
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// }पोस्ट-वार्तालाप कैंपेन ट्रिगर
// Trigger a Brevo follow-up after a support conversation endsapp.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 इंटीग्रेशन
// Inside a Flex UI Plugin - send data to Tajoimport { 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 अपनी APIs पर दर सीमाएं लागू करता है:
| API | दर सीमा | नोट्स |
|---|---|---|
| Flex API | 100 अनुरोध/सेकंड | प्रति खाता |
| Conversations API | 100 अनुरोध/सेकंड | प्रति खाता |
| TaskRouter API | 30 read अनुरोध/सेकंड | प्रति वर्कस्पेस |
| TaskRouter Events | 20 अनुरोध/सेकंड | प्रति वर्कस्पेस |
Event Streams
उच्च-वॉल्यूम इवेंट प्रोसेसिंग के लिए, TaskRouter इवेंट्स को पोल करने के बजाय Twilio Event Streams का उपयोग करने पर विचार करें। Event Streams वेबहुक्स या Kinesis के माध्यम से इवेंट्स को रीयल टाइम में पुश करते हैं।
समस्या निवारण
सामान्य समस्याएं
| समस्या | कारण | समाधान |
|---|---|---|
| 401 Unauthorized | अमान्य SID या टोकन | Twilio Console में Account SID और Auth Token सत्यापित करें |
| 403 Forbidden | Flex सक्षम नहीं | सुनिश्चित करें कि Flex आपके Twilio खाते पर सक्रिय है |
| वार्तालाप गायब | गलत दिनांक रेंज | सिंक दिनांक रेंज का विस्तार करें या वार्तालाप स्थिति जांचें |
| टास्क ट्रैक नहीं हुए | TaskRouter वर्कस्पेस मेल नहीं खाता | सही वर्कस्पेस SID सत्यापित करें |
| Plugin फ़ायर नहीं हो रहा | इवेंट लिस्नर पंजीकृत नहीं | जांचें कि Flex plugin तैनात और सक्रिय है |
डीबग मोड
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueकनेक्शन परीक्षण करें
tajo connectors test twilio-flex# ✓ Flex API connection successful# ✓ Conversations API accessible# ✓ TaskRouter workspace found# ✓ Agent list readable# ✓ Queue configuration loadedसर्वोत्तम प्रथाएं
- Auth Tokens के बजाय API Keys का उपयोग करें - API Keys को scope किया जा सकता है और व्यक्तिगत रूप से रद्द किया जा सकता है
- Event Streams का लाभ उठाएं - Push-आधारित इवेंट्स TaskRouter को पोल करने की तुलना में अधिक कुशल हैं
- एक Flex Plugin बनाएं - रीयल टाइम में टास्क समापन इवेंट्स कैप्चर करने के लिए UI plugin का उपयोग करें
- चैनल्स को लगातार मैप करें - voice, SMS, और chat डेटा को एकीकृत Brevo इवेंट्स में सामान्यीकृत करें
- CSAT स्कोर ट्रैक करें - अनुभव-संचालित सेगमेंटेशन के लिए संतुष्टि डेटा को Brevo में सिंक करें
- क्यू मेट्रिक्स की निगरानी करें - सक्रिय ग्राहक संचार ट्रिगर करने के लिए वेट टाइम डेटा का उपयोग करें
सुरक्षा
- Account SID + Auth Token - मानक Twilio प्रमाणीकरण
- API Keys - प्रोडक्शन उपयोग के लिए रद्द करने योग्य, गैर-रूट क्रेडेंशियल्स
- HTTPS Only - सभी API संचार TLS 1.2+ के माध्यम से एन्क्रिप्टेड
- Webhook सत्यापन -
X-Twilio-Signatureके साथ Twilio webhook सिग्नेचर सत्यापित करें - PCI अनुपालन - Twilio Flex PCI DSS Level 1 अनुपालक है
- एन्क्रिप्टेड स्टोरेज - Tajo में रेस्ट पर क्रेडेंशियल्स एन्क्रिप्टेड