Twilio Flex-koppling
Anslut ditt Twilio Flex-kontaktcenter till Brevo för enhetlig kundinteraktionshistorik, marknadsföringsflöden efter konversation och supportdriven engagemangsanalys via Tajo.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Twilio Flex |
| Kategori | Anpassad |
| Installationskomplexitet | Avancerad |
| Officiell integration | Nej |
| Data som synkas | Kunder, konversationer, händelser |
| API:er som används | Flex API, Conversations API, TaskRouter API |
| Autentisering | Account SID + Auth Token / API Key |
| Bas-URL | https://flex-api.twilio.com |
Funktioner
- Konversationssynkronisering - Vidarebefordra röst-, SMS-, WhatsApp- och chattinteraktioner till Brevo-tidslinjer
- Berikning av kundprofil - Synka Flex-kunddata till Brevo-kontaktattribut
- Kampanjer efter interaktion - Utlös Brevo-arbetsflöden efter att supportkonversationer avslutats
- CSAT-händelsespårning - Synka resultat från nöjdhetsenkäter som Brevo-händelser
- Data om agentaktivitet - Spåra mått för agentprestanda för operativ rapportering
- Köanalys - Vidarebefordra väntetid och avhopp för upplevelseoptimering
Förutsättningar
Innan du börjar, se till att du har:
- Ett Twilio-konto med Flex aktiverat
- Ditt Twilio Account SID och Auth Token
- En Flex-instans med aktiva kanaler (röst, SMS, chatt eller WhatsApp)
- TaskRouter-arbetsyta konfigurerad
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med en aktiv prenumeration
Autentisering
Twilio Flex använder Twilios standardautentiseringsmetoder.
Kontouppgifter
# 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-nyckel (rekommenderas för produktion)
- Gå till Twilio Console > Account > API keys & tokens
- Klicka på Create API Key
- Välj nyckeltypen Standard
- Lagra SID och Secret säkert
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 har full kontoåtkomst. För produktion, använd istället scoped API Keys. API Keys kan återkallas individuellt utan att störa andra integrationer.
Anslutning till Tajo
tajo connectors install twilio-flex \ --account-sid $TWILIO_ACCOUNT_SID \ --auth-token $TWILIO_AUTH_TOKEN \ --flex-flow-sid $TWILIO_FLEX_FLOW_SIDKonfiguration
Grundinställning
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 - webchatFältmappning
Mappa Flex-kund- och interaktionsdata till Brevo-attribut:
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ändelsemappning
event_mapping: task.created: SUPPORT_REQUESTED task.completed: SUPPORT_RESOLVED task.canceled: SUPPORT_ABANDONED conversation.ended: CONVERSATION_ENDED survey.completed: CSAT_SUBMITTEDAPI-endpoints
Tajo integrerar med följande Twilio Flex- och relaterade API-endpoints:
| Endpoint | Metod | API | Syfte |
|---|---|---|---|
/v1/Configuration | GET | Flex | Hämta Flex-konfiguration |
/v1/Interactions | GET | Flex | Lista interaktioner |
/v1/Channels | GET | Flex | Lista Flex-kanaler |
/v1/WebChannels | POST | Flex | Skapa webbchattkanal |
/v1/Conversations | GET | Conversations | Lista konversationer |
/v1/Conversations/{sid}/Messages | GET | Conversations | Lista konversationsmeddelanden |
/v1/Conversations/{sid}/Participants | GET | Conversations | Lista deltagare |
/v1/Workspaces/{sid}/Tasks | GET | TaskRouter | Lista uppgifter |
/v1/Workspaces/{sid}/Workers | GET | TaskRouter | Lista workers (agenter) |
/v1/Workspaces/{sid}/TaskQueues | GET | TaskRouter | Lista uppgiftsköer |
/v1/Workspaces/{sid}/Events | GET | TaskRouter | Lista arbetsytehändelser |
Kodexempel
Initiera kopplingen
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});Synka konversationshistorik
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// }Utlösare för kampanj efter konversation
// 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 }) }); }); }}Hastighetsbegränsningar
Twilio tillämpar hastighetsbegränsningar över sina API:er:
| API | Hastighetsbegränsning | Anteckningar |
|---|---|---|
| Flex API | 100 förfrågningar/sekund | Per konto |
| Conversations API | 100 förfrågningar/sekund | Per konto |
| TaskRouter API | 30 läsförfrågningar/sekund | Per arbetsyta |
| TaskRouter Events | 20 förfrågningar/sekund | Per arbetsyta |
Event Streams
För händelsebehandling med stor volym, överväg att använda Twilio Event Streams istället för att polla TaskRouter-händelser. Event Streams skickar händelser i realtid via webhooks eller Kinesis.
Felsökning
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltig SID eller token | Verifiera Account SID och Auth Token i Twilio Console |
| 403 Forbidden | Flex ej aktiverat | Säkerställ att Flex är aktiverat på ditt Twilio-konto |
| Konversationer saknas | Felaktigt datumintervall | Utöka synkdatumintervall eller kontrollera konversationsstatus |
| Uppgifter inte spårade | TaskRouter-arbetsyta stämmer ej | Verifiera korrekt workspace-SID |
| Plugin avfyras inte | Händelselyssnare ej registrerad | Kontrollera att Flex-plugin är distribuerad och aktiv |
Felsökningsläge
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueTesta anslutning
tajo connectors test twilio-flex# ✓ Flex API connection successful# ✓ Conversations API accessible# ✓ TaskRouter workspace found# ✓ Agent list readable# ✓ Queue configuration loadedBästa praxis
- Använd API Keys framför Auth Tokens - API Keys kan scopas och återkallas individuellt
- Utnyttja Event Streams - Push-baserade händelser är mer effektiva än att polla TaskRouter
- Bygg ett Flex Plugin - Använd ett UI-plugin för att fånga uppgiftsavslut i realtid
- Mappa kanaler konsekvent - Normalisera röst-, SMS- och chattdata till enhetliga Brevo-händelser
- Spåra CSAT-poäng - Synka nöjdhetsdata till Brevo för upplevelsedriven segmentering
- Övervaka kömått - Använd väntetidsdata för att utlösa proaktiv kundkommunikation
Säkerhet
- Account SID + Auth Token - Standard Twilio-autentisering
- API Keys - Återkallningsbara, icke-root-uppgifter för produktionsbruk
- Endast HTTPS - All API-kommunikation krypterad via TLS 1.2+
- Webhook-validering - Verifiera Twilio-webhook-signaturer med
X-Twilio-Signature - PCI-efterlevnad - Twilio Flex är PCI DSS Level 1-kompatibel
- Krypterad lagring - Uppgifter krypterade i vila i Tajo