Skip to content
Trang chủ / Hướng dẫn / Tổ chức sự kiện bằng Slack, n8n Google Calendar và AI

Tổ chức sự kiện bằng Slack, n8n Google Calendar và AI

Cập nhật: 04/22/2025
Tổ chức sự kiện bằng Slack, n8n Google Calendar và AI

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cách giao phó việc tạo sự kiện N8n Google Calendar trên AI Agent bằng cách sử dụng n8n. Hy vọng đến cuối bài, bạn sẽ tự tin triển khai các AI Agents của riêng mình theo cách tương tự.

Quy trình làm việc trong hướng dẫn này được thiết kế để giúp những người tổ chức sự kiện theo yêu cầu tạo và quản lý lời mời lịch nhóm cho sự kiện của họ qua Slack. Tình huống điển hình là người tổ chức – ví dụ một quản lý sản phẩm – đăng một tin nhắn trong Slack đề xuất tụ họp nhóm tại một nhà hàng địa phương để chúc mừng tiến trình của họ. Thường thì họ sẽ yêu cầu các thành viên quan tâm phản hồi lại bình luận bằng biểu tượng tick (✅) để xác nhận tham dự.

Quy trình của chúng tôi sẽ ghi nhận tin nhắn này và, với sức mạnh của một AI Agent, tự động tạo lời mời lịch với các thành phần như tiêu đề, mô tả, ngày giờ, và địa điểm. Hơn nữa, khi các thành viên nhóm phản hồi tin nhắn bằng biểu tượng tick, chúng tôi sẽ thêm họ vào lời mời lịch như khách mời để họ có thể nhận các thông báo.

Điều kiện tiên quyết setup n8n Google Calendar

  • Phiên bản n8n được lưu trữ trên đám mây hoặc tự lưu trữ.
    Cách dễ nhất là đăng ký một tài khoản n8n. Mẫu quy trình trong bài viết này có thể nhập vào mà không cần xây dựng lại các bước.
  • Tài khoản OpenAI và khóa API.
    Đăng ký một tài khoản OpenAI. Sau khi có, tạo OpenAI Credential qua tab credentials.
  • Ứng dụng Slack và Token Truy cập Oauth. Hướng dẫn thiết lập thông tin xác thực Slack có thể xem tại đây. Bạn cũng cần thiết lập các phạm vi sau cho token:
  • OAuth Google Calendar. Vì chúng ta sẽ ghi trực tiếp vào lịch, chúng ta cần có Thông tin xác thực OAuth của Google. Hướng dẫn tạo thông tin xác thực Google Calendar có thể xem tại đây.
Channels:history, channels:read, chat:write, groups:history, groups:read, im:history, im:read, mpim:history, mpim:read, reactions:read, reactions:write, search:read, users:read, users:read.email

Bước 1. Tạo Kênh Sự kiện trong Slack

Trong hướng dẫn này, chúng tôi sẽ tạo một kênh mới tên là #n8n-events, tuy nhiên bạn có thể sử dụng một kênh đã tồn tại nếu muốn. Đây sẽ là kênh mà quy trình của chúng tôi sẽ theo dõi các tin nhắn mới và cập nhật tin nhắn.

Chúng tôi cũng sẽ giới thiệu một quy tắc mới; chúng tôi chỉ ghi nhận các tin nhắn được gắn biểu tượng phản ứng lịch (📅). Vì chúng tôi có thể lọc dựa trên điều này trong quy trình của mình, điều này giúp đơn giản hóa quá trình xác định các tin nhắn thực sự là lời mời.

  • Giống như tất cả các quy trình theo dõi, tạo một Trigger Theo lịch định kỳ và đặt khoảng thời gian là 1 giờ. Chúng ta có thể thiết lập khoảng thời gian dài hơn vì chúng tôi không mong đợi quy trình này xử lý các sự kiện khẩn cấp hoặc phản hồi khẩn cấp. Tùy chỉnh cho phù hợp nhất với nhóm của bạn.
  • Thêm một nút Slack để kích hoạt và chọn hoạt động “Tìm kiếm” cho tài nguyên “Message”. Cài đặt bộ lọc như sau trong:#n8n-events has::calendar:

Điều này sẽ lấy tất cả các tin nhắn mời phù hợp – nếu không thấy kết quả, bạn có thể cần thêm một tin nhắn vào kênh và gắn thẻ nó bằng phản ứng lịch (📅).

Bước 2. Tạo lời mời mới từ tin nhắn

