Cẩm nang · AI trong công việc

Tự động đăng bài Facebook bằng n8n và AI: hướng dẫn từng bước

Một lịch nội dung. Một bước duyệt. Bài lên Trang theo giờ đã hẹn.

Minh họa lịch nội dung, người duyệt bài và luồng đưa bài đã duyệt lên điện thoại.

Đọc xong, bạn làm được gì?

Một luồng đăng bài theo lịch, luôn có bước người duyệt.

Hiện tại

Soạn, duyệt và đăng rải rác; dễ nhầm bản cuối.

Kết quả hướng tới

Bài ở một bảng, chỉ bản đã duyệt được đăng; có kết quả và báo lỗi.

Tình huống minh họa. Kết quả thực tế cần đo trên công việc của bạn.

Cách làm trong 3 bước

  1. Lên lịch

    Google Sheets giữ ý chính, giờ đăng và trạng thái.

  2. Soạn & duyệt

    AI làm nháp; người sửa và khóa bản đã duyệt.

  3. Đăng & kiểm tra

    n8n đăng, lưu mã bài và báo lỗi để xử lý.

Đăng ngày · Cập nhật

Tự động đăng bài Facebook nghĩa là bài tự lên Trang (fanpage) đúng giờ đã hẹn, không cần ai bấm đăng. Bài này làm việc đó bằng n8n, nền tảng dựng luồng tự động có bản tự cài miễn phí, cùng Google Sheets và Graph API, cổng kết nối chính thức Meta mở cho phần mềm. Các chi tiết kỹ thuật được đối chiếu với tài liệu chính thức tới tháng 9/2026, nên hãy xem lại khi làm.

Meta Business Suite hay n8n: khi nào cần luồng riêng

Meta Business Suite, công cụ miễn phí của Meta, đã cho lên lịch bài trên Trang Facebook và trên Instagram. Theo trang trợ giúp của Facebook tới tháng 9/2026, bạn hẹn được giờ đăng từ 20 phút tới 29 ngày sau lúc lên lịch. Với một Trang và vài bài mỗi tuần, như vậy thường là đủ.

Luồng n8n đáng dựng khi có ít nhất một trong các nhu cầu sau:

Đổi lại, bạn phải tự lo phần Meta Business Suite lo sẵn: một ứng dụng Meta, một mã truy cập phải giữ kín, một máy chạy n8n và một người trông luồng.

Chuẩn bị bảng lịch nội dung và mã truy cập Trang

Bảng lịch nội dung

Mỗi dòng trong bảng là một bài:

Cột Nội dung Ai điền
Mã bài Mã riêng của dòng, ví dụ B001 Người lên kế hoạch
Giờ đăng Theo một định dạng cố định, ví dụ 2026-10-05 09:00 Người lên kế hoạch
Ý chính Vài dòng về nội dung bài Người lên kế hoạch
Nội dung Bài sẽ được đăng AI soạn, người sửa
Link ảnh Đường dẫn công khai tới file ảnh, trống nếu bài chỉ có chữ Người lên kế hoạch
Trạng thái Nháp, Chờ duyệt, Đã duyệt, Đang đăng, Đã đăng hoặc Lỗi Người và n8n
Người duyệt Tên người duyệt Người duyệt
Mã bài Facebook Mã Meta trả về khi đăng xong n8n
Ghi chú lỗi Nội dung lỗi nếu có n8n

Đặt cột Trạng thái thành ô chọn. Chỉ người duyệt được sửa trạng thái và tên người duyệt; tài khoản n8n được cập nhật kết quả đăng. Bài đã duyệt phải được khóa nội dung, ảnh và Trang nhận bài. Nếu cần sửa, chuyển về Nháp và xóa dấu duyệt trước. Tên người duyệt còn đó không chứng minh nội dung mới đã được duyệt. Có nhiều Trang thì thêm cột Trang.

Ứng dụng Meta và mã truy cập Trang

