Коннектор Twilio Flex

Подключите контакт-центр Twilio Flex к Brevo для единой истории взаимодействий с клиентами, маркетинговых последовательностей после разговоров и аналитики вовлечённости на основе поддержки через Tajo.

Обзор

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

Возможности

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

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

  1. Аккаунт Twilio с включённым Flex
  2. Account SID и Auth Token Twilio
  3. Экземпляр Flex с активными каналами (голос, SMS, чат или WhatsApp)
  4. Настроенное рабочее пространство TaskRouter
  5. Аккаунт Brevo с доступом к API
  6. Аккаунт Tajo с активной подпиской

Аутентификация

Twilio Flex использует стандартные методы аутентификации Twilio.

Учётные данные аккаунта

Terminal window
# Basic Auth: Account SID как имя пользователя, Auth Token как пароль
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 против API Key

Auth Token предоставляет полный доступ к аккаунту. Для production используйте ограниченные API Keys. API Keys можно отзывать по отдельности, не нарушая работу других интеграций.

Подключение к 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:
# Поля клиента
identity: FLEX_IDENTITY
friendly_name: FIRSTNAME
attributes.email: email
attributes.phone: SMS
# Метрики взаимодействий
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
# Пользовательские атрибуты
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Создать веб-чат канал
/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Список событий рабочего пространства

Примеры кода

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

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
// }

Триггер кампании после разговора

// Запуск follow-up в Brevo после завершения разговора в поддержке
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

// Внутри плагина Flex UI, отправка данных в 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 устанавливает ограничения скорости для своих API:

APIОграничение скоростиПримечания
Flex API100 запросов/секНа аккаунт
Conversations API100 запросов/секНа аккаунт
TaskRouter API30 запросов на чтение/секНа рабочее пространство
TaskRouter Events20 запросов/секНа рабочее пространство

Event Streams

Для обработки событий с высоким объёмом рассмотрите использование Twilio Event Streams вместо опроса TaskRouter. Event Streams доставляют события в реальном времени через вебхуки или Kinesis.

Устранение неполадок

Частые проблемы

ПроблемаПричинаРешение
401 UnauthorizedНедействительный SID или токенПроверьте Account SID и Auth Token в Twilio Console
403 ForbiddenFlex не включёнУбедитесь, что Flex активирован в аккаунте Twilio
Отсутствующие разговорыНеверный диапазон датРасширьте диапазон дат синхронизации или проверьте статус разговоров
Задачи не отслеживаютсяНесоответствие рабочего пространства TaskRouterПроверьте правильность SID рабочего пространства
Плагин не срабатываетСлушатель события не зарегистрированУбедитесь, что плагин Flex развёрнут и активен

Режим отладки

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 Keys имеют ограниченные права и могут отзываться по отдельности
  2. Используйте Event Streams, события на основе push-уведомлений эффективнее опроса TaskRouter
  3. Разработайте плагин Flex, UI-плагин для захвата событий завершения задач в реальном времени
  4. Нормализуйте каналы, унифицируйте данные голоса, SMS и чата в единые события Brevo
  5. Отслеживайте CSAT-оценки, синхронизируйте данные удовлетворённости с Brevo для сегментации по клиентскому опыту
  6. Мониторинг метрик очередей, используйте данные о времени ожидания для запуска проактивных коммуникаций с клиентами

Безопасность

  • Account SID + Auth Token, стандартная аутентификация Twilio
  • API Keys, отзываемые учётные данные без корневого доступа для production
  • Только HTTPS, все API-коммуникации зашифрованы через TLS 1.2+
  • Валидация вебхуков, верификация подписей вебхуков Twilio с помощью X-Twilio-Signature
  • PCI-совместимость, Twilio Flex соответствует стандарту PCI DSS Level 1
  • Шифрованное хранение, учётные данные зашифрованы при хранении в Tajo

Связанные ресурсы

Subscribe to updates

developer-docs

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

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

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