Chúng ta sẽ cần xử lý từng tin nhắn mời riêng biệt và để tránh trùng lặp các sự kiện trong lịch, chúng ta cần có cách theo dõi các tin nhắn mời đã được xử lý hay chưa. Có nhiều cách để làm điều này, nhưng trong hướng dẫn của chúng tôi, chúng tôi sẽ tìm kiếm câu trả lời tự động cho tin nhắn mời ban đầu mà chúng ta sẽ tạo sau. Chúng tôi dự đoán rằng nếu câu trả lời tự động này tồn tại, nó sẽ chứa mã sự kiện trong lịch, điều này có nghĩa là tin nhắn đã được xử lý và chúng ta có thể bỏ qua bước tạo mới.

  • Thêm một nút Slack để lấy tất cả các câu trả lời cho tin nhắn mời của chúng ta. Trong cài đặt của nút, đặt Resource thành “Channel”, Operation thành “Replies”, Channel thành “#n8n-events” và Message Timestamp thành `{{ $json.ts }}`, đây là ID của tin nhắn của chúng ta.
  • Với các câu trả lời, chúng ta sẽ cần tính toán một số yếu tố để xác định xem lời mời có phản hồi bot hợp lệ chứa mã sự kiện của chúng ta không. Phần này khá phức tạp và đòi hỏi một chút mã để thực hiện logic này.
  • Sau khi xác định được liệu sự kiện trong lịch có cần được tạo hay không, ví dụ bằng cách kiểm tra xem mã sự kiện có tồn tại không, chúng ta có thể tiếp tục tạo sự kiện trong lịch.

Bước 3. Tạo sự kiện trong n8n Google Calendar với AI Agent

Trong quy trình hướng dẫn của chúng ta, chúng tôi đã giới thiệu một nhánh phụ thuộc vào việc có cần tạo sự kiện mới hay không. Một nhánh sẽ tiếp tục tạo sự kiện trong lịch trong khi nhánh còn lại sẽ cập nhật danh sách người tham dự nếu sự kiện đã tồn tại. Chúng ta sẽ bắt đầu bằng cách tạo nhánh tạo sự kiện trong lịch trước.

Đây là nơi chúng ta sẽ giới thiệu AI Agent của mình. Dựa trên tin nhắn mời ban đầu, có thể đã được giữ ngắn gọn để thuận tiện, còn rất nhiều điều chúng ta có thể làm để nâng cao dữ liệu chứa trong đó và tạo ra lời mời toàn diện hơn.

  • Hãy thêm một nút Trình xử lý AI tiếp theo, và thêm một nút con OpenAI cho mô hình.
  • Dưới các tùy chọn của nút con công cụ, chúng ta sẽ sử dụng các công cụ tích hợp sẵn: tìm kiếm SERP và Wikipedia. Chúng ta cũng có thể thêm các công cụ tùy chỉnh cho AI của mình nhưng điều này vượt ra ngoài phạm vi của hướng dẫn này trong thời điểm này.
  • Tiếp theo, chúng ta sẽ cập nhật phần nhắc nhở trong nút Trình xử lý AI để bao gồm thông điệp mời ban đầu và các hướng dẫn sau:
  • Tóm tắt và tạo tiêu đề cùng mô tả, rồi yêu cầu làm cho cả hai “thu hút mắt”!.
  • Trích xuất ngày bắt đầu và ngày kết thúc cùng giờ cho sự kiện.
  • Xác định vị trí của sự kiện và sử dụng công cụ tìm kiếm SERP kèm theo Wikipedia để lấy địa chỉ chính xác.
  • Cuối cùng, bật tùy chọn “Yêu cầu định dạng xuất cụ thể” trong nút Trình xử lý AI và thêm một nút con “Phân tích cú pháp đầu ra có cấu trúc”. Mục đích của nút con này là trả về kết quả cuối cùng của AI dưới dạng định dạng JSON thay vì dạng văn bản để chúng ta có thể cắm trực tiếp vào hành động tiếp theo của mình.
n8n Google Calendar

Bước 4. Gửi Sự kiện tạo ra đến Google Lịch

Bây giờ, khi chúng ta đã có tất cả các thuộc tính của sự kiện đã tạo, chỉ cần sử dụng chúng để xây dựng một cuộc gọi tới API Google Lịch để tạo sự kiện thực tế trong lịch của chúng ta.

  • Thêm một nút Google Lịch và đặt tài nguyên thành “Sự kiện” và thao tác thành “Tạo mới”, đảm bảo trình chọn lịch được đặt thành lịch mà bạn muốn.
  • Điền các trường còn lại với dữ liệu do nút Trình xử lý AI cung cấp, bao gồm tiêu đề, tóm tắt, ngày bắt đầu và ngày kết thúc cùng thời gian, và địa điểm.

Cuối cùng, để xác nhận việc lời mời này đã được xử lý, chúng ta sẽ tạo một phản hồi tự động tới tin nhắn mời ban đầu trong Slack, chứa ID của sự kiện của chúng ta.

  • Thêm một nút Slack khác với tài nguyên đặt thành “Tin nhắn” và thao tác đặt thành “Gửi”. Đặt “Gửi tin nhắn tới” thành “kênh” và sử dụng cùng ID kênh với tin nhắn mời ban đầu.
  • Điền nội dung tin nhắn theo ý của bạn, nhưng chắc chắn phải bao gồm ID sự kiện của bạn. Trong hướng dẫn này, chúng ta đã sử dụng định dạng sau:  #event{{ $json.id }}.
  • Cuối cùng, nhấn vào tùy chọn ở dưới cùng và chọn tùy chọn “trả lời tin nhắn”. Trong “Thời điểm tin nhắn để trả lời” đặt thành giá trị “ts” hoặc “thread_ts” của tin nhắn mời. Để chế độ “trả lời trong luồng” ở chế độ tắt.

