Twilio Flex конектор

Свържи своя Twilio Flex контактен център с Brevo за унифицирана история на клиентските взаимодействия, маркетингови потоци след разговори и аналитика за ангажиране, задвижвана от поддръжка, чрез Tajo.

Преглед

СвойствоСтойност
ПлатформаTwilio Flex
КатегорияПерсонализирана
Сложност на настройкаНапреднала
Официална интеграцияНе
Синхронизирани данниКлиенти, разговори, събития
Използвани APIFlex API, Conversations API, TaskRouter API
АвтентикацияAccount SID + Auth Token / API Key
Base URLhttps://flex-api.twilio.com

Функции

  • Синхронизация на разговори – Препращай гласови, SMS, WhatsApp и chat взаимодействия към timeline-ите в Brevo
  • Обогатяване на клиентски профил – Синхронизирай клиентски данни от Flex към атрибути на контактите в Brevo
  • Кампании след взаимодействие – Задействай работни потоци в Brevo след приключване на разговори за поддръжка
  • Проследяване на CSAT събития – Синхронизирай резултати от анкети за удовлетвореност като събития в Brevo
  • Данни за активност на агенти – Проследявай метрики за производителност на агентите за оперативно отчитане
  • Аналитика на опашки – Препращай данни за времето на изчакване и изоставяне за оптимизация на преживяването

Предварителни условия

Преди да започнеш, увери се, че имаш:

  1. Twilio акаунт с активиран Flex
  2. Твоите Twilio Account SID и Auth Token
  3. Flex инстанция с активни канали (voice, SMS, chat или WhatsApp)
  4. Конфигуриран TaskRouter workspace
  5. Акаунт в Brevo с API достъп
  6. Акаунт в Tajo с активен абонамент

Автентикация

Twilio Flex използва стандартните методи за автентикация на Twilio.

Credentials на акаунта

Terminal window
# Basic Auth: Account SID as username, Auth Token as password
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \
-u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"

API Key (препоръчително за production)

  1. Отиди в Twilio Console > Account > API keys & tokens
  2. Щракни върху Create API Key
  3. Избери тип на ключа Standard
  4. Съхрани SID и Secret сигурно
Terminal window
curl -X GET "https://flex-api.twilio.com/v1/Configuration" \
-u "$TWILIO_API_KEY_SID:$TWILIO_API_KEY_SECRET"

Auth Token vs API Key

Твоят Auth Token има пълен достъп до акаунта. За production използвай scoped API Keys вместо него. API ключовете могат да се отменят индивидуално, без да нарушават други интеграции.

Свързване с Tajo

Terminal window
tajo connectors install twilio-flex \
--account-sid $TWILIO_ACCOUNT_SID \
--auth-token $TWILIO_AUTH_TOKEN \
--flex-flow-sid $TWILIO_FLEX_FLOW_SID

Конфигурация

Основна настройка

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
- webchat

Мапване на полета

Мапвай клиентски данни и данни за взаимодействия от Flex към атрибути в 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_ID

Мапване на събития

event_mapping:
task.created: SUPPORT_REQUESTED
task.completed: SUPPORT_RESOLVED
task.canceled: SUPPORT_ABANDONED
conversation.ended: CONVERSATION_ENDED
survey.completed: CSAT_SUBMITTED

API крайни точки

Tajo се интегрира със следните крайни точки на Twilio Flex и свързаните с него API-та:

Крайна точкаМетодAPIПредназначение
/v1/ConfigurationGETFlexПолучаване на Flex конфигурация
/v1/InteractionsGETFlexСписък с взаимодействия
/v1/ChannelsGETFlexСписък с Flex канали
/v1/WebChannelsPOSTFlexСъздаване на web chat канал
/v1/ConversationsGETConversationsСписък с разговори
/v1/Conversations/{sid}/MessagesGETConversationsСписък със съобщения от разговор
/v1/Conversations/{sid}/ParticipantsGETConversationsСписък с участници
/v1/Workspaces/{sid}/TasksGETTaskRouterСписък със задачи
/v1/Workspaces/{sid}/WorkersGETTaskRouterСписък с работници (агенти)
/v1/Workspaces/{sid}/TaskQueuesGETTaskRouterСписък с опашки на задачи
/v1/Workspaces/{sid}/EventsGETTaskRouterСписък със събития в workspace

Примери с код

Инициализация на конектора

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
});

Синхронизация на история на разговорите

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 a Brevo follow-up after a support conversation ends
app.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 плъгин

// Inside a Flex UI Plugin - send data to Tajo
import { 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
})
});
});
}
}

Ограничения на заявките

Twilio налага rate limits в своите API-та:

APIRate LimitБележки
Flex API100 заявки/секундаНа акаунт
Conversations API100 заявки/секундаНа акаунт
TaskRouter API30 read заявки/секундаНа workspace
TaskRouter Events20 заявки/секундаНа workspace

Event Streams

За обработка на събития с голям обем, помисли за използване на Twilio Event Streams вместо polling на TaskRouter събития. Event Streams изпраща събития в реално време чрез уебхуци или Kinesis.

Отстраняване на проблеми

Чести проблеми

ПроблемПричинаРешение
401 UnauthorizedНевалиден SID или tokenПровери Account SID и Auth Token в Twilio Console
403 ForbiddenFlex не е активиранУвери се, че Flex е активиран в твоя Twilio акаунт
Липсващи разговориГрешен период от датиРазшири периода на синхронизация или провери състоянието на разговора
Задачите не се проследяватНесъответствие на TaskRouter workspaceПровери правилния workspace SID
Плъгинът не се задействаEvent listener не е регистриранПровери дали Flex плъгинът е deploy-нат и активен

Режим за дебъг

connectors:
twilio_flex:
debug: true
log_level: verbose
log_api_calls: true

Тест на връзката

Terminal window
tajo connectors test twilio-flex
# ✓ Flex API connection successful
# ✓ Conversations API accessible
# ✓ TaskRouter workspace found
# ✓ Agent list readable
# ✓ Queue configuration loaded

Добри практики

  1. Използвай API Keys вместо Auth Tokens – API ключовете могат да бъдат scope-вани и индивидуално отменени
  2. Използвай Event Streams – Push-базираните събития са по-ефективни от polling на TaskRouter
  3. Създай Flex плъгин – Използвай UI плъгин, за да улавяш събития за завършване на задачи в реално време
  4. Мапвай каналите консистентно – Нормализирай voice, SMS и chat данните в унифицирани Brevo събития
  5. Проследявай CSAT скорове – Синхронизирай данни за удовлетвореност към Brevo за сегментация, задвижвана от преживяването
  6. Мониторирай метрики на опашките – Използвай данните за времето на изчакване, за да задействаш проактивна клиентска комуникация

Сигурност

  • Account SID + Auth Token – Стандартна автентикация на Twilio
  • API Keys – Отменяеми, non-root credentials за production употреба
  • Само HTTPS – Цялата API комуникация е криптирана чрез TLS 1.2+
  • Валидация на уебхуци – Верифицирай подписите на Twilio уебхуци с X-Twilio-Signature
  • PCI съвместимост – Twilio Flex е PCI DSS Level 1 съвместим
  • Криптирано съхранение – Credentials криптирани при съхранение в Tajo

Свързани ресурси

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI асистент

Здравейте! Попитайте ме за документацията.