Trình Kết Nối HubSpot

Trình Kết Nối HubSpot

Kết nối tài khoản HubSpot của bạn với Brevo qua Tajo để đồng bộ liên hệ hai chiều, quản lý giao dịch, và hợp nhất dữ liệu CRM với các chiến dịch marketing.

Tổng Quan

Thuộc TínhGiá Trị
Nền TảngHubSpot
Danh MụcCRM
Độ Phức Tạp Thiết LậpTrung Bình
Tích Hợp Chính Thức
Dữ Liệu Đồng BộLiên Hệ, Công Ty, Giao Dịch, Sự Kiện
URL API Cơ Sởhttps://api.hubapi.com

Tính Năng

  • Đồng bộ liên hệ hai chiều - Đồng bộ liên hệ HubSpot với Brevo bao gồm thuộc tính tùy chỉnh
  • Đồng bộ công ty - Nhập dữ liệu công ty và liên kết với liên hệ trong Brevo
  • Đồng bộ đường ống giao dịch - Ánh xạ giai đoạn giao dịch HubSpot sang thuộc tính Brevo
  • Đồng bộ vé - Đồng bộ vé hỗ trợ khách hàng với Brevo để theo dõi đa kênh
  • Theo dõi sự kiện - Chuyển tiếp hoạt động email và form HubSpot sang Brevo
  • Đồng bộ danh sách - Ánh xạ danh sách HubSpot sang danh sách liên hệ Brevo
  • Thuộc tính tùy chỉnh - Đồng bộ thuộc tính tùy chỉnh HubSpot sang thuộc tính Brevo
  • Phân đoạn - Sử dụng dữ liệu HubSpot cho phân đoạn nâng cao trong Brevo

Yêu Cầu

Trước khi bắt đầu, hãy đảm bảo bạn có:

  1. Tài khoản HubSpot (Starter, Professional, hoặc Enterprise)
  2. Quyền truy cập API HubSpot hoặc Private App token
  3. Tài khoản Brevo với quyền truy cập API
  4. Tài khoản Tajo

Xác Thực

Private App (Khuyến Nghị)

HubSpot khuyến nghị sử dụng Private Apps để xác thực API, cung cấp token truy cập có phạm vi.

Terminal window
curl https://api.hubapi.com/crm/v3/objects/contacts \
-H "Authorization: Bearer YOUR_PRIVATE_APP_TOKEN"

Tạo Private App trong HubSpot Settings > Integrations > Private Apps.

Phạm Vi Cần Thiết

CRM Scopes:
crm.objects.contacts.read
crm.objects.contacts.write
crm.objects.companies.read
crm.objects.deals.read
crm.lists.read
Marketing Scopes:
content
Timeline Scopes:
timeline

OAuth 2.0

Để tích hợp công khai hoặc yêu cầu quyền riêng biệt:

Terminal window
# Bước 1: Chuyển hướng đến authorization URL
https://app.hubspot.com/oauth/authorize
?client_id=YOUR_CLIENT_ID
&scope=crm.objects.contacts.read
&redirect_uri=YOUR_REDIRECT_URI
# Bước 2: Đổi mã lấy token
curl -X POST https://api.hubapi.com/oauth/v1/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&redirect_uri=REDIRECT_URI&code=CODE"

Giới Hạn Tốc Độ

HubSpot giới hạn tốc độ theo gói: gói Free nhận 100 yêu cầu/10 giây, còn các gói trả phí nhận 150 yêu cầu/10 giây. Theo dõi header X-HubSpot-RateLimit-Remaining để tránh lỗi 429.

Cấu Hình

Thiết Lập Cơ Bản

connectors:
hubspot:
enabled: true
access_token: "${HUBSPOT_ACCESS_TOKEN}"
# Tùy chọn đồng bộ dữ liệu
sync:
contacts: true
companies: true
deals: true
tickets: false
events: true
# Ánh xạ danh sách sang Brevo
list_mapping:
"All Contacts": 1
"Newsletter": 2
"Customers": 3

Ánh Xạ Trường

Ánh xạ thuộc tính HubSpot sang thuộc tính liên hệ Brevo:

Ánh Xạ Mặc Định

Parameter Type Description
email required
string

Địa chỉ email liên hệ (định danh duy nhất)

firstname optional
string

Ánh xạ sang thuộc tính FIRSTNAME

lastname optional
string

Ánh xạ sang thuộc tính LASTNAME

phone optional
string

Ánh xạ sang thuộc tính SMS

company optional
string

Tên công ty của liên hệ

lifecyclestage optional
string

Giai đoạn vòng đời HubSpot (lead, customer, v.v.)

hs_lead_status optional
string

Trạng thái lead hiện tại

hubspot_owner_id optional
string

ID người dùng HubSpot được giao

Ánh Xạ Thuộc Tính Tùy Chỉnh

field_mapping:
# Trường tiêu chuẩn
email: email
firstname: FIRSTNAME
lastname: LASTNAME
phone: SMS
# Trường CRM
lifecyclestage: LIFECYCLE_STAGE
lead_status: LEAD_STATUS
company: COMPANY_NAME
# Chỉ số tương tác
hs_email_open_count: EMAIL_OPENS
hs_email_click_count: EMAIL_CLICKS
hs_last_sales_activity_timestamp: LAST_ACTIVITY
# Thuộc tính tùy chỉnh
custom_plan_type: PLAN_TYPE
custom_mrr: MONTHLY_REVENUE

API Endpoints

Liên Hệ

