Konektor Twilio Flex
Połącz swoje centrum kontaktowe Twilio Flex z Brevo w celu ujednoliconej historii interakcji z klientami, przepływów marketingowych po rozmowie i analityki zaangażowania opartej na wsparciu przez Tajo.
Przegląd
| Właściwość | Wartość |
|---|---|
| Platforma | Twilio Flex |
| Kategoria | Niestandardowa |
| Poziom konfiguracji | Zaawansowany |
| Integracja oficjalna | Nie |
| Synchronizowane dane | Klienci, Rozmowy, Zdarzenia |
| Używane API | Flex API, Conversations API, TaskRouter API |
| Uwierzytelnianie | Account SID + Auth Token / Klucz API |
| Bazowy URL | https://flex-api.twilio.com |
Funkcje
- Synchronizacja rozmów - Przekazuj interakcje głosowe, SMS, WhatsApp i chat do osi czasu Brevo
- Wzbogacanie profilu klienta - Synchronizuj dane klientów Flex z atrybutami kontaktów Brevo
- Kampanie po interakcji - Wyzwalaj workflow Brevo po zakończeniu rozmów z pomocą techniczną
- Śledzenie zdarzeń CSAT - Synchronizuj wyniki ankiet satysfakcji jako zdarzenia Brevo
- Dane aktywności agentów - Śledź metryki wydajności agentów dla raportowania operacyjnego
- Analityka kolejek - Przekazuj dane czasu oczekiwania i porzucenia dla optymalizacji doświadczenia
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Konto Twilio z włączonym Flex
- Twilio Account SID i Auth Token
- Instancję Flex z aktywnymi kanałami (głos, SMS, chat lub WhatsApp)
- Skonfigurowany workspace TaskRouter
- Konto Brevo z dostępem do API
- Konto Tajo z aktywną subskrypcją
Uwierzytelnianie
Twilio Flex używa standardowych metod uwierzytelniania Twilio.
Dane konta
# 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"Klucz API (zalecane dla produkcji)
- Przejdź do Twilio Console > Account > API keys & tokens
- Kliknij Create API Key
- Wybierz typ klucza Standard
- Przechowuj SID i Secret bezpiecznie
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \ -u "$TWILIO_API_KEY_SID:$TWILIO_API_KEY_SECRET"Auth Token a Klucz API
Twój Auth Token ma pełny dostęp do konta. Dla produkcji używaj kluczy API z zakresem zamiast tego. Klucze API można odwołać indywidualnie bez zakłócania innych integracji.
Połączenie z Tajo
tajo connectors install twilio-flex \ --account-sid $TWILIO_ACCOUNT_SID \ --auth-token $TWILIO_AUTH_TOKEN \ --flex-flow-sid $TWILIO_FLEX_FLOW_SIDKonfiguracja
Podstawowa konfiguracja
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 - webchatMapowanie pól
Mapuj dane klientów i interakcji Flex na atrybuty 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_IDMapowanie zdarzeń
event_mapping: task.created: SUPPORT_REQUESTED task.completed: SUPPORT_RESOLVED task.canceled: SUPPORT_ABANDONED conversation.ended: CONVERSATION_ENDED survey.completed: CSAT_SUBMITTEDEndpointy API
Tajo integruje się z następującymi endpointami Twilio Flex i powiązanych API:
| Endpoint | Metoda | API | Cel |
|---|---|---|---|
/v1/Configuration | GET | Flex | Pobierz konfigurację Flex |
/v1/Interactions | GET | Flex | Lista interakcji |
/v1/Channels | GET | Flex | Lista kanałów Flex |
/v1/WebChannels | POST | Flex | Utwórz kanał web chat |
/v1/Conversations | GET | Conversations | Lista rozmów |
/v1/Conversations/{sid}/Messages | GET | Conversations | Lista wiadomości w rozmowie |
/v1/Conversations/{sid}/Participants | GET | Conversations | Lista uczestników |
/v1/Workspaces/{sid}/Tasks | GET | TaskRouter | Lista zadań |
/v1/Workspaces/{sid}/Workers | GET | TaskRouter | Lista pracowników (agentów) |
/v1/Workspaces/{sid}/TaskQueues | GET | TaskRouter | Lista kolejek zadań |
/v1/Workspaces/{sid}/Events | GET | TaskRouter | Lista zdarzeń workspace |
Przykłady kodu
Inicjalizacja 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});Synchronizuj historię rozmów
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// }Wyzwolenie kampanii po rozmowie
// 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');});Integracja wtyczki 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.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 }) }); }); }}Limity API
Twilio egzekwuje limity szybkości w różnych API:
| API | Limit szybkości | Uwagi |
|---|---|---|
| Flex API | 100 żądań/sekundę | Na konto |
| Conversations API | 100 żądań/sekundę | Na konto |
| TaskRouter API | 30 żądań odczytu/sekundę | Na workspace |
| TaskRouter Events | 20 żądań/sekundę | Na workspace |
Event Streams
Dla przetwarzania zdarzeń o dużym wolumenie rozważ użycie Twilio Event Streams zamiast odpytywania zdarzeń TaskRouter. Event Streams wypycha zdarzenia w czasie rzeczywistym przez webhooki lub Kinesis.
Rozwiązywanie problemów
Typowe problemy
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
| 401 Unauthorized | Nieprawidłowy SID lub token | Zweryfikuj Account SID i Auth Token w Twilio Console |
| 403 Forbidden | Flex nie włączony | Upewnij się, że Flex jest aktywowany na koncie Twilio |
| Brakujące rozmowy | Zły zakres dat | Rozszerz zakres dat synchronizacji lub sprawdź stan rozmowy |
| Zadania nie śledzone | Niezgodność workspace TaskRouter | Zweryfikuj prawidłowy SID workspace |
| Wtyczka nie odpala | Listener zdarzeń niezarejestrowany | Sprawdź, czy wtyczka Flex jest wdrożona i aktywna |
Tryb debug
connectors: twilio_flex: debug: true log_level: verbose log_api_calls: trueTest połączenia
tajo connectors test twilio-flex# ✓ Flex API connection successful# ✓ Conversations API accessible# ✓ TaskRouter workspace found# ✓ Agent list readable# ✓ Queue configuration loadedNajlepsze praktyki
- Używaj kluczy API zamiast Auth Tokenów - Klucze API można zawęzić zakresem i odwołać indywidualnie
- Korzystaj z Event Streams - Zdarzenia push są wydajniejsze niż odpytywanie TaskRouter
- Buduj wtyczkę Flex - Używaj wtyczki UI do przechwytywania zdarzeń ukończenia zadań w czasie rzeczywistym
- Mapuj kanały spójnie - Normalizuj dane głosowe, SMS i chat do ujednoliconych zdarzeń Brevo
- Śledź wyniki CSAT - Synchronizuj dane satysfakcji do Brevo dla segmentacji opartej na doświadczeniu
- Monitoruj metryki kolejek - Używaj danych czasu oczekiwania do wyzwalania proaktywnej komunikacji z klientem
Bezpieczeństwo
- Account SID + Auth Token - Standardowe uwierzytelnianie Twilio
- Klucze API - Odwoływalne, nie-root poświadczenia dla produkcji
- Tylko HTTPS - Cała komunikacja API szyfrowana przez TLS 1.2+
- Walidacja webhooków - Weryfikuj podpisy webhooków Twilio za pomocą
X-Twilio-Signature - Zgodność PCI - Twilio Flex jest zgodny z PCI DSS Level 1
- Szyfrowane przechowywanie - Poświadczenia szyfrowane w spoczynku w Tajo