Twilio Flex Connector
Forbind dit Twilio Flex-contactcenter til Brevo for en forenet kundeinteraktionshistorik, marketing-flows efter samtaler og supportdrevne engagementanalyser via Tajo.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Twilio Flex |
| Kategori | Brugerdefineret |
| Opsætningskompleksitet | Avanceret |
| Officiel integration | Nej |
| Synkroniserede data | Kunder, samtaler, hændelser |
| Anvendte API’er | Flex API, Conversations API, TaskRouter API |
| Autentifikation | Account SID + Auth Token / API Key |
| Base-URL | https://flex-api.twilio.com |
Funktioner
- Samtalesynkronisering - Videresend tale-, SMS-, WhatsApp- og chatinteraktioner til Brevo-tidslinjer
- Berigelse af kundeprofiler - Synkronisér Flex-kundedata til Brevo-kontaktattributter
- Kampagner efter interaktion - Udløs Brevo-workflows, når supportsamtaler slutter
- CSAT-hændelsestracking - Synkronisér tilfredshedsundersøgelsesresultater som Brevo-hændelser
- Agentaktivitetsdata - Spor agentpræstationsmetrikker til operationel rapportering
- Køanalyse - Videresend ventetids- og afbrydelsesdata til oplevelsesoptimering
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Twilio-konto med Flex aktiveret
- Dit Twilio Account SID og Auth Token
- En Flex-instans med aktive kanaler (tale, SMS, chat eller WhatsApp)
- TaskRouter-workspace konfigureret
- En Brevo-konto med API-adgang
- En Tajo-konto med et aktivt abonnement
Autentifikation
Twilio Flex bruger Twilios standardautentifikationsmetoder.
Kontolegitimationsoplysninger
# 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 (anbefalet til produktion)
- Gå til Twilio Console > Account > API keys & tokens
- Klik Create API Key
- Vælg Standard-nøgletype
- Opbevar SID og Secret sikkert
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_API_KEY_SID:$TWILIO_API_KEY_SECRET"Auth Token vs. API Key
Din Auth Token giver fuld kontoadgang. Til produktion bør du bruge scoped API Keys i stedet. API Keys kan tilbagekaldes individuelt uden at afbryde andre integrationer.
Forbind til Tajo
tajo connectors install twilio-flex \ --account-sid $TWILIO_ACCOUNT_SID \ --auth-token $TWILIO_AUTH_TOKEN \ --flex-flow-sid $TWILIO_FLEX_FLOW_SIDKonfiguration
Grundlæggende opsætning
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 - webchatFeltmapping
Knyt Flex-kunde- og interaktionsdata til Brevo-attributter:
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_IDHændelsesmapping
event_mapping: task.created: SUPPORT_REQUESTED task.completed: SUPPORT_RESOLVED task.canceled: SUPPORT_ABANDONED conversation.ended: CONVERSATION_ENDED survey.completed: CSAT_SUBMITTEDAPI-endpoints
Tajo integrerer med følgende Twilio Flex- og relaterede API-endpoints:
| Endpoint | Metode | API | Formål |
|---|---|---|---|
/v1/Configuration | GET | Flex | Hent Flex-konfiguration |
/v1/Interactions | GET | Flex | Vis interaktioner |
/v1/Channels | GET | Flex | Vis Flex-kanaler |
/v1/WebChannels | POST | Flex | Opret webchat-kanal |
/v1/Conversations | GET | Conversations | Vis samtaler |
/v1/Conversations/{sid}/Messages | GET | Conversations | Vis samtalebeskeder |
/v1/Conversations/{sid}/Participants | GET | Conversations | Vis deltagere |
/v1/Workspaces/{sid}/Tasks | GET | TaskRouter | Vis opgaver |
/v1/Workspaces/{sid}/Workers | GET | TaskRouter | Vis workers (agenter) |
/v1/Workspaces/{sid}/TaskQueues | GET | TaskRouter | Vis opgavekøer |
/v1/Workspaces/{sid}/Events | GET | TaskRouter | Vis workspace-hændelser |
Kodeeksempler
Initialisér konnektor
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});Synkronisér samtalehistorik
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 til kampagner efter samtale
// 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-integration
// 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 }) }); }); }}Ratebegrænsninger
Twilio håndhæver ratebegrænsninger på tværs af sine API’er:
| API | Ratebegrænsning | Noter |
|---|---|---|
| Flex API | 100 forespørgsler/sekund | Per konto |
| Conversations API | 100 forespørgsler/sekund | Per konto |
| TaskRouter API | 30 læseforespørgsler/sekund | Per workspace |
| TaskRouter Events | 20 forespørgsler/sekund | Per workspace |
Event Streams
Til hændelsesbehandling med højt volumen bør du overveje Twilio Event Streams i stedet for polling af TaskRouter-hændelser. Event Streams pusher hændelser i realtid via webhooks eller Kinesis.
Fejlfinding
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig SID eller token | Verificér Account SID og Auth Token i Twilio Console |
| 403 Forbidden | Flex ikke aktiveret | Sørg for, at Flex er aktiveret på din Twilio-konto |
| Samtaler mangler | Forkert datointerval | Udvid synkroniseringsintervallet eller tjek samtaletilstand |
| Opgaver ikke sporet | TaskRouter-workspace matcher ikke | Verificér det korrekte workspace SID |
| Plugin aktiveres ikke | Event-listener ikke registreret | Tjek, at Flex-plugin er deployet og aktivt |
Fejlfindingstilstand
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueTest forbindelse
tajo connectors test twilio-flex# ✓ Flex API connection successful# ✓ Conversations API accessible# ✓ TaskRouter workspace found# ✓ Agent list readable# ✓ Queue configuration loadedBest practices
- Brug API Keys frem for Auth Tokens - API Keys kan scopes og tilbagekaldes individuelt
- Udnyt Event Streams - Push-baserede hændelser er mere effektive end polling af TaskRouter
- Byg et Flex-plugin - Brug et UI-plugin til at opfange task completion-hændelser i realtid
- Map kanaler konsekvent - Normalisér tale-, SMS- og chatdata til forenede Brevo-hændelser
- Spor CSAT-scores - Synkronisér tilfredshedsdata til Brevo til oplevelsesbaseret segmentering
- Overvåg kø-metrikker - Brug ventetidsdata til at udløse proaktiv kundekommunikation
Sikkerhed
- Account SID + Auth Token - Standard Twilio-autentifikation
- API Keys - Tilbagekaldbare, ikke-root-legitimationsoplysninger til produktionsbrug
- Kun HTTPS - Al API-kommunikation krypteret via TLS 1.2+
- Webhook-validering - Verificér Twilio-webhook-signaturer med
X-Twilio-Signature - PCI-overholdelse - Twilio Flex er PCI DSS Level 1-compliant
- Krypteret lagring - Legitimationsoplysninger krypteres i hvile i Tajo