Phương ThứcEndpointMô Tả
GET/crm/v3/objects/contactsLiệt kê tất cả liên hệ
POST/crm/v3/objects/contactsTạo liên hệ mới
PATCH/crm/v3/objects/contacts/{id}Cập nhật liên hệ
POST/crm/v3/objects/contacts/batch/upsertUpsert liên hệ theo lô
POST/crm/v3/objects/contacts/searchTìm kiếm liên hệ

Giao Dịch

Phương ThứcEndpointMô Tả
GET/crm/v3/objects/dealsLiệt kê tất cả giao dịch
GET/crm/v3/pipelines/dealsLiệt kê đường ống giao dịch
GET/crm/v3/objects/deals/{id}/associations/contactsLiên hệ liên quan đến giao dịch

Công Ty

Phương ThứcEndpointMô Tả
GET/crm/v3/objects/companiesLiệt kê tất cả công ty
GET/crm/v3/objects/companies/{id}Lấy chi tiết công ty

Danh Sách

Phương ThứcEndpointMô Tả
GET/contacts/v1/listsLiệt kê tất cả danh sách liên hệ
GET/contacts/v1/lists/{id}/contacts/allLấy thành viên trong danh sách

Sự Kiện

Sự Kiện Liên Hệ

Sự KiệnKích HoạtTrường Hợp Sử Dụng
contact.creationLiên hệ mới được tạoKích hoạt luồng chào mừng
contact.propertyChangeThuộc tính liên hệ thay đổiCập nhật thuộc tính Brevo
contact.deletionLiên hệ bị xóaXóa khỏi danh sách Brevo

Sự Kiện Giao Dịch

Sự KiệnKích HoạtTrường Hợp Sử Dụng
deal.creationGiao dịch mới được tạoThông báo bán hàng
deal.propertyChangeGiai đoạn giao dịch thay đổiCập nhật vòng đời liên hệ
deal.deletionGiao dịch bị xóaĐánh dấu liên hệ để theo dõi

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
});
// Kết nối HubSpot
await tajo.connectors.connect('hubspot', {
accessToken: process.env.HUBSPOT_ACCESS_TOKEN
});

Đồng Bộ Liên Hệ Sang Brevo

// Đồng bộ tăng dần từ HubSpot sang Brevo
await tajo.connectors.sync('hubspot', {
type: 'incremental',
resources: ['contacts', 'companies'],
since: '2024-01-01',
batchSize: 100
});
// Kiểm tra trạng thái đồng bộ
const status = await tajo.connectors.status('hubspot');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// contactsSynced: 12500,
// companiesSynced: 890,
// dealsSynced: 3400
// }

Xử Lý Webhook HubSpot

// Xử lý webhook HubSpot
app.post('/webhooks/hubspot', async (req, res) => {
const signature = req.get('X-HubSpot-Signature');
// Xác minh chữ ký webhook
if (!verifyHubSpotSignature(req.body, signature)) {
return res.status(401).send('Unauthorized');
}
for (const event of req.body) {
await tajo.connectors.handleWebhook('hubspot', {
type: event.subscriptionType,
objectId: event.objectId,
payload: event
});
}
res.status(200).send('OK');
});

Giới Hạn Tốc Độ

GóiGiới HạnChi Tiết
Free100 yêu cầu/10 giâyMỗi tài khoản
Starter100 yêu cầu/10 giâyMỗi tài khoản
Professional150 yêu cầu/10 giâyMỗi tài khoản
Enterprise150 yêu cầu/10 giâyMỗi tài khoản

Giới hạn bổ sung:

  • Upsert theo lô: 100 bản ghi mỗi yêu cầu
  • Tìm kiếm: 200 yêu cầu/phút
  • Lịch sử thuộc tính: 100 yêu cầu/phút

Khắc Phục Sự Cố

Sự Cố Phổ Biến

Sự CốNguyên NhânGiải Pháp
401 UnauthorizedToken không hợp lệ hoặc hết hạnTạo lại Private App token
403 ForbiddenThiếu phạm viThêm phạm vi cần thiết vào Private App
429 Too Many RequestsVượt giới hạn tốc độTriển khai retry logic với header Retry-After
Liên hệ không đồng bộLọc thuộc tínhXác minh phạm vi liên hệ được cấu hình đúng

Chế Độ Debug

connectors:
hubspot:
debug: true
log_level: verbose
log_webhooks: true

Kiểm Tra Kết Nối

Terminal window
tajo connectors test hubspot
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Companies accessible
# ✓ Deals readable
# ✓ Webhooks configured

Thực Hành Tốt Nhất

  1. Sử dụng Private Apps - Ưu tiên Private Apps hơn API keys cũ vì kiểm soát phạm vi tốt hơn
  2. Đồng bộ tăng dần - Sử dụng khoảng thời gian để tránh xử lý lại dữ liệu lịch sử
  3. Xử lý trùng lặp - HubSpot deduplicate theo email; đảm bảo email nhất quán
  4. Ánh xạ trường tùy chỉnh - Tạo thuộc tính Brevo tương ứng trước khi đồng bộ
  5. Theo dõi webhook - Sử dụng HubSpot webhooks để cập nhật theo thời gian thực thay vì polling

Bảo Mật

  • Xác thực Private App - Token có phạm vi với kiểm soát chi tiết
  • OAuth 2.0 - Xác thực dựa trên token cho tích hợp công khai
  • Xác minh Webhook - Xác minh chữ ký HMAC SHA-256
  • Mã hóa TLS - Tất cả giao tiếp API được mã hóa qua HTTPS
  • Quản lý phạm vi - Giới hạn quyền truy cập API chỉ những trường cần thiết

Tài Nguyên Liên Quan

Subscribe to updates

developer-docs

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

Trợ lý AI

Xin chào! Hãy hỏi tôi về tài liệu.

Bắt đầu miễn phí với Brevo