ActiveCampaign Connector
เชื่อมต่อบัญชี ActiveCampaign ของคุณกับ Brevo ผ่าน Tajo เพื่อการโยกย้ายผู้ติดต่อที่ครอบคลุม การซิงค์ deal pipeline การแมประบบอัตโนมัติ และข้อมูลการตลาดที่รวมกันทั้งสองแพลตฟอร์ม
ภาพรวม
| คุณสมบัติ | ค่า |
|---|---|
| แพลตฟอร์ม | ActiveCampaign |
| หมวดหมู่ | การตลาด |
| ความซับซ้อนในการตั้งค่า | ปานกลาง |
| การผสานรวมอย่างเป็นทางการ | ใช่ |
| ข้อมูลที่ซิงค์ | ผู้ติดต่อ Deals ระบบอัตโนมัติ เหตุการณ์ |
| API Base URL | https://{account}.api-us1.com/api/3 |
ฟีเจอร์
- การโยกย้ายผู้ติดต่อ - โยกย้ายผู้ติดต่อพร้อม custom fields tags และ list memberships
- การซิงค์ deal pipeline - ซิงค์ deal stages ค่า และเจ้าของสำหรับการติดตามรายได้
- การแมประบบอัตโนมัติ - แมป ActiveCampaign automations กับ Brevo workflow triggers
- การติดตามเหตุการณ์ - ซิงค์ site tracking และ custom events สำหรับ behavioral segmentation
- การซิงค์ list และ tag - จำลองโครงสร้าง list และ segments ที่ใช้ tag ใน Brevo
- การผสานรวม e-commerce - ซิงค์ Deep Data (คำสั่งซื้อ ลูกค้า carts) กับ Brevo
- การซิงค์ custom objects - แมป ActiveCampaign custom objects กับแอตทริบิวต์ Brevo
- การซิงค์คะแนน - โอน lead และ contact scores ไปยังแอตทริบิวต์ Brevo
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:
- บัญชี ActiveCampaign (Lite, Plus, Professional หรือ Enterprise)
- API URL และ API key จาก Settings > Developer
- บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
- บัญชี Tajo
การยืนยันตัวตน
การยืนยันตัวตนด้วย API Key
ActiveCampaign ใช้ API key ที่ส่งเป็น header หรือ query parameter
curl "https://{account}.api-us1.com/api/3/contacts" \ -H "Api-Token: YOUR_API_KEY" \ -H "Content-Type: application/json"พบ API URL และ key ของคุณใน ActiveCampaign Settings > Developer
API URL
API URL ของคุณไม่ซ้ำกับบัญชี (เช่น https://yourcompany.api-us1.com) ใช้ URL นี้เสมอ ไม่ใช่ dashboard URL
การกำหนดค่า
การตั้งค่าพื้นฐาน
connectors: activecampaign: enabled: true api_url: "https://yourcompany.api-us1.com" api_key: "${AC_API_KEY}"
# Data sync options sync: contacts: true deals: true automations: true events: true ecommerce: true
# List mapping to Brevo list_mapping: "Main List": 50 "Newsletter": 51 "Customers": 52การแมปฟิลด์
แมปฟิลด์ ActiveCampaign กับแอตทริบิวต์ผู้ติดต่อ Brevo:
การแมปค่าเริ่มต้น
| Parameter | Type | Description |
|---|---|---|
email required | string | อีเมลผู้ติดต่อ (ตัวระบุที่ไม่ซ้ำกัน) |
firstName optional | string | แมปกับแอตทริบิวต์ FIRSTNAME |
lastName optional | string | แมปกับแอตทริบิวต์ LASTNAME |
phone optional | string | แมปกับแอตทริบิวต์ SMS |
tags optional | array | Tags ผู้ติดต่อสำหรับ segmentation |
score optional | integer | คะแนน engagement ของผู้ติดต่อ |
deals optional | array | Deal records ที่เกี่ยวข้อง |
fieldValues optional | array | ค่า custom fields |
การแมป Custom Fields
field_mapping: # Standard fields email: email firstName: FIRSTNAME lastName: LASTNAME phone: SMS
# Engagement fields score: LEAD_SCORE rating: ENGAGEMENT_RATING
# Deal fields deals.value: DEAL_VALUE deals.stage: DEAL_STAGE deals.owner: DEAL_OWNER
# Custom fields fieldValues.company: COMPANY_NAME fieldValues.industry: INDUSTRY fieldValues.plan_tier: PLAN_TIERAPI Endpoints
ผู้ติดต่อ
| เมธอด | Endpoint | คำอธิบาย |
|---|---|---|
GET | /api/3/contacts | แสดงรายการผู้ติดต่อทั้งหมด |
POST | /api/3/contacts | สร้างผู้ติดต่อ |
PUT | /api/3/contacts/{id} | อัปเดตผู้ติดต่อ |
GET | /api/3/contacts/{id} | ดึงผู้ติดต่อ |
POST | /api/3/contact/sync | ซิงค์ผู้ติดต่อ (สร้างหรืออัปเดต) |
POST | /api/3/import/bulk_import | นำเข้าผู้ติดต่อจำนวนมาก |
Deals
| เมธอด | Endpoint | คำอธิบาย |
|---|---|---|
GET | /api/3/deals | แสดงรายการ deals ทั้งหมด |
POST | /api/3/deals | สร้าง deal |
PUT | /api/3/deals/{id} | อัปเดต deal |
GET | /api/3/dealStages | แสดงรายการ deal stages ทั้งหมด |
GET | /api/3/dealPipelines | แสดงรายการ pipelines ทั้งหมด |
ระบบอัตโนมัติ
| เมธอด | Endpoint | คำอธิบาย |
|---|---|---|
GET | /api/3/automations | แสดงรายการ automations |
GET | /api/3/automations/{id} | ดึง automation |
POST | /api/3/contactAutomations | เพิ่มผู้ติดต่อใน automation |
E-commerce (Deep Data)
| เมธอด | Endpoint | คำอธิบาย |
|---|---|---|
POST | /api/3/ecomOrders | สร้างคำสั่งซื้อ |
GET | /api/3/ecomOrders | แสดงรายการคำสั่งซื้อ |
POST | /api/3/ecomCustomers | สร้างลูกค้า |
GET | /api/3/ecomCustomers | แสดงรายการลูกค้า |
การติดตามเหตุการณ์
| เมธอด | Endpoint | คำอธิบาย |
|---|---|---|
POST | /api/3/tracking/event | ติดตาม custom event |
GET | /api/3/eventTrackingEvents | แสดงรายการชื่อ events ทั้งหมด |
POST | /api/3/eventTrackingEvents | สร้างชื่อ event |
เหตุการณ์
เหตุการณ์ผู้ติดต่อ
| เหตุการณ์ | ทริกเกอร์ | กรณีใช้งาน |
|---|---|---|
contact_add | สร้างผู้ติดต่อใหม่ | เวิร์กโฟลว์ต้อนรับ |
contact_update | ข้อมูลผู้ติดต่อเปลี่ยน | การซิงค์แอตทริบิวต์ |
contact_tag_added | กำหนด tag | การอัปเดต segment |
contact_tag_removed | ลบ tag | การ cleanup segment |
เหตุการณ์ Deal
| เหตุการณ์ | ทริกเกอร์ | กรณีใช้งาน |
|---|---|---|
deal_add | สร้าง deal ใหม่ | การแจ้งเตือนการขาย |
deal_update | Deal stage เปลี่ยน | ระบบอัตโนมัติ pipeline |
deal_tasktype_add | เพิ่ม task ใน deal | การติดตามกิจกรรม |
เหตุการณ์ระบบอัตโนมัติ
| เหตุการณ์ | ทริกเกอร์ | กรณีใช้งาน |
|---|---|---|
automation_contact_add | ผู้ติดต่อเข้าสู่ automation | การติดตาม flow |
automation_contact_complete | ผู้ติดต่อสำเร็จ automation | ทริกเกอร์ขั้นตอนถัดไป |
ตัวอย่างโค้ด
เริ่มต้น Connector
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect ActiveCampaignawait tajo.connectors.connect('activecampaign', { apiUrl: process.env.AC_API_URL, apiKey: process.env.AC_API_KEY});โยกย้ายผู้ติดต่อไปยัง Brevo
// Full contact migration with custom fields and tagsawait tajo.connectors.sync('activecampaign', { type: 'full', resources: ['contacts', 'deals', 'events'], options: { includeTags: true, includeCustomFields: true, includeScores: true, includeListMemberships: true }});
// Check sync statusconst status = await tajo.connectors.status('activecampaign');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 28000,// dealsSynced: 4500,// eventsSynced: 120000// }ติดตาม Custom Events
// Forward ActiveCampaign events to Brevoawait tajo.activecampaign.trackEvent({ event: 'product_demo_requested', eventData: { product: 'Enterprise Plan', source: 'website' }});ขีดจำกัดอัตรา
Rate limits ของ ActiveCampaign API:
| แผน | ขีดจำกัดอัตรา | รายละเอียด |
|---|---|---|
| Lite | 5 คำขอ/วินาที | ต่อบัญชี |
| Plus | 10 คำขอ/วินาที | ต่อบัญชี |
| Professional | 10 คำขอ/วินาที | ต่อบัญชี |
| Enterprise | 20 คำขอ/วินาที | ต่อบัญชี |
ขีดจำกัดเพิ่มเติม:
- Bulk import: 250 ผู้ติดต่อต่อ batch
- ความถี่ bulk import: 1 import ในคราวเดียว
- Event tracking: 2 คำขอ/วินาที
- ขีดจำกัดรายวัน: ไม่มีขีดจำกัดรายวันที่ชัดเจน (ขึ้นอยู่กับอัตราเท่านั้น)
การจัดการ Rate Limit
ActiveCampaign ส่งคืน 429 Too Many Requests เมื่อเกินขีดจำกัด ใช้ retry logic กับค่า header Retry-After
การแก้ไขปัญหา
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
| 403 Forbidden | API key หรือ URL ไม่ถูกต้อง | ตรวจสอบ API URL และ key ใน AC Settings > Developer |
| ผู้ติดต่อไม่ซิงค์ | การจัดการอีเมลซ้ำ | ใช้ endpoint /contact/sync สำหรับ upsert |
| Custom field ว่างเปล่า | Field ID ไม่ตรงกัน | แมปฟิลด์โดย ID ไม่ใช่ label (labels สามารถเปลี่ยนได้) |
| ไม่ได้รับ webhook | ไม่ได้กำหนดค่า webhook | ตั้งค่า webhooks ใน AC Settings > Developer > Webhooks |
| ไม่สร้าง deal | ขาดฟิลด์ที่จำเป็น | ตรวจสอบว่ามี pipeline, stage และผู้ติดต่อ |
โหมด Debug
เปิดใช้งาน verbose logging:
connectors: activecampaign: debug: true log_level: verbose log_webhooks: trueทดสอบการเชื่อมต่อ
tajo connectors test activecampaign# ✓ API connection successful# ✓ Contacts readable# ✓ Deals readable# ✓ Automations accessible# ✓ Event tracking enabledแนวทางปฏิบัติที่ดีที่สุด
- ใช้ contact sync endpoint - ใช้
/contact/syncสำหรับ upsert operations แทนการสร้าง/อัปเดตแยกกัน - แมปฟิลด์โดย ID - Custom field IDs มีความเสถียร labels สามารถเปลี่ยนได้
- รักษา list memberships - โยกย้าย list assignments พร้อมข้อมูลผู้ติดต่อ
- ซิงค์ deal pipelines - แมป pipeline stages สำหรับการรายงาน CRM ที่สม่ำเสมอ
- ใช้ event tracking - ใช้ site tracking สำหรับข้อมูลพฤติกรรมใน Brevo
- Batch imports - ใช้ bulk import สำหรับ datasets ขนาดใหญ่กว่า 1,000 ผู้ติดต่อ
ความปลอดภัย
- การยืนยันตัวตนด้วย API Key - การเข้าถึงแบบ token ผ่าน header
Api-Token - การตรวจสอบ webhook - ตรวจสอบ source IP ranges ของ webhook
- การเข้ารหัส TLS - การสื่อสาร API ทั้งหมดเข้ารหัสผ่าน HTTPS
- การเข้าถึงระดับบัญชี - API key ให้สิทธิ์เข้าถึงบัญชีทั้งหมด ใช้ด้วยความระมัดระวัง
- การจำกัด IP - มีสำหรับแผน Enterprise