Mã truy cập Trang (Page access token) là chuỗi ký tự cho phép phần mềm đăng bài dưới tên Trang. Các bước theo tài liệu của Meta tới tháng 9/2026:

  1. Tạo ứng dụng trên developers.facebook.com bằng tài khoản quản lý Trang, chọn trường hợp sử dụng Manage everything on your Page, và gắn với danh mục doanh nghiệp (business portfolio) của công ty nếu có.
  2. Thêm quyền pages_manage_posts để đăng, sửa, xóa bài của Trang, cùng pages_read_engagement đi kèm. Quyền pages_show_list có sẵn trong trường hợp sử dụng này.
  3. Lấy mã người dùng trong Graph API Explorer, công cụ thử của Meta: chọn ứng dụng, chọn ba quyền trên, đăng nhập và cấp quyền cho Trang. Người lấy mã phải có tác vụ tạo nội dung (CREATE_CONTENT) trên Trang. Mã lấy ở bước này chỉ dùng được vài giờ.
  4. Đổi sang mã dài hạn. Đổi mã vừa lấy thành mã người dùng dài hạn, khoảng 60 ngày, qua điểm cuối oauth/access_token, rồi dùng nó đọc danh sách Trang ở điểm cuối accounts: mỗi Trang trả về mã số Trang và một mã truy cập Trang không có ngày hết hạn. Lệnh đổi mã cần khóa bí mật của ứng dụng (App Secret), nên Meta yêu cầu gọi từ máy chủ.
  5. Kiểm tra mã bằng Access Token Debugger của Meta: mã còn hiệu lực không, hết hạn khi nào, có những quyền gì.
  6. Chuyển ứng dụng sang Live. Theo Meta, dữ liệu tạo ra khi ứng dụng còn ở chế độ Development, kể cả bài đăng thử, chỉ người có vai trò trong ứng dụng nhìn thấy. Muốn chuyển, điền các mục bắt buộc trong cài đặt cơ bản như tên hiển thị, email liên hệ, biểu tượng, danh mục, mục đích dùng và đường dẫn điều khoản dịch vụ.

Theo quy định của Meta tới tháng 9/2026, khi chỉ những người có vai trò trong ứng dụng dùng nó, như doanh nghiệp tự đăng lên Trang của mình, thì không cần qua bước xét duyệt ứng dụng (App Review). Xác minh doanh nghiệp là điều kiện để có quyền truy cập nâng cao, loại quyền cần khi ứng dụng phục vụ cả người không có vai trò trong ứng dụng.

Giữ mã truy cập an toàn

Tự động đăng bài Facebook bằng n8n: năm bước

Luồng đăng bài có năm bước chính, mỗi bước là một nút (node) trong n8n:

  1. Schedule Trigger, 15 phút một lần. Đặt múi giờ Asia/Ho_Chi_Minh trong cài đặt của luồng. Bản n8n tự cài mặc định dùng America/New_York nếu chưa ai đặt, và bài sẽ lên lệch nhiều giờ.
  2. Google Sheets, thao tác Get Row(s), lọc dòng có Trạng thái Đã duyệt. Trong Options, đặt When Filter Has Multiple Matches thành Return All Matches, vì mặc định nút chỉ trả về dòng khớp đầu tiên và chỉ một bài được đăng.
  3. Filter, giữ bài đã tới giờ, có người duyệt, nội dung không thay đổi sau duyệt và Mã bài Facebook còn trống. Chuẩn hóa giờ sang ISO 8601 có múi giờ, ví dụ 2026-10-05T09:00:00+07:00, trước khi so sánh. Dòng sai định dạng được chuyển sang Lỗi để sửa, không đoán ngày giờ.
  4. Facebook Graph API, đăng bài. Chọn Credentials chứa mã Trang, HTTP Request Method là POST, Host URL để Default, Node là mã số Trang, Edge là feed, và thêm message lấy từ cột Nội dung trong Query Parameters. Bài có ảnh thì Edge là photos, url là link ảnh, caption là nội dung, vì với ảnh Meta ghi message là tham số cũ. Đặt một nút If phía trước để tách bài ảnh và bài chữ. Trong Settings của nút, đặt On Error thành Continue (using error output) để một bài lỗi không chặn các bài khác.
  5. Google Sheets, thao tác Update Row. Chọn cột Mã bài ở Column to Match On, ghi mã Meta trả về vào cột Mã bài Facebook và đổi Trạng thái thành Đã đăng. Bài chữ trả về id; bài ảnh trả về id và post_id, trong đó post_id là mã bài trên Trang. Nhánh lỗi ghi Lỗi và gửi thông báo cho người phụ trách; không tự gửi lại bài khi chưa rõ Meta đã nhận hay chưa.

