UniAI Docs

Tích hợp Slack Bot

Nối một agent UniAI với app Slack của riêng bạn — tạo app từ manifest, cài đặt, dán bot token + app-level token, rồi @nhắc nó, DM nó, hoặc gõ /issue ngay trong Slack.

Nối bất kỳ agent nào với một bot Slack và nhóm của bạn làm việc với nó ngay trong Slack — DM cho bot, @nhắc nó trong kênh, hoặc gõ /issue để tạo một issue UniAI mà không phải mở app.

Slack dùng mô hình bring-your-own-app (BYO): admin của không gian làm việc tự tạo một app Slack, cài vào Slack workspace của mình và dán token của app vào UniAI. Mỗi agent có app Slack riêng — nên nhiều agent có thể có bot riêng, @nhắc được riêng từng bot, trong cùng một Slack workspace. (Khác với Lark, nơi việc gắn dùng luồng quét mã để cài.)

Toàn bộ thiết lập ở bên dưới, mất khoảng năm phút. Kết quả là hai token để dán vào UniAI:

  • một Bot token — bắt đầu bằng xoxb-
  • một App-level token — bắt đầu bằng xapp-

Thiết lập app Slack của bạn

1. Tạo app từ manifest

  1. Vào https://api.slack.com/apps và bấm Create New App.
  2. Chọn From a manifest.
  3. Chọn Slack workspace để cài app vào.
  4. Chuyển sang tab YAML, dán manifest bên dưới, xem lại và tạo app.
display_information:
  name: UniAI
features:
  app_home:
    home_tab_enabled: false
    messages_tab_enabled: true
    messages_tab_read_only_enabled: false
  bot_user:
    display_name: UniAI
    always_online: true
  slash_commands:
    - command: /issue
      description: Create a UniAI issue
      usage_hint: "[title]"
oauth_config:
  scopes:
    bot:
      - app_mentions:read
      - channels:history
      - groups:history
      - im:history
      - mpim:history
      - chat:write
      - reactions:write
      - users:read
      - commands
settings:
  event_subscriptions:
    bot_events:
      - app_mention
      - message.im
      - message.channels
      - message.groups
      - message.mpim
  interactivity:
    is_enabled: false
  org_deploy_enabled: false
  socket_mode_enabled: true
  token_rotation_enabled: false

Manifest này cấu hình đủ mọi thứ UniAI cần, nên bạn không phải chỉnh tay gì:

MụcVì sao cần
app_home.messages_tab_enabled: trueCho thành viên mở bot và DM nó. Thiếu mục này, không thể nhắn trực tiếp cho bot.
bot_userTạo danh tính bot được @nhắc và đăng trả lời.
chat:writeĐăng câu trả lời của agent trở lại Slack.
reactions:writeThêm cảm xúc 👀 vào tin nhắn của bạn khi agent đang làm việc, gỡ khi agent trả lời. Thiếu scope này, chỉ báo âm thầm bị bỏ qua — mọi thứ khác vẫn chạy.
app_mentions:read + sự kiện app_mentionNhận @nhắc trong kênh.
im:history + message.imNhận DM gửi bot (mọi tin DM đều được đọc).
channels:history / groups:history / mpim:history + các sự kiện message.* tương ứngNhận tin trong kênh công khai, kênh riêng và DM nhóm. Ở đó, bot chỉ hành động với tin @nhắc nó.
users:readCần để UniAI xác minh (qua bots.info) rằng hai token thuộc cùng một app.
commandsScope bot bật slash command /issue (đi cặp với features.slash_commands). Thiếu nó, cập nhật manifest và cài lại cũng không được cấp lệnh.
socket_mode_enabled: trueBot kết nối ra ngoài qua Socket Mode — không cần URL công khai / request URL.
interactivity.is_enabled: falseLời nhắc của UniAI là liên kết thuần, không phải nút, nên không cần interactivity.
slash_commands (/issue)Đăng ký lệnh /issue để ai cũng tạo được issue UniAI từ ô nhắn tin. Truyền qua Socket Mode — không cần request URL.

Không có OAuth redirect URL, vì BYO không dùng OAuth.

Muốn tên riêng trong Slack? Đổi display_information.namefeatures.bot_user.display_name (ví dụ thành tên agent của bạn) trước khi tạo, hoặc sửa sau ở App Home. Slack hiển thị bot theo tên hiển thị của bot, có thể khác tên app.

2. Cài app và chép Bot token

  1. Ở nav trái của app, mở Install App (hoặc OAuth & Permissions).
  2. Bấm Install to Workspace và phê duyệt.
  3. Chép Bot User OAuth Token — bắt đầu bằng xoxb-. Đây là Bot token của bạn.

3. Tạo App-level token

App-level token ủy quyền cho kết nối Socket Mode. Chỉ tạo được trong console (nó không thuộc OAuth).

  1. Mở Basic Information → App-Level Tokens và bấm Generate Token and Scopes.
  2. Đặt tên tùy ý.
  3. Bấm Add Scope và chọn connections:write từ danh sách có sẵn (chọn, không gõ tay).
  4. Bấm Generate, rồi chép token — bắt đầu bằng xapp-. Đây là App-level token của bạn.

