Skip to content
Trang chủ / Hướng dẫn / Cách tạo bot N8n Slack: Python vs No Code

Cách tạo bot N8n Slack: Python vs No Code

Cập nhật: 04/22/2025
Cách tạo bot N8n Slack: Python vs No Code

Bạn đã bao giờ muốn nhận thông báo trên một kênh Slack cụ thể khi xảy ra một sự kiện trong phần mềm của bạn chưa?

Nếu câu trả lời của bạn là “Có”, thì hướng dẫn này chắc chắn dành cho bạn!

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tạo một Slack bot bằng hai cách khác nhau:

  • Chúng tôi sẽ lập trình một Slack bot bằng Python – phương pháp tốt nhất nếu bạn muốn kiểm soát hoàn toàn logic và chức năng của Slack bot;
  • Chúng tôi sẽ tạo một Slack bot sử dụng n8n – phương pháp tốt nhất để phát triển Slack bot nhanh chóng, ngay cả khi bạn cần tùy chỉnh và mở rộng quy mô.

Nhưng trước đó, hãy bắt đầu với những điều cơ bản:

Slack có cho phép bot không?

Có, có một số cách để tạo bot cho Slack:

  1. Slack APIs: Các nhà phát triển có thể sử dụng Slack APIs để tạo các bot tùy chỉnh và tích hợp sử dụng các ngôn ngữ lập trình khác nhau như Python, JavaScript, và Java. Các API này cho phép gửi và nhận tin nhắn, quản lý kênh, cũng như tương tác với người dùng.
  2. Các framework dành cho bot: Các framework như Botkit, Slack Developer Kit dành cho Python, và SlackBolt giúp đơn giản hóa quá trình xây dựng Slack bot. Chúng cung cấp các công cụ và thư viện cho các tính năng như phân tích cú pháp tin nhắn, xử lý sự kiện, và các thành phần tương tác.
  3. Nền tảng của bên thứ ba: Một số nền tảng cung cấp các công cụ để tạo và triển khai Slack bot không cần mã hóa. Chúng cung cấp giao diện trực quan và mẫu có thể tùy chỉnh, giúp người dùng không kỹ thuật xây dựng và tùy chỉnh bot cho những mục đích khác nhau.

Tuy nhiên, vẫn có một số hạn chế và hướng dẫn mà các nhà phát triển cần lưu ý khi tạo bot cho Slack. Ví dụ:

  • Giới hạn tốc độ API. Slack đặt giới hạn về số yêu cầu API để ngăn chặn lạm dụng và đảm bảo việc sử dụng công bằng. Các nhà phát triển cần tuân thủ các giới hạn này để tránh bị giới hạn tốc độ.
  • An toàn. Các bot nên tuân thủ các thực hành tốt về bảo mật để bảo vệ thông tin nhạy cảm và ngăn chặn truy cập trái phép.
  • Sự đồng thuận của người dùng. Các bot tương tác với người dùng trong các kênh riêng tư hoặc tin nhắn trực tiếp phải nhận được sự đồng thuận của người dùng trước khi bắt đầu bất kỳ cuộc trò chuyện nào hoặc thu thập thông tin cá nhân.

Khi bạn đã quyết định phương pháp nào để xây dựng Slack bot, bước tiếp theo là thiết lập API của Slack.

Thiết lập Slack để sử dụng API của nó

slack n8n

Để tạo Slack bot, trước tiên chúng ta cần thiết lập API của Slack.

Để làm điều này, hãy truy cập Slack API, Ứng dụng của bạn > Tạo ứng dụng đầu tiên của bạn:

Đặt tên cho ứng dụng của bạn và chọn một workspace của Slack (workspace phải đã được tạo trong Slack):

Trong Tính năng > Webhook đến, thêm một webhook đến mới:

và chọn kênh trong workspace của bạn (kênh này phải đã được tạo trong workspace của bạn):

Trong Features >OAuth & permission, tìm kiếm các phạm vi và chọn những phạm vi sau từ danh sách:

Sau khi API của Slack đã được thiết lập, chúng ta đã sẵn sàng để xây dựng bot Slack tùy chỉnh của mình!

Cách tạo bot Slack bằng Python

