Conector Twilio Flex
Conectați centrul de contact Twilio Flex la Brevo pentru istoricul unificat al interacțiunilor cu clienții, fluxuri de marketing post-conversație și analize de implicare bazate pe suport prin Tajo.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Twilio Flex |
| Categorie | Personalizat |
| Complexitate configurare | Avansată |
| Integrare oficială | Nu |
| Date sincronizate | Clienți, Conversații, Evenimente |
| API-uri utilizate | Flex API, Conversations API, TaskRouter API |
| Autentificare | Account SID + Auth Token / Cheie API |
| URL de bază | https://flex-api.twilio.com |
Funcționalități
- Sincronizare conversații - Redirecționați interacțiunile vocale, SMS, WhatsApp și chat la cronologiile Brevo
- Îmbogățire profil client - Sincronizați datele clienților Flex la atributele de contact Brevo
- Campanii post-interacțiune - Declanșați fluxuri de lucru Brevo după încheierea conversațiilor de suport
- Urmărire evenimente CSAT - Sincronizați rezultatele sondajelor de satisfacție ca evenimente Brevo
- Date activitate agenți - Urmăriți metricile de performanță ale agenților pentru raportare operațională
- Analize coadă - Redirecționați datele de timp de așteptare și abandon pentru optimizarea experienței
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un cont Twilio cu Flex activat
- Twilio Account SID și Auth Token
- O instanță Flex cu canale active (voce, SMS, chat sau WhatsApp)
- Spațiu de lucru TaskRouter configurat
- Un cont Brevo cu acces API
- Un cont Tajo cu abonament activ
Autentificare
Twilio Flex utilizează metodele standard de autentificare Twilio.
Credențiale cont
# 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"Cheie API (Recomandat pentru producție)
- Mergeți la Twilio Console > Account > API keys & tokens
- Faceți clic pe Create API Key
- Selectați tipul de cheie Standard
- Stocați SID-ul și Secretul în siguranță
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_API_KEY_SID:$TWILIO_API_KEY_SECRET"Auth Token vs Cheie API
Auth Token-ul dvs. are acces complet la cont. Pentru producție, utilizați Chei API cu scope în loc. Cheile API pot fi revocate individual fără a afecta alte integrări.
Conectare la Tajo
tajo connectors install twilio-flex \ --account-sid $TWILIO_ACCOUNT_SID \ --auth-token $TWILIO_AUTH_TOKEN \ --flex-flow-sid $TWILIO_FLEX_FLOW_SIDConfigurare
Configurare de bază
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 - webchatMapare câmpuri
Mapați datele clienților și interacțiunilor Flex la atributele 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_IDMapare evenimente
event_mapping: task.created: SUPPORT_REQUESTED task.completed: SUPPORT_RESOLVED task.canceled: SUPPORT_ABANDONED conversation.ended: CONVERSATION_ENDED survey.completed: CSAT_SUBMITTEDPuncte finale API
Tajo se integrează cu următoarele puncte finale Twilio Flex și API-uri conexe:
| Punct final | Metodă | API | Scop |
|---|---|---|---|
/v1/Configuration | GET | Flex | Obține configurația Flex |
/v1/Interactions | GET | Flex | Listează interacțiunile |
/v1/Channels | GET | Flex | Listează canalele Flex |
/v1/WebChannels | POST | Flex | Creează canal web chat |
/v1/Conversations | GET | Conversations | Listează conversațiile |
/v1/Conversations/{sid}/Messages | GET | Conversations | Listează mesajele conversației |
/v1/Conversations/{sid}/Participants | GET | Conversations | Listează participanții |
/v1/Workspaces/{sid}/Tasks | GET | TaskRouter | Listează sarcinile |
/v1/Workspaces/{sid}/Workers | GET | TaskRouter | Listează lucrătorii (agenții) |
/v1/Workspaces/{sid}/TaskQueues | GET | TaskRouter | Listează cozile de sarcini |
/v1/Workspaces/{sid}/Events | GET | TaskRouter | Listează evenimentele spațiului de lucru |
Exemple de cod
Inițializare conector
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});Sincronizare istoric conversații
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// }Declanșator campanie post-conversație
// 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');});Integrare plugin Flex
// 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 }) }); }); }}Limite de rată
Twilio aplică limite de rată pe toate API-urile sale:
| API | Limită de rată | Note |
|---|---|---|
| Flex API | 100 cereri/secundă | Per cont |
| Conversations API | 100 cereri/secundă | Per cont |
| TaskRouter API | 30 cereri de citire/secundă | Per spațiu de lucru |
| TaskRouter Events | 20 cereri/secundă | Per spațiu de lucru |
Event Streams
Pentru procesarea evenimentelor cu volum mare, luați în considerare utilizarea Twilio Event Streams în locul polling-ului evenimentelor TaskRouter. Event Streams transmit evenimentele în timp real prin webhook-uri sau Kinesis.
Depanare
Probleme frecvente
| Problemă | Cauză | Soluție |
|---|---|---|
| 401 Neautorizat | SID sau token invalid | Verificați Account SID și Auth Token în Twilio Console |
| 403 Interzis | Flex neactivat | Asigurați-vă că Flex este activat pe contul Twilio |
| Conversații lipsă | Interval de date incorect | Extindeți intervalul de date al sincronizării sau verificați starea conversației |
| Sarcini neîncadrate | Nepotrivire spațiu de lucru TaskRouter | Verificați SID-ul corect al spațiului de lucru |
| Plugin-ul nu se execută | Listener eveniment neînregistrat | Verificați că plugin-ul Flex este implementat și activ |
Modul de depanare
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueTestare conexiune
tajo connectors test twilio-flex# ✓ Flex API connection successful# ✓ Conversations API accessible# ✓ TaskRouter workspace found# ✓ Agent list readable# ✓ Queue configuration loadedBune practici
- Utilizați chei API în locul Auth Token-urilor - Cheile API pot fi cu scope și revocate individual
- Valorificați Event Streams - Evenimentele push sunt mai eficiente decât polling-ul TaskRouter
- Construiți un plugin Flex - Utilizați un plugin UI pentru a captura evenimentele de finalizare a sarcinilor în timp real
- Mapați canalele consistent - Normalizați datele vocale, SMS și chat în evenimente Brevo unificate
- Urmăriți scorurile CSAT - Sincronizați datele de satisfacție la Brevo pentru segmentare bazată pe experiență
- Monitorizați metricile coadă - Utilizați datele de timp de așteptare pentru a declanșa comunicări proactive cu clienții
Securitate
- Account SID + Auth Token - Autentificare standard Twilio
- Chei API - Credențiale non-root revocabile pentru utilizare în producție
- Numai HTTPS - Toate comunicațiile API criptate prin TLS 1.2+
- Validare webhook - Verificați semnăturile webhook Twilio cu
X-Twilio-Signature - Conformitate PCI - Twilio Flex este conform PCI DSS Nivel 1
- Stocare criptată - Credențiale criptate în repaus în Tajo