4. Kết nối trong UniAI

  1. Mở agent trong Agent → agent của bạn → tab Integrations (hoặc mục Integrations ở thanh bên trái).
  2. Bấm Connect Slack.
  3. Dán Bot token (xoxb-) và App-level token (xapp-), rồi bấm Connect.
  4. Agent hiện Connected to Slack. Bot giờ đang nghe qua kết nối Socket Mode của riêng nó.

Hai token phải từ cùng một app Slack, và app đó ánh xạ tới đúng một agent. Kết nối một app đã nối với agent hoặc không gian làm việc khác sẽ bị từ chối. Muốn chuyển app sang agent khác, ngắt kết nối trước; kết nối lại một agent với một app mới sẽ cập nhật thẳng bot của agent đó.

Thiết lập cho nhiều agent? Lặp lại toàn bộ luồng cho từng agent — mỗi agent có app Slack riêng và cặp token riêng, chúng hiện thành các bot tách biệt trong Slack workspace của bạn.

Tích hợp làm gì

Vị tríHành vi
Agent → IntegrationsOwner và admin thấy Connect Slack; nối xong nó chuyển thành huy hiệu Connected to Slack kèm nút Disconnect.
DM cho botMột thành viên nhắn thẳng cho bot. Cuộc trò chuyện thành một phiên chat UniAI với agent; mọi tin DM đều được đọc.
@nhắc trong kênhMời bot (/invite @your-bot) và @nhắc nó. Chỉ tin có nhắc mới được đọc — bot không nghe cả kênh. Mỗi thread @bot là một phiên riêng.
Slash command /issue/issue <mô tả> (trong kênh hoặc DM) và agent biến mô tả bằng lời thường của bạn thành một issue UniAI chỉn chu, đứng tên bạn. Bot trả lời riêng (chỉ bạn thấy) để xác nhận — bạn nhận thông báo UniAI khi issue sẵn sàng. Không cần @nhắc.
Trả lờiCâu trả lời của agent được đăng lại vào đúng DM hoặc thread.

Dùng bot (thành viên)

Tin nhắn đầu tiên: liên kết tài khoản

Lần đầu bạn @nhắc hoặc DM bot, nó trả lời với lời nhắc liên kết tài khoản. Bấm liên kết, đăng nhập UniAI, và danh tính Slack của bạn được liên kết với tài khoản thành viên UniAI — nhờ đó agent có thể hành động thay bạn (ví dụ /issue tạo issue đứng tên bạn). Liên kết dùng một lần và hết hạn sau khoảng 15 phút; nhắn bot lần nữa để lấy liên kết mới.

Bạn chỉ liên kết một lần cho mỗi Slack workspace. Nếu cùng một không gian làm việc UniAI chạy nhiều bot trong một Slack workspace (mỗi agent một app), liên kết với bot đầu tiên sẽ dùng chung cho các bot còn lại: nhắn bot thứ hai tự dùng lại liên kết đó, không hỏi lại. (Chỉ cần liên kết lại với bot ở Slack workspace khác, hoặc bot nối với không gian làm việc UniAI khác.)

Chỉ thành viên của không gian làm việc dùng được bot. Nếu bạn không phải thành viên, hoặc bỏ qua bước liên kết danh tính, bot sẽ không chạy — tin nhắn của bạn bị bỏ qua (được ghi lại để kiểm toán, không kèm nội dung).

Chat và /issue

  • Trong kênh — bot không tự động vào kênh. Chạy /invite @your-bot một lần, rồi @your-bot <tin nhắn>. Mỗi câu tiếp theo phải @nhắc lại (bot chỉ đọc tin có nhắc nó).
  • Trong DM — mở bot từ mục Apps ở thanh bên Slack và nhắn trực tiếp; không cần nhắc.
  • Tạo issue — dùng lệnh /issue, ví dụ /issue the login redirect is broken on Safari. Mô tả bằng lời thường; agent viết tiêu đề chuẩn và mô tả có cấu trúc rồi tạo issue. Dùng được trong kênh hoặc DM (không cần @nhắc) và trả lời riêng tư để xác nhận — bạn nhận thông báo UniAI khi issue được tạo. Người dùng lần đầu nhận liên kết một lần để nối tài khoản.

Quản lý và ngắt kết nối

Quản lý toàn không gian làm việc nằm ở Cài đặt → Integrations:

  • Connected bots liệt kê mọi bot trong không gian làm việc và agent mà từng bot gắn vào (mọi thành viên thấy được).
  • Disconnect chỉ dành cho owner / admin. Nó làm bot ngừng nhận tin Slack và gỡ kết nối; bản ghi installation giữ lại để kiểm toán, và bạn nối lại được về sau.

Quyền

  • Kết nối / ngắt cần owner hoặc admin của không gian làm việc.
  • Nói chuyện với bot yêu cầu là thành viên của không gian làm việc và đã liên kết danh tính Slack. Tin nhắn của những người khác đều bị bỏ qua.
  • Nội dung của tin nhắn bị bỏ qua không bao giờ được lưu — chỉ lưu lý do, để kiểm toán.

Tiếp theo