Trình Kết Nối Salesforce

Trình Kết Nối Salesforce

Kết nối Salesforce với Brevo qua Tajo để hợp nhất dữ liệu CRM doanh nghiệp với marketing automation, đồng bộ leads và liên hệ, và kết nối kết quả bán hàng với mức độ tương tác marketing.

Tổng Quan

Thuộc TínhGiá Trị
Nền TảngSalesforce
Danh MụcCRM
Độ Phức Tạp Thiết LậpNâng Cao
Tích Hợp Chính Thức
Dữ Liệu Đồng BộLiên Hệ, Leads, Cơ Hội, Sự Kiện
URL API Cơ Sởhttps://[instance].salesforce.com/services/data/v58.0

Tính Năng

  • Đồng bộ liên hệ và lead - Đồng bộ hai chiều giữa Salesforce và Brevo
  • Theo dõi cơ hội - Ánh xạ giai đoạn cơ hội sang vòng đời liên hệ Brevo
  • Đồng bộ tài khoản - Liên kết dữ liệu tài khoản Salesforce với hồ sơ công ty Brevo
  • Tích hợp campaign - Ánh xạ thành viên Salesforce Campaign sang danh sách Brevo
  • Truy vấn SOQL - Đồng bộ đối tượng tùy chỉnh qua Salesforce Object Query Language
  • Bulk API - Xuất và nhập dữ liệu khối lượng lớn hiệu quả
  • Streaming API - Nhận cập nhật thời gian thực qua Platform Events
  • Custom Objects - Đồng bộ bất kỳ đối tượng Salesforce tùy chỉnh nào

Yêu Cầu

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

  1. Tài khoản Salesforce (Professional, Enterprise, Unlimited, hoặc Developer)
  2. Người dùng tích hợp với quyền API
  3. Connected App với OAuth 2.0 đã cấu hình
  4. Tài khoản Brevo với quyền truy cập API
  5. Tài khoản Tajo

Xác Thực

OAuth 2.0 (Khuyến Nghị)

Salesforce sử dụng OAuth 2.0 cho xác thực API.

Terminal window
# Bước 1: Authorization URL
https://login.salesforce.com/services/oauth2/authorize
?response_type=code
&client_id=YOUR_CONSUMER_KEY
&redirect_uri=YOUR_CALLBACK_URL
# Bước 2: Đổi mã lấy token
curl -X POST https://login.salesforce.com/services/oauth2/token \
-d "grant_type=authorization_code" \
-d "client_id=CONSUMER_KEY" \
-d "client_secret=CONSUMER_SECRET" \
-d "redirect_uri=CALLBACK_URL" \
-d "code=AUTHORIZATION_CODE"

Xác Thực Username-Password

Cho server-to-server (ít được khuyến nghị hơn):

Terminal window
curl -X POST https://login.salesforce.com/services/oauth2/token \
-d "grant_type=password" \
-d "client_id=CONSUMER_KEY" \
-d "client_secret=CONSUMER_SECRET" \
-d "username=YOUR_USERNAME" \
-d "password=YOUR_PASSWORD_PLUS_SECURITY_TOKEN"

Security Token

Khi xác thực bằng username/password từ IP không tin cậy, nối Security Token vào sau mật khẩu. Lấy trong Salesforce Settings > My Personal Information > Reset My Security Token.

Cấu Hình

Thiết Lập Cơ Bản

connectors:
salesforce:
enabled: true
instance_url: "https://yourorg.salesforce.com"
oauth:
client_id: "${SF_CONSUMER_KEY}"
client_secret: "${SF_CONSUMER_SECRET}"
refresh_token: "${SF_REFRESH_TOKEN}"
# Tùy chọn đồng bộ dữ liệu
sync:
contacts: true
leads: true
opportunities: true
accounts: true
campaigns: true
# Ánh xạ danh sách Brevo
list_mapping:
"All Contacts": 10
"Marketing Qualified": 11
"Sales Qualified": 12

Ánh Xạ Trường

Ánh xạ trường Salesforce 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

Account.Name optional
string

Tên tài khoản liên quan

LeadSource optional
string

Nguồn gốc của lead

Status optional
string

Trạng thái lead hoặc liên hệ

Ánh Xạ Trường Tùy Chỉnh

field_mapping:
# Trường tiêu chuẩn
Email: email
FirstName: FIRSTNAME
LastName: LASTNAME
Phone: SMS
# Trường CRM
Account.Name: COMPANY_NAME
LeadSource: LEAD_SOURCE
Status: LEAD_STATUS
# Trường cơ hội
Opportunity.Amount: DEAL_VALUE
Opportunity.StageName: DEAL_STAGE
# Trường tùy chỉnh
Custom_Plan__c: PLAN_TYPE
Custom_Industry__c: INDUSTRY

API Endpoints

REST API

Phương ThứcEndpointMô Tả
GET/services/data/v58.0/sobjects/ContactMetadata đối tượng liên hệ
GET/services/data/v58.0/query?q=SOQLTruy vấn SOQL
POST/services/data/v58.0/sobjects/ContactTạo liên hệ
PATCH/services/data/v58.0/sobjects/Contact/{id}Cập nhật liên hệ
POST/services/data/v58.0/composite/batchThao tác lô

