Hướng dẫn tích hợp Perfex CRM với WordPress hoặc bất kỳ hệ thống CMS nào
Tại sao nên kết nối CRM với Website của bạn?
Trang web WordPress của bạn thường hiển thị nội dung tiếp thị, truyền thông. Trong khi đó, hệ thống Perfex CRM nắm giữ toàn bộ dữ liệu vận hành thực tế của doanh nghiệp: thông tin khách hàng, hóa đơn, tiến độ dự án, công việc. Việc kết nối hai hệ thống này giúp website của bạn tự động hiển thị dữ liệu thời gian thực mà không cần các bước cập nhật thủ công.
Cơ chế hoạt động của việc tích hợp
Mô-đun Data Builder mở ra các endpoint REST API để truy xuất các bảng dữ liệu trong Perfex CRM. Website WordPress của bạn có thể gọi các endpoint này bằng hàm fetch() của JavaScript hoặc hàm wp_remote_get() của PHP để truy xuất và trình bày dữ liệu lên trang web.
// JavaScript: Gọi danh sách khách hàng mới nhất từ Perfex CRM
const response = await fetch('https://databuilder.polyxgo.com/api/v1/clients?per_page=5&sort=-id', {
headers: { 'Authorization': 'Bearer YOUR_TOKEN' }
});
const data = await response.json();
data.data.forEach(client => {
console.log(client.company, client.phonenumber);
});Các mô hình tích hợp phổ biến
Cổng thông tin khách hàng (Client portal) – Hiển thị trực tiếp tiến độ dự án và lịch sử hóa đơn cho khách hàng đã đăng nhập.
Báo cáo nhúng (Embedded reports) – Nhúng các biểu đồ báo cáo công khai thông qua thẻ iframe lên các trang dashboard.
Biểu mẫu liên hệ (Contact forms) – Tạo trực tiếp cơ hội kinh doanh (leads) trong CRM thông qua yêu cầu gọi
POST /api/v1/leads.Chỉ số trực quan (Live metrics) – Trình bày các chỉ số hiệu năng KPI theo thời gian thực bằng cách lọc qua các truy vấn API.
Cơ chế xác thực cho các Website
Hãy tạo một API token chuyên biệt với phạm vi chỉ đọc (read-only scope) cho website của bạn. Sử dụng cấu hình domain whitelist để giới hạn token này chỉ được gọi từ đúng tên miền WordPress của bạn:
Phạm vi hoạt động (Token scope):
tables(chỉ đọc)Bảng được phép truy cập (Allowed tables): Chỉ tích chọn các bảng mà trang web thực sự cần hiển thị.
Danh sách tên miền trắng (Domain whitelist):
yoursite.com
Đối với các thao tác ghi (như gửi form liên hệ), bạn nên tạo một token riêng biệt có quyền write giới hạn riêng cho các bảng lead hoặc ticket tương ứng.
Sử dụng GraphQL cho các trang phức tạp
Nếu website của bạn cần tổng hợp dữ liệu từ nhiều bảng CRM cùng lúc (khách hàng + hóa đơn + dự án), hãy dùng GraphQL để truy xuất toàn bộ thông tin chỉ trong một yêu cầu duy nhất:
// Một yêu cầu duy nhất: lấy thông tin khách hàng kèm hóa đơn mới nhất của họ
const query = `{
clients(limit: 10) { userid company }
invoices(limit: 5, sort: "-id") { id total status }
}`;
const response = await fetch('https://databuilder.polyxgo.com/api/v1/graphql', {
method: 'POST',
headers: { 'Authorization': 'Bearer TOKEN', 'Content-Type': 'application/json' },
body: JSON.stringify({ query })
});