Slack Command là gì?
- Slack command (hay Slack slash command) là cách người dùng tương tác với hệ thống Slack bằng một ký tự “/” trong khung chat. Khi lệnh này được gõ, Slack sẽ gửi một yêu cầu (request) đến một hệ thống bên ngoài, ví dụ như website nội bộ, để xử lý và phản hồi.
- Slack Command có thể gửi thông tin đến bất kỳ hệ thống nào thông qua URL được cấu hình trong Slack App. Nhờ đó, các thao tác như đặt phòng họp, tra cứu thông tin nhân viên, tạo ticket IT,… có thể được thực hiện ngay trong Slack, mà không cần mở ứng dụng, hệ thống khác.
- Trong bài viết này, mình sẽ hướng dẫn các bạn về cách hoạt động của Slack command khi tích hợp vào một website sử dụng Laravel, từ lúc người dùng gõ lệnh, quá trình xử lý thông tin và phản hồi dữ liệu.
Vì sao lại sử dụng Slack command?
- Thao tác cực nhanh mà không cần rời khỏi app Slack: người dùng có thể thao tác với các command được cài sẵn để lấy dữ liệu, tương tác với các hệ thống khác mà không cần phải mở cùng lúc nhiều hệ thống. Điều này làm giảm công sức bỏ ra để đào tạo nhiều hệ thống khi có nhân sự mới tham gia vào công ty
- Chuẩn hóa thao tác, giảm rủi ro khi thao tác trên nhiều hệ thống: ngoài xử lý nhanh thì thao tác qua Slack với các command được cài sẵn còn giúp giảm thiểu rủi ro thao tác sai trên các hệ thống.
- Giảm thao tác nhập form lặp đi lặp lại, tiết kiệm thời gian xử lý form nhập: vì lệnh được phân tích từ cấu trúc cho sẵn, nên chỉ cần người dùng nhập đúng cú pháp trên Slack, thông tin sẽ được nhập vào hệ thống tương ứng mà không cần phải chờ load form, nhập form…
- Có thể tận dụng notification của Slack điện thoại mà không cần làm app riêng, đây là lợi thế chung của Slack chứ không phải của riêng Slack command, tận dụng được khi website không phản hồi ngay mà lên lịch gửi 1 tin nhắn đến Slack dựa vào thông tin của command trước đó.
Ví dụ: khi người dùng gõ lệnh sau vào đoạn chat trên Slack
/book-room p202 ngày 15/07/2025
Thì có thể đặt phòng 202 trên một hệ thống khác vào ngày 15/07/2025 mà không cần phải thao tác trên hệ thống đặt phòng.
Slash command hoạt động như thế nào?

- Đầu tiên Slack sẽ gửi 1 chuỗi json bao gồm tên lệnh (command), nội dung lệnh mà người dùng nhập (text) và một số nội dung khác để xác thực và phản hồi đến url được cấu hình sẵn khi admin tạo lệnh.

- Tiếp đó, website nhận dữ liệu (trong trường hợp này là Laravel) sau khi nhận sẽ xác thực và gửi phản hồi về cho Slack trong vòng 3 giây để hệ thống thông báo nhận lệnh thành công.
- Sau đó, tùy theo lệnh cần xử lý, mà website dùng Laravel có thể gửi thêm phản hồi vào response_url để phản hồi lại tin nhắn. Như trong ví dụ ở trên, thì website sẽ đặt phòng theo thông tin từ Slack command và phản hồi lại thông tin đặt phòng thành công.
Các lưu ý khi dùng Slack command:
- Để sử dụng được command thì quản trị viên (admin) phải cài đặt trước trong Slack App và bật BOT cho workspace, BOT phải có quyền đọc ghi thì mới sử dụng được.
- URL nhận dữ liệu phải là dạng https và phải phản hồi lại command trong vòng 3s, nếu không thì khi gõ lệnh sẽ nhận được thông báo lỗi.
- Khi Slack command gửi yêu cầu sẽ đính kèm chữ ký (signature), dùng để xác thực tính hợp lệ của dữ liệu. Chúng ta có thể kiểm tra bằng cách mã hóa thời gian nhận yêu cầu,dữ liệu nhận được và khóa bí mật (signing secret) có được khi tạo App Slack. Mình sẽ nói rõ hơn trong bài nhận dữ liệu từ Slack.
- response_url trong json chỉ sử dụng được trong vòng 30 phút nên nếu có dùng queue hay job xử lý quá lâu thì phải dùng api gửi tin nhắn của Slack để gửi phản hồi chứ không dùng được response_url
Vậy là mình đã trình bày xong cách dữ liệu được gửi/nhận giữa Slack command và hệ thống bên ngoài. Trong bài tiếp theo, mình sẽ giới thiệu về cách tạo App Slack, BOT và hướng dẫn cách tạo Slack command đầu tiên.
Để lại một bình luận