Tự động hóa thông báo qua bot nhắn tin giúp quy trình phát triển phần mềm nhanh hơn và tiện lợi hơn. Bạn nhận được cảnh báo ngay lập tức khi build hoàn thành, khi có lỗi xảy ra, hoặc khi triển khai thành công. Hướng dẫn này chỉ cho bạn cách thiết lập bot gửi tin nhắn tự động qua webhook trên các nền tảng nhắn tin phổ biến. Cần thông báo cho nhóm về kết quả CI/CD, cảnh báo server, hay trạng thái tiến trình? Các tích hợp này sẽ giúp bạn làm điều đó dễ dàng. Chúng ta chỉ đề cập đến các nền tảng có hỗ trợ bot đơn giản. Một số ứng dụng nhắn tin bảo mật cao ưu tiên quyền riêng tư và không hỗ trợ tự động hóa - những nền tảng đó được liệt kê riêng ở phần cuối.
Mục lục
- Hiểu về tự động hóa bot dựa trên webhook
- Hướng dẫn tích hợp bot nhắn tin
- Bot webhook Discord
- Bot webhook Slack
- Bot webhook Microsoft Teams
- Bot Telegram
- Bot webhook Mattermost
- Bot Matrix/Element
- Bot WhatsApp Business
- Bot Facebook Messenger
- Các ứng dụng nhắn tin không hỗ trợ bot dễ dàng
- Ví dụ triển khai thực tế
- Kết luận
- Câu hỏi thường gặp
Hiểu về tự động hóa bot dựa trên webhook
Bot dựa trên webhook hoạt động theo một nguyên lý đơn giản. Ứng dụng của bạn gửi một HTTP POST request đến một URL. Nền tảng nhắn tin sau đó chuyển nội dung đó đến một kênh hoặc người dùng cụ thể.
Cách tiếp cận này phù hợp với nhiều tác vụ tự động hóa:
- Thông báo build - Cảnh báo khi build thành công hay thất bại, kèm theo chi tiết lỗi
- Cập nhật triển khai - Thông báo cho nhóm khi code được đẩy lên môi trường staging hoặc production
- Cảnh báo giám sát - Gửi cảnh báo về tình trạng server hoặc thông báo downtime
- Báo cáo định kỳ - Gửi số liệu hàng ngày hoặc tóm tắt trạng thái hệ thống
Quy trình cơ bản gồm ba bước:
- Tạo bot hoặc URL webhook trên nền tảng đích
- Cấu hình công cụ tự động hóa (CI/CD, hệ thống giám sát, hoặc script tùy chỉnh) để gửi HTTP request
- Định dạng payload tin nhắn phù hợp với yêu cầu của từng nền tảng
Việc chọn nền tảng phù hợp cũng phụ thuộc vào các tính năng bảo mật của nó. Để tìm hiểu sâu hơn về bảo mật từng nền tảng, xem Hướng dẫn toàn diện về các ứng dụng nhắn tin trong 2026.
Hướng dẫn tích hợp bot nhắn tin
Dưới đây là hướng dẫn từng bước cho từng nền tảng hỗ trợ tích hợp bot qua webhook một cách dễ dàng.
Bot webhook Discord
Discord có quy trình thiết lập webhook đơn giản bậc nhất. Bạn không cần tạo ứng dụng bot hay token xác thực để gửi tin nhắn cơ bản.
Hướng dẫn từng bước
- Mở cài đặt server - Nhấp chuột phải vào tên server và chọn "Server Settings"
- Vào mục Integrations - Nhấp "Integrations" trong thanh bên trái
- Tạo webhook - Nhấp "Webhooks" rồi "New Webhook"
- Cấu hình webhook - Đặt tên cho webhook (ví dụ: "Build Bot"), chọn kênh, và tùy chọn thêm ảnh đại diện
- Sao chép URL webhook - Nhấp "Copy Webhook URL" và lưu lại an toàn
Gửi tin nhắn qua webhook
curl -X POST -H "Content-Type: application/json" \
-d '{"content": "✅ Build completed successfully!\n\nProject: MyApp\nBranch: main\nDuration: 3m 42s"}' \
https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN
Ví dụ embed phong phú cho thông báo lỗi
curl -X POST -H "Content-Type: application/json" \
-d '{
"embeds": [{
"title": "❌ Build Failed",
"color": 15158332,
"fields": [
{"name": "Project", "value": "MyApp", "inline": true},
{"name": "Branch", "value": "feature/login", "inline": true},
{"name": "Error", "value": "```TypeError: Cannot read property of undefined```"}
],
"timestamp": "2026-01-15T10:30:00.000Z"
}]
}' \
YOUR_WEBHOOK_URL
Tài liệu chính thức: Tài liệu Discord Webhook
Bot webhook Slack
Slack sử dụng Incoming Webhooks như một phần của hệ thống Slack Apps. Nền tảng này hỗ trợ định dạng tin nhắn phong phú và linh hoạt trong việc chọn kênh đích.
Hướng dẫn từng bước
- Tạo Slack App - Truy cập api.slack.com/apps và nhấp "Create New App"
- Chọn phương thức tạo - Chọn "From scratch" và đặt tên cho app (ví dụ: "CI/CD Notifications")
- Bật Incoming Webhooks - Vào "Incoming Webhooks" trong thanh bên và bật tính năng này lên
- Thêm webhook vào workspace - Nhấp "Add New Webhook to Workspace"
- Chọn kênh - Chọn kênh nhận thông báo và nhấp "Allow"
- Sao chép URL webhook - URL webhook duy nhất của bạn sẽ hiển thị trên màn hình
Gửi tin nhắn qua webhook
curl -X POST -H "Content-Type: application/json" \
-d '{"text": "✅ Deployment to production completed successfully!"}' \
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXX
Tin nhắn Block Kit cho thông báo chi tiết
curl -X POST -H "Content-Type: application/json" \
-d '{
"blocks": [
{
"type": "header",
"text": {"type": "plain_text", "text": "🚨 Build Failed"}
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*Project:*\nMyApp"},
{"type": "mrkdwn", "text": "*Branch:*\nmain"},
{"type": "mrkdwn", "text": "*Error:*\n`Module not found`"}
]
}
]
}' \
YOUR_WEBHOOK_URL
Tài liệu chính thức: Hướng dẫn Slack Incoming Webhooks
Bot webhook Microsoft Teams
Microsoft Teams hỗ trợ Incoming Webhooks để gửi thông báo vào kênh. Tính năng này được thiết lập thông qua hệ thống connector.
Hướng dẫn từng bước
- Mở cài đặt kênh - Vào kênh đích và nhấp vào biểu tượng ba chấm (•••) cạnh tên kênh
- Chọn Connectors - Nhấp "Connectors" (hoặc "Manage channel" rồi "Connectors" trong các phiên bản mới hơn)
- Tìm Incoming Webhook - Tìm kiếm "Incoming Webhook" và nhấp "Configure"
- Đặt tên webhook - Nhập tên (ví dụ: "Build Alerts") và tùy chọn tải lên ảnh đại diện
- Tạo và sao chép URL - Nhấp "Create" và sao chép URL webhook
Gửi tin nhắn qua webhook
curl -X POST -H "Content-Type: application/json" \
-d '{"text": "✅ Build #1234 completed successfully on main branch"}' \
YOUR_TEAMS_WEBHOOK_URL
Adaptive Card cho thông báo phong phú
curl -X POST -H "Content-Type: application/json" \
-d '{
"type": "message",
"attachments": [{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"version": "1.2",
"body": [
{"type": "TextBlock", "size": "Large", "weight": "Bolder", "text": "❌ Build Failed"},
{"type": "FactSet", "facts": [
{"title": "Project:", "value": "MyApp"},
{"title": "Error:", "value": "Compilation failed"}
]}
]
}
}]
}' \
YOUR_TEAMS_WEBHOOK_URL
Tài liệu chính thức: Microsoft Teams Incoming Webhooks
Bot Telegram
Telegram có Bot API mạnh mẽ để gửi tin nhắn theo chương trình. Thay vì dùng URL webhook, bạn gửi request trực tiếp đến API của Telegram.
Hướng dẫn từng bước
- Tạo bot qua BotFather - Mở Telegram và tìm kiếm
@BotFather - Bắt đầu tạo bot mới - Gửi lệnh
/newbot - Đặt tên bot - Làm theo hướng dẫn để đặt tên hiển thị và tên người dùng (phải kết thúc bằng "bot")
- Lưu API token - BotFather sẽ cấp cho bạn một token dạng
123456789:ABCdefGHIjklMNOpqrsTUVwxyz - Lấy chat ID - Thêm bot vào nhóm hoặc kênh của bạn, gửi một tin nhắn, rồi truy cập
https://api.telegram.org/bot<TOKEN>/getUpdatesđể tìm chat ID
Gửi tin nhắn qua Bot API
curl -X POST \
"https://api.telegram.org/bot/sendMessage" \
-d "chat_id=" \
-d "text=✅ Build completed successfully!%0A%0AProject: MyApp%0ABranch: main" \
-d "parse_mode=HTML"
Tin nhắn có định dạng HTML
curl -X POST \
"https://api.telegram.org/bot/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "",
"text": "❌ Build Failed\n\nProject: MyApp\nBranch: main\nError: Module not found",
"parse_mode": "HTML"
}'
Tài liệu chính thức: Telegram Bot API
Bot webhook Mattermost
Mattermost là giải pháp mã nguồn mở thay thế Slack. Nền tảng này hỗ trợ webhook mạnh mẽ và phù hợp cho giao tiếp nhóm tự host.
Hướng dẫn từng bước
- Vào mục tích hợp - Nhấp vào menu hamburger, rồi chọn "Integrations"
- Tạo Incoming Webhook - Chọn "Incoming Webhooks" rồi "Add Incoming Webhook"
- Cấu hình webhook - Đặt tiêu đề, mô tả và kênh mặc định
- Lưu và sao chép URL - Nhấp "Save" và sao chép URL webhook
Gửi tin nhắn qua webhook
curl -X POST -H "Content-Type: application/json" \
-d '{"text": "✅ Build completed successfully!"}' \
https://your-mattermost-server.com/hooks/YOUR_WEBHOOK_ID
Tin nhắn đính kèm phong phú
curl -X POST -H "Content-Type: application/json" \
-d '{
"attachments": [{
"fallback": "Build Failed",
"color": "#FF0000",
"title": "❌ Build Failed",
"fields": [
{"short": true, "title": "Project", "value": "MyApp"},
{"short": true, "title": "Branch", "value": "main"},
{"short": false, "title": "Error", "value": "```Module not found```"}
]
}]
}' \
YOUR_WEBHOOK_URL
Tài liệu chính thức: Mattermost Incoming Webhooks
Bot Matrix/Element
Matrix là giao thức mã nguồn mở cho giao tiếp phi tập trung. Element là client phổ biến nhất của nó. Để tích hợp bot, bạn sử dụng Matrix Client-Server API.
Hướng dẫn từng bước
- Tạo tài khoản bot - Đăng ký tài khoản Matrix mới cho bot trên homeserver của bạn hoặc trên matrix.org
- Lấy access token - Đăng nhập và tìm access token trong Element: Cài đặt - Trợ giúp & Giới thiệu - Nâng cao - Access Token
- Lấy room ID - Cho bot tham gia phòng đích, sau đó tìm room ID trong Cài đặt phòng - Nâng cao
- Mời bot vào phòng - Đảm bảo tài khoản bot đã tham gia phòng nơi nó sẽ gửi tin nhắn
Gửi tin nhắn qua Matrix API
curl -X PUT \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"msgtype": "m.text", "body": "✅ Build completed successfully!"}' \
"https://matrix.org/_matrix/client/r0/rooms/YOUR_ROOM_ID/send/m.room.message/$(date +%s)"
Tin nhắn có định dạng HTML
curl -X PUT \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"msgtype": "m.text",
"body": "Build Failed\nProject: MyApp\nError: Module not found",
"format": "org.matrix.custom.html",
"formatted_body": "❌ Build Failed
Project: MyApp
Error: Module not found
"
}' \
"https://matrix.org/_matrix/client/r0/rooms/YOUR_ROOM_ID/send/m.room.message/$(date +%s)"
Mẹo: Để phát triển bot Matrix dễ dàng hơn, hãy thử dùng các thư viện như matrix-nio (Python) hoặc matrix-bot-sdk (JavaScript).
Tài liệu chính thức: Đặc tả Matrix Client-Server API
Bot WhatsApp Business
WhatsApp cung cấp Business API cho nhắn tin tự động. Nền tảng này yêu cầu xác minh doanh nghiệp và phức tạp hơn để thiết lập so với các nền tảng khác.
Hướng dẫn từng bước
- Tạo tài khoản Meta Business - Truy cập business.facebook.com và tạo tài khoản doanh nghiệp
- Thiết lập WhatsApp Business - Vào developers.facebook.com, tạo app và thêm sản phẩm WhatsApp
- Cấu hình số điện thoại - Thêm số điện thoại cho bot (có số dùng thử cho giai đoạn phát triển)
- Lấy access token - Tạo access token vĩnh viễn từ bảng điều khiển app
- Xác minh doanh nghiệp - Hoàn tất xác minh doanh nghiệp trước khi đưa vào sử dụng thực tế
Gửi tin nhắn qua Cloud API
curl -X POST \
"https://graph.facebook.com/v17.0/YOUR_PHONE_NUMBER_ID/messages" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "RECIPIENT_PHONE_NUMBER",
"type": "text",
"text": {"body": "✅ Build completed successfully!"}
}'
Lưu ý quan trọng: WhatsApp yêu cầu sử dụng template tin nhắn khi bắt đầu hội thoại với người dùng. Bạn chỉ có thể gửi tin nhắn tự do trong vòng 24 giờ sau khi người dùng tương tác. Để gửi thông báo tự động, hãy tạo và chờ phê duyệt template tin nhắn trước.
Tài liệu chính thức: Tài liệu WhatsApp Cloud API
Bot Facebook Messenger
Bot Facebook Messenger cần một Facebook App và Trang. Tin nhắn được gửi thông qua Send API.
Hướng dẫn từng bước
- Tạo Facebook App - Vào developers.facebook.com và tạo app mới (chọn loại "Business")
- Thêm sản phẩm Messenger - Trong bảng điều khiển app, nhấp "Add Product" và chọn Messenger
- Kết nối Trang Facebook - Liên kết một Trang Facebook với app (tạo mới nếu cần)
- Tạo Page Access Token - Trong cài đặt Messenger, tạo token cho trang của bạn
- Lấy PSID - Người dùng phải nhắn tin cho trang của bạn trước. Lấy Page-Scoped ID (PSID) của họ từ các sự kiện webhook
Gửi tin nhắn qua Send API
curl -X POST \
"https://graph.facebook.com/v17.0/me/messages" \
-H "Content-Type: application/json" \
-d '{
"recipient": {"id": "USER_PSID"},
"message": {"text": "✅ Build completed successfully!"},
"access_token": "YOUR_PAGE_ACCESS_TOKEN"
}'
Lưu ý: Facebook Messenger có quy định nghiêm ngặt về nhắn tin tự động. Bot chỉ có thể gửi tin nhắn quảng cáo trong vòng 24 giờ sau khi người dùng tương tác. Để gửi thông báo ngoài khung thời gian này, hãy đăng ký sử dụng các message tag cụ thể hoặc tính năng thông báo một lần.
Tài liệu chính thức: Tài liệu Facebook Messenger Platform
Các ứng dụng nhắn tin không hỗ trợ bot dễ dàng
Các ứng dụng nhắn tin sau đây ưu tiên quyền riêng tư và bảo mật. Điều này có nghĩa là tích hợp bot qua webhook hoặc không khả thi, hoặc không thực tế:
- Signal - Không có Bot API chính thức. Signal tập trung vào mã hóa đầu cuối và tránh các tính năng tự động hóa có thể làm giảm bảo mật.
- Session - Một ứng dụng nhắn tin phi tập trung không có cơ sở hạ tầng bot. Thiết kế định tuyến onion khiến nhắn tin tự động không thực tế.
- Briar - Ứng dụng nhắn tin ngang hàng được xây dựng cho các nhà hoạt động và nhà báo. Không có cơ sở hạ tầng server đồng nghĩa với không có hỗ trợ webhook.
- Wire - Có một số tính năng API doanh nghiệp, nhưng không có hệ thống webhook đơn giản cho thông báo tự động.
- Wickr - Tập trung vào doanh nghiệp và không có Bot API công khai. Tự động hóa yêu cầu Wickr Enterprise với tích hợp tùy chỉnh.
- SimpleX - Được thiết kế không có định danh người dùng, khiến tích hợp bot không tương thích với kiến trúc của nó.
- Threema - Cung cấp Threema Gateway cho doanh nghiệp, nhưng đây là dịch vụ trả phí yêu cầu ký hợp đồng - không phải thiết lập webhook đơn giản.
- Viber - Có Bot API, nhưng yêu cầu phê duyệt tài khoản doanh nghiệp và được xây dựng cho dịch vụ khách hàng, không phải thông báo dành cho nhà phát triển.
- LINE - Cung cấp Messaging API, nhưng yêu cầu xác minh tài khoản doanh nghiệp và phức tạp cho các trường hợp thông báo đơn giản.
- WeChat - Có Official Account API, nhưng yêu cầu đăng ký doanh nghiệp tại Trung Quốc và phê duyệt của chính phủ.
Nếu bạn thích sử dụng các nền tảng này cho giao tiếp bảo mật, hãy cân nhắc kết hợp chúng với một nền tảng có hỗ trợ tự động hóa. Bạn cũng có thể đọc hướng dẫn của chúng tôi về cách giữ tin nhắn riêng tư thực sự an toàn.
Ví dụ triển khai thực tế
Dưới đây là ví dụ Node.js hoàn chỉnh gửi thông báo build đến nhiều nền tảng cùng lúc:
const axios = require('axios');
const notifiers = {
discord: async (message, webhookUrl) => {
await axios.post(webhookUrl, { content: message });
},
slack: async (message, webhookUrl) => {
await axios.post(webhookUrl, { text: message });
},
telegram: async (message, token, chatId) => {
await axios.post(`https://api.telegram.org/bot${token}/sendMessage`, {
chat_id: chatId,
text: message,
parse_mode: 'HTML'
});
},
teams: async (message, webhookUrl) => {
await axios.post(webhookUrl, { text: message });
}
};
async function notifyBuildResult(success, project, branch, error = null) {
const emoji = success ? '✅' : '❌';
const status = success ? 'succeeded' : 'failed';
let message = `${emoji} Build ${status}\n\nProject: ${project}\nBranch: ${branch}`;
if (error) message += `\nError: ${error}`;
const notifications = [
notifiers.discord(message, process.env.DISCORD_WEBHOOK),
notifiers.slack(message, process.env.SLACK_WEBHOOK),
notifiers.telegram(message, process.env.TELEGRAM_TOKEN, process.env.TELEGRAM_CHAT_ID),
notifiers.teams(message, process.env.TEAMS_WEBHOOK)
];
await Promise.allSettled(notifications);
}
// Sử dụng trong pipeline CI/CD của bạn
notifyBuildResult(false, 'MyApp', 'main', 'Module not found: @utils/helper');
Điểm mấu chốt:
- Discord, Slack và Mattermost có thiết lập đơn giản nhất - chỉ cần tạo và sử dụng một URL
- Telegram cần bot token và chat ID, nhưng mang lại độ tin cậy cao và định dạng tin nhắn tốt
- Microsoft Teams dùng Adaptive Cards cho thông báo phong phú
- Matrix/Element mất nhiều công thiết lập hơn nhưng hoạt động tốt cho môi trường tự host
- WhatsApp và Facebook Messenger có quy định và chính sách nhắn tin chặt chẽ hơn
- Các ứng dụng nhắn tin ưu tiên quyền riêng tư không có Bot API theo thiết kế, nhằm bảo vệ bảo mật người dùng
Kết luận
Thiết lập thông báo bot qua webhook trên các nền tảng nhắn tin giúp bổ sung tính năng tự động hóa mạnh mẽ vào quy trình phát triển của bạn. Discord và Slack dễ bắt đầu nhất - chỉ cần dùng một URL webhook đơn giản. Telegram đáng tin cậy và dễ thiết lập. Với các nhóm doanh nghiệp, Microsoft Teams và Mattermost tích hợp tốt với các công cụ hiện có. Matrix cho bạn một lựa chọn tự host, thân thiện với quyền riêng tư và có toàn quyền truy cập API.
Hãy bắt đầu với một nền tảng. Kiểm tra quy trình thông báo của bạn. Sau đó thêm các kênh khác khi cần. Các ví dụ code ở trên có thể dùng ngay. Bước tiếp theo của bạn là tạo webhook trên nền tảng đã chọn và gửi tin nhắn tự động đầu tiên - việc này mất chưa đến 10 phút.
Câu hỏi thường gặp
Discord là đơn giản nhất. Tạo webhook trong cài đặt kênh và bạn nhận được một URL có thể POST tin nhắn ngay lập tức. Không cần token, không cần tạo app, không cần xác minh. Slack cũng đơn giản, nhưng bạn cần tạo Slack App trước.
Không. Các ứng dụng nhắn tin ưu tiên quyền riêng tư như Signal, Session, Briar và SimpleX không có Bot API. Đây là lựa chọn có chủ ý để bảo vệ quyền riêng tư người dùng. Các nền tảng này tập trung vào mã hóa đầu cuối và thu thập dữ liệu tối thiểu, điều này không tương thích với nhắn tin tự động. Để gửi thông báo, hãy dùng một nền tảng có hỗ trợ song song với ứng dụng bảo mật cho các cuộc trò chuyện riêng tư.
Có, hãy xem URL webhook như mật khẩu. Bất kỳ ai có URL đó đều có thể gửi tin nhắn vào kênh của bạn. Lưu chúng trong biến môi trường, không bao giờ commit vào version control, và tạo lại nếu chúng bị lộ. Một số nền tảng như Slack cho phép bạn tạo URL webhook mới khi cần.
Webhook là một chiều. Bạn gửi tin nhắn đến một URL và nó xuất hiện trong kênh. Bot API hoạt động hai chiều. Bạn có thể gửi tin nhắn và cũng nhận, trả lời tin nhắn từ người dùng. Với các thông báo đơn giản như cảnh báo build hay giám sát, webhook là đủ. Với bot cần phản hồi lệnh từ người dùng, bạn cần Bot API đầy đủ với một endpoint webhook trên server của bạn.
Hầu hết các nền tảng đều có giới hạn tốc độ. Discord cho phép 30 tin nhắn mỗi phút mỗi webhook. Slack có giới hạn tương tự. Hãy dùng hàng đợi tin nhắn với cơ chế thử lại exponential backoff. Với lưu lượng cao, hãy gộp nhiều sự kiện vào một tin nhắn hoặc sử dụng bulk API của từng nền tảng khi có sẵn.