Trong phần này, chúng tôi sẽ hướng dẫn cách tạo một bot Slack bằng Python.

Chúng tôi muốn bot Slack tùy chỉnh của mình thực hiện những chức năng sau:

  • Cho phép người dùng tương tác với chương trình qua dòng lệnh, nhập câu hỏi;
  • Dòng lệnh phản hồi, lấy phản hồi nhờ API OpenAI, và in ra câu trả lời;
  • Chương trình đăng câu trả lời vào kênh Slack dành riêng.

Dưới đây là cách bot đăng câu trả lời lên kênh Slack riêng:

Trước tiên, chúng tôi sẽ trình bày toàn bộ mã cho việc phát triển bot Slack. Sau đó, chúng tôi sẽ mô tả từng bước, bao gồm chức năng cơ bản.

import requests
import openai


def answer_question(question: str) -> str:
    '''Chức năng này hỏi API OpenAI dựa trên câu hỏi của người dùng qua CLI'''
    try:
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "Bạn  một trợ  hữu ích."},
                {"role": "user", "content": question}
            ]
        )
        return response['choices'][0]['message']['content']
    except Exception as e:
        return f"Đã xảy ra lỗi: {str(e)}"


def send_slack_message(answer: str, webhook_url: str) -> None:
    '''Chức năng này gửi tin nhắn lên nhóm Slack riêng dành cho'''

    # Payload: chỉ chứa tin nhắn văn bản
    payload = {
        'text': answer
    }

    try:
        response = requests.post(
            webhook_url,
            json=payload,
            headers={'Content-Type': 'application/json'}
        )

        if response.status_code == 200:
            print("Tin nhắn đã được gửi thành công vào kênh Slack!")
        else:
            print("Không thể gửi tin nhắn vào kênh Slack do có lỗi xảy ra.")
    except Exception as e:
        print(f"Đã xảy ra lỗi khi cố ghi tin nhắn vào Slack:", e)


if __name__ == "__main__":
    # Nhập khóa API OpenAI của bạn
    openai.api_key = "YOUR OPENAI KEY"

    # Nhập URL webhook
    webhook_url = "YOUR WEBHOOK URL"

    # Người dùng nhập câu hỏi
    question = input("Vui lòng: hỏi tôi một câu hỏi!\n")

    # Bot trả lời, in ra câu trả lời  đăng lên Slack
    answer = answer_question(question)
    print("Phản hồi cho câu hỏi của bạn là:\n", answer)
    send_slack_message(answer, webhook_url)

Điều kiện tiên quyết

Bot sử dụng các thư viện sau đây mà không gồm trong các gói tiêu chuẩn của Python:

  • Requests
  • OpenAI

Nếu bạn chưa cài đặt chúng, bạn có thể làm như sau:

pip install requests
pip install openai==0.28 

Lưu ý rằng bạn cần cài đặt một phiên bản cụ thể của thư viện OpenAI. Điều này bởi vì chương trình sẽ gọi một phương thức cụ thể hiện tại không còn được hỗ trợ trong các phiên bản >1.00.

Nếu bạn đã cài đặt một phiên bản của OpenAI lớn hơn 1.00, bạn phải gỡ cài đặt nó bằng lệnh:

pip uninstall openai 

Bây giờ bạn có thể cài đặt phiên bản 0.28 như đã mô tả.

Ngoài ra, để sử dụng thư viện OpenAI, bạn phải có một tài khoản hoạt động. Nếu bạn chưa có, bạn có thể yêu cầu tại đây.

Bây giờ, hãy mô tả các bước để lập trình một bot như vậy bằng Python:

Bước 1: Tạo một hàm để trả lời câu hỏi

Người dùng sẽ nhập câu hỏi qua CLI. Vì vậy, bước đầu tiên, tạo một hàm trả lời câu hỏi. Trong trường hợp đó, hàm answer_question():

  • Nhận câu hỏi làm đầu vào;
  • Gửi yêu cầu đến API của OpenAI. Nếu thành công, nó trả về câu trả lời cho yêu cầu đó. Nếu có lỗi, nó trả về lỗi đó.

Bước 2: Tạo hàm gửi tin nhắn đến kênh Slack