Chống đăng trùng cần thêm cơ chế giữ chỗ. Chỉ kiểm tra ô mã bài còn trống là chưa đủ: hai lần chạy có thể cùng đọc một dòng, hoặc Meta đăng thành công nhưng bước ghi bảng thất bại. Với bảng tính, chỉ cho một lần chạy xử lý việc đăng tại một thời điểm, kể cả chạy tay; ghi Đang đăng trước khi gọi Meta. Dòng mắc ở Đang đăng hoặc bị mất phản hồi phải đối chiếu trên Trang trước khi thử lại. Khi cần nhiều luồng chạy đồng thời, dùng nơi lưu có khóa theo Mã bài; Google Sheets không cung cấp khóa nguyên tử cho chuỗi đọc rồi sửa này.

Ảnh phải ở đường dẫn công khai trỏ thẳng tới file, không phải trang xem ảnh. Theo Meta, ảnh dùng định dạng như JPEG hoặc PNG, không quá 4 MB, ảnh PNG nên dưới 1 MB.

Phiên bản Graph API

Chọn rõ phiên bản Graph API mà nút n8n hỗ trợ và ghi lại trong tài liệu vận hành. Đối chiếu lịch phiên bản của Meta trước khi triển khai; thử đăng trên Trang thử nghiệm khi nâng phiên bản. Danh sách phiên bản trong n8n phụ thuộc bản cài đặt.

Chạy thử và bật luồng

Tạo một dòng thử có giờ đăng đã qua, chạy luồng bằng tay, rồi mở Trang bằng một tài khoản không có vai trò trong ứng dụng để chắc bài hiện với mọi người. Sau đó bấm Publish: từ n8n 2.0, lưu chỉ cập nhật bản nháp, luồng chỉ chạy theo lịch khi đã publish, và mỗi lần sửa phải publish lại.

Nối nhánh lỗi ở bước đăng vào nút gửi email hoặc Telegram. Lỗi đã xử lý bằng Continue (using error output) không tự làm cả luồng thất bại, nên không thể chỉ trông vào Error Trigger. Bổ sung một luồng Error Trigger cho lỗi khiến lần chạy tự động thất bại, như không đọc hoặc ghi được bảng. Thử riêng cả hai đường báo lỗi trước khi bật lịch.

Tự động đăng bài Facebook bằng AI, người duyệt trước khi đăng

Phần AI là một luồng thứ hai, tách khỏi luồng đăng bài để AI không bao giờ chạm vào bước đăng: AI chỉ viết vào bảng, người duyệt quyết định.

  1. Điểm bắt đầu: Schedule Trigger mỗi sáng, hoặc Google Sheets Trigger với sự kiện Row added or updated nếu muốn có bản nháp ngay khi thêm dòng.
  2. Google Sheets: lấy các dòng có Trạng thái Nháp, đã có Ý chính và chưa có Nội dung.
  3. Nút mô hình AI: n8n có sẵn nút cho Anthropic, OpenAI và Google Gemini, với thao tác Message a Model. Hướng dẫn gửi cho AI nên có 5 đến 10 bài cũ làm mẫu giọng văn, độ dài, số hashtag tối đa, và điều cấm: không tự thêm giá, khuyến mãi, ngày hay lời hứa không có trong ý chính.
  4. Update Row: ghi bản nháp vào cột Nội dung và đổi Trạng thái thành Chờ duyệt.

