Bộ lắng nghe sự kiện
Bộ lắng nghe sự kiện cho phép bot của bạn tự động phản hồi các hoạt động diễn ra trong server Discord — chẳng hạn khi có tin nhắn mới, khi thành viên tham gia, hoặc khi có ai đó thêm reaction.
Mỗi bộ lắng nghe sự kiện là một flow độc lập. Khi sự kiện bạn chọn xảy ra, flow sẽ được kích hoạt và thực thi tự động.
Sự kiện là điểm vào thứ hai để khởi động flow, bên cạnh lệnh (xem lược đồ tổng thể). Khác với lệnh do người dùng chủ động gọi, sự kiện được kích hoạt tự động bởi hoạt động trong server hoặc từ các dịch vụ bên ngoài qua webhook.
Kite hỗ trợ hai nguồn sự kiện:
- Discord — hoạt động xảy ra trong server Discord (tin nhắn, thành viên, reaction, voice...)
- Webhook — sự kiện từ dịch vụ bên ngoài như SePay, ThueAPIBank, hoặc bất kỳ dịch vụ nào hỗ trợ webhook (xem Tích hợp Webhook)

Tạo bộ lắng nghe sự kiện
- Bấm biểu tượng sự kiện trên thanh bên trái của bảng điều khiển
- Bấm Tạo bộ lắng nghe
- Chọn Nguồn:
Discordhoặc một trong các tích hợp webhook (SePay, ThueAPIBank, Webhook tùy chỉnh) - Với nguồn Discord: chọn loại sự kiện cụ thể (Message Create, Member Join...)
- Trong trình soạn thảo, kéo các khối hành động và nối chúng với khối Lắng nghe sự kiện
- Lưu lại bằng cách bấm Save Changes
- Bật bộ lắng nghe bằng công tắc ở góc phải
Để dùng nguồn webhook (SePay, ThueAPIBank, Custom), bạn phải bật tích hợp tương ứng trước tại trang Tích hợp. Xem hướng dẫn tại Tích hợp Webhook.
Bạn có thể dùng khối Event Filter để giới hạn khi nào flow được kích hoạt. Ví dụ: chỉ phản hồi tin nhắn ở một kênh nhất định, hoặc chỉ xử lý reaction từ một emoji cụ thể.
Dữ liệu của sự kiện
Khối Lắng nghe sự kiện không tạo ra result() như các khối hành động. Thay vào đó, mỗi khi sự kiện kích hoạt, flow nhận dữ liệu qua các placeholder dùng trong biểu thức {{ }}.
Sự kiện Discord
| Placeholder | Trường khả dụng |
|---|---|
user / member | id, username, display_name, mention, avatar_url, banner_url. member có thêm nick, role_ids |
message | id, content |
channel | id, mention, và name (với sự kiện kênh) |
guild (hoặc server) | id |
event.emoji | id, name, animated — sự kiện reaction |
event.message_ids | danh sách ID tin nhắn bị xóa — sự kiện xóa hàng loạt |
event.voice | channel_id, mute, deaf, self_mute, self_deaf, self_stream, self_video, suppress — sự kiện voice |
app | bot của bạn — app.user.id, app.user.mention |
Mỗi loại sự kiện chỉ cung cấp một phần trong số trên. Bảng dưới cho biết placeholder nào khả dụng theo từng loại:
| Sự kiện | user/member | message | channel | guild | Khác |
|---|---|---|---|---|---|
| Message Create / Update | ✅ | ✅ | ✅ | ✅ | |
| Message Delete | — | ✅ (chỉ id) | ✅ | ✅ | |
| Message Delete Bulk | — | — | ✅ | ✅ | event.message_ids |
| Message Reaction Add | ✅¹ | ✅ (chỉ id) | ✅ | ✅ | event.emoji |
| Message Reaction Remove | ✅² | ✅ (chỉ id) | ✅ | ✅ | event.emoji |
| Message Reaction Remove All | — | ✅ (chỉ id) | ✅ | ✅ | |
| Member Join | ✅ (có nick, role_ids) | — | — | ✅ | |
| Member Leave | ✅ | — | — | ✅ | |
| Guild Ban Add / Remove | ✅ | — | — | ✅ | |
| Channel Create / Delete | — | — | ✅ (có name) | ✅ | |
| Voice State Update | ✅² | — | ✅ (kênh voice) | ✅ | event.voice |
¹ Trong server, user là một member đầy đủ (có nick, role_ids).
² Chỉ có id và mention — Discord không gửi kèm tên/avatar. Cần thêm? Truyền user.id vào khối Lấy thành viên.
channelchỉ cónamevới Channel Create / Delete. Ở các sự kiện khác,channelchỉ cóid+mention— để lấy tên, truyềnchannel.idvào khối Lấy kênh.guildluôn chỉ cóid.- Discord không gửi trạng thái voice trước đó —
event.voicelà trạng thái mới sau thay đổi. Không có "before" như một số thư viện khác (chúng tự cache mới có).
Sự kiện Webhook
Với các sự kiện từ tích hợp webhook (SePay, ThueAPIBank, Custom Webhook), toàn bộ JSON payload từ dịch vụ bên ngoài được truyền vào event.data:
| Placeholder | Mô tả |
|---|---|
event.data | Toàn bộ JSON payload từ dịch vụ webhook |
event.data.{field} | Bất kỳ trường nào trong payload — tùy theo dịch vụ |
app | Bot của bạn — app.user.id, app.user.mention |
Không có user, message, channel, guild trong webhook event. Cấu trúc event.data phụ thuộc vào dịch vụ gửi webhook — xem ví dụ và danh sách trường tại Tích hợp Webhook.
Ví dụ truy cập dữ liệu
| Sự kiện | Biểu thức |
|---|---|
| Message Create | {{ user.mention }}, {{ message.content }}, {{ channel.id }} |
| Reaction Add | {{ user.mention }} đã thả {{ event.emoji.name }} vào tin nhắn {{ message.id }} |
| Member Join | Chào mừng {{ user.mention }}! |
| Guild Ban Add | {{ user.username }} đã bị cấm |
| Voice State Update | {{ user.mention }} đang ở kênh voice {{ event.voice.channel_id }} |
| Message Delete Bulk | Đã xóa {{ len(event.message_ids) }} tin nhắn |
| SePay (webhook) | Nhận {{ event.data.transferAmount }}đ từ {{ event.data.gateway }} |
| Custom Webhook | {{ event.data.order_id }} |