Chúng ta muốn bot thêm câu trả lời vào câu hỏi của người dùng vào một kênh Slack đặc biệt. Trong trường hợp đó, hàm send_slack_message():

  • Lấy câu trả lời từ OpenAI và URL webhook làm đầu vào;
  • Với payload chỉ là văn bản;
  • Đăng câu trả lời vào kênh đặc biệt bằng cách gửi yêu cầu tới API Slack. Nếu mã phản hồi thành công, mọi thứ hoạt động tốt. Nếu không, nó in ra một thông báo lỗi.

Bước 3: Đặt các giá trị cố định

Ở cuối đoạn mã, khi gọi hàm chính, đặt các giá trị cố định:

  • Lời bạn sẽ ghi khóa OpenAI và URL webhook;
  • Sử dụng hàm input() để người dùng tương tác với phần mềm qua CLI;
  • Gọi các hàm đã tạo.

Lưu ý rằng URL webhook nằm trong API Slack ở Features > Incoming Webhook:

Bước 4: Kiểm thử bot Slack trong Python

Khi gọi tệp Python qua python3 file_name.py, phần mềm sẽ yêu cầu nhập câu hỏi. Gõ câu hỏi của bạn, và phần mềm sẽ trả lời nhờ API OpenAI:

Cách làm bot Slack bằng n8n

Bây giờ, hãy xem cách tạo bot Slack sử dụng n8n và tích hợp Slack của nó, tương tự như bot lập trình bằng Python.

Để thực hiện, chúng ta sẽ sử dụng mẫu “Chatbot Slack tích hợp AI” như sau:

Bạn có thể bắt đầu sao chép và dán mẫu luồng công việc vào Canvas của mình:

Dưới đây là cách mẫu này hoạt động:

  • Người dùng chèn một prompt;
  • Nếu người dùng không phải là con người, bot không thực hiện hành động nào;
  • Nếu người dùng là con người, tác nhân sẽ truy xuất câu trả lời cho truy vấn của người dùng (nhờ tích hợp OpenAI) làm phong phú dữ liệu từ web nhờ tích hợp SerpAPI. Tác nhân cũng được kết nối với Bộ Nhớ Đệm Window Buffer Memory để bot nhớ một số cuộc trò chuyện cũ với người dùng;
  • Câu trả lời được đăng trong kênh Slack dành riêng.

Hãy thiết lập và thử nghiệm nó.

Điều kiện tiên quyết

Để sử dụng mẫu này, bạn cần những điều sau:

  • Tài khoản OpenAI hoạt động để sử dụng khoá API. Nếu bạn chưa có, bạn có thể yêu cầu tại đây;
  • Một khoá API SerpAPI hợp lệ và còn hoạt động. Nếu bạn chưa có, bạn có thể yêu cầu tại đây;
  • Một phiên bản n8n trên đám mây.

Ngoài ra, để sử dụng API Slack, bạn phải thực hiện một chỉnh sửa nhỏ trong cài đặt Slack.

Mở Webhook trigger trong mẫu n8n và sao chép URL Webhook:

Webhook này kích hoạt luồng công việc, vì vậy chúng ta phải dán nó vào lệnh gọi API Slack để làm cho nó hoạt động.

Để làm điều đó, trong API Slack, trong Features > Slash Commands, tạo một lệnh mới:

Và thêm URL Webhook vào trường Request URL:

Bây giờ chúng ta có thể thiết lập toàn bộ mẫu n8n và sử dụng nó.

Bước 1: Cấu hình Tác nhân

Tác nhân là trung tâm của chatbot, vì vậy chúng ta xem xét điều này trước tiên.

Nút Tác nhân trong luồng công việc này xử lý các tin nhắn từ Slack của người dùng, sử dụng các tùy chọn được chỉ định và có thể tích hợp các công cụ bên ngoài như Wikipedia và SerpAPI để tạo ra các phản hồi dựa trên hướng dẫn hệ thống đã cung cấp, đảm bảo giao tiếp mạch lạc và phù hợp ngữ cảnh.

Nhấp đúp vào Tác nhân và:

  • Xác nhận loại tác nhân là Conversational Agent (1).
  • Viết prompt để truy vấn API ChatGPT trong trường Text (2).

