Ok anh chọn 1) WordPress ✅
Dưới đây là bản node-by-node để anh triển khai n8n → WordPress (LearnDash/LifterLMS) → tự tạo tài khoản → gán khóa học → gửi email/Zalo.
Tôi sẽ thiết kế theo hướng không phụ thuộc plugin “lạ”: dùng WordPress REST API + WooCommerce/Stripe webhook + n8n là chạy.
Kiến trúc khuyến nghị (ổn định, ít lỗi)
-
WordPress + LearnDash (hoặc LifterLMS)
-
WooCommerce + Stripe (hoặc cổng thanh toán có webhook)
-
n8n (3 workflow)
-
Google Sheet (lưu lead + trạng thái)
WF-01 — Lead Intake → Tính số → Lưu lead → Gửi kết quả + link mua
Node 1: Webhook (Lead In)
Nhận dữ liệu từ:
-
Form Ladipage/Tally/Typeform (khuyến nghị)
-
ManyChat/Zalo OA cũng được
Expected JSON
Node 2: Function (Validate & Normalize)
-
Check email có hay không (không có vẫn lưu lead)
-
Chuẩn hóa dob, loại ký tự thừa
Node 3: Function (Compute Numerology)
Dùng đoạn code tôi đưa trước (tính ruling_number, master_number, personal_year).
Node 4: Google Sheets (Append Row)
Cột gợi ý:
-
created_at, name, dob, email, phone, channel
-
ruling_number, master_number, personal_year
-
status =
NEW -
tags =
lead
Node 5: IF (Master?)
-
Nếu
master_numbertồn tại → nhánh Master -
Không có → nhánh thường
Node 6: Send Email (SMTP/Gmail node)
Gửi kết quả soi nhanh + CTA:
-
Link landing page mua khóa học
-
Link mua gói xem số (upsell)
Nếu anh muốn gửi Zalo OA: thay node này bằng HTTP Request gọi Zalo OA API (anh cung cấp OA token).
WF-02 — Payment Success → Tạo user WP → Gán khóa LearnDash/LifterLMS → Gửi thông tin đăng nhập
A) Nhận thanh toán (2 cách)
Cách A1 (khuyến nghị): Stripe Webhook → n8n
-
Node 1: Webhook (Stripe Success)
Nhận event:checkout.session.completedhoặcinvoice.payment_succeeded
Đầu vào cần có
-
email khách
-
tên
-
product/course_id (map)
-
transaction_id
Cách A2: WooCommerce Webhook → n8n
-
WooCommerce → Settings → Advanced → Webhooks
-
Event:
Order created/Order updated -
Trigger: “Order paid/processing/completed”
-
URL: webhook n8n
B) Tạo tài khoản WordPress tự động
Node 2: Function (Map Course)
Map “gói mua” → “course_id LearnDash” hoặc “membership LifterLMS”
Ví dụ:
-
COURSE_BASIC → course_id = 123
-
COURSE_PRO → course_id = 456
Node 3: HTTP Request (Check WP user by email)
Gọi REST API WP để tìm user theo email.
Option 1 (dễ nhất): dùng Application Passwords (WP 5.6+)
-
Tạo App Password cho 1 user admin kỹ thuật
-
Auth Basic:
username:app_password
Endpoint tìm user theo email: WP core không filter email mặc định trên
/wp/v2/users. Cách làm ổn:
-
Tạo 1 endpoint nhỏ (snippet plugin) cho “get user by email”
-
Hoặc đơn giản: thử tạo user, nếu báo “email exists” thì chuyển sang nhánh “user already exists”.
Tôi viết theo cách không cần endpoint phụ:
Node 4: HTTP Request (Create WP User)
POST:
https://yourdomain.com/wp-json/wp/v2/users
Body JSON:
Node 5: IF (Create user failed because email exists?)
-
Nếu tạo user thành công → lấy
user_id -
Nếu lỗi “existing user” → đi nhánh “Get user id” (cần endpoint phụ)
Giải pháp nhanh để khỏi viết endpoint phụ:
-
Cài plugin WP Webhooks (phổ biến) hoặc viết 20 dòng snippet tạo endpoint
/get-user-id-by-email.
Nếu anh ok, tôi gửi luôn snippet.
C) Gán khóa học tự động
Nếu anh dùng LearnDash
LearnDash có function/endpoint nội bộ; cách ổn định nhất là:
-
Gọi custom endpoint (snippet nhỏ) để:
-
enroll user vào course_id
-
(tuỳ chọn) mark as “enrolled”
-
Node 6: HTTP Request (Enroll LearnDash)
POST:
https://yourdomain.com/wp-json/moneyflow/v1/ld-enroll
Body:
Nếu anh dùng LifterLMS
Tương tự: tạo endpoint enroll membership/course.
Vì LearnDash/LifterLMS mỗi bản có khác nhau, cách “ăn chắc” là làm 1 endpoint trung gian để enroll. n8n chỉ việc gọi endpoint đó.
D) Gửi thông tin đăng nhập + link vào học
Node 7: Send Email (Welcome + Login)
Tiêu đề: [MoneyFlow28] Mở khóa thành công – Thông tin vào học
Nội dung mẫu:
Chào {{name}},
Bạn đã thanh toán thành công.✅ Tài khoản học của bạn: {{email}}
✅ Mật khẩu tạm: {{generatedPassword}}
✅ Link đăng nhập: https://yourdomain.com/login
✅ Vào khóa học: https://yourdomain.com/courses/{{course-slug}}Khuyến nghị: đăng nhập xong hãy đổi mật khẩu để bảo mật.
Node 8: Google Sheets (Update status)
status = PAID + ENROLLED
kèm: user_id, course_id, order_id
WF-03 — Follow-up tự động (nuôi lead → chốt)
Node 1: Cron (mỗi ngày 9:00)
Node 2: Google Sheets (Read rows)
lọc status = NEW, chưa mua sau 2h/24h/72h
Node 3: IF theo “last_contact”
Node 4: Send Email / Zalo message
Cái anh cần làm trong WordPress (1 lần là xong)
1) Bật Application Passwords
WP 5.6+ → User Profile → Application Passwords → tạo password cho user kỹ thuật.
2) Tạo 2 endpoint nhỏ (khuyến nghị)
-
ld-enroll(enroll LearnDash) -
get-user-id-by-email(nếu email đã tồn tại)
Nếu anh trả lời “OK”, tôi sẽ gửi luôn 2 đoạn code plugin/snippet (copy dán vào functions.php hoặc làm mini plugin) để endpoint hoạt động ngay.
Checklist triển khai nhanh (đúng “cầm tay chỉ việc”)
-
Tạo Google Sheet + cột như trên
-
Tạo 3 workflow n8n: WF-01, WF-02, WF-03
-
Gắn form landing → Webhook WF-01
-
Gắn Stripe/Woo webhook → WF-02
-
Test 1 đơn thanh toán → kiểm tra user + course enrollment + email
Anh trả lời 1 câu để tôi “đóng gói cuối” cho đúng
Anh đang dùng LearnDash hay LifterLMS?
-
LD = LearnDash
-
LLMS = LifterLMS
Anh chỉ cần trả lời: LD hoặc LLMS. Tôi sẽ viết đúng snippet endpoint enroll tương ứng (copy là chạy).