Và thế là xong phần 1! Chúng ta đã học cách sử dụng nút Trình xử lý AI của n8n để tạo ra các sự kiện dựa trên các tin nhắn tùy ý bằng cách cho phép AI điền các thông tin chính dựa trên các gợi ý trong tin nhắn mời ban đầu, giúp tiết kiệm đáng kể thời gian và công sức của người tổ chức.

Phần 2

Trong phần 2, chúng ta sẽ đi xa hơn với nhánh thay thế nơi sự kiện đã tồn tại rồi. Trong nhánh này, chúng ta muốn xử lý trường hợp bất kỳ thành viên nhóm nào phản ứng với tin nhắn mời bằng emoji dấu tích (✅) để biểu thị mong muốn tham gia sự kiện, sẽ được thêm tự động làm người tham dự vào sự kiện lịch.

Bước 5. Lấy phản ứng của thành viên nhóm với tin nhắn mời trên Slack

Trong bước này, chúng ta sẽ cần lấy 2 phần dữ liệu; sự kiện đã tồn tại để làm tham chiếu cập nhật sau này và tất cả các phản ứng của thành viên nhóm trên tin nhắn mời trên Slack.

  • Để lấy sự kiện hiện có, thêm một nút Google Calendar để truy xuất sự kiện lịch bằng cách sử dụng ID sự kiện được trích xuất từ phản hồi tự động khi chúng ta tạo sự kiện. Làm điều này bằng cách đặt resource thành “Event” và operation thành “Get”. Nhập đúng Event ID.
  • Để lấy phản ứng của thành viên nhóm, thêm một nút Slack và thiết lập resource thành “Reaction” và operation thành “Get”. Đặt channel ID là của tin nhắn mời và “Message Timestamp” là giá trị ts của tin nhắn mời.
  • Tiếp theo, chúng ta cần lọc các dấu tích (✅) và trích xuất danh sách các người dùng thuộc về chúng. Sử dụng các nút Split Out và Filter cho mục đích này.
  • Sau khi hoàn thành, bạn sẽ còn lại một danh sách các ID người dùng Slack. Chúng ta sẽ dùng những ID này để tạo người tham dự cho sự kiện của mình.

Bước 6. Xác định địa chỉ Email của Người dùng và Thêm họ vào Sự kiện của chúng ta

Để lấy địa chỉ email của người dùng, chúng ta cần truy vấn API người dùng của Slack với các ID người dùng mà chúng ta đã lấy ở bước trước. Lưu ý, API này yêu cầu quyền truy cập nâng cao, nghĩa là Ứng dụng Slack của bạn cần được cài đặt bởi Quản trị viên.

Chúng ta sẽ thực hiện một kiểm tra cuối cùng để so sánh địa chỉ email của thành viên nhóm với danh sách người tham dự đã có trong lời mời lịch. Chúng ta chỉ thêm người tham dự nếu họ chưa được thêm vào.

  • Thêm một nút Slack và thiết lập resource thành “User” và operation thành “Get”. Truyền vào các ID người dùng thu được ở bước trước. Khi thành công, bạn sẽ nhận được hồ sơ người dùng bao gồm cả địa chỉ email của họ.
  • Tiếp theo, thêm một nút IF, trong đó chúng ta sẽ sử dụng danh sách người tham dự đã lấy ở Bước 5 để lọc ra các địa chỉ email hiện có. Điều này sẽ để lại danh sách các người tham dự mới để tham gia sự kiện lịch.
  • Cuối cùng, thêm một nút Google Calendar và thiết lập resource thành “Event” và operation thành “Update”. Đặt ID sự kiện thành ID của sự kiện hiện có được tìm thấy trước đó trong quy trình làm việc.
  • Trong phần “Update Fields” của nút Google Calendar, nhấp vào Thêm Trường và chọn Attendees. Đây là nơi chúng ta thêm địa chỉ email của người tham dự mới.

Và đó là tất cả cho Phần 2! Trong phần thứ hai này, chúng ta đã học cách mở rộng các quy trình làm việc của n8n theo từng bước để thêm giá trị theo thời gian.

Tổng kết

Trong hướng dẫn này, chúng tôi đã tự động hóa một kênh Slack sự kiện đơn giản thành một hệ thống quản lý sự kiện dựa trên AI chắc chắn sẽ tăng cường sự tương tác và lượng khách tham dự cho các cuộc tụ họp nội bộ công ty hoặc xây dựng cộng đồng. Hãy xem các template N8n khác tại đây