Twilio Flex-kobling
Koble Twilio Flex-kontaktsenteret ditt til Brevo for enhetlig kundeinteraksjonshistorikk, markedsføringsflyter etter samtaler og supportdrevet engasjementsanalyse gjennom Tajo.
Oversikt
| Egenskap | Verdi |
|---|---|
| Plattform | Twilio Flex |
| Kategori | Custom |
| Oppsettskompleksitet | Avansert |
| Offisiell integrasjon | Nei |
| Synkroniserte data | Kunder, samtaler, hendelser |
| API-er brukt | Flex API, Conversations API, TaskRouter API |
| Autentisering | Account SID + Auth Token / API-nøkkel |
| Base URL | https://flex-api.twilio.com |
Funksjoner
- Synkronisering av samtaler - Videresend tale-, SMS-, WhatsApp- og chat-interaksjoner til Brevo-tidslinjer
- Berikelse av kundeprofiler - Synkroniser Flex-kundedata til Brevo-kontaktattributter
- Kampanjer etter interaksjon - Utløs Brevo-arbeidsflyter etter at supportsamtaler avsluttes
- CSAT-hendelsessporing - Synkroniser tilfredshetsundersøkelsesresultater som Brevo-hendelser
- Agentaktivitetsdata - Spor agentytelsemålinger for operasjonell rapportering
- Køanalyse - Videresend ventetid- og avhoppsdata for opplevelsesoptimalisering
Forutsetninger
Før du begynner, sørg for at du har:
- En Twilio-konto med Flex aktivert
- Din Twilio Account SID og Auth Token
- En Flex-instans med aktive kanaler (tale, SMS, chat eller WhatsApp)
- TaskRouter-arbeidsområde konfigurert
- En Brevo-konto med API-tilgang
- En Tajo-konto med aktivt abonnement
Autentisering
Twilio Flex bruker Twilios standard autentiseringsmetoder.
Kontopåloggingsdetaljer
# Basic Auth: Account SID som brukernavn, Auth Token som passordcurl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"API-nøkkel (anbefalt for produksjon)
- Gå til Twilio Console > Account > API keys & tokens
- Klikk Create API Key
- Velg nøkkeltypen Standard
- Oppbevar 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-nøkkel
Auth Token har full kontotilgang. For produksjon, bruk avgrensede API-nøkler i stedet. API-nøkler kan tilbakekalles individuelt uten å forstyrre andre integrasjoner.
Koble til Tajo
tajo connectors install twilio-flex \ --account-sid $TWILIO_ACCOUNT_SID \ --auth-token $TWILIO_AUTH_TOKEN \ --flex-flow-sid $TWILIO_FLEX_FLOW_SIDKonfigurasjon
Grunnleggende oppsett
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
Mapp Flex-kunde- og interaksjonsdata til Brevo-attributter:
field_mapping: # Kundefelt identity: FLEX_IDENTITY friendly_name: FIRSTNAME attributes.email: email attributes.phone: SMS
# Interaksjonsmålinger 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
# Egendefinerte attributter customer_tier: VIP_TIER account_id: ACCOUNT_IDHendelsesmapping
event_mapping: task.created: SUPPORT_REQUESTED task.completed: SUPPORT_RESOLVED task.canceled: SUPPORT_ABANDONED conversation.ended: CONVERSATION_ENDED survey.completed: CSAT_SUBMITTEDAPI-endepunkter
Tajo integrerer med følgende Twilio Flex- og relaterte API-endepunkter:
| Endepunkt | Metode | API | Formål |
|---|---|---|---|
/v1/Configuration | GET | Flex | Hent Flex-konfigurasjon |
/v1/Interactions | GET | Flex | List interaksjoner |
/v1/Channels | GET | Flex | List Flex-kanaler |
/v1/WebChannels | POST | Flex | Opprett webchat-kanal |
/v1/Conversations | GET | Conversations | List samtaler |
/v1/Conversations/{sid}/Messages | GET | Conversations | List samtalemeldinger |
/v1/Conversations/{sid}/Participants | GET | Conversations | List deltakere |
/v1/Workspaces/{sid}/Tasks | GET | TaskRouter | List oppgaver |
/v1/Workspaces/{sid}/Workers | GET | TaskRouter | List workers (agenter) |
/v1/Workspaces/{sid}/TaskQueues | GET | TaskRouter | List oppgavekøer |
/v1/Workspaces/{sid}/Events | GET | TaskRouter | List arbeidsområdehendelser |
Kodeeksempler
Initialiser kobling
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});Synkroniser samtalehistorikk
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øser for kampanje etter samtale
// Utløs en Brevo-oppfølging etter at en supportsamtale avsluttesapp.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-integrasjon
// Inne i en Flex UI Plugin - send data til 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 }) }); }); }}Ratebegrensninger
Twilio håndhever ratebegrensninger på tvers av sine API-er:
| API | Ratebegrensning | Merknader |
|---|---|---|
| Flex API | 100 forespørsler/sekund | Per konto |
| Conversations API | 100 forespørsler/sekund | Per konto |
| TaskRouter API | 30 leseforespørsler/sekund | Per arbeidsområde |
| TaskRouter Events | 20 forespørsler/sekund | Per arbeidsområde |
Event Streams
For høyvolum-hendelsesbehandling, vurder å bruke Twilio Event Streams i stedet for polling av TaskRouter-hendelser. Event Streams pusher hendelser i sanntid via webhooks eller Kinesis.
Feilsøking
Vanlige problemer
| Problem | Årsak | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig SID eller token | Verifiser Account SID og Auth Token i Twilio Console |
| 403 Forbidden | Flex ikke aktivert | Sørg for at Flex er aktivert på Twilio-kontoen din |
| Manglende samtaler | Feil datointervall | Utvid synkroniseringsdatointervall eller sjekk samtaletilstand |
| Oppgaver ikke sporet | TaskRouter-arbeidsområde-ulikhet | Verifiser riktig arbeidsområde-SID |
| Plugin utløses ikke | Hendelseslytter ikke registrert | Sjekk at Flex-plugin er utrullet og aktiv |
Feilsøkingsmodus
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueTest tilkobling
tajo connectors test twilio-flex# ✓ Flex API-tilkobling vellykket# ✓ Conversations API tilgjengelig# ✓ TaskRouter-arbeidsområde funnet# ✓ Agentliste lesbar# ✓ Køkonfigurasjon lastetBeste praksis
- Bruk API-nøkler fremfor Auth Tokens - API-nøkler kan avgrenses og tilbakekalles individuelt
- Utnytt Event Streams - Push-baserte hendelser er mer effektive enn polling av TaskRouter
- Bygg en Flex-plugin - Bruk en UI-plugin for å fange oppgavefullføringshendelser i sanntid
- Mapp kanaler konsistent - Normaliser tale-, SMS- og chat-data til enhetlige Brevo-hendelser
- Spor CSAT-score - Synkroniser tilfredshetsdata til Brevo for opplevelsesdrevet segmentering
- Overvåk kømetrikker - Bruk ventetidsdata for å utløse proaktiv kundekommunikasjon
Sikkerhet
- Account SID + Auth Token - Standard Twilio-autentisering
- API-nøkler - Tilbakekallbare, ikke-root-påloggingsdetaljer for produksjonsbruk
- Kun HTTPS - All API-kommunikasjon kryptert via TLS 1.2+
- Webhook-validering - Verifiser Twilio-webhook-signaturer med
X-Twilio-Signature - PCI-samsvar - Twilio Flex er PCI DSS Level 1-kompatibel
- Kryptert lagring - Påloggingsdetaljer kryptert i hvilemodus i Tajo