---
title: "Twilio Flex Connector"
description: "คู่มือการผสานรวม Twilio Flex ฉบับสมบูรณ์สำหรับการซิงค์การโต้ตอบ contact center กิจกรรมเจ้าหน้าที่ และการสนทนากับลูกค้ากับ Brevo ผ่าน Tajo"
url: https://tajo.io/th/docs/connectors/custom/twilio-flex/
markdown: https://tajo.io/th/docs/connectors/custom/twilio-flex.md
lang: th-TH
robots: noindex
---

ขอสิทธิ์ใช้งานล่วงหน้า

กรอกชื่อและที่อยู่อีเมลที่ทำงานของคุณ เราจะส่งลิงก์เพื่อยืนยันคำขอเข้าใช้งาน Tajo ทางอีเมล

# Twilio Flex Connector

สถานะตัวเชื่อม: วางแผนไว้ ยังไม่ได้สร้าง ปัจจุบัน Tajo ยังไม่ได้ใช้งานตัวเชื่อมนี้

| ฟิลด์ต้นทาง | ฟิลด์ปลายทาง | ค่าตัวอย่าง |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

เชื่อมต่อ Twilio Flex contact center กับ Brevo เพื่อประวัติการโต้ตอบลูกค้าที่รวมกัน เวิร์กโฟลว์การตลาดหลังการสนทนา และ analytics การมีส่วนร่วมที่ขับเคลื่อนด้วยการสนับสนุนผ่าน Tajo

## ภาพรวม

| คุณสมบัติ | ค่า |
| --- | --- |
| **แพลตฟอร์ม** | Twilio Flex |
| **หมวดหมู่** | แบบกำหนดเอง |
| **ความซับซ้อนในการตั้งค่า** | ขั้นสูง |
| **การผสานรวมอย่างเป็นทางการ** | ไม่ |
| **ข้อมูลที่ซิงค์** | ลูกค้า การสนทนา เหตุการณ์ |
| **APIs ที่ใช้** | Flex API, Conversations API, TaskRouter API |
| **การยืนยันตัวตน** | Account SID + Auth Token / API Key |
| **Base URL** | `https://flex-api.twilio.com` |

## ฟีเจอร์

- **การซิงค์การสนทนา** - ส่งต่อการโต้ตอบทางเสียง SMS WhatsApp และแชทไปยัง timelines ของ Brevo
- **การเพิ่มความสมบูรณ์โปรไฟล์ลูกค้า** - ซิงค์ข้อมูลลูกค้า Flex กับแอตทริบิวต์ผู้ติดต่อ Brevo
- **แคมเปญหลังการโต้ตอบ** - ทริกเกอร์เวิร์กโฟลว์ Brevo หลังจากการสนทนาสนับสนุนสิ้นสุด
- **การติดตามเหตุการณ์ CSAT** - ซิงค์ผลการสำรวจความพึงพอใจเป็นเหตุการณ์ Brevo
- **ข้อมูลกิจกรรมเจ้าหน้าที่** - ติดตาม performance metrics ของเจ้าหน้าที่สำหรับรายงานการดำเนินงาน
- **Queue analytics** - ส่งต่อข้อมูลเวลารอและการละทิ้งสำหรับการปรับปรุงประสบการณ์

## ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:

1. บัญชี Twilio ที่เปิดใช้งาน Flex
2. Twilio Account SID และ Auth Token ของคุณ
3. Flex instance ที่มี channels ที่ใช้งานอยู่ (เสียง SMS แชท หรือ WhatsApp)
4. TaskRouter workspace ที่กำหนดค่าแล้ว
5. บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
6. บัญชี Tajo ที่มีการสมัครสมาชิกที่ใช้งานอยู่

## การยืนยันตัวตน

Twilio Flex ใช้วิธีการยืนยันตัวตนมาตรฐานของ Twilio

### ข้อมูลประจำตัวบัญชี

```bash
# 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. เลือกประเภท key เป็น **Standard**
4. เก็บ SID และ Secret อย่างปลอดภัย

```bash
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 ใช้ scoped API Keys แทน API Keys สามารถถูกเพิกถอนแยกกันโดยไม่รบกวนการผสานรวมอื่น

### การเชื่อมต่อกับ Tajo

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

## การกำหนดค่า

### การตั้งค่าพื้นฐาน