Bulk API 2.0

Phương ThứcEndpointMô Tả
POST/services/data/v58.0/jobs/ingestTạo job nhập liệu
GET/services/data/v58.0/jobs/ingest/{id}Trạng thái job
POST/services/data/v58.0/jobs/queryTạo job truy vấn
GET/services/data/v58.0/jobs/query/{id}/resultsLấy kết quả truy vấn

Sự Kiện

Sự KiệnKích HoạtTrường Hợp Sử Dụng
Contact.createdLiên hệ mới được tạoKích hoạt email chào mừng
Contact.updatedTrường liên hệ thay đổiCập nhật thuộc tính Brevo
Lead.convertedLead được chuyển đổiDi chuyển sang danh sách khách hàng
Opportunity.closed_wonGiao dịch được đóngKích hoạt email onboarding
Opportunity.stage_changedGiai đoạn thay đổiCập nhật vòng đời liên hệ

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 Salesforce
await tajo.connectors.connect('salesforce', {
instanceUrl: process.env.SF_INSTANCE_URL,
clientId: process.env.SF_CONSUMER_KEY,
clientSecret: process.env.SF_CONSUMER_SECRET,
refreshToken: process.env.SF_REFRESH_TOKEN
});

Truy Vấn Liên Hệ Bằng SOQL

// Truy vấn liên hệ bằng SOQL
const contacts = await tajo.connectors.query('salesforce', {
soql: `
SELECT Id, Email, FirstName, LastName, Phone,
Account.Name, LeadSource, CreatedDate
FROM Contact
WHERE CreatedDate > 2024-01-01T00:00:00Z
AND Email != null
ORDER BY CreatedDate DESC
LIMIT 1000
`
});

Đồng Bộ Hàng Loạt Sang Brevo

// Đồng bộ Salesforce sang Brevo bằng Bulk API
await tajo.connectors.sync('salesforce', {
type: 'full',
resources: ['contacts', 'leads'],
useBulkApi: true,
options: {
includeCustomFields: true,
mapListMemberships: true
}
});
const status = await tajo.connectors.status('salesforce');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// contactsSynced: 145000,
// leadsSynced: 28000,
// opportunitiesSynced: 9500
// }

Giới Hạn Tốc Độ

Tài NguyênGiới HạnChi Tiết
API Calls (REST)15,000/ngàyMỗi org trên gói Developer
API Calls (Enterprise)1,000,000+/ngàyDựa trên số giấy phép
Bulk API Jobs10,000/ngàyMỗi org
Bulk API RecordsKhông giới hạnXử lý bất đồng bộ
Concurrent API Requests25Mỗi org
SOQL Query Timeout120 giâyMỗi query

Giám Sát Sử Dụng API

Theo dõi sử dụng API trong Salesforce Setup > System Overview. Việc vượt giới hạn sẽ trả về lỗi 503. Dùng Bulk API cho các thao tác khối lượng lớn.

Khắc Phục Sự Cố

Sự Cố Phổ Biến

Sự CốNguyên NhânGiải Pháp
INVALID_SESSION_IDToken hết hạnRefresh OAuth token tự động
REQUEST_LIMIT_EXCEEDEDVượt giới hạn APIChuyển sang Bulk API cho lượng lớn
QUERY_TIMEOUTSOQL phức tạpThêm điều kiện WHERE hoặc giới hạn trường
Trường tùy chỉnh bị thiếuTên API không đúngSử dụng tên API (kết thúc bằng __c), không phải label
Bulk job thất bạiVấn đề định dạng dữ liệuKiểm tra báo cáo lỗi trong kết quả job

Chế Độ Debug

connectors:
salesforce:
debug: true
log_level: verbose
log_api_calls: true
log_bulk_jobs: true

Kiểm Tra Kết Nối

Terminal window
tajo connectors test salesforce
# ✓ OAuth authentication successful
# ✓ REST API accessible
# ✓ Contacts queryable
# ✓ Bulk API available
# ✓ Custom fields loaded

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

  1. Dùng Bulk API cho số lượng lớn - Sử dụng Bulk API cho hơn 10.000 bản ghi
  2. Bộ nhớ đệm metadata - Cache schema đối tượng để giảm lời gọi API
  3. Đồng bộ tăng dần - Sử dụng SystemModstamp để lọc bản ghi thay đổi gần đây
  4. Người dùng tích hợp - Tạo người dùng Salesforce chuyên dụng cho tích hợp API
  5. Theo dõi giới hạn API - Thiết lập cảnh báo khi sử dụng API đạt 80%
  6. Xử lý lỗi - Triển khai retry với backoff hàm mũ

Bảo Mật

  • OAuth 2.0 - Xác thực dựa trên token với refresh tokens
  • Người dùng tích hợp - Tài khoản Salesforce chuyên dụng với quyền tối thiểu
  • Connected App - Kiểm soát phạm vi và IP allowlist
  • Mã hóa TLS - Tất cả giao tiếp API được mã hóa
  • Nhật ký kiểm tra - Theo dõi truy cập API trong Salesforce Login History

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