Các bước tiếp theo sẽ hướng dẫn cách thiết lập các tích hợp làm phong phú tác nhân. Đặc biệt:

Bước 1.1: Cấu hình mô hình Chat OpenAI

Mô hình Chat OpenAI đóng vai trò là thành phần trong nút Tác nhân chịu trách nhiệm xử lý các tin nhắn từ người dùng. Cụ thể, nó sử dụng mô hình ngôn ngữ GPT-4 để tạo phản hồi dựa trên dữ liệu đầu vào nhận được.

Để cấu hình, chọn nó và kết nối với tài khoản OpenAI của bạn trong trường Credential để liên kết.

Trường model nên được chọn dựa trên phiên bản OpenAI bạn đang sử dụng. Nếu bạn sử dụng phiên bản miễn phí, có thể chọn gpt-3.5-turbo.

Bước 1.2: Cấu hình các tích hợp SerpAPI và Wikipedia

Tích hợp SerpAPI làm phong phú câu trả lời lấy được bởi tích hợp Chat OpenAPI bằng cách tìm kiếm thêm dữ liệu trên web, bao gồm cả Wikipedia.

Để thiết lập, chọn nó và kết nối với tài khoản API SerpAPI của bạn trong trường Credential để kết nối.

Bước 1.3: Cấu hình Bộ nhớ đệm cửa sổ

Memory bộ đệm cửa sổ lưu trữ lịch sử trò chuyện giữa người dùng và bot, tạo ra hiệu ứng “ghi nhớ” cho chatbot.

Một giá trị hợp lý của tham số Thời lượng cửa sổ ngữ cảnh là 20 hoặc 30. Điều này có nghĩa là bot sẽ nhớ 20-30 câu trả lời cuối cùng.

Bước 2: Cấu hình tích hợp Slack

Node Slack tạo điều kiện cho việc giao tiếp hai chiều giữa chatbot và Slack, cho phép chatbot gửi các phản hồi đã tạo trở lại các kênh hoặc người dùng Slack.

Nhấp đúp vào tích hợp Slack và cấu hình các tham số sau:

  • Credential to connect with: kết nối nó với tài khoản Slack của bạn.
  • Resource: chọn Message vì chúng tôi muốn xử lý các tin nhắn.
  • Operation: chọn Send vì chúng tôi muốn gửi tin nhắn.
  • Send Message To: chọn Channel vì chúng tôi muốn gửi tin nhắn tới một kênh đã tạo trước đó.
  • Channel: chọn From list. Sau đó, tìm kiếm kênhDedicated mà bạn đã tạo để thử nghiệm bot.
  • Message Type: chọn Simple Text Message.

Bước 3: Thử nghiệm một bot Slack được vận hành bởi n8n

Vì vậy, sau khi thiết lập mẫu ngắn gọn, tự động hóa đã sẵn sàng để thử nghiệm.

Để làm điều đó, nhấp vào Test Workflow trong mẫu n8n.

Sau đó, đi đến kênh Slack dành riêng cho thử nghiệm. Trong cuộc trò chuyện, viết tên lệnh. Trong trường hợp này, tôi gọi nó là /test!, rồi viết nó và nhấn gửi tin nhắn.

Dưới đây là câu trả lời từ bot:

Tổng kết

Trong bài viết này, chúng tôi đã mô tả cách tạo một bot Slack sử dụng Python và n8n.

Với n8n, chúng tôi đã xây dựng một bot Slack tiên tiến hơn Python, mang lại hiệu suất nhanh hơn trong khi vẫn cung cấp khả năng linh hoạt cho các nâng cấp và tùy chỉnh trong tương lai.

Như một công cụ tự động hóa ít mã, n8n cho phép bạn:

  • Tích hợp bot Slack với các ứng dụng và công cụ khác;
  • Xử lý dữ liệu mà không cần mã hóa;
  • Xây dựng các mô-đun AI nâng cao.

Hy vọng rằng, điều này sẽ hữu ích cho công việc hoặc dự án cá nhân của bạn!

Tiếp theo là gì?

Nếu bạn muốn thử các bot khác tương tác với Slack, bạn có thể xem xét các mẫu sau