Twilio Flex konektor
Poveži svoj Twilio Flex kontakt centar sa Brevo za unifikovanu istoriju interakcija sa kupcima, tokove marketing automatizacije nakon razgovora i analitiku angažovanja pokretanu podrškom putem Tajo.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Twilio Flex |
| Kategorija | Prilagođeno |
| Složenost podešavanja | Napredno |
| Zvanična integracija | Ne |
| Sinhronizovani podaci | Kupci, Razgovori, Događaji |
| Korišćeni API-ji | Flex API, Conversations API, TaskRouter API |
| Autentifikacija | Account SID + Auth Token / API Key |
| Osnovni URL | https://flex-api.twilio.com |
Karakteristike
- Sinhronizacija razgovora - Prosleđivanje glasovnih, SMS, WhatsApp i chat interakcija na Brevo vremenske linije
- Obogaćivanje profila kupaca - Sinhronizacija Flex podataka o kupcima na Brevo atribute kontakta
- Kampanje nakon interakcije - Pokretanje Brevo tokova nakon završetka razgovora podrške
- Praćenje CSAT događaja - Sinhronizacija rezultata anketa zadovoljstva kao Brevo događaja
- Podaci o aktivnosti agenata - Praćenje metrika performansi agenata za operativno izveštavanje
- Analitika redova - Prosleđivanje podataka o vremenu čekanja i napuštanju za optimizaciju iskustva
Preduslovi
Pre nego što započneš, proveri da imaš:
- Twilio nalog sa omogućenim Flex-om
- Twilio Account SID i Auth Token
- Flex instancu sa aktivnim kanalima (glas, SMS, chat ili WhatsApp)
- Konfigurisani TaskRouter radni prostor
- Brevo nalog sa API pristupom
- Tajo nalog sa aktivnom pretplatom
Autentifikacija
Twilio Flex koristi Twilio standardne metode autentifikacije.
Akreditivi naloga
# 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 (preporučeno za produkciju)
- Idi na Twilio Console > Account > API keys & tokens
- Klikni Create API Key
- Izaberi tip ključa Standard
- Bezbedno sačuvaj SID i Secret
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_API_KEY_SID:$TWILIO_API_KEY_SECRET"Auth Token vs API Key
Tvoj Auth Token ima pun pristup nalogu. Za produkciju, koristi skopovane API ključeve. API ključevi se mogu pojedinačno opozvati bez remećenja drugih integracija.
Povezivanje sa Tajo
tajo connectors install twilio-flex \ --account-sid $TWILIO_ACCOUNT_SID \ --auth-token $TWILIO_AUTH_TOKEN \ --flex-flow-sid $TWILIO_FLEX_FLOW_SIDKonfiguracija
Osnovno podešavanje
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 - webchatMapiranje polja
Mapiranje Flex podataka o kupcima i interakcijama na Brevo atribute:
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_IDMapiranje događaja
event_mapping: task.created: SUPPORT_REQUESTED task.completed: SUPPORT_RESOLVED task.canceled: SUPPORT_ABANDONED conversation.ended: CONVERSATION_ENDED survey.completed: CSAT_SUBMITTEDAPI endpointi
Tajo se integriše sa sledećim Twilio Flex i srodnim API endpointima:
| Endpoint | Metoda | API | Namena |
|---|---|---|---|
/v1/Configuration | GET | Flex | Dohvatanje Flex konfiguracije |
/v1/Interactions | GET | Flex | Listanje interakcija |
/v1/Channels | GET | Flex | Listanje Flex kanala |
/v1/WebChannels | POST | Flex | Kreiranje web chat kanala |
/v1/Conversations | GET | Conversations | Listanje razgovora |
/v1/Conversations/{sid}/Messages | GET | Conversations | Listanje poruka razgovora |
/v1/Conversations/{sid}/Participants | GET | Conversations | Listanje učesnika |
/v1/Workspaces/{sid}/Tasks | GET | TaskRouter | Listanje zadataka |
/v1/Workspaces/{sid}/Workers | GET | TaskRouter | Listanje radnika (agenata) |
/v1/Workspaces/{sid}/TaskQueues | GET | TaskRouter | Listanje redova zadataka |
/v1/Workspaces/{sid}/Events | GET | TaskRouter | Listanje događaja radnog prostora |
Primeri koda
Inicijalizacija konektora
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});Sinhronizacija istorije razgovora
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// }Okidač kampanje nakon razgovora
// 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');});Integracija Flex plugina
// 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 }) }); }); }}Ograničenja brzine
Twilio primenjuje ograničenja brzine na svim API-jima:
| API | Ograničenje brzine | Napomene |
|---|---|---|
| Flex API | 100 zahteva/sekundi | Po nalogu |
| Conversations API | 100 zahteva/sekundi | Po nalogu |
| TaskRouter API | 30 zahteva čitanja/sekundi | Po radnom prostoru |
| TaskRouter Events | 20 zahteva/sekundi | Po radnom prostoru |
Event Streams
Za obradu događaja visokog volumena, razmotri korišćenje Twilio Event Streams umesto ispitivanja TaskRouter događaja. Event Streams guraju događaje u realnom vremenu putem webhook-ova ili Kinesis-a.
Rešavanje problema
Česti problemi
| Problem | Uzrok | Rešenje |
|---|---|---|
| 401 Unauthorized | Nevažeći SID ili token | Verifikuj Account SID i Auth Token u Twilio Konzoli |
| 403 Forbidden | Flex nije omogućen | Osiguraj da je Flex aktiviran na tvom Twilio nalogu |
| Nedostaju razgovori | Pogrešan opseg datuma | Proširi opseg datuma sinhronizacije ili proveri stanje razgovora |
| Zadaci se ne prate | Nepodudaranje radnog prostora TaskRouter | Verifikuj ispravni SID radnog prostora |
| Plugin ne okida | Event listener nije registrovan | Proveri da je Flex plugin implementiran i aktivan |
Debug režim
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueTestiraj vezu
tajo connectors test twilio-flex# ✓ Flex API connection successful# ✓ Conversations API accessible# ✓ TaskRouter workspace found# ✓ Agent list readable# ✓ Queue configuration loadedNajbolje prakse
- Koristi API ključeve umesto Auth Tokena - API ključevi se mogu skopovati i pojedinačno opozvati
- Iskoristi Event Streams - Događaji zasnovani na gurkanju su efikasniji od ispitivanja TaskRouter-a
- Napravi Flex Plugin - Koristi UI plugin za hvatanje događaja završetka zadatka u realnom vremenu
- Mapiraj kanale dosledno - Normalizuj glas, SMS i chat podatke u unifikovane Brevo događaje
- Prati CSAT rezultate - Sinhronizuj podatke o zadovoljstvu sa Brevo za segmentaciju zasnovanu na iskustvu
- Prati metrike reda - Koristi podatke o vremenu čekanja za pokretanje proaktivne komunikacije sa kupcima
Bezbednost
- Account SID + Auth Token - Standardna Twilio autentifikacija
- API ključevi - Opozivi, nekorisnički akreditivi za produkcijsku upotrebu
- Samo HTTPS - Sva API komunikacija enkriptovana putem TLS 1.2+
- Validacija webhook-ova - Verifikuj Twilio webhook potpise sa
X-Twilio-Signature - PCI usklađenost - Twilio Flex je PCI DSS Level 1 usklađen
- Enkriptovana pohrana - Akreditivi enkriptovani u mirovanju u Tajo