Twilio Segment Connector
เชื่อมต่อ Twilio Segment กับ Brevo ผ่าน Tajo เพื่อรวม customer data pipeline ของคุณ กำหนดเส้นทางเหตุการณ์จากแหล่งใดก็ได้ไปยัง Brevo และใช้ประโยชน์จาก identity resolution ของ Segment สำหรับระบบอัตโนมัติทางการตลาดที่สมบูรณ์ยิ่งขึ้น
ภาพรวม
| คุณสมบัติ | ค่า |
|---|---|
| แพลตฟอร์ม | Twilio Segment |
| หมวดหมู่ | Data Platform (แบบกำหนดเอง) |
| ความซับซ้อนในการตั้งค่า | ปานกลาง |
| การผสานรวมอย่างเป็นทางการ | ไม่ |
| ข้อมูลที่ซิงค์ | เหตุการณ์ ลูกค้า Traits Audiences |
| ทักษะที่ใช้ได้ | 8 |
ฟีเจอร์
- การรวบรวมข้อมูลแบบ Universal - รวบรวมเหตุการณ์จากเว็บไซต์ แอปมือถือ และเซิร์ฟเวอร์ผ่าน Segment SDKs
- การกำหนดเส้นทางแหล่งข้อมูล - กำหนดเส้นทางข้อมูลจาก 400+ แหล่งเข้าสู่ Brevo ผ่าน Tajo
- Identity resolution - รวม anonymous และ known user profiles โดยอัตโนมัติ
- การซิงค์ audience - ส่ง computed traits และ audiences ของ Segment ไปยังรายการ Brevo
- Event streaming - การส่งต่อเหตุการณ์แบบเรียลไทม์ผ่าน Connections framework ของ Segment
- Reverse ETL - ซิงค์ข้อมูล warehouse กลับไปยัง Brevo โดยใช้ Segment Reverse ETL
- Schema enforcement - ตรวจสอบ event schemas ด้วย Segment Protocols ก่อนซิงค์
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:
- Twilio Segment workspace ที่มีการกำหนดค่า source
- Segment Write Key สำหรับ source
- บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
- บัญชี Tajo ที่มีข้อมูลประจำตัว API
การยืนยันตัวตน
Segment Write Key
Segment ยืนยันตัวตน sources โดยใช้ Write Key ซึ่งเป็นตัวระบุที่ไม่ซ้ำกันที่เชื่อมกับแต่ละ source
// Analytics.js initialization with Write Keyanalytics.load("YOUR_SEGMENT_WRITE_KEY");Tajo API Token
กำหนดค่า Tajo connector ด้วยข้อมูลประจำตัวของคุณ:
tajo connectors install segment \ --write-key $SEGMENT_WRITE_KEY \ --workspace-slug your-workspace \ --brevo-api-key $BREVO_API_KEYการกำหนดค่า
การตั้งค่าพื้นฐาน
connectors: segment: enabled: true write_key: "your-segment-write-key" data_region: "us" # or "eu" for EU workspace
# Data sync options sync: identify: true track: true page: true group: false
# Brevo list assignment lists: all_contacts: 5 active_users: 6 high_value: 7การแมปเหตุการณ์
แมป Segment track events กับประเภทเหตุการณ์ Brevo:
event_mapping: # Segment event -> Brevo event "Order Completed": "order_completed" "Product Viewed": "product_viewed" "Cart Updated": "cart_updated" "Signed Up": "customer_created" "Checkout Started": "checkout_started"
# Custom events "Feature Used": "feature_used" "Plan Upgraded": "plan_upgraded"การแมป Traits
แมป Segment identify traits กับแอตทริบิวต์ผู้ติดต่อ Brevo:
trait_mapping: email: email firstName: FIRSTNAME lastName: LASTNAME phone: SMS plan: PLAN_TYPE company: COMPANY createdAt: SIGNUP_DATE lifetimeValue: LTVAPI Endpoints
| เมธอด | Endpoint | คำอธิบาย |
|---|---|---|
POST | /v1/identify | ระบุตัวตนผู้ใช้พร้อม traits |
POST | /v1/track | ติดตามเหตุการณ์ |
POST | /v1/page | บันทึก page view |
POST | /v1/screen | บันทึก screen view |
POST | /v1/group | เชื่อมโยงผู้ใช้กับกลุ่ม |
POST | /v1/alias | รวม user identities สองรายการ |
POST | /v1/batch | ส่งข้อความหลายรายการในชุดเดียว |
POST | /v1/import | นำเข้าข้อมูลประวัติแบบ Bulk |
ตัวอย่างโค้ด
เริ่มต้น Segment กับ Tajo Destination
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Segment sourceawait tajo.connectors.connect('segment', { writeKey: process.env.SEGMENT_WRITE_KEY, workspaceSlug: 'your-workspace'});ติดตามเหตุการณ์ผ่าน Segment
// Identify a user - syncs to Brevo contactsanalytics.identify("user_123", { firstName: "Jane", lastName: "Kim", plan: "premium", lifetimeValue: 450.00});
// Track an event - forwards to Brevoanalytics.track("Order Completed", { orderId: "ORD-1234", revenue: 89.99, currency: "USD", products: [ { id: "SKU-001", name: "Widget", price: 89.99 } ]});
// Page view trackinganalytics.page("Pricing", { title: "Pricing - Tajo", url: "https://tajo.io/pricing"});การส่งต่อเหตุการณ์ฝั่งเซิร์ฟเวอร์ (Node.js)
const Analytics = require('analytics-node');const analytics = new Analytics(process.env.SEGMENT_WRITE_KEY);
// Batch identify users from your databaseconst users = await db.query('SELECT * FROM users WHERE updated_at > $1', [lastSync]);
for (const user of users) { analytics.identify({ userId: user.id, traits: { email: user.email, firstName: user.first_name, lastName: user.last_name, totalOrders: user.order_count, lifetimeValue: user.ltv } });}
// Flush the queueawait analytics.flush();ขีดจำกัดอัตรา
| ระดับ | ขีดจำกัด | ช่วงเวลา |
|---|---|---|
| Free | 1,000 เหตุการณ์/วินาที | ต่อ source |
| Team | 10,000 เหตุการณ์/วินาที | ต่อ source |
| Business | กำหนดเอง | ต่อ workspace |
| Batch API | สูงสุด 500 KB | ต่อคำขอ |
| ขนาด batch สูงสุด | 100 เหตุการณ์ | ต่อการเรียก batch |
ขีดจำกัดขนาด Batch
แต่ละคำขอ batch สามารถมีได้สูงสุด 100 เหตุการณ์ และต้องไม่เกิน 500 KB สำหรับการนำเข้าประวัติขนาดใหญ่ ใช้ Segment Bulk Import API
การแก้ไขปัญหา
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
| เหตุการณ์ไม่ปรากฏใน Brevo | Destination ไม่ได้เปิดใช้งาน | เปิดใช้งาน Tajo destination ใน Segment |
| Traits ผู้ใช้ไม่ซิงค์ | ไม่มีตัวระบุอีเมล | ตรวจสอบว่า trait email รวมอยู่ในการเรียก identify |
| ผู้ติดต่อซ้ำกัน | Anonymous IDs หลายรายการ | ใช้การเรียก alias ที่ถูกต้องสำหรับการรวม identity |
| เหตุการณ์ล่าช้า | คิวปริมาณสูง | ตรวจสอบ dashboard การส่งเหตุการณ์ของ Segment |
| Schema violations | เหตุการณ์ที่ไม่ได้วางแผน | ตรวจสอบ Segment Protocols tracking plan |
| ข้อผิดพลาด rate limit 429 | คำขอมากเกินไป | ใช้การ batch หรือลดความถี่เหตุการณ์ |
แนวทางปฏิบัติที่ดีที่สุด
- ใช้ identify ก่อน track - เรียก
identifyเสมอก่อนtrackเพื่อให้แน่ใจว่าเหตุการณ์ถูกนำไปให้ผู้ใช้ที่ถูกต้อง - ใช้ tracking plan - ใช้ Segment Protocols เพื่อบังคับใช้ event schemas
- Batch การเรียกฝั่งเซิร์ฟเวอร์ - ใช้ batch API สำหรับการผสานรวมฝั่งเซิร์ฟเวอร์เพื่อลด HTTP overhead
- แมป traits อย่างชัดเจน - กำหนดการแมป trait-to-attribute แทนที่จะพึ่งพาค่าเริ่มต้น
- ใช้ Segment Functions - แปลงเหตุการณ์ขณะส่งก่อนที่จะถึง Brevo
- ตรวจสอบการส่งเหตุการณ์ - ตรวจสอบ Event Delivery dashboard ของ Segment สำหรับเหตุการณ์ที่ล้มเหลว
- ตั้งค่า Replay - เปิดใช้งาน Segment Replay สำหรับการประมวลผลเหตุการณ์ประวัติซ้ำ
ความปลอดภัย
- การเข้ารหัส TLS - ข้อมูลทั้งหมดส่งผ่าน HTTPS/TLS 1.2+
- การแยก Write Key - แต่ละ source มี Write Key ของตัวเอง
- ความสอดคล้องกับ GDPR - Segment รองรับคำขอการลบและระงับข้อมูล
- SOC 2 Type II - Segment ได้รับการรับรอง SOC 2 Type II
- การโฮสต์ข้อมูลตามภูมิภาค - ตัวเลือก EU workspace สำหรับความสอดคล้องด้านการพำนักข้อมูล