Người duyệt sửa bài ngay trong bảng nếu cần, điền tên vào cột Người duyệt và đổi Trạng thái thành Đã duyệt. Chỉ khi đó luồng đăng bài mới nhìn thấy bài. Khi duyệt, soát kỹ ba thứ AI dễ sai: con số như giá, phần trăm giảm, ngày; tên sản phẩm; và mọi lời hứa với khách.

Nguyên tắc AI soạn, người duyệt, máy làm phần còn lại cũng được dùng để vận hành nội dung website này.

Lỗi hay gặp và cách mở rộng

Hiện tượng Nguyên nhân thường gặp Cách xử lý
Lỗi 190, mã hết hạn hoặc không hợp lệ Dùng mã ngắn hạn, hoặc người tạo mã đã đổi mật khẩu hay gỡ ứng dụng Tạo lại mã Trang dài hạn, kiểm tra bằng Access Token Debugger
Lỗi 10 hoặc từ 200 tới 299, thiếu quyền Mã thiếu pages_manage_posts, hoặc người tạo mã không có quyền tạo nội dung trên Trang Thêm quyền, kiểm tra vai trò trên Trang, tạo lại mã
Đăng được nhưng người khác không thấy bài Ứng dụng còn ở chế độ Development Chuyển ứng dụng sang Live
Bài bị đăng trùng Hai lần chạy cùng đọc một dòng, hoặc ghi bảng thất bại sau khi đăng Dừng thử lại, đối chiếu Trang, kiểm tra cơ chế giữ chỗ theo Mã bài
Lỗi 368, tạm thời bị chặn Meta tạm chặn hành động đăng Chờ rồi thử lại, xem lại nội dung và tần suất đăng

Khi luồng đã chạy ổn cho một Trang, mở rộng từng bước: thêm cột Trang và một nút Switch chia bài cho từng Trang, mỗi nhánh dùng mã truy cập riêng; thêm Instagram qua API riêng; hoặc gom số liệu tương tác của các bài vào một báo cáo tự động mỗi tuần. Luồng đăng bài là một phần của tự động hóa marketing, và theo cùng nguyên tắc với mọi luồng tự động hóa quy trình: có bảng làm nguồn, có người duyệt, có nhật ký và báo lỗi.

Câu hỏi thường gặp

Có tự động đăng lên trang cá nhân hoặc nhóm Facebook được không?

Luồng trong bài này dùng API của Trang Facebook, không dùng để đăng lên trang cá nhân hay nhóm. Cần kiểm tra tài liệu Meta nếu muốn làm với loại tài khoản hoặc kênh khác.

Có đăng lên Instagram trong cùng luồng được không?

Được, qua API riêng của Instagram. Tài khoản phải là tài khoản chuyên nghiệp, và mỗi bài đi qua hai bước: tạo nội dung chờ đăng rồi mới đăng. Theo tài liệu của Meta tới tháng 9/2026, mỗi tài khoản đăng được tối đa 100 bài qua API trong 24 giờ.

Người tạo mã truy cập nghỉ việc thì luồng có dừng không?

Có thể. Mã tạo từ tài khoản cá nhân mất hiệu lực khi người đó đổi mật khẩu Facebook hoặc gỡ ứng dụng khỏi tài khoản. Nên tạo mã bằng người dùng hệ thống của doanh nghiệp, và khi có người rời công ty, thu hồi vai trò của họ trong ứng dụng và trên Trang.

Bài liên quan

Liên hệ tư vấn

Trao đổi bài toán của bạn

Cùng chọn sản phẩm phù hợp hoặc thiết kế giải pháp cho quy trình của đội ngũ.

Liên hệ Giải pháp →