Trình Kết Nối Typeform
Kết nối Typeform với Brevo qua Tajo để tự động thêm form respondents vào danh sách Brevo, đồng bộ phản hồi survey sang thuộc tính liên hệ và kích hoạt luồng email dựa trên câu trả lời form.
Tổng Quan
| Thuộc Tính | Giá Trị |
|---|---|
| Nền Tảng | Typeform |
| Danh Mục | Tùy Chỉnh |
| Độ Phức Tạp Thiết Lập | Dễ |
| Tích Hợp Chính Thức | Không |
| Dữ Liệu Đồng Bộ | Phản Hồi, Forms, Webhooks |
| Loại API | REST API |
| Xác Thực | Personal Access Token |
Tính Năng
- Đồng bộ phản hồi - Nhập form submissions sang liên hệ và sự kiện Brevo
- Ánh xạ trường - Ánh xạ câu hỏi Typeform sang thuộc tính liên hệ Brevo
- Phân nhánh điều kiện - Xử lý form logic và đồng bộ có điều kiện
- Webhook theo thời gian thực - Nhận submissions tức thì qua Typeform webhooks
- Đa ngôn ngữ - Đồng bộ forms từ nhiều ngôn ngữ sang cùng Brevo attributes
Yêu Cầu
Trước khi bắt đầu, hãy đảm bảo bạn có:
- Tài khoản Typeform (Free, Basic, Plus, Business, hoặc Enterprise)
- Personal Access Token
- Tài khoản Brevo với quyền truy cập API
- Tài khoản Tajo
Xác Thực
curl "https://api.typeform.com/forms" \ -H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN"Tạo access tokens trong Typeform account settings > Personal tokens.
Kết Nối với Tajo
tajo connectors install typeform \ --access-token $TYPEFORM_ACCESS_TOKENCấu Hình
Thiết Lập Cơ Bản
connectors: typeform: enabled: true access_token: "${TYPEFORM_ACCESS_TOKEN}"
forms: - form_id: "abc123" name: "Lead Capture Form" sync_to: brevo_contacts brevo_list_id: 10 - form_id: "def456" name: "Customer Survey" sync_to: brevo_eventsÁnh Xạ Trường
Ánh xạ trường Typeform sang thuộc tính liên hệ Brevo:
field_mapping: # Mapping theo question ref "email_field": email "first_name_field": FIRSTNAME "last_name_field": LASTNAME "phone_field": SMS "company_field": COMPANY_NAME "job_title_field": JOB_TITLE
# Kết quả survey "satisfaction_score": SATISFACTION_SCORE "nps_score": NPS_SCORE "use_case_field": USE_CASEAPI Endpoints
| Phương Thức | Endpoint | Mô Tả |
|---|---|---|
GET | /forms | Liệt kê tất cả forms |
GET | /forms/{id} | Lấy chi tiết form |
GET | /forms/{id}/responses | Lấy form responses |
POST | /forms/{id}/webhooks/{tag} | Tạo webhook |
GET | /forms/{id}/webhooks | Liệt kê webhooks |
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('typeform', { accessToken: process.env.TYPEFORM_ACCESS_TOKEN});Xử Lý Webhook Submission
// Xử lý Typeform webhook khi form được submitapp.post('/webhooks/typeform', async (req, res) => { const { form_response } = req.body;
await tajo.connectors.handleWebhook('typeform', { formId: form_response.form_id, responseId: form_response.token, payload: form_response });
res.status(200).send('OK');});Phân Trang Phản Hồi
Typeform API giới hạn 1000 phản hồi mỗi yêu cầu. Đối với forms có nhiều submissions, sử dụng before và after tokens để phân trang qua tất cả phản hồi.
Giới Hạn Tốc Độ
| Giới Hạn | Giá Trị |
|---|---|
| Yêu cầu API | 120 yêu cầu/phút |
| Phản hồi mỗi trang | 1000 tối đa |
Khắc Phục Sự Cố
| Sự Cố | Nguyên Nhân | Giải Pháp |
|---|---|---|
| 401 Unauthorized | Token không hợp lệ | Tạo lại Personal Access Token |
| Phản hồi thiếu | Pagination không đúng | Kiểm tra trường has_more trong response |
| Webhook không nhận | URL không đúng | Xác minh webhook URL trong Typeform settings |
| Ánh xạ trường sai | Question ref không đúng | Kiểm tra question refs trong form settings |