Trình Kết Nối Twilio Flex
Kết nối Twilio Flex contact center với Brevo qua Tajo để đồng bộ conversation histories, customer interactions và support data, cung cấp cái nhìn 360° về khách hàng.
Tổng Quan
| Thuộc Tính | Giá Trị |
|---|---|
| Nền Tảng | Twilio Flex |
| Danh Mục | Tùy Chỉnh |
| Độ Phức Tạp Thiết Lập | Nâng Cao |
| Tích Hợp Chính Thức | Không |
| Dữ Liệu Đồng Bộ | Conversations, Tasks, Workers, Contacts |
| Loại API | Twilio REST API |
| Xác Thực | Account SID + Auth Token hoặc API Key |
Tính Năng
- Đồng bộ conversation - Nhập Twilio Flex conversations sang lịch sử liên hệ Brevo
- Dữ liệu task - Đồng bộ TaskRouter tasks và attributes sang Brevo events
- Thông tin agent - Liên kết conversations với nhân viên Flex trong Brevo
- Đồng bộ contacts - Tích hợp Twilio contact data với hồ sơ Brevo
- Sự kiện webhook - Forward Flex events sang Brevo triggers
Yêu Cầu
Trước khi bắt đầu, hãy đảm bảo bạn có:
- Tài khoản Twilio với Flex được bật
- Account SID và Auth Token
- Flex instance SID
- Tài khoản Brevo với quyền truy cập API
- Tài khoản Tajo
Xác Thực
Auth Token vs API Key
Auth Token cấp quyền truy cập đầy đủ vào tài khoản Twilio. Đối với production, hãy tạo API Key/Secret riêng biệt với quyền hạn chế thay vì sử dụng Auth Token chính.
Tạo API Key
# Tạo API Key qua REST APIcurl -X POST "https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Keys.json" \ -u "ACCOUNT_SID:AUTH_TOKEN" \ -d "FriendlyName=Tajo Integration"Xác Thực Cơ Bản
curl "https://flex-api.twilio.com/v1/Interactions" \ -u "API_KEY_SID:API_KEY_SECRET"Cấu Hình
Thiết Lập Cơ Bản
connectors: twilio_flex: enabled: true account_sid: "${TWILIO_ACCOUNT_SID}" api_key: "${TWILIO_API_KEY}" api_secret: "${TWILIO_API_SECRET}" flex_instance_sid: "${FLEX_INSTANCE_SID}"
sync: conversations: true tasks: true workers: false contacts: trueÁnh Xạ Trường
field_mapping: # Contact fields customer_email: email customer_name: FULLNAME customer_phone: SMS
# Conversation fields conversation_sid: LAST_CONVERSATION_ID channel: LAST_CONTACT_CHANNEL created: LAST_CONTACT_DATE
# Task fields task_attributes.issue_type: SUPPORT_ISSUE_TYPE task_attributes.priority: SUPPORT_PRIORITYAPI Endpoints
| Phương Thức | Endpoint | Mô Tả |
|---|---|---|
GET | /v1/Interactions | Liệt kê Flex Interactions |
GET | /v1/Interactions/{sid} | Lấy chi tiết Interaction |
GET | /v2010-04-01/Accounts/{sid}/Conversations | Liệt kê Conversations |
GET | /v2010-04-01/Accounts/{sid}/Conversations/{sid}/Participants | Participants của conversation |
GET | /v1/Workspaces/{sid}/Tasks | Liệt kê TaskRouter Tasks |
GET | /v1/Workspaces/{sid}/Workers | Liệt kê Workers |
Ví Dụ Code
Khởi Tạo Trình Kết Nối
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, apiKey: process.env.TWILIO_API_KEY, apiSecret: process.env.TWILIO_API_SECRET, flexInstanceSid: process.env.FLEX_INSTANCE_SID});Đồng Bộ Conversations Sang Brevo
// Đồng bộ Twilio Flex conversations sang Brevoawait tajo.connectors.sync('twilio-flex', { type: 'incremental', resources: ['conversations'], since: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString()});Event Streams
Tajo hỗ trợ Twilio Event Streams cho updates theo thời gian thực. Thay vì polling API, hãy cấu hình Event Stream sink để forward events trực tiếp đến Tajo webhook endpoint.
Giới Hạn Tốc Độ
| Tài Nguyên | Giới Hạn |
|---|---|
| REST API | 100 yêu cầu/giây |
| Conversation API | 100 yêu cầu/giây |
| Task fetch | 20 yêu cầu/giây |
Khắc Phục Sự Cố
| Sự Cố | Nguyên Nhân | Giải Pháp |
|---|---|---|
| 401 Unauthorized | Credentials không hợp lệ | Xác minh Account SID và Auth Token |
| Interactions rỗng | Flex chưa được cấu hình | Kiểm tra Flex instance SID |
| Conversations thiếu | Khoảng thời gian không đúng | Điều chỉnh date range filter |
| Webhook không nhận | URL không thể truy cập | Đảm bảo Tajo webhook URL có thể truy cập từ internet |