Trình Kết Nối Zoom
Kết nối Zoom với Brevo qua Tajo để đồng bộ webinar attendees sang danh sách Brevo, theo dõi mức độ tham gia meetings và kích hoạt follow-up campaigns sau webinars.
Tổng Quan
| Thuộc Tính | Giá Trị |
|---|---|
| Nền Tảng | Zoom |
| Danh Mục | Tùy Chỉnh |
| Độ Phức Tạp Thiết Lập | Trung Bình |
| Tích Hợp Chính Thức | Không |
| Dữ Liệu Đồng Bộ | Meetings, Webinars, Participants, Recordings |
| Loại API | REST API v2 |
| Xác Thực | Server-to-Server OAuth |
Tính Năng
- Đồng bộ webinar attendees - Nhập người đăng ký và người tham dự webinar vào Brevo
- Theo dõi tham gia - Đồng bộ thời gian tham gia meetings sang thuộc tính liên hệ
- Tự động follow-up - Kích hoạt campaigns khác nhau cho người tham dự vs. không tham dự
- Đồng bộ đăng ký - Thêm người đăng ký webinar vào danh sách Brevo ngay lập tức
- Số liệu engagement - Nhập dữ liệu Q&A, polls và thời gian xem
Yêu Cầu
Trước khi bắt đầu, hãy đảm bảo bạn có:
- Tài khoản Zoom (Pro, Business, Education, hoặc Enterprise)
- Zoom Server-to-Server OAuth App
- Tài khoản Brevo với quyền truy cập API
- Tài khoản Tajo
Xác Thực
Server-to-Server OAuth (Khuyến Nghị)
Zoom khuyến nghị Server-to-Server OAuth cho tích hợp server-side.
# Lấy access tokencurl -X POST "https://zoom.us/oauth/token?grant_type=account_credentials&account_id=YOUR_ACCOUNT_ID" \ -H "Authorization: Basic BASE64(CLIENT_ID:CLIENT_SECRET)"# Sử dụng access tokencurl "https://api.zoom.us/v2/users/me/webinars" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"Kết Nối với Tajo
tajo connectors install zoom \ --account-id $ZOOM_ACCOUNT_ID \ --client-id $ZOOM_CLIENT_ID \ --client-secret $ZOOM_CLIENT_SECRETCấu Hình
Thiết Lập Cơ Bản
connectors: zoom: enabled: true account_id: "${ZOOM_ACCOUNT_ID}" client_id: "${ZOOM_CLIENT_ID}" client_secret: "${ZOOM_CLIENT_SECRET}"
sync: webinars: true meetings: false registrants: true attendees: true
# Ánh xạ webinar sang danh sách Brevo webinar_list_mapping: default: 50 # Danh sách mặc định cho tất cả webinars attended: 51 # Danh sách cho người đã tham dự no_show: 52 # Danh sách cho người không tham dựÁnh Xạ Trường
field_mapping: email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# Dữ liệu webinar status: WEBINAR_STATUS join_time: WEBINAR_JOIN_TIME leave_time: WEBINAR_LEAVE_TIME duration: WEBINAR_DURATION_MINS
# Câu hỏi đăng ký tùy chỉnh custom_questions.company: COMPANY_NAME custom_questions.job_title: JOB_TITLEAPI Endpoints
| Phương Thức | Endpoint | Mô Tả |
|---|---|---|
GET | /v2/users/{userId}/webinars | Liệt kê webinars |
GET | /v2/webinars/{webinarId} | Chi tiết webinar |
GET | /v2/webinars/{webinarId}/registrants | Danh sách đăng ký |
GET | /v2/webinars/{webinarId}/attendees | Danh sách người tham dự |
GET | /v2/users/{userId}/meetings | Liệt kê meetings |
GET | /v2/meetings/{meetingId}/participants | Participants của meeting |
POST | /v2/webhooks | Tạo webhook subscription |
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});
await tajo.connectors.connect('zoom', { accountId: process.env.ZOOM_ACCOUNT_ID, clientId: process.env.ZOOM_CLIENT_ID, clientSecret: process.env.ZOOM_CLIENT_SECRET});Đồng Bộ Webinar Attendees Sau Sự Kiện
// Đồng bộ attendees sau khi webinar kết thúcawait tajo.connectors.sync('zoom', { webinarId: '12345678901', type: 'post_event', resources: ['registrants', 'attendees'], segmentByAttendance: true, // Phân loại thành attended/no-show brevoListIds: { attended: 51, no_show: 52 }});Header Giới Hạn Tốc Độ
Zoom API bao gồm headers X-RateLimit-Limit, X-RateLimit-Remaining, và X-RateLimit-Reset. Theo dõi những header này để tránh vượt giới hạn trong quá trình đồng bộ sau webinar lớn.
Giới Hạn Tốc Độ
| Tài Nguyên | Giới Hạn |
|---|---|
| REST API tổng thể | 100 yêu cầu/giây |
| List endpoints | 300 yêu cầu/giờ |
| Report endpoints | 100 yêu cầu/ngày |
Khắc Phục Sự Cố
| Sự Cố | Nguyên Nhân | Giải Pháp |
|---|---|---|
| 401 Unauthorized | Token hết hạn | Tokens Server-to-Server hết hạn sau 1 giờ; tự động refresh |
| Attendees rỗng | Webinar chưa kết thúc | Dữ liệu attendees chỉ có sau khi webinar kết thúc |
| Registrants thiếu | Đăng ký ở page khác | Kiểm tra các trang webinar riêng biệt |
| Quyền không đủ | Scopes thiếu | Thêm scopes cần thiết vào Server-to-Server App |