```yaml
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:

```yaml
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
```

### การแมปเหตุการณ์

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

## API Endpoints

Tajo ผสานรวมกับ Twilio Flex และ API endpoints ที่เกี่ยวข้องต่อไปนี้:

| Endpoint | เมธอด | API | จุดประสงค์ |
| --- | --- | --- | --- |
| `/v1/Configuration` | GET | Flex | ดูการกำหนดค่า Flex |
| `/v1/Interactions` | GET | Flex | แสดงรายการ interactions |
| `/v1/Channels` | GET | Flex | แสดงรายการ Flex channels |
| `/v1/WebChannels` | POST | Flex | สร้าง web chat channel |
| `/v1/Conversations` | GET | Conversations | แสดงรายการการสนทนา |
| `/v1/Conversations/{sid}/Messages` | GET | Conversations | แสดงรายการข้อความการสนทนา |
| `/v1/Conversations/{sid}/Participants` | GET | Conversations | แสดงรายการผู้เข้าร่วม |
| `/v1/Workspaces/{sid}/Tasks` | GET | TaskRouter | แสดงรายการ tasks |
| `/v1/Workspaces/{sid}/Workers` | GET | TaskRouter | แสดงรายการ workers (เจ้าหน้าที่) |
| `/v1/Workspaces/{sid}/TaskQueues` | GET | TaskRouter | แสดงรายการ task queues |
| `/v1/Workspaces/{sid}/Events` | GET | TaskRouter | แสดงรายการเหตุการณ์ workspace |

## ตัวอย่างโค้ด

### เริ่มต้น Connector

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

### ซิงค์ประวัติการสนทนา

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

### ทริกเกอร์แคมเปญหลังการสนทนา

```javascript
// 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 Plugin

```javascript
// 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.example.com/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
        })
      });
    });
  }
}
```

Caution

ที่อยู่ `example.com` ด้านบนเป็นเพียงตัวอย่างชั่วคราวจนกว่าปลายทางของ Tajo จะพร้อมใช้งาน

## ขีดจำกัดอัตรา

Twilio บังคับใช้ rate limits ในทุก APIs:

| API | ขีดจำกัดอัตรา | หมายเหตุ |
| --- | --- | --- |
| **Flex API** | 100 คำขอ/วินาที | ต่อบัญชี |
| **Conversations API** | 100 คำขอ/วินาที | ต่อบัญชี |
| **TaskRouter API** | 30 คำขออ่าน/วินาที | ต่อ workspace |
| **TaskRouter Events** | 20 คำขอ/วินาที | ต่อ workspace |

Event Streams

สำหรับการประมวลผลเหตุการณ์ปริมาณสูง ควรพิจารณาใช้ Twilio Event Streams แทนการ polling TaskRouter events Event Streams ส่ง push events แบบเรียลไทม์ผ่าน webhooks หรือ Kinesis

## การแก้ไขปัญหา

### ปัญหาทั่วไป

| ปัญหา | สาเหตุ | วิธีแก้ |
| --- | --- | --- |
| 401 Unauthorized | SID หรือ token ไม่ถูกต้อง | ตรวจสอบ Account SID และ Auth Token ใน Twilio Console |
| 403 Forbidden | Flex ไม่ได้เปิดใช้งาน | ตรวจสอบว่า Flex ถูกเปิดใช้งานบนบัญชี Twilio ของคุณ |
| การสนทนาหายไป | ช่วงวันที่ไม่ถูกต้อง | ขยาย sync date range หรือตรวจสอบสถานะการสนทนา |
| Tasks ไม่ถูกติดตาม | TaskRouter workspace ไม่ตรงกัน | ตรวจสอบ workspace SID ที่ถูกต้อง |
| Plugin ไม่ทำงาน | Event listener ไม่ได้ลงทะเบียน | ตรวจสอบว่า Flex plugin ถูก deploy และใช้งานอยู่ |

### โหมด Debug

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

### ทดสอบการเชื่อมต่อ

```bash
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 มีประสิทธิภาพมากกว่าการ polling TaskRouter
3. **สร้าง Flex Plugin** - ใช้ UI plugin เพื่อจับเหตุการณ์การสำเร็จงานแบบเรียลไทม์
4. **แมป channels อย่างสม่ำเสมอ** - ปรับมาตรฐานข้อมูลเสียง SMS และแชทเป็นเหตุการณ์ Brevo ที่รวมกัน
5. **ติดตามคะแนน CSAT** - ซิงค์ข้อมูลความพึงพอใจกับ Brevo สำหรับการแบ่งกลุ่มตามประสบการณ์
6. **ตรวจสอบ queue metrics** - ใช้ข้อมูลเวลารอเพื่อทริกเกอร์การสื่อสารกับลูกค้าเชิงรุก

## ความปลอดภัย

- **Account SID + Auth Token** - การยืนยันตัวตน Twilio มาตรฐาน
- **API Keys** - ข้อมูลประจำตัวที่ไม่ใช่ root สามารถเพิกถอนได้สำหรับ production
- **HTTPS เท่านั้น** - การสื่อสาร API ทั้งหมดเข้ารหัสผ่าน TLS 1.2+
- **การตรวจสอบ Webhook** - ตรวจสอบลายเซ็น webhook ของ Twilio ด้วย `X-Twilio-Signature`
- **ความสอดคล้องกับ PCI** - Twilio Flex สอดคล้องกับ PCI DSS Level 1
- **การจัดเก็บที่เข้ารหัส** - ข้อมูลประจำตัวเข้ารหัสที่เก็บใน Tajo

## แหล่งข้อมูลที่เกี่ยวข้อง

- [Gorgias Connector](https://tajo.io/th/docs/connectors/support/gorgias)
- [Jira Connector](https://tajo.io/th/docs/connectors/custom/jira)
- [Customer Sync Skill](https://tajo.io/th/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/th/docs/contact-management)
