Conector Twilio Flex
Starea conectorului: Planificat Încă neconstruit. Tajo nu rulează astăzi acest conector.
Ilustrație · date de exemplu
Exemplu de sincronizare
Sursă
Twilio Flex
Starea conectorului: Planificat
Destinație
Celălalt instrument al tău
Starea conectorului: Instrument personalizat
Maparea câmpurilor
| Câmp sursă | Câmp destinație | Valoare exemplu |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Ciornă
- Verifică o înregistrare
- Aprobă această versiune
Stările se referă la fiecare conector și nu garantează că această sincronizare este pregătită. Câmpurile sunt ilustrative. Verifică schema și permisiunile reale înainte de sincronizare.
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.example.com/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 }) }); }); }}Caution
Adresa example.com de mai sus este un exemplu provizoriu până când endpointul Tajo devine disponibil.
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