{"version":"1.1.0","operations":[{"id":"me.get","tool":"me_get","title":"Tôi và quyền của kết nối","description":"Who is calling: user, workspace, role, granted Zalo accounts, permission groups, visible tool profiles and request limits. Call this first.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/me.get","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"workspace.get","tool":"workspace_get","title":"Workspace","description":"Workspace name, time zone, working hours, plan state, switches affecting work (maintenance, external commands paused) and setup counts (machines, proxies, accounts, contacts, campaigns).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/workspace.get","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"system.status","tool":"system_status","title":"Trạng thái hệ thống","description":"Platform state that affects work right now: maintenance, the operator's switch for outside writes, the minimum and newest agent version, and the server clock.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/system.status","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"workspace.rename","tool":"workspace_rename","title":"Đổi tên workspace","description":"Rename the workspace (admins).","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/workspace.rename","input":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120}},"required":["name"],"additionalProperties":false}},{"id":"me.display_name.set","tool":"me_display_name_set","title":"Đổi tên hiển thị của tôi","description":"Change the calling person's display name in Zalo Auto.","kind":"write","mode":"direct","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/me.display_name.set","input":{"type":"object","properties":{"fullName":{"type":"string","minLength":1,"maxLength":120}},"required":["fullName"],"additionalProperties":false}},{"id":"catalog.search","tool":"catalog_search","title":"Tìm thao tác","description":"Search the operation catalog (Vietnamese or English, typos OK) among operations this connection may use, including ones in hidden tool profiles — tells you which profile to enable.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/catalog.search","input":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":200},"limit":{"type":"integer","minimum":1,"maximum":20,"default":8}},"required":["query"],"additionalProperties":false}},{"id":"search.global","tool":"search_global","title":"Tìm nhanh","description":"Search contacts, conversations, groups and campaigns by text in one call.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/search.global","input":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":100}},"required":["query"],"additionalProperties":false}},{"id":"dashboard.get","tool":"dashboard_get","title":"Tổng quan","description":"Dashboard KPIs for today/this week/this month: messages, replies, new contacts, campaign progress, unanswered.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/dashboard.get","input":{"type":"object","properties":{"today":{"type":"object","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"],"additionalProperties":false},"week":{"type":"object","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"],"additionalProperties":false},"month":{"type":"object","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["from","to"],"additionalProperties":false}},"required":["today","week","month"],"additionalProperties":false}},{"id":"reports.get","tool":"reports_get","title":"Báo cáo","description":"Report tab (overview, accounts, members, campaigns, pipeline) for a date range (max 1 year), optionally per account.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/reports.get","input":{"type":"object","properties":{"tab":{"type":"string","enum":["overview","accounts","members","campaigns","pipeline"]},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]}},"required":["tab","from","to"],"additionalProperties":false}},{"id":"reports.export","tool":"reports_export","title":"Xuất báo cáo","description":"Every report tab (overview, accounts, members, campaigns, pipeline) for one date range in one answer — the same data the web puts in its Excel export.","kind":"read","mode":"observe","run":"sync","permissions":["read","export"],"profile":"observe","profileTitle":"Quan sát","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/reports.export","input":{"type":"object","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]}},"required":["from","to"],"additionalProperties":false}},{"id":"inbox.conversations.list","tool":"inbox_conversations_list","title":"Danh sách hội thoại","description":"List Zalo conversations visible to the caller, newest first, with unread/unanswered state and filters. Use to find who is waiting for a reply.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.conversations.list","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"search":{"type":"string","maxLength":100},"unanswered":{"type":"boolean"},"unread":{"type":"boolean"},"assigned":{"anyOf":[{"type":"string","enum":["me","none"]},{"type":"string","format":"uuid"}]},"type":{"type":"string","enum":["user","group"]},"labelId":{"type":"string","format":"uuid"},"pinned":{"type":"boolean"},"hidden":{"type":"boolean","default":false},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"inbox.conversations.get","tool":"inbox_conversations_get","title":"Chi tiết hội thoại","description":"Get one conversation: account, contact or group, unread count, assignee, flags and send hold state.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.conversations.get","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.messages.list","tool":"inbox_messages_list","title":"Đọc tin nhắn","description":"Read stored messages of a conversation, newest first, with status (queued/sent/delivered/seen/failed/unverified), attachments, quotes and reactions. Page back with next_cursor.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.messages.list","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.messages.get","tool":"inbox_messages_get","title":"Chi tiết tin nhắn","description":"Get one message with its current delivery status and job id.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.messages.get","input":{"type":"object","properties":{"messageId":{"type":"string","format":"uuid"}},"required":["messageId"],"additionalProperties":false}},{"id":"inbox.notes.list","tool":"inbox_notes_list","title":"Ghi chú nội bộ của hội thoại","description":"List internal team notes of a conversation (never sent to Zalo).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.notes.list","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.conversation.open_contact","tool":"inbox_conversation_open_contact","title":"Mở hội thoại với khách","description":"Open (or create) the 1:1 conversation between a CRM contact and one Zalo account. May return a pending phone lookup job instead of a conversation.","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.conversation.open_contact","input":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"accountId":{"type":"string","format":"uuid"}},"required":["contactId","accountId"],"additionalProperties":false}},{"id":"inbox.conversation.open_phone","tool":"inbox_conversation_open_phone","title":"Tin nhắn mới theo số điện thoại","description":"Start a chat with a Vietnamese phone number from one Zalo account: looks the number up on Zalo (queued job) and opens the conversation.","kind":"write","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.conversation.open_phone","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid"},"phone":{"type":"string","minLength":8,"maxLength":20}},"required":["accountId","phone"],"additionalProperties":false}},{"id":"inbox.message.send","tool":"inbox_message_send","title":"Gửi tin nhắn","description":"Send a message on Zalo (text with mentions/styles, quote reply, images, files, video, voice file, sticker, contact card, bank card). Queued in conversation order through the account's own limits; returns operation/message/job ids immediately — call operations_wait for the Zalo result.","kind":"write","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.message.send","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid","description":"Conversation to send into (from inbox_conversations_list or inbox_conversation_open_contact)."},"kind":{"type":"string","enum":["text","image","video","file","sticker","voice","card","link","bank","system"],"default":"text","description":"text, image, video, file, sticker, voice, card, bank or link."},"text":{"type":"string","maxLength":5000,"default":"","description":"Message text or caption. Supports @mentions via `mentions`."},"attachments":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["image","video","file","voice"]},"storagePath":{"type":"string","maxLength":500},"name":{"type":"string","maxLength":255},"size":{"type":"integer","minimum":0},"mime":{"type":"string","maxLength":120},"width":{"type":"integer"},"height":{"type":"integer"},"durationMs":{"type":"integer"},"thumbStoragePath":{"type":"string","maxLength":500}},"required":["kind","storagePath","name","size","mime"],"additionalProperties":false},"maxItems":10,"default":[],"description":"Files uploaded with media_upload_create (storagePath, name, size, mime, width/height for images)."},"quoteMessageId":{"type":"string","format":"uuid","nullable":true,"default":null,"description":"Reply to (quote) this message id."},"mentions":{"type":"array","items":{"type":"object","properties":{"uid":{"type":"string","maxLength":64},"pos":{"type":"integer","minimum":0},"len":{"type":"integer","minimum":1}},"required":["uid","pos","len"],"additionalProperties":false},"maxItems":50,"default":[]},"styles":{"type":"array","items":{"type":"object","properties":{"start":{"type":"integer","minimum":0},"len":{"type":"integer","minimum":1},"st":{"type":"string","enum":["b","i","u","s","c_db342e","c_f27806","c_f7b503","c_15a85f","f_13","f_18","lst_1","lst_2","ind_$"]},"indentSize":{"type":"integer","minimum":1,"maximum":10}},"required":["start","len","st"],"additionalProperties":false},"maxItems":50,"default":[],"description":"Zalo text styles over ranges of `text`: b, i, u, s, colours c_db342e/c_f27806/c_f7b503/c_15a85f, sizes f_13/f_18; lst_1 bullet list, lst_2 numbered list, ind_$ indent (indentSize) need agent 1.4.0."},"urgency":{"anyOf":[{"type":"number","enum":[0]},{"type":"number","enum":[1]},{"type":"number","enum":[2]}],"default":0,"description":"0 normal, 1 important (Quan trọng), 2 urgent (Khẩn cấp). >0 needs agent 1.4.0."},"sticker":{"type":"object","properties":{"id":{"type":"integer"},"cateId":{"type":"integer"},"type":{"type":"integer"},"url":{"type":"string","format":"uri","maxLength":500}},"required":["id","cateId","type"],"additionalProperties":false,"nullable":true,"default":null},"card":{"type":"object","properties":{"userId":{"type":"string","maxLength":64},"phone":{"type":"string","maxLength":20}},"required":["userId"],"additionalProperties":false,"nullable":true,"default":null},"bank":{"type":"object","properties":{"binBank":{"type":"integer"},"numAccBank":{"type":"string","maxLength":40},"nameAccBank":{"type":"string","maxLength":120}},"required":["binBank","numAccBank","nameAccBank"],"additionalProperties":false,"nullable":true,"default":null},"runAt":{"type":"string","format":"date-time","nullable":true,"default":null,"description":"Schedule the send (ISO time). Must be in the future and within 90 days; cancel with operations_cancel."}},"required":["conversationId"],"additionalProperties":false}},{"id":"media.upload.create","tool":"media_upload_create","title":"Tải tệp để gửi","description":"Get a signed upload URL for a file to attach to a message (images, files, video, voice). PUT the bytes to upload_url, then pass the returned attachment to inbox_message_send.","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/media.upload.create","input":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"size":{"type":"integer","minimum":1},"mime":{"type":"string","maxLength":120}},"required":["name","size","mime"],"additionalProperties":false}},{"id":"media.upload.complete","tool":"media_upload_complete","title":"Xác nhận đã tải tệp","description":"After PUT to upload_url: checks the file really arrived and returns the attachment (real size, kind) ready for inbox_message_send.","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/media.upload.complete","input":{"type":"object","properties":{"storagePath":{"type":"string","minLength":3,"maxLength":500},"width":{"type":"integer"},"height":{"type":"integer"},"durationMs":{"type":"integer"}},"required":["storagePath"],"additionalProperties":false}},{"id":"inbox.sticker.search","tool":"inbox_sticker_search","title":"Tìm sticker","description":"Search Zalo stickers by keyword through the conversation's account (max 30). Use the result in inbox_message_send kind=sticker.","kind":"read","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.sticker.search","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"keyword":{"type":"string","minLength":1,"maxLength":40}},"required":["conversationId","keyword"],"additionalProperties":false}},{"id":"inbox.message.retry","tool":"inbox_message_retry","title":"Gửi lại tin lỗi","description":"Retry a failed outgoing message (never an unverified one — read the chat first). Keeps conversation order.","kind":"write","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.message.retry","input":{"type":"object","properties":{"messageId":{"type":"string","format":"uuid"}},"required":["messageId"],"additionalProperties":false}},{"id":"inbox.message.skip_held","tool":"inbox_message_skip_held","title":"Bỏ qua tin lỗi để gửi tiếp","description":"Unblock a conversation held by a failed message: skip it so later queued messages go out.","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.message.skip_held","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.scheduled.list","tool":"inbox_scheduled_list","title":"Tin hẹn giờ","description":"List scheduled sends (waiting, sending or failed) of one conversation or the whole workspace, soonest first.","kind":"read","mode":"direct","run":"sync","permissions":["read"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.scheduled.list","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["scheduled","sending","failed","sent","cancelled"]},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"inbox.scheduled.cancel","tool":"inbox_scheduled_cancel","title":"Huỷ tin hẹn giờ","description":"Cancel a scheduled send that has not gone out yet (or dismiss a failed one).","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.scheduled.cancel","input":{"type":"object","properties":{"scheduledId":{"type":"string","format":"uuid"}},"required":["scheduledId"],"additionalProperties":false}},{"id":"inbox.message.react","tool":"inbox_message_react","title":"Thả cảm xúc","description":"React to a message with an emoji icon code.","kind":"write","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.message.react","input":{"type":"object","properties":{"messageId":{"type":"string","format":"uuid"},"icon":{"type":"string","maxLength":20}},"required":["messageId","icon"],"additionalProperties":false}},{"id":"inbox.message.recall","tool":"inbox_message_recall","title":"Thu hồi tin","description":"Recall (undo) one of our sent messages for everyone. Zalo may refuse old messages.","kind":"write","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.message.recall","input":{"type":"object","properties":{"messageId":{"type":"string","format":"uuid"}},"required":["messageId"],"additionalProperties":false}},{"id":"inbox.message.delete_for_me","tool":"inbox_message_delete_for_me","title":"Xoá tin phía tôi","description":"Delete a message only on this account's side (others still see it). Different from recall.","kind":"write","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.message.delete_for_me","input":{"type":"object","properties":{"messageId":{"type":"string","format":"uuid"}},"required":["messageId"],"additionalProperties":false}},{"id":"inbox.message.forward","tool":"inbox_message_forward","title":"Chuyển tiếp tin","description":"Forward a stored message to up to 20 conversations of the same account; returns one result per target.","kind":"write","mode":"direct","run":"bulk","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.message.forward","input":{"type":"object","properties":{"messageId":{"type":"string","format":"uuid"},"targetConversationIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":20}},"required":["messageId","targetConversationIds"],"additionalProperties":false}},{"id":"inbox.conversation.mark_read","tool":"inbox_conversation_mark_read","title":"Đánh dấu đã đọc","description":"Mark a conversation read up to a message (also sends 'seen' on Zalo for the newest incoming message).","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.conversation.mark_read","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"upToMessageId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.history.fetch_older","tool":"inbox_history_fetch_older","title":"Tải tin cũ từ Zalo","description":"Ask the account to fetch older history from Zalo for a group conversation (1:1 history beyond what was synced may not exist).","kind":"write","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.history.fetch_older","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"beforeTs":{"type":"integer","nullable":true,"default":null}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.conversation.assign","tool":"inbox_conversation_assign","title":"Giao hội thoại","description":"Assign a conversation to a workspace member (or null to unassign).","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.conversation.assign","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"assigneeId":{"type":"string","format":"uuid","nullable":true}},"required":["conversationId","assigneeId"],"additionalProperties":false}},{"id":"inbox.conversation.set_flags","tool":"inbox_conversation_set_flags","title":"Ghim / ẩn hội thoại trong app","description":"Pin or hide a conversation inside Zalo Auto only (does not change the Zalo phone app).","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.conversation.set_flags","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"pinned":{"type":"boolean"},"hidden":{"type":"boolean"}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.note.add","tool":"inbox_note_add","title":"Thêm ghi chú nội bộ","description":"Add an internal team note to a conversation, optionally mentioning members. Never sent to Zalo.","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.note.add","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"content":{"type":"string","minLength":1,"maxLength":5000},"mentionUserIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]}},"required":["conversationId","content"],"additionalProperties":false}},{"id":"inbox.auto_assign.get","tool":"inbox_auto_assign_get","title":"Xem chia hội thoại tự động","description":"Read the workspace's automatic conversation assignment settings.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.auto_assign.get","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"inbox.auto_assign.set","tool":"inbox_auto_assign_set","title":"Sửa chia hội thoại tự động","description":"Change automatic conversation assignment (round robin / by load, members, accounts). Pass the `revision` from inbox_auto_assign_get as expectedRevision to avoid overwriting a newer change.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.auto_assign.set","input":{"type":"object","properties":{"config":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"mode":{"type":"string","enum":["round_robin","least_load"],"default":"round_robin"},"memberIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200,"default":[]}},"additionalProperties":false},"expectedRevision":{"type":"integer","minimum":1,"description":"Workspace settings `revision` you read; changed meanwhile → conflict."}},"required":["config"],"additionalProperties":false}},{"id":"inbox.conversation.zalo_flags_set","tool":"inbox_conversation_zalo_flags_set","title":"Ghim / chưa đọc / lưu trữ / tắt thông báo trên Zalo","description":"Change the conversation on the Zalo app itself: pin, mark unread, archive or mute.","kind":"write","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/inbox.conversation.zalo_flags_set","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"pinned":{"type":"boolean"},"unread":{"type":"boolean"},"archived":{"type":"boolean"},"muted":{"type":"boolean"}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.conversation.delete_chat","tool":"inbox_conversation_delete_chat","title":"Xoá hội thoại phía tôi","description":"Delete the whole conversation on this account's side on Zalo.","kind":"destructive","mode":"direct","run":"job","permissions":["read","message","destructive"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"required","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/inbox.conversation.delete_chat","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"}},"required":["conversationId"],"additionalProperties":false}},{"id":"inbox.sticker.category","tool":"inbox_sticker_category","title":"Danh mục sticker","description":"List stickers of a Zalo sticker category.","kind":"read","mode":"direct","run":"job","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/inbox.sticker.category","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"categoryId":{"type":"integer"}},"required":["conversationId","categoryId"],"additionalProperties":false}},{"id":"accounts.list","tool":"accounts_list","title":"Danh sách tài khoản Zalo","description":"List the Zalo personal accounts the caller may use, with session state (ok/expired/…), Zalo restriction state, sync and listener health, machine and proxy summary (never secrets).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/accounts.list","input":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"accounts.get","tool":"accounts_get","title":"Chi tiết tài khoản Zalo","description":"One Zalo account: session, restriction, sync stages, listener health, machine, proxy summary and policy version.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/accounts.get","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.usage.get","tool":"accounts_usage_get","title":"Lượt dùng và hạn mức đang áp","description":"The account's saved action policy (limits, schedule, pacing, warm-up), what is in force now, today's usage per task and the machine's pacing support.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/accounts.usage.get","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.logs.list","tool":"accounts_logs_list","title":"Nhật ký tài khoản","description":"Recent events of an account (login, session changes, sync, restrictions, moves).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/accounts.logs.list","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.create","tool":"accounts_create","title":"Thêm tài khoản Zalo","description":"Create a Zalo account slot on a machine with a proxy (or direct IP when allowed). Then start a QR login with accounts_login_qr_start.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.create","input":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"label":{"type":"string","maxLength":40,"nullable":true,"default":null},"assigneeId":{"type":"string","format":"uuid","nullable":true,"default":null},"agentId":{"type":"string","format":"uuid"},"proxyId":{"type":"string","format":"uuid","nullable":true},"directIp":{"type":"boolean","default":false}},"required":["name","agentId","proxyId"],"additionalProperties":false}},{"id":"accounts.login_qr.start","tool":"accounts_login_qr_start","title":"Bắt đầu đăng nhập QR","description":"Start a QR login for an account. A human must scan the QR (from accounts_login_qr_status) with the Zalo phone app; the AI cannot approve it.","kind":"write","mode":"admin","run":"human","permissions":["read","admin"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.login_qr.start","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.login_qr.status","tool":"accounts_login_qr_status","title":"Trạng thái đăng nhập QR","description":"Current QR login state: waiting for scan (with QR image data URL), scanned, succeeded, expired or failed.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/accounts.login_qr.status","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"jobId":{"type":"string","format":"uuid"}},"required":["accountId","jobId"],"additionalProperties":false}},{"id":"accounts.login_qr.cancel","tool":"accounts_login_qr_cancel","title":"Huỷ đăng nhập QR","description":"Cancel a pending QR login.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.login_qr.cancel","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"jobId":{"type":"string","format":"uuid"}},"required":["accountId","jobId"],"additionalProperties":false}},{"id":"accounts.pause","tool":"accounts_pause","title":"Tạm dừng tài khoản","description":"Pause an account: no new work is handed to its machine until resumed.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.pause","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.resume","tool":"accounts_resume","title":"Tiếp tục tài khoản","description":"Resume a paused account.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.resume","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.settings.update","tool":"accounts_settings_update","title":"Sửa cài đặt tài khoản","description":"Rename, relabel, set the default assignee or toggle friend auto-accept for an account.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.settings.update","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"name":{"type":"string","maxLength":120},"label":{"type":"string","maxLength":40,"nullable":true},"assigneeId":{"type":"string","format":"uuid","nullable":true},"autoAccept":{"type":"boolean"}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.policy.patch","tool":"accounts_policy_patch","title":"Sửa hạn mức & nhịp","description":"Change part of an account's action policy (per-task day/hour limits: null = unlimited, 0 = take no more; schedule; pacing; warm-up; per-conversation auto-send cap). Send the version you read (accounts_usage_get); a newer version returns conflict.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.policy.patch","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid"},"expectedVersion":{"type":"integer","minimum":0},"patch":{"type":"object","properties":{"quotas":{"type":"object","required":["friend_request","contact_lookup","message_stranger","message_friend","message_manual","group_join_link","group_add_member","group_post","friend_alias","friend_accept","profile_update","message_react","message_undo","message_delete","friend_reject","friend_undo_request","friend_remove","friend_block","friend_unblock","group_leave","group_create","group_admin","group_poll","group_note","group_reminder","group_invite","chat_settings"],"properties":{"friend_request":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"contact_lookup":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_stranger":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_friend":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_manual":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_join_link":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_add_member":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_post":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_alias":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_accept":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"profile_update":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_react":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_undo":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_delete":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_reject":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_undo_request":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_remove":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_block":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_unblock":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_leave":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_create":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_admin":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_poll":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_note":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_reminder":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_invite":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"chat_settings":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false}},"additionalProperties":false},"schedule":{"type":"object","properties":{"enabled":{"type":"boolean"},"hours":{"type":"object","properties":{"days":{"type":"array","items":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$|^24:00$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$|^24:00$"}},"required":["start","end"],"additionalProperties":false},"maxItems":4},"minItems":7,"maxItems":7}},"required":["days"],"additionalProperties":false,"nullable":true}},"additionalProperties":false},"campaignGap":{"type":"object","properties":{"enabled":{"type":"boolean"},"minSeconds":{"type":"integer"},"maxSeconds":{"type":"integer"}},"additionalProperties":false},"groupPostGap":{"type":"object","properties":{"enabled":{"type":"boolean"},"seconds":{"type":"integer"}},"additionalProperties":false},"sameGroupGap":{"type":"object","properties":{"enabled":{"type":"boolean"},"hours":{"type":"integer"}},"additionalProperties":false},"longBreak":{"type":"object","properties":{"enabled":{"type":"boolean"},"everyMin":{"type":"integer"},"everyMax":{"type":"integer"},"minMinutes":{"type":"integer"},"maxMinutes":{"type":"integer"}},"additionalProperties":false},"typing":{"type":"object","properties":{"send":{"type":"boolean"},"groupPost":{"type":"boolean"}},"additionalProperties":false},"warmup":{"type":"object","properties":{"enabled":{"type":"boolean"},"startedAt":{"type":"string","format":"date-time","nullable":true},"steps":{"type":"array","items":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365},"factor":{"type":"number","exclusiveMinimum":true,"minimum":0,"maximum":1},"banned":{"type":"array","items":{"type":"string","enum":["friend_request","contact_lookup","message_stranger","message_friend","message_manual","group_join_link","group_add_member","group_post","friend_alias","friend_accept","profile_update","message_react","message_undo","message_delete","friend_reject","friend_undo_request","friend_remove","friend_block","friend_unblock","group_leave","group_create","group_admin","group_poll","group_note","group_reminder","group_invite","chat_settings"]},"maxItems":27,"default":[]}},"required":["days","factor"],"additionalProperties":false}}},"additionalProperties":false},"autoSend":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false}},"additionalProperties":false}},"required":["accountId","expectedVersion","patch"],"additionalProperties":false}},{"id":"accounts.policy.bulk_patch","tool":"accounts_policy_bulk_patch","title":"Sửa hạn mức & nhịp nhiều tài khoản","description":"Apply policy patches to many accounts, each with its own expected version; returns a result per account (saved / conflict / forbidden).","kind":"write","mode":"setup","run":"bulk","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.policy.bulk_patch","input":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid"},"expectedVersion":{"type":"integer","minimum":0},"patch":{"type":"object","properties":{"quotas":{"type":"object","required":["friend_request","contact_lookup","message_stranger","message_friend","message_manual","group_join_link","group_add_member","group_post","friend_alias","friend_accept","profile_update","message_react","message_undo","message_delete","friend_reject","friend_undo_request","friend_remove","friend_block","friend_unblock","group_leave","group_create","group_admin","group_poll","group_note","group_reminder","group_invite","chat_settings"],"properties":{"friend_request":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"contact_lookup":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_stranger":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_friend":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_manual":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_join_link":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_add_member":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_post":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_alias":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_accept":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"profile_update":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_react":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_undo":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"message_delete":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_reject":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_undo_request":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_remove":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_block":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"friend_unblock":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_leave":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_create":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_admin":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_poll":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_note":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_reminder":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"group_invite":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false},"chat_settings":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false}},"additionalProperties":false},"schedule":{"type":"object","properties":{"enabled":{"type":"boolean"},"hours":{"type":"object","properties":{"days":{"type":"array","items":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$|^24:00$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$|^24:00$"}},"required":["start","end"],"additionalProperties":false},"maxItems":4},"minItems":7,"maxItems":7}},"required":["days"],"additionalProperties":false,"nullable":true}},"additionalProperties":false},"campaignGap":{"type":"object","properties":{"enabled":{"type":"boolean"},"minSeconds":{"type":"integer"},"maxSeconds":{"type":"integer"}},"additionalProperties":false},"groupPostGap":{"type":"object","properties":{"enabled":{"type":"boolean"},"seconds":{"type":"integer"}},"additionalProperties":false},"sameGroupGap":{"type":"object","properties":{"enabled":{"type":"boolean"},"hours":{"type":"integer"}},"additionalProperties":false},"longBreak":{"type":"object","properties":{"enabled":{"type":"boolean"},"everyMin":{"type":"integer"},"everyMax":{"type":"integer"},"minMinutes":{"type":"integer"},"maxMinutes":{"type":"integer"}},"additionalProperties":false},"typing":{"type":"object","properties":{"send":{"type":"boolean"},"groupPost":{"type":"boolean"}},"additionalProperties":false},"warmup":{"type":"object","properties":{"enabled":{"type":"boolean"},"startedAt":{"type":"string","format":"date-time","nullable":true},"steps":{"type":"array","items":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365},"factor":{"type":"number","exclusiveMinimum":true,"minimum":0,"maximum":1},"banned":{"type":"array","items":{"type":"string","enum":["friend_request","contact_lookup","message_stranger","message_friend","message_manual","group_join_link","group_add_member","group_post","friend_alias","friend_accept","profile_update","message_react","message_undo","message_delete","friend_reject","friend_undo_request","friend_remove","friend_block","friend_unblock","group_leave","group_create","group_admin","group_poll","group_note","group_reminder","group_invite","chat_settings"]},"maxItems":27,"default":[]}},"required":["days","factor"],"additionalProperties":false}}},"additionalProperties":false},"autoSend":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true},"hour":{"type":"integer","minimum":0,"maximum":2147483647,"nullable":true}},"additionalProperties":false}},"additionalProperties":false}},"required":["accountId","expectedVersion","patch"],"additionalProperties":false},"minItems":1,"maxItems":200}},"required":["items"],"additionalProperties":false}},{"id":"accounts.resync","tool":"accounts_resync","title":"Đồng bộ lại từ Zalo","description":"Re-run the staged sync (profile, friends, groups, labels, requests, history) or only the failed stages.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.resync","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"onlyFailed":{"type":"boolean","default":false}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.profile.update","tool":"accounts_profile_update","title":"Sửa hồ sơ Zalo","description":"Change the account's Zalo display name, bio and/or profile picture on Zalo (picture: upload with media_upload_create, then pass its storagePath as avatarStoragePath).","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.profile.update","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"name":{"type":"string","maxLength":50},"bio":{"type":"string","maxLength":200},"avatarStoragePath":{"type":"string","minLength":3,"maxLength":500,"description":"storagePath of an image uploaded with media_upload_create."}},"required":["accountId"],"additionalProperties":false}},{"id":"accounts.proxy.attach","tool":"accounts_proxy_attach","title":"Gắn / đổi / bỏ proxy","description":"Attach a proxy to an account (one proxy per account), change it, or detach with proxyId=null.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.proxy.attach","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"proxyId":{"type":"string","format":"uuid","nullable":true},"confirmNonVn":{"type":"boolean"}},"required":["accountId","proxyId"],"additionalProperties":false}},{"id":"accounts.machine.move","tool":"accounts_machine_move","title":"Chuyển tài khoản sang máy khác","description":"Move an account to another machine (and proxy). The session is removed from the old machine; a new QR login may be needed.","kind":"write","mode":"admin","run":"job","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.machine.move","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"agentId":{"type":"string","format":"uuid"},"proxyId":{"type":"string","format":"uuid","nullable":true},"directIp":{"type":"boolean","default":false}},"required":["accountId","agentId","proxyId"],"additionalProperties":false}},{"id":"accounts.remove","tool":"accounts_remove","title":"Gỡ tài khoản Zalo","description":"Remove an account from the workspace (optionally its chat history). Cannot be undone.","kind":"destructive","mode":"admin","run":"job","permissions":["read","admin","destructive"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/accounts.remove","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."},"deleteHistory":{"type":"boolean"}},"required":["accountId","deleteHistory"],"additionalProperties":false}},{"id":"accounts.session.check","tool":"accounts_session_check","title":"Kiểm tra phiên","description":"Ask the machine to verify the account's Zalo session now.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/accounts.session.check","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id (from accounts_list)."}},"required":["accountId"],"additionalProperties":false}},{"id":"proxies.list","tool":"proxies_list","title":"Danh sách proxy","description":"List proxies with status, observed exit IP/country, expiry and the account using each (passwords are never returned).","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/proxies.list","input":{"type":"object","properties":{"status":{"type":"string","enum":["ok","error","unchecked"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"proxies.get","tool":"proxies_get","title":"Chi tiết proxy","description":"One proxy with status, exit IP/country, expiry and the account using it (never the password).","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/proxies.get","input":{"type":"object","properties":{"proxyId":{"type":"string","format":"uuid"}},"required":["proxyId"],"additionalProperties":false}},{"id":"proxies.add","tool":"proxies_add","title":"Thêm proxy","description":"Add one proxy (password is write-only) and optionally check it through a machine.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/proxies.add","input":{"type":"object","properties":{"proxy":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","socks5"]},"host":{"type":"string","minLength":1,"maxLength":255},"port":{"type":"integer","minimum":1,"maximum":65535},"username":{"type":"string","maxLength":255,"nullable":true},"password":{"type":"string","maxLength":255,"nullable":true}},"required":["protocol","host","port","username","password"],"additionalProperties":false},"meta":{"type":"object","properties":{"provider":{"type":"string","maxLength":80,"nullable":true},"country":{"type":"string","maxLength":2,"nullable":true},"city":{"type":"string","maxLength":80,"nullable":true},"label":{"type":"string","maxLength":80,"nullable":true},"expiresOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true}},"additionalProperties":false,"default":{}},"check":{"type":"boolean","default":true}},"required":["proxy"],"additionalProperties":false}},{"id":"proxies.import","tool":"proxies_import","title":"Nhập nhiều proxy","description":"Import proxies from text (one per line, host:port:user:pass or URL form).","kind":"write","mode":"admin","run":"bulk","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/proxies.import","input":{"type":"object","properties":{"text":{"type":"string","maxLength":200000},"defaultProtocol":{"type":"string","enum":["http","socks5"]},"meta":{"type":"object","properties":{"provider":{"type":"string","maxLength":80,"nullable":true},"country":{"type":"string","maxLength":2,"nullable":true},"city":{"type":"string","maxLength":80,"nullable":true},"label":{"type":"string","maxLength":80,"nullable":true},"expiresOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true}},"additionalProperties":false,"default":{}}},"required":["text","defaultProtocol"],"additionalProperties":false}},{"id":"proxies.update","tool":"proxies_update","title":"Sửa proxy","description":"Change a proxy's endpoint, credentials (write-only) or labels.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/proxies.update","input":{"type":"object","properties":{"proxyId":{"type":"string","format":"uuid"},"proxy":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","socks5"]},"host":{"type":"string","minLength":1,"maxLength":255},"port":{"type":"integer","minimum":1,"maximum":65535},"username":{"type":"string","maxLength":255,"nullable":true}},"additionalProperties":false},"passwordChange":{"type":"object","properties":{"password":{"type":"string","maxLength":255,"nullable":true}},"required":["password"],"additionalProperties":false},"meta":{"type":"object","properties":{"provider":{"type":"string","maxLength":80,"nullable":true},"country":{"type":"string","maxLength":2,"nullable":true},"city":{"type":"string","maxLength":80,"nullable":true},"label":{"type":"string","maxLength":80,"nullable":true},"expiresOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true}},"additionalProperties":false,"default":{}}},"required":["proxyId"],"additionalProperties":false}},{"id":"proxies.check","tool":"proxies_check","title":"Kiểm tra proxy","description":"Check a proxy through a machine: reachability, exit IP, country, latency.","kind":"write","mode":"admin","run":"job","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/proxies.check","input":{"type":"object","properties":{"proxyId":{"type":"string","format":"uuid"}},"required":["proxyId"],"additionalProperties":false}},{"id":"proxies.ip_change.confirm","tool":"proxies_ip_change_confirm","title":"Xác nhận IP proxy đã đổi","description":"Acknowledge that a proxy's exit IP changed (only a warning; never blocks the account).","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"owner","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/proxies.ip_change.confirm","input":{"type":"object","properties":{"proxyId":{"type":"string","format":"uuid"}},"required":["proxyId"],"additionalProperties":false}},{"id":"proxies.delete","tool":"proxies_delete","title":"Xoá proxy","description":"Delete a proxy that no account uses.","kind":"destructive","mode":"admin","run":"sync","permissions":["read","admin","destructive"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/proxies.delete","input":{"type":"object","properties":{"proxyId":{"type":"string","format":"uuid"}},"required":["proxyId"],"additionalProperties":false}},{"id":"machines.list","tool":"machines_list","title":"Danh sách máy chủ","description":"List machines running the Zalo Auto agent: status, OS, version, update channel, CPU/RAM, accounts and capacity.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/machines.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"machines.get","tool":"machines_get","title":"Chi tiết máy","description":"One machine with health metrics, update state, accounts on it and the latest diagnostics summary.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/machines.get","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"}},"required":["agentId"],"additionalProperties":false}},{"id":"machines.releases.latest","tool":"machines_releases_latest","title":"Bản agent mới nhất","description":"Newest stable agent version, to see which machines need an update.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/machines.releases.latest","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"machines.pairing.create","tool":"machines_pairing_create","title":"Tạo lệnh cài máy","description":"Create a one-time install command (Windows, Linux or Docker) that pairs a new machine. Shown once; expires soon.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/machines.pairing.create","input":{"type":"object","properties":{"platform":{"type":"string","enum":["windows","linux","docker"]}},"required":["platform"],"additionalProperties":false}},{"id":"machines.rename","tool":"machines_rename","title":"Đổi tên máy","description":"Rename a machine.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/machines.rename","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["agentId","name"],"additionalProperties":false}},{"id":"machines.restart_agent","tool":"machines_restart_agent","title":"Khởi động lại agent","description":"Restart the agent process on a machine (never reboots the host).","kind":"write","mode":"admin","run":"job","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/machines.restart_agent","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"}},"required":["agentId"],"additionalProperties":false}},{"id":"machines.logs.request","tool":"machines_logs_request","title":"Lấy nhật ký máy","description":"Ask the machine for a redacted recent log excerpt; read it with machines_get after a few seconds.","kind":"write","mode":"admin","run":"job","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/machines.logs.request","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"}},"required":["agentId"],"additionalProperties":false}},{"id":"machines.update_channel.set","tool":"machines_update_channel_set","title":"Đổi kênh cập nhật","description":"Put a machine on the stable or beta agent channel.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/machines.update_channel.set","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"},"channel":{"type":"string","enum":["stable","beta"]}},"required":["agentId","channel"],"additionalProperties":false}},{"id":"machines.rollback","tool":"machines_rollback","title":"Quay về bản agent trước","description":"Roll a machine back to its previous agent version.","kind":"write","mode":"admin","run":"job","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/machines.rollback","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"}},"required":["agentId"],"additionalProperties":false}},{"id":"machines.revoke","tool":"machines_revoke","title":"Thu hồi máy","description":"Revoke a machine's token: it stops receiving work immediately. Cannot be undone (pair again).","kind":"destructive","mode":"admin","run":"sync","permissions":["read","admin","destructive"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/machines.revoke","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"},"reason":{"type":"string","maxLength":300,"default":""}},"required":["agentId"],"additionalProperties":false}},{"id":"machines.delete","tool":"machines_delete","title":"Xoá máy","description":"Delete a revoked/offline machine record.","kind":"destructive","mode":"admin","run":"sync","permissions":["read","admin","destructive"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/machines.delete","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"}},"required":["agentId"],"additionalProperties":false}},{"id":"hetzner.options","tool":"hetzner_options","title":"Tuỳ chọn máy Hetzner","description":"Locations, server types and prices available with the workspace's Hetzner token.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/hetzner.options","input":{"type":"object","properties":{"source":{"type":"string","enum":["hetzner_platform","hetzner_byo"],"default":"hetzner_byo"},"credentialId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false}},{"id":"hetzner.servers.create","tool":"hetzner_servers_create","title":"Tạo máy Hetzner","description":"Create a Hetzner server that installs the agent automatically. Costs money on the Hetzner account — confirmation required.","kind":"destructive","mode":"admin","run":"job","permissions":["read","admin","destructive"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/hetzner.servers.create","input":{"type":"object","properties":{"source":{"type":"string","enum":["hetzner_platform","hetzner_byo"],"default":"hetzner_byo"},"credentialId":{"type":"string","format":"uuid","nullable":true},"location":{"type":"string","maxLength":20},"serverType":{"type":"string","maxLength":20},"name":{"type":"string","maxLength":60}},"required":["location","serverType","name"],"additionalProperties":false}},{"id":"hetzner.servers.status","tool":"hetzner_servers_status","title":"Tiến trình máy Hetzner","description":"Refresh and read the provisioning progress of a Hetzner machine.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/hetzner.servers.status","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"}},"required":["agentId"],"additionalProperties":false}},{"id":"hetzner.servers.delete","tool":"hetzner_servers_delete","title":"Xoá máy Hetzner","description":"Delete the Hetzner server behind a machine. Cannot be undone.","kind":"destructive","mode":"admin","run":"job","permissions":["read","admin","destructive"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/hetzner.servers.delete","input":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"}},"required":["agentId"],"additionalProperties":false}},{"id":"friends.list","tool":"friends_list","title":"Danh sách bạn bè","description":"List an account's Zalo friends (as CRM contacts with relation, alias, friend since, last in/out).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/friends.list","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"search":{"type":"string","maxLength":100},"relation":{"type":"string","enum":["friend","request_sent","request_received","stranger","blocked"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["accountId"],"additionalProperties":false}},{"id":"friends.requests.list","tool":"friends_requests_list","title":"Lời mời kết bạn","description":"List incoming or outgoing friend requests of an account.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/friends.requests.list","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"direction":{"type":"string","enum":["incoming","outgoing"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["accountId","direction"],"additionalProperties":false}},{"id":"friends.request.send","tool":"friends_request_send","title":"Gửi lời mời kết bạn","description":"Send friend requests from one account to CRM contacts (ids or a filter) with a greeting (spintax supported). Each request is a queued job under the account's limits.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.request.send","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":2000},"filter":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"labelMode":{"type":"string","enum":["any","all"],"default":"any"},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"noStage":{"type":"boolean"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"sources":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"accountId":{"type":"string","format":"uuid"},"relations":{"type":"array","items":{"type":"string","enum":["stranger","request_sent","request_received","friend","blocked"]},"maxItems":5},"hasPhone":{"type":"boolean"},"hasZalo":{"type":"boolean"},"dnc":{"type":"string","enum":["exclude","only","include"],"default":"include"},"interactedWithinDays":{"type":"integer","minimum":1,"maximum":3650},"notInteractedDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false},"message":{"type":"string","maxLength":600}},"required":["accountId","message"],"additionalProperties":false}},{"id":"friends.request.accept","tool":"friends_request_accept","title":"Chấp nhận kết bạn","description":"Accept incoming friend requests.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.request.accept","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":200,"description":"Zalo user ids of the account's friends/requesters."}},"required":["accountId","uids"],"additionalProperties":false}},{"id":"friends.request.reject","tool":"friends_request_reject","title":"Từ chối kết bạn","description":"Reject incoming friend requests.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.request.reject","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":200,"description":"Zalo user ids of the account's friends/requesters."}},"required":["accountId","uids"],"additionalProperties":false}},{"id":"friends.request.withdraw","tool":"friends_request_withdraw","title":"Rút lời mời","description":"Withdraw friend requests this account sent.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.request.withdraw","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":200,"description":"Zalo user ids of the account's friends/requesters."}},"required":["accountId","uids"],"additionalProperties":false}},{"id":"friends.remove","tool":"friends_remove","title":"Huỷ kết bạn","description":"Unfriend users (they must accept a new request to be friends again).","kind":"destructive","mode":"direct","run":"bulk","permissions":["read","zalo","destructive"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/friends.remove","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":200,"description":"Zalo user ids of the account's friends/requesters."}},"required":["accountId","uids"],"additionalProperties":false}},{"id":"friends.block","tool":"friends_block","title":"Chặn","description":"Block users on Zalo.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.block","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":200,"description":"Zalo user ids of the account's friends/requesters."}},"required":["accountId","uids"],"additionalProperties":false}},{"id":"friends.unblock","tool":"friends_unblock","title":"Bỏ chặn","description":"Unblock users on Zalo.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.unblock","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":200,"description":"Zalo user ids of the account's friends/requesters."}},"required":["accountId","uids"],"additionalProperties":false}},{"id":"friends.alias.set","tool":"friends_alias_set","title":"Đặt tên gợi nhớ","description":"Set Zalo aliases for many friends from a template (variables like {name}).","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.alias.set","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":2000},"template":{"type":"string","minLength":1,"maxLength":80}},"required":["accountId","contactIds","template"],"additionalProperties":false}},{"id":"friends.suggestions.list","tool":"friends_suggestions_list","title":"Gợi ý kết bạn","description":"Ask Zalo for friend suggestions of an account.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/friends.suggestions.list","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."}},"required":["accountId"],"additionalProperties":false}},{"id":"friends.suggestion.add_to_crm","tool":"friends_suggestion_add_to_crm","title":"Đưa gợi ý vào danh bạ","description":"Save a suggested Zalo user as a CRM contact (does not send a friend request).","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.suggestion.add_to_crm","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."},"name":{"type":"string","maxLength":120},"avatar":{"type":"string","format":"uri","nullable":true}},"required":["accountId","uid","name","avatar"],"additionalProperties":false}},{"id":"friends.export","tool":"friends_export","title":"Xuất danh sách bạn bè","description":"Export an account's friends as rows (name, phone, uid, alias, friend since).","kind":"read","mode":"observe","run":"sync","permissions":["read","export"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/friends.export","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."}},"required":["accountId"],"additionalProperties":false}},{"id":"friends.auto_accept.get","tool":"friends_auto_accept_get","title":"Xem tự chấp nhận kết bạn","description":"Read the account's automatic friend-accept rule.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/friends.auto_accept.get","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."}},"required":["accountId"],"additionalProperties":false}},{"id":"friends.auto_accept.set","tool":"friends_auto_accept_set","title":"Sửa tự chấp nhận kết bạn","description":"Change the account's automatic friend-accept rule (labels, greeting, stale request withdrawal).","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.auto_accept.set","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"rule":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"mode":{"type":"string","enum":["all","known_phone","label"],"default":"known_phone"},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"dailyCap":{"type":"integer","minimum":1,"maximum":200,"default":30},"undoAfterDays":{"type":"integer","minimum":0,"maximum":90,"default":14}},"additionalProperties":false}},"required":["accountId","rule"],"additionalProperties":false}},{"id":"groups.list","tool":"groups_list","title":"Danh sách nhóm","description":"List Zalo groups of the caller's accounts with member count, our role and invite link.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.list","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid"},"search":{"type":"string","maxLength":100},"includeLeft":{"type":"boolean","default":false},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"groups.get","tool":"groups_get","title":"Chi tiết nhóm","description":"One group with settings, our role (owner/deputy/member), link and last sync.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.get","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.members.list","tool":"groups_members_list","title":"Thành viên nhóm","description":"List cached members of a group (sync first with groups_members_sync for fresh data).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.members.list","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"search":{"type":"string","maxLength":100},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.members.sync","tool":"groups_members_sync","title":"Đồng bộ thành viên nhóm","description":"Refresh a group's member list from Zalo.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.members.sync","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.link.preview","tool":"groups_link_preview","title":"Xem nhóm qua link","description":"Preview a Zalo group invite link (name, members, approval needed).","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.link.preview","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"link":{"type":"string","minLength":8,"maxLength":300}},"required":["accountId","link"],"additionalProperties":false}},{"id":"groups.join_link","tool":"groups_join_link","title":"Tham gia nhóm qua link","description":"Join one or many groups by invite links (newline separated). Some groups need admin approval: the result says joined or pending.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.join_link","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"links":{"type":"string","minLength":8,"maxLength":20000}},"required":["accountId","links"],"additionalProperties":false}},{"id":"groups.create","tool":"groups_create","title":"Tạo nhóm","description":"Create a Zalo group with friends of the account.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.create","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"name":{"type":"string","minLength":1,"maxLength":100},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":100}},"required":["accountId","name","contactIds"],"additionalProperties":false}},{"id":"groups.open_chat","tool":"groups_open_chat","title":"Mở chat nhóm","description":"Open (or create) the inbox conversation of a group.","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.open_chat","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.members.add","tool":"groups_members_add","title":"Thêm thành viên","description":"Add friends of the account to a group (Zalo privacy may refuse some).","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.members.add","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":500}},"required":["groupRowId","contactIds"],"additionalProperties":false}},{"id":"groups.members.import_to_crm","tool":"groups_members_import_to_crm","title":"Đưa thành viên nhóm vào danh bạ","description":"Import members of a group this account owns/administers into CRM (optional label). Not allowed for other people's groups.","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.members.import_to_crm","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"labelId":{"type":"string","format":"uuid","nullable":true},"confirmed":{"type":"boolean"}},"required":["groupRowId","labelId","confirmed"],"additionalProperties":false}},{"id":"groups.rename","tool":"groups_rename","title":"Đổi tên nhóm","description":"Rename a group (needs owner/deputy on Zalo).","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.rename","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"name":{"type":"string","minLength":1,"maxLength":200}},"required":["groupRowId","name"],"additionalProperties":false}},{"id":"groups.avatar.update","tool":"groups_avatar_update","title":"Đổi ảnh nhóm","description":"Change a group's avatar from an image URL (needs owner/deputy).","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.avatar.update","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"avatarUrl":{"type":"string","format":"uri","maxLength":500}},"required":["groupRowId","avatarUrl"],"additionalProperties":false}},{"id":"groups.settings.update","tool":"groups_settings_update","title":"Đổi cài đặt nhóm","description":"Change Zalo group settings (who may post, approve members, etc.).","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.settings.update","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"settings":{"type":"object","additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"number"},{"type":"string"}]}}},"required":["groupRowId","settings"],"additionalProperties":false}},{"id":"groups.deputy.add","tool":"groups_deputy_add","title":"Thêm phó nhóm","description":"Promote a member to deputy.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.deputy.add","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."}},"required":["groupRowId","uid"],"additionalProperties":false}},{"id":"groups.deputy.remove","tool":"groups_deputy_remove","title":"Bỏ phó nhóm","description":"Demote a deputy.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.deputy.remove","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."}},"required":["groupRowId","uid"],"additionalProperties":false}},{"id":"groups.pending.approve","tool":"groups_pending_approve","title":"Duyệt người xin vào","description":"Approve a pending join request.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.pending.approve","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."}},"required":["groupRowId","uid"],"additionalProperties":false}},{"id":"groups.pending.reject","tool":"groups_pending_reject","title":"Từ chối người xin vào","description":"Reject a pending join request.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.pending.reject","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."}},"required":["groupRowId","uid"],"additionalProperties":false}},{"id":"groups.member.remove","tool":"groups_member_remove","title":"Mời ra khỏi nhóm","description":"Remove a member from the group.","kind":"destructive","mode":"direct","run":"job","permissions":["read","zalo","destructive"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/groups.member.remove","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."}},"required":["groupRowId","uid"],"additionalProperties":false}},{"id":"groups.member.block","tool":"groups_member_block","title":"Chặn khỏi nhóm","description":"Block a member from the group.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.member.block","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."}},"required":["groupRowId","uid"],"additionalProperties":false}},{"id":"groups.link.enable","tool":"groups_link_enable","title":"Bật link mời","description":"Enable the group's invite link.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.link.enable","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.link.disable","tool":"groups_link_disable","title":"Tắt link mời","description":"Disable the group's invite link.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.link.disable","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.leave","tool":"groups_leave","title":"Rời nhóm","description":"Leave a group with this account.","kind":"destructive","mode":"direct","run":"job","permissions":["read","zalo","destructive"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/groups.leave","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.disband","tool":"groups_disband","title":"Giải tán nhóm","description":"Disband a group the account owns. Type the group name as confirmName.","kind":"destructive","mode":"direct","run":"job","permissions":["read","zalo","destructive"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/groups.disband","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"confirmName":{"type":"string","maxLength":200}},"required":["groupRowId","confirmName"],"additionalProperties":false}},{"id":"groups.poll.create","tool":"groups_poll_create","title":"Tạo bình chọn","description":"Create a poll in a group: multiple choice, expiry, and (agent 1.4.0) members adding options, results hidden until one votes, anonymous voters.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.poll.create","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"question":{"type":"string","minLength":1,"maxLength":200},"options":{"type":"array","items":{"type":"string","maxLength":100},"minItems":2,"maxItems":20},"allowMultiple":{"type":"boolean","default":false},"expiresAt":{"type":"integer","nullable":true,"default":null},"allowAddNewOption":{"type":"boolean","default":false,"description":"Members may add options (agent 1.4.0)."},"hideVotePreview":{"type":"boolean","default":false,"description":"Results hidden until the member votes (agent 1.4.0)."},"isAnonymous":{"type":"boolean","default":false,"description":"Voters are hidden (agent 1.4.0)."}},"required":["groupRowId","question","options"],"additionalProperties":false}},{"id":"groups.note.create","tool":"groups_note_create","title":"Tạo ghi chú nhóm","description":"Create (and pin) a note in a group.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.note.create","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"title":{"type":"string","minLength":1,"maxLength":2000}},"required":["groupRowId","title"],"additionalProperties":false}},{"id":"reminders.create","tool":"reminders_create","title":"Tạo nhắc hẹn","description":"Create a reminder in a group (groupRowId) or in a conversation (conversationId: a group chat, or 1:1 with agent 1.4.0); start time in ms epoch, repeat none/daily/weekly/monthly.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/reminders.create","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"conversationId":{"type":"string","format":"uuid","description":"A conversation (from inbox_conversations_list): 1:1 or group chat."},"title":{"type":"string","minLength":1,"maxLength":200},"startTime":{"type":"integer"},"repeat":{"type":"string","enum":["none","daily","weekly","monthly"]}},"required":["title","startTime","repeat"],"additionalProperties":false}},{"id":"friends.alias.remove","tool":"friends_alias_remove","title":"Bỏ tên gợi nhớ","description":"Remove Zalo aliases of friends.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/friends.alias.remove","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uids":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":200,"description":"Zalo user ids of the account's friends/requesters."}},"required":["accountId","uids"],"additionalProperties":false}},{"id":"friends.request.status","tool":"friends_request_status","title":"Trạng thái lời mời","description":"Check whether a friend request to a user is pending, accepted or none.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/friends.request.status","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."}},"required":["accountId","uid"],"additionalProperties":false}},{"id":"users.lookup_phone","tool":"users_lookup_phone","title":"Tra số Zalo","description":"Look up one phone number on Zalo (counts toward the account's lookup limit).","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/users.lookup_phone","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"phone":{"type":"string","minLength":8,"maxLength":20}},"required":["accountId","phone"],"additionalProperties":false}},{"id":"users.lookup_phones","tool":"users_lookup_phones","title":"Tra nhiều số","description":"Look up many phone numbers at once; one result per number.","kind":"read","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/users.lookup_phones","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"phones":{"type":"array","items":{"type":"string","minLength":8,"maxLength":20},"minItems":1,"maxItems":200}},"required":["accountId","phones"],"additionalProperties":false}},{"id":"users.lookup_username","tool":"users_lookup_username","title":"Tra theo username","description":"Find a Zalo user by username.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/users.lookup_username","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"username":{"type":"string","minLength":2,"maxLength":60}},"required":["accountId","username"],"additionalProperties":false}},{"id":"users.online_status","tool":"users_online_status","title":"Trạng thái online","description":"Which friends are online now and when given users were last online (if Zalo shares it).","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/users.online_status","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uids":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20,"default":[],"description":"Up to 20 users to read last-online time for (only if they share it)."}},"required":["accountId"],"additionalProperties":false}},{"id":"groups.pending.list","tool":"groups_pending_list","title":"Người chờ duyệt","description":"List pending join requests of a group.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.pending.list","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.blocked.list","tool":"groups_blocked_list","title":"Người bị chặn khỏi nhóm","description":"List members blocked from a group.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.blocked.list","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.member.unblock","tool":"groups_member_unblock","title":"Bỏ chặn khỏi nhóm","description":"Unblock a user from a group.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.member.unblock","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."}},"required":["groupRowId","uid"],"additionalProperties":false}},{"id":"groups.owner.transfer","tool":"groups_owner_transfer","title":"Chuyển trưởng nhóm","description":"Transfer group ownership to a member. Type the group name as confirmName.","kind":"destructive","mode":"direct","run":"job","permissions":["read","zalo","destructive"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/groups.owner.transfer","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."},"confirmName":{"type":"string","maxLength":200}},"required":["groupRowId","uid","confirmName"],"additionalProperties":false}},{"id":"groups.link.detail","tool":"groups_link_detail","title":"Chi tiết link mời","description":"Read the group's current invite link and its settings.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.link.detail","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.invites.list","tool":"groups_invites_list","title":"Lời mời vào nhóm","description":"List group invitations this account received.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.invites.list","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."}},"required":["accountId"],"additionalProperties":false}},{"id":"groups.invites.accept","tool":"groups_invites_accept","title":"Nhận lời mời vào nhóm","description":"Accept a received group invitation.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.invites.accept","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"zaloGroupId":{"type":"string","maxLength":40},"name":{"type":"string","maxLength":200,"description":"Group name from groups_invites_list, shown until the next sync."}},"required":["accountId","zaloGroupId"],"additionalProperties":false}},{"id":"groups.invites.decline","tool":"groups_invites_decline","title":"Từ chối lời mời vào nhóm","description":"Decline a received group invitation (optionally block further invitations from that group).","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.invites.decline","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"zaloGroupId":{"type":"string","maxLength":40},"blockFuture":{"type":"boolean","default":false,"description":"Also block further invitations from this group."}},"required":["accountId","zaloGroupId"],"additionalProperties":false}},{"id":"groups.invite_to_groups","tool":"groups_invite_to_groups","title":"Mời một người vào nhiều nhóm","description":"Invite one user to several groups of the account.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.invite_to_groups","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid","description":"Zalo account id."},"uid":{"type":"string","minLength":1,"maxLength":40,"description":"Zalo user id."},"groupRowIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":50}},"required":["accountId","uid","groupRowIds"],"additionalProperties":false}},{"id":"groups.board.list","tool":"groups_board_list","title":"Bảng tin nhóm","description":"List notes and polls on a group's board.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.board.list","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."}},"required":["groupRowId"],"additionalProperties":false}},{"id":"groups.poll.get","tool":"groups_poll_get","title":"Xem bình chọn","description":"Read a poll's options and votes.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/groups.poll.get","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"pollId":{"type":"integer"}},"required":["groupRowId","pollId"],"additionalProperties":false}},{"id":"groups.poll.add_options","tool":"groups_poll_add_options","title":"Thêm phương án","description":"Add options to a poll.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.poll.add_options","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"pollId":{"type":"integer"},"options":{"type":"array","items":{"type":"string","maxLength":100},"minItems":1,"maxItems":10}},"required":["groupRowId","pollId","options"],"additionalProperties":false}},{"id":"groups.poll.vote","tool":"groups_poll_vote","title":"Bỏ phiếu","description":"Vote on a poll with this account.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.poll.vote","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"pollId":{"type":"integer"},"optionIds":{"type":"array","items":{"type":"integer"},"minItems":1,"maxItems":20}},"required":["groupRowId","pollId","optionIds"],"additionalProperties":false}},{"id":"groups.poll.share","tool":"groups_poll_share","title":"Chia sẻ bình chọn","description":"Share a poll into the group chat.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.poll.share","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"pollId":{"type":"integer"}},"required":["groupRowId","pollId"],"additionalProperties":false}},{"id":"groups.poll.lock","tool":"groups_poll_lock","title":"Khoá bình chọn","description":"Lock a poll so no more votes are accepted.","kind":"destructive","mode":"direct","run":"job","permissions":["read","zalo","destructive"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/groups.poll.lock","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"pollId":{"type":"integer"}},"required":["groupRowId","pollId"],"additionalProperties":false}},{"id":"groups.note.edit","tool":"groups_note_edit","title":"Sửa ghi chú nhóm","description":"Edit a group note.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/groups.note.edit","input":{"type":"object","properties":{"groupRowId":{"type":"string","format":"uuid","description":"Group id from groups_list (our row id, not the Zalo group id)."},"noteId":{"type":"string","maxLength":40},"title":{"type":"string","minLength":1,"maxLength":2000},"pinned":{"type":"boolean"}},"required":["groupRowId","noteId","title"],"additionalProperties":false}},{"id":"reminders.list","tool":"reminders_list","title":"Danh sách nhắc hẹn","description":"List reminders of a group or 1:1 conversation.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/reminders.list","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"}},"required":["conversationId"],"additionalProperties":false}},{"id":"reminders.get","tool":"reminders_get","title":"Chi tiết nhắc hẹn","description":"Read one reminder.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/reminders.get","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"reminderId":{"type":"string","maxLength":40}},"required":["conversationId","reminderId"],"additionalProperties":false}},{"id":"reminders.responses","tool":"reminders_responses","title":"Người tham gia nhắc hẹn","description":"Who accepted or declined a reminder.","kind":"read","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/reminders.responses","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"reminderId":{"type":"string","maxLength":40}},"required":["conversationId","reminderId"],"additionalProperties":false}},{"id":"reminders.edit","tool":"reminders_edit","title":"Sửa nhắc hẹn","description":"Edit a reminder's title, time or repeat.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/reminders.edit","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"reminderId":{"type":"string","maxLength":40},"title":{"type":"string","minLength":1,"maxLength":200},"startTime":{"type":"integer"},"repeat":{"type":"string","enum":["none","daily","weekly","monthly"]}},"required":["conversationId","reminderId","title","startTime","repeat"],"additionalProperties":false}},{"id":"reminders.remove","tool":"reminders_remove","title":"Xoá nhắc hẹn","description":"Delete a reminder.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"account","profileTitle":"Tài khoản & quan hệ","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/reminders.remove","input":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"reminderId":{"type":"string","maxLength":40}},"required":["conversationId","reminderId"],"additionalProperties":false}},{"id":"contacts.list","tool":"contacts_list","title":"Tìm khách hàng","description":"Search CRM contacts: text (name/phone), labels (any/all/exclude), stages, owners, lists, saved segment, Zalo account relation (friend/request/stranger), has phone/Zalo, do-not-contact, last interaction. Keyset paginated.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/contacts.list","input":{"type":"object","properties":{"filter":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"labelMode":{"type":"string","enum":["any","all"],"default":"any"},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"noStage":{"type":"boolean"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"sources":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"accountId":{"type":"string","format":"uuid"},"relations":{"type":"array","items":{"type":"string","enum":["stranger","request_sent","request_received","friend","blocked"]},"maxItems":5},"hasPhone":{"type":"boolean"},"hasZalo":{"type":"boolean"},"dnc":{"type":"string","enum":["exclude","only","include"],"default":"include"},"interactedWithinDays":{"type":"integer","minimum":1,"maximum":3650},"notInteractedDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false},"segmentId":{"type":"string","format":"uuid"},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"contacts.get","tool":"contacts_get","title":"Hồ sơ khách","description":"One contact with labels, stage, owner, custom fields, Zalo account links, notes, stage history and recent timeline.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/contacts.get","input":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"}},"required":["contactId"],"additionalProperties":false}},{"id":"contacts.create","tool":"contacts_create","title":"Thêm khách","description":"Create a CRM contact (rejects a duplicate phone; returns the existing id).","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.create","input":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"phone":{"type":"string","maxLength":30,"nullable":true,"default":null},"ownerId":{"type":"string","format":"uuid","nullable":true,"default":null},"stageId":{"type":"string","format":"uuid","nullable":true,"default":null},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"default":[]}},"required":["name"],"additionalProperties":false}},{"id":"contacts.update","tool":"contacts_update","title":"Sửa khách","description":"Change contact fields: name, phone, gender, birthday, owner, deal value, custom fields.","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.update","input":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":120},"phone":{"type":"string","maxLength":30,"nullable":true},"gender":{"type":"string","enum":["male","female","other"],"nullable":true},"birthday":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true},"ownerId":{"type":"string","format":"uuid","nullable":true},"dealValue":{"type":"number","minimum":0,"maximum":10000000000000,"nullable":true},"custom":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":500},{"type":"number"},{"enum":["null"],"nullable":true}]}}},"required":["contactId"],"additionalProperties":false}},{"id":"contacts.labels.set","tool":"contacts_labels_set","title":"Gắn nhãn khách","description":"Replace a contact's labels.","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.labels.set","input":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50}},"required":["contactId","labelIds"],"additionalProperties":false}},{"id":"contacts.labels.bulk","tool":"contacts_labels_bulk","title":"Gắn / bỏ nhãn hàng loạt","description":"Add or remove one label on many contacts.","kind":"write","mode":"direct","run":"bulk","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.labels.bulk","input":{"type":"object","properties":{"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":1000},"labelId":{"type":"string","format":"uuid"},"add":{"type":"boolean"}},"required":["contactIds","labelId","add"],"additionalProperties":false}},{"id":"contacts.stage.set","tool":"contacts_stage_set","title":"Đổi giai đoạn","description":"Move a contact to a pipeline stage (null = none). Recorded in stage history.","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.stage.set","input":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"stageId":{"type":"string","format":"uuid","nullable":true}},"required":["contactId","stageId"],"additionalProperties":false}},{"id":"contacts.owner.set","tool":"contacts_owner_set","title":"Đổi người phụ trách","description":"Set (or clear with null) the workspace member responsible for a contact.","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.owner.set","input":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"ownerId":{"type":"string","format":"uuid","nullable":true}},"required":["contactId","ownerId"],"additionalProperties":false}},{"id":"contacts.note.add","tool":"contacts_note_add","title":"Thêm ghi chú khách","description":"Add a note to a contact.","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.note.add","input":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"content":{"type":"string","minLength":1,"maxLength":5000}},"required":["contactId","content"],"additionalProperties":false}},{"id":"contacts.note.edit","tool":"contacts_note_edit","title":"Sửa ghi chú khách","description":"Edit a contact note (null content deletes it).","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.note.edit","input":{"type":"object","properties":{"noteId":{"type":"string","format":"uuid"},"content":{"type":"string","maxLength":5000,"nullable":true}},"required":["noteId","content"],"additionalProperties":false}},{"id":"contacts.dnc.set","tool":"contacts_dnc_set","title":"Không liên hệ","description":"Put a contact on (or off) the do-not-contact list; campaigns and automation skip them.","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.dnc.set","input":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"dnc":{"type":"boolean"},"reason":{"type":"string","maxLength":200}},"required":["contactId","dnc"],"additionalProperties":false}},{"id":"contacts.lists.add","tool":"contacts_lists_add","title":"Thêm vào danh sách","description":"Add contacts to a static list.","kind":"write","mode":"direct","run":"bulk","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.lists.add","input":{"type":"object","properties":{"listId":{"type":"string","format":"uuid"},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":1000}},"required":["listId","contactIds"],"additionalProperties":false}},{"id":"contacts.lists.remove","tool":"contacts_lists_remove","title":"Bỏ khỏi danh sách","description":"Remove contacts from a static list.","kind":"write","mode":"direct","run":"bulk","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.lists.remove","input":{"type":"object","properties":{"listId":{"type":"string","format":"uuid"},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":1000}},"required":["listId","contactIds"],"additionalProperties":false}},{"id":"contacts.delete","tool":"contacts_delete","title":"Xoá khách","description":"Delete contacts and their CRM data. Cannot be undone.","kind":"destructive","mode":"direct","run":"bulk","permissions":["read","crm","destructive"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/contacts.delete","input":{"type":"object","properties":{"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":1000}},"required":["contactIds"],"additionalProperties":false}},{"id":"contacts.merge","tool":"contacts_merge","title":"Gộp khách trùng","description":"Merge duplicate contacts into one (keeps keepId). Cannot be undone.","kind":"destructive","mode":"direct","run":"sync","permissions":["read","crm","destructive"],"profile":"crm","profileTitle":"Khách hàng","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/contacts.merge","input":{"type":"object","properties":{"keepId":{"type":"string","format":"uuid"},"mergeIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":20}},"required":["keepId","mergeIds"],"additionalProperties":false}},{"id":"contacts.existing_phones","tool":"contacts_existing_phones","title":"Số đã có trong danh bạ","description":"Which of these +84 phone numbers already exist as contacts (for de-duplicating an import).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/contacts.existing_phones","input":{"type":"object","properties":{"phones":{"type":"array","items":{"type":"string","pattern":"^\\+84\\d{9}$"},"maxItems":20000}},"required":["phones"],"additionalProperties":false}},{"id":"contacts.import.start","tool":"contacts_import_start","title":"Bắt đầu nhập khách","description":"Start an import (file name, row count, column mapping, options). Then send rows with contacts_import_chunk and close with contacts_import_finish.","kind":"write","mode":"direct","run":"bulk","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.import.start","input":{"type":"object","properties":{"fileName":{"type":"string","maxLength":200},"total":{"type":"integer","minimum":1,"maximum":50000},"mapping":{"type":"object","additionalProperties":{"type":"string","maxLength":60}},"options":{"type":"object","properties":{"mode":{"type":"string","enum":["update","keep"]},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"listId":{"type":"string","format":"uuid","nullable":true},"source":{"type":"string","maxLength":40},"ownerId":{"type":"string","format":"uuid","nullable":true}},"required":["mode","labelIds","listId","source","ownerId"],"additionalProperties":false}},"required":["fileName","total","mapping","options"],"additionalProperties":false}},{"id":"contacts.import.chunk","tool":"contacts_import_chunk","title":"Gửi một phần dữ liệu nhập","description":"Send up to 500 rows of an import; returns created/updated/duplicate/invalid counts for the chunk.","kind":"write","mode":"direct","run":"bulk","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.import.chunk","input":{"type":"object","properties":{"importId":{"type":"string","format":"uuid"},"rows":{"type":"array","items":{"type":"object","properties":{"line":{"type":"integer"},"name":{"type":"string","maxLength":200},"phone":{"type":"string","maxLength":40},"custom":{"type":"object","additionalProperties":{"type":"string","maxLength":500}},"note":{"type":"string","maxLength":2000}},"required":["line","name","phone","custom"],"additionalProperties":false},"maxItems":500}},"required":["importId","rows"],"additionalProperties":false}},{"id":"contacts.import.finish","tool":"contacts_import_finish","title":"Kết thúc nhập khách","description":"Close an import (or mark it failed).","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.import.finish","input":{"type":"object","properties":{"importId":{"type":"string","format":"uuid"},"failed":{"type":"boolean"}},"required":["importId"],"additionalProperties":false}},{"id":"contacts.import.status","tool":"contacts_import_status","title":"Tiến độ nhập khách","description":"Read an import's counts and errors.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/contacts.import.status","input":{"type":"object","properties":{"importId":{"type":"string","format":"uuid"}},"required":["importId"],"additionalProperties":false}},{"id":"contacts.export","tool":"contacts_export","title":"Xuất khách","description":"Export contacts (ids or filter) as rows with all fields.","kind":"read","mode":"observe","run":"sync","permissions":["read","export"],"profile":"crm","profileTitle":"Khách hàng","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/contacts.export","input":{"type":"object","properties":{"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50000},"filter":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"labelMode":{"type":"string","enum":["any","all"],"default":"any"},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"noStage":{"type":"boolean"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"sources":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"accountId":{"type":"string","format":"uuid"},"relations":{"type":"array","items":{"type":"string","enum":["stranger","request_sent","request_received","friend","blocked"]},"maxItems":5},"hasPhone":{"type":"boolean"},"hasZalo":{"type":"boolean"},"dnc":{"type":"string","enum":["exclude","only","include"],"default":"include"},"interactedWithinDays":{"type":"integer","minimum":1,"maximum":3650},"notInteractedDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false}},"additionalProperties":false}},{"id":"contacts.enrich_phone","tool":"contacts_enrich_phone","title":"Kiểm tra Zalo theo số","description":"Look contacts' phone numbers up on Zalo through chosen accounts (queued, counts toward each account's lookup limit) to fill Zalo name/avatar/uid.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/contacts.enrich_phone","input":{"type":"object","properties":{"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5000},"filter":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"labelMode":{"type":"string","enum":["any","all"],"default":"any"},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"noStage":{"type":"boolean"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"sources":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"accountId":{"type":"string","format":"uuid"},"relations":{"type":"array","items":{"type":"string","enum":["stranger","request_sent","request_received","friend","blocked"]},"maxItems":5},"hasPhone":{"type":"boolean"},"hasZalo":{"type":"boolean"},"dnc":{"type":"string","enum":["exclude","only","include"],"default":"include"},"interactedWithinDays":{"type":"integer","minimum":1,"maximum":3650},"notInteractedDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":50},"force":{"type":"boolean","default":false}},"required":["accountIds"],"additionalProperties":false}},{"id":"crm.labels.list","tool":"crm_labels_list","title":"Danh sách nhãn","description":"List contact labels (CRM labels; Zalo-native labels are marked).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/crm.labels.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"crm.labels.save","tool":"crm_labels_save","title":"Tạo / sửa nhãn","description":"Create or rename/recolor a label.","kind":"write","mode":"setup","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/crm.labels.save","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":40},"color":{"type":"string","enum":["red","orange","yellow","green","blue","purple","gray"]},"expectedRevision":{"type":"integer","minimum":1,"description":"The `revision` you read; if it changed meanwhile the save answers conflict instead of overwriting."}},"required":["name","color"],"additionalProperties":false}},{"id":"crm.labels.delete","tool":"crm_labels_delete","title":"Xoá nhãn","description":"Xoá nhãn (cannot be undone).","kind":"destructive","mode":"setup","run":"sync","permissions":["read","crm","destructive"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/crm.labels.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"crm.stages.list","tool":"crm_stages_list","title":"Giai đoạn pipeline","description":"List pipeline stages in order with won/lost flags.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/crm.stages.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"crm.stages.save","tool":"crm_stages_save","title":"Sửa giai đoạn pipeline","description":"Replace the ordered pipeline stages (ids keep existing ones).","kind":"write","mode":"setup","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/crm.stages.save","input":{"type":"object","properties":{"stages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":40},"color":{"type":"string","enum":["red","orange","yellow","green","blue","purple","gray"]},"isWon":{"type":"boolean"},"isLost":{"type":"boolean"},"expectedRevision":{"type":"integer","minimum":1,"description":"The `revision` you read; if it changed meanwhile the save answers conflict instead of overwriting."}},"required":["name","color","isWon","isLost"],"additionalProperties":false},"minItems":1,"maxItems":20}},"required":["stages"],"additionalProperties":false}},{"id":"crm.stages.delete","tool":"crm_stages_delete","title":"Xoá giai đoạn","description":"Delete one pipeline stage that no contact is in (move them first); at least one stage stays.","kind":"destructive","mode":"setup","run":"sync","permissions":["read","crm","destructive"],"profile":"crm","profileTitle":"Khách hàng","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/crm.stages.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"crm.fields.list","tool":"crm_fields_list","title":"Trường tuỳ chỉnh","description":"List custom contact fields.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/crm.fields.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"crm.fields.save","tool":"crm_fields_save","title":"Tạo / sửa trường tuỳ chỉnh","description":"Create or change a custom field (text, number, date, select).","kind":"write","mode":"setup","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/crm.fields.save","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"key":{"type":"string","maxLength":40},"label":{"type":"string","minLength":1,"maxLength":60},"type":{"type":"string","enum":["text","number","date","select"]},"options":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":50,"default":[]},"expectedRevision":{"type":"integer","minimum":1,"description":"The `revision` you read; if it changed meanwhile the save answers conflict instead of overwriting."}},"required":["key","label","type"],"additionalProperties":false}},{"id":"crm.fields.delete","tool":"crm_fields_delete","title":"Xoá trường tuỳ chỉnh","description":"Xoá trường tuỳ chỉnh (cannot be undone).","kind":"destructive","mode":"setup","run":"sync","permissions":["read","crm","destructive"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/crm.fields.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"crm.lists.list","tool":"crm_lists_list","title":"Danh sách khách","description":"List static contact lists with sizes.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/crm.lists.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"crm.lists.save","tool":"crm_lists_save","title":"Tạo / sửa danh sách","description":"Create or rename a static contact list.","kind":"write","mode":"setup","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/crm.lists.save","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":80},"description":{"type":"string","maxLength":500},"expectedRevision":{"type":"integer","minimum":1,"description":"The `revision` you read; if it changed meanwhile the save answers conflict instead of overwriting."}},"required":["name"],"additionalProperties":false}},{"id":"crm.lists.delete","tool":"crm_lists_delete","title":"Xoá danh sách","description":"Xoá danh sách (cannot be undone).","kind":"destructive","mode":"setup","run":"sync","permissions":["read","crm","destructive"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/crm.lists.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"crm.segments.list","tool":"crm_segments_list","title":"Phân khúc","description":"List saved dynamic segments (filters).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/crm.segments.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"crm.segments.preview","tool":"crm_segments_preview","title":"Xem trước phân khúc","description":"How many contacts a saved segment (or a filter) selects now, with a sample of up to 10. No side effects.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/crm.segments.preview","input":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"filter":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"labelMode":{"type":"string","enum":["any","all"],"default":"any"},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"noStage":{"type":"boolean"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"sources":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"accountId":{"type":"string","format":"uuid"},"relations":{"type":"array","items":{"type":"string","enum":["stranger","request_sent","request_received","friend","blocked"]},"maxItems":5},"hasPhone":{"type":"boolean"},"hasZalo":{"type":"boolean"},"dnc":{"type":"string","enum":["exclude","only","include"],"default":"include"},"interactedWithinDays":{"type":"integer","minimum":1,"maximum":3650},"notInteractedDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false}},"additionalProperties":false}},{"id":"crm.segments.save","tool":"crm_segments_save","title":"Tạo / sửa phân khúc","description":"Create or change a saved contact filter.","kind":"write","mode":"setup","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/crm.segments.save","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":80},"filter":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"labelMode":{"type":"string","enum":["any","all"],"default":"any"},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"noStage":{"type":"boolean"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"sources":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"accountId":{"type":"string","format":"uuid"},"relations":{"type":"array","items":{"type":"string","enum":["stranger","request_sent","request_received","friend","blocked"]},"maxItems":5},"hasPhone":{"type":"boolean"},"hasZalo":{"type":"boolean"},"dnc":{"type":"string","enum":["exclude","only","include"],"default":"include"},"interactedWithinDays":{"type":"integer","minimum":1,"maximum":3650},"notInteractedDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false},"expectedRevision":{"type":"integer","minimum":1,"description":"The `revision` you read; if it changed meanwhile the save answers conflict instead of overwriting."}},"required":["name","filter"],"additionalProperties":false}},{"id":"crm.segments.delete","tool":"crm_segments_delete","title":"Xoá phân khúc","description":"Xoá phân khúc (cannot be undone).","kind":"destructive","mode":"setup","run":"sync","permissions":["read","crm","destructive"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/crm.segments.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"tasks.list","tool":"tasks_list","title":"Danh sách nhiệm vụ","description":"List tasks by status, assignee, contact or due date.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/tasks.list","input":{"type":"object","properties":{"status":{"type":"string","enum":["open","done","cancelled"]},"assigneeId":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"dueBefore":{"type":"string","format":"date-time"},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"tasks.get","tool":"tasks_get","title":"Chi tiết nhiệm vụ","description":"One task with status, due date, assignee and links.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/tasks.get","input":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"}},"required":["taskId"],"additionalProperties":false}},{"id":"tasks.create","tool":"tasks_create","title":"Tạo nhiệm vụ","description":"Create a task (optionally linked to a contact, conversation or message) with due date and reminder.","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/tasks.create","input":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":5000},"dueAt":{"type":"string","format":"date-time","nullable":true,"default":null},"remindBeforeMinutes":{"anyOf":[{"type":"number","enum":[15]},{"type":"number","enum":[60]},{"type":"number","enum":[1440]}],"nullable":true,"default":null},"assigneeId":{"type":"string","format":"uuid","nullable":true,"default":null},"contactId":{"type":"string","format":"uuid","nullable":true,"default":null},"conversationId":{"type":"string","format":"uuid","nullable":true,"default":null},"messageId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["title"],"additionalProperties":false}},{"id":"tasks.update","tool":"tasks_update","title":"Sửa nhiệm vụ","description":"Change a task's title, description, due date, assignee, reminder or status (open/done/cancelled).","kind":"write","mode":"direct","run":"sync","permissions":["read","crm"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/tasks.update","input":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":5000},"dueAt":{"type":"string","format":"date-time","nullable":true},"assigneeId":{"type":"string","format":"uuid","nullable":true},"status":{"type":"string","enum":["open","done","cancelled"]},"remindBeforeMinutes":{"anyOf":[{"type":"number","enum":[15]},{"type":"number","enum":[60]},{"type":"number","enum":[1440]}],"nullable":true}},"required":["taskId"],"additionalProperties":false}},{"id":"tasks.delete","tool":"tasks_delete","title":"Xoá nhiệm vụ","description":"Delete a task.","kind":"destructive","mode":"direct","run":"sync","permissions":["read","crm","destructive"],"profile":"crm","profileTitle":"Khách hàng","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/tasks.delete","input":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid"}},"required":["taskId"],"additionalProperties":false}},{"id":"library.templates.list","tool":"library_templates_list","title":"Mẫu tin","description":"List message templates (workspace and the caller's private ones) with tags.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/library.templates.list","input":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"tag":{"type":"string","maxLength":30},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"library.templates.save","tool":"library_templates_save","title":"Tạo / sửa mẫu tin","description":"Create or change a message template (spintax {a|b} and variables like {name}; optional media).","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/library.templates.save","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":120},"content":{"type":"string","maxLength":5000},"tags":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":10,"default":[]},"scope":{"type":"string","enum":["workspace","private"]},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5,"default":[]},"expectedRevision":{"type":"integer","minimum":1,"description":"The `revision` you read; if it changed meanwhile the save answers conflict instead of overwriting."}},"required":["name","content","scope"],"additionalProperties":false}},{"id":"library.templates.delete","tool":"library_templates_delete","title":"Xoá mẫu tin","description":"Delete a template.","kind":"destructive","mode":"setup","run":"sync","permissions":["read","setup","destructive"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/library.templates.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"library.quick_replies.list","tool":"library_quick_replies_list","title":"Tin nhắn nhanh","description":"List quick replies (/shortcut) available to the caller.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/library.quick_replies.list","input":{"type":"object","properties":{"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"library.quick_replies.save","tool":"library_quick_replies_save","title":"Tạo / sửa tin nhắn nhanh","description":"Create or change a quick reply.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/library.quick_replies.save","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"shortcut":{"type":"string","minLength":1,"maxLength":31},"content":{"type":"string","minLength":1,"maxLength":5000},"scope":{"type":"string","enum":["workspace","private"]},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5,"default":[]},"expectedRevision":{"type":"integer","minimum":1,"description":"The `revision` you read; if it changed meanwhile the save answers conflict instead of overwriting."}},"required":["shortcut","content","scope"],"additionalProperties":false}},{"id":"library.quick_replies.delete","tool":"library_quick_replies_delete","title":"Xoá tin nhắn nhanh","description":"Delete a quick reply.","kind":"destructive","mode":"setup","run":"sync","permissions":["read","setup","destructive"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/library.quick_replies.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"library.media.list","tool":"library_media_list","title":"Thư viện tệp","description":"List saved media, contact cards and bank cards.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/library.media.list","input":{"type":"object","properties":{"kind":{"type":"string","enum":["image","video","file","voice","card","bank"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"library.media.download_url","tool":"library_media_download_url","title":"Link tải tệp","description":"A short-lived download URL for a saved media file.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/library.media.download_url","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"library.media.upload","tool":"library_media_upload","title":"Tải tệp vào thư viện","description":"Get a signed upload URL for a library file; then call library_media_register.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/library.media.upload","input":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"size":{"type":"integer","minimum":1},"mime":{"type":"string","maxLength":120}},"required":["name","size","mime"],"additionalProperties":false}},{"id":"library.media.register","tool":"library_media_register","title":"Lưu tệp vào thư viện","description":"Register an uploaded file in the library.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/library.media.register","input":{"type":"object","properties":{"path":{"type":"string","maxLength":500},"name":{"type":"string","maxLength":200},"size":{"type":"integer","minimum":0},"mime":{"type":"string","maxLength":120},"width":{"type":"integer"},"height":{"type":"integer"}},"required":["path","name","size","mime"],"additionalProperties":false}},{"id":"library.cards.save","tool":"library_cards_save","title":"Lưu danh thiếp / tài khoản ngân hàng","description":"Save a contact card (Zalo user id) or bank card to reuse in messages.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/library.cards.save","input":{"type":"object","properties":{"kind":{"type":"string","enum":["card","bank"]},"name":{"type":"string","minLength":1,"maxLength":200},"data":{"anyOf":[{"type":"object","properties":{"userId":{"type":"string","maxLength":64},"phone":{"type":"string","maxLength":20}},"required":["userId"],"additionalProperties":false},{"type":"object","properties":{"binBank":{"type":"integer"},"numAccBank":{"type":"string","maxLength":40},"nameAccBank":{"type":"string","maxLength":120}},"required":["binBank","numAccBank","nameAccBank"],"additionalProperties":false}]}},"required":["kind","name","data"],"additionalProperties":false}},{"id":"library.media.delete","tool":"library_media_delete","title":"Xoá tệp","description":"Delete a library item.","kind":"destructive","mode":"setup","run":"sync","permissions":["read","setup","destructive"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/library.media.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"library.stage_for_send","tool":"library_stage_for_send","title":"Chuẩn bị tệp thư viện để gửi","description":"Turn saved library media into attachments usable by inbox_message_send.","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"conversation","profileTitle":"Hội thoại","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/library.stage_for_send","input":{"type":"object","properties":{"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":10}},"required":["mediaIds"],"additionalProperties":false}},{"id":"campaigns.list","tool":"campaigns_list","title":"Danh sách chiến dịch","description":"List campaigns with type, status, sender accounts and progress.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.list","input":{"type":"object","properties":{"status":{"type":"string","enum":["draft","running","paused","completed","archived"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"campaigns.get","tool":"campaigns_get","title":"Chi tiết chiến dịch","description":"One campaign with its full step graph, audience, distribution, schedule and settings.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.get","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.create","tool":"campaigns_create","title":"Tạo chiến dịch","description":"Create a draft campaign: sequence (multi-step care), broadcast (one message) or group_post (recurring group posts). Configure it with campaigns_update.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.create","input":{"type":"object","properties":{"type":{"type":"string","enum":["sequence","broadcast","group_post"]},"name":{"type":"string","minLength":1,"maxLength":120},"goal":{"type":"string","maxLength":500,"default":""}},"required":["type","name"],"additionalProperties":false}},{"id":"campaigns.update","tool":"campaigns_update","title":"Sửa chiến dịch","description":"Change any part of a campaign: steps graph (messages with spintax/variables/media, waits, branches, actions), audience, exclusions, sender accounts and distribution, schedule, settings.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.update","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"patch":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"goal":{"type":"string","maxLength":500},"goalStageId":{"type":"string","format":"uuid","nullable":true},"graph":{"type":"object","properties":{"start":{"type":"string","minLength":1,"maxLength":40,"nullable":true},"nodes":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["friend_request"]},"message":{"type":"string","maxLength":600},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","message"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["send_message"]},"content":{"type":"object","properties":{"variants":{"type":"array","items":{"type":"string","maxLength":2000},"minItems":1,"maxItems":5},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5,"default":[]}},"required":["variants"],"additionalProperties":false},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","content"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["tag"]},"add":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":10,"default":[]},"remove":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":10,"default":[]},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["set_stage"]},"stageId":{"type":"string","format":"uuid"},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","stageId"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["assign"]},"userId":{"type":"string","format":"uuid","nullable":true},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","userId"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["create_task"]},"title":{"type":"string","minLength":1,"maxLength":200},"dueInHours":{"type":"integer","minimum":0,"maximum":1440,"default":24},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","title"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["webhook"]},"url":{"type":"string","format":"uri","maxLength":500},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","url"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["add_to_group"]},"groupRowId":{"type":"string","format":"uuid"},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","groupRowId"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["wait"]},"amount":{"type":"integer","minimum":1,"maximum":8760},"unit":{"type":"string","enum":["minutes","hours","days"]},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","amount","unit"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["wait_friend"]},"maxDays":{"type":"integer","minimum":1,"maximum":60},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null},"timeoutNext":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","maxDays"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["wait_reply"]},"maxDays":{"type":"integer","minimum":1,"maximum":60},"next":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null},"timeoutNext":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","maxDays"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["branch"]},"condition":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["replied"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["is_friend"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["has_label"]},"labelId":{"type":"string","format":"uuid"}},"required":["kind","labelId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["field_equals"]},"key":{"type":"string","maxLength":40},"value":{"type":"string","maxLength":200}},"required":["kind","key","value"],"additionalProperties":false}]},"yes":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null},"no":{"type":"string","minLength":1,"maxLength":40,"nullable":true,"default":null}},"required":["id","type","condition"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"type":{"type":"string","enum":["end"]},"outcome":{"type":"string","enum":["success","failure"]},"labelId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["id","type","outcome"],"additionalProperties":false}]}}},"required":["start","nodes"],"additionalProperties":false},"audience":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid","nullable":true,"default":null},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"filter":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"labelMode":{"type":"string","enum":["any","all"],"default":"any"},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"noStage":{"type":"boolean"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"sources":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"accountId":{"type":"string","format":"uuid"},"relations":{"type":"array","items":{"type":"string","enum":["stranger","request_sent","request_received","friend","blocked"]},"maxItems":5},"hasPhone":{"type":"boolean"},"hasZalo":{"type":"boolean"},"dnc":{"type":"string","enum":["exclude","only","include"],"default":"include"},"interactedWithinDays":{"type":"integer","minimum":1,"maximum":3650},"notInteractedDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false,"nullable":true,"default":null},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5000,"default":[]},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"allowOverlap":{"type":"boolean","default":false}},"additionalProperties":false},"senderAccountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"distribution":{"type":"string","enum":["round_robin","quota","prefer_friend"]},"schedule":{"type":"object","properties":{"startAt":{"type":"string","format":"date-time","nullable":true,"default":null},"endAt":{"type":"string","format":"date-time","nullable":true,"default":null},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"maxItems":7,"default":[]},"timeZone":{"type":"string","default":"Asia/Ho_Chi_Minh"},"repeatEveryDays":{"type":"integer","minimum":0,"maximum":90,"default":0}},"additionalProperties":false},"settings":{"type":"object","properties":{"stopKeywords":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":30,"default":["dừng","stop","đừng nhắn","không quan tâm","huỷ","hủy"]},"groupRowIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200,"default":[]},"postText":{"type":"string","maxLength":5000,"default":""},"postMediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":10,"default":[]},"mentionAll":{"type":"boolean","default":false},"testContactId":{"type":"string","format":"uuid","nullable":true,"default":null}},"additionalProperties":false}},"additionalProperties":false},"expectedVersion":{"type":"integer","minimum":1,"description":"The campaign `version` you read; a newer one answers conflict instead of overwriting."}},"required":["campaignId","patch"],"additionalProperties":false}},{"id":"campaigns.versions.list","tool":"campaigns_versions_list","title":"Phiên bản chiến dịch","description":"Step versions people are still running (editing steps of a campaign with people inside pins them to the old version), with how many are at each step.","kind":"read","mode":"setup","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.versions.list","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.revisions.get","tool":"campaigns_revisions_get","title":"Xem một phiên bản chiến dịch","description":"The step graph of one campaign version: the current one, or an older version people are still running.","kind":"read","mode":"setup","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.revisions.get","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"version":{"type":"integer","minimum":1}},"required":["campaignId","version"],"additionalProperties":false}},{"id":"campaigns.enrollments.migrate","tool":"campaigns_enrollments_migrate","title":"Chuyển người sang phiên bản mới","description":"Move everyone on an old step version to the current steps with an explicit mapping old step id → new step id (null = stop them). Every step that has people must be mapped.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.enrollments.migrate","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"fromVersion":{"type":"integer","minimum":1},"mapping":{"type":"object","additionalProperties":{"type":"string","maxLength":40,"nullable":true}},"expectedVersion":{"type":"integer","minimum":1}},"required":["campaignId","fromVersion","mapping"],"additionalProperties":false}},{"id":"campaigns.plan","tool":"campaigns_plan","title":"Kế hoạch chiến dịch","description":"Dry run of starting the campaign now: who would join, who is left out and why (do-not-contact, excluded label, already in, in another running campaign), how people split across sender accounts (friends, phone lookups needed), accounts that would make work wait, and when the first step runs in the campaign's time zone. Also returns the validation warnings. No side effects, nothing is sent.","kind":"read","mode":"setup","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.plan","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"allowOverlap":{"type":"boolean"}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.validate","tool":"campaigns_validate","title":"Kiểm tra chiến dịch","description":"Check a campaign for problems (missing content, no senders, no rotation, invalid schedule). No side effects.","kind":"read","mode":"setup","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.validate","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.audience.preview","tool":"campaigns_audience_preview","title":"Xem trước đối tượng","description":"Count and sample who the audience filter selects and who is excluded (do-not-contact, already enrolled). No side effects.","kind":"read","mode":"setup","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.audience.preview","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"audience":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid","nullable":true,"default":null},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"filter":{"type":"object","properties":{"search":{"type":"string","maxLength":100},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"labelMode":{"type":"string","enum":["any","all"],"default":"any"},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"noStage":{"type":"boolean"},"ownerIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50},"sources":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"listIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"accountId":{"type":"string","format":"uuid"},"relations":{"type":"array","items":{"type":"string","enum":["stranger","request_sent","request_received","friend","blocked"]},"maxItems":5},"hasPhone":{"type":"boolean"},"hasZalo":{"type":"boolean"},"dnc":{"type":"string","enum":["exclude","only","include"],"default":"include"},"interactedWithinDays":{"type":"integer","minimum":1,"maximum":3650},"notInteractedDays":{"type":"integer","minimum":1,"maximum":3650}},"additionalProperties":false,"nullable":true,"default":null},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5000,"default":[]},"excludeLabelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"allowOverlap":{"type":"boolean","default":false}},"additionalProperties":false}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.message.preview","tool":"campaigns_message_preview","title":"Xem trước tin","description":"Render a message template for one contact (variables and one spintax variant). No side effects.","kind":"read","mode":"setup","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.message.preview","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"template":{"type":"string","maxLength":5000},"contactId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["campaignId","template"],"additionalProperties":false}},{"id":"campaigns.test_send","tool":"campaigns_test_send","title":"Gửi thử (gửi thật)","description":"Run the campaign once for one test contact from one account. This REALLY sends on Zalo.","kind":"write","mode":"setup","run":"job","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.test_send","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"contactId":{"type":"string","format":"uuid"},"accountId":{"type":"string","format":"uuid"}},"required":["campaignId","contactId","accountId"],"additionalProperties":false}},{"id":"campaigns.start","tool":"campaigns_start","title":"Bật chiến dịch","description":"Start a campaign: enrolls its audience and lets the scheduler run it under each account's limits, even when the AI is offline.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.start","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"allowOverlap":{"type":"boolean","default":false}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.pause","tool":"campaigns_pause","title":"Tạm dừng chiến dịch","description":"Pause a running campaign.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.pause","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.resume","tool":"campaigns_resume","title":"Tiếp tục chiến dịch","description":"Resume a paused campaign.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.resume","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.archive","tool":"campaigns_archive","title":"Lưu trữ chiến dịch","description":"Archive a campaign.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.archive","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.unarchive","tool":"campaigns_unarchive","title":"Bỏ lưu trữ chiến dịch","description":"Bring an archived campaign back as paused (or draft if it never started). People it stopped stay stopped.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.unarchive","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.clone","tool":"campaigns_clone","title":"Nhân bản chiến dịch","description":"Duplicate a campaign as a new draft.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.clone","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.delete","tool":"campaigns_delete","title":"Xoá chiến dịch","description":"Delete a campaign and its enrollments. Cannot be undone.","kind":"destructive","mode":"setup","run":"sync","permissions":["read","setup","destructive"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/campaigns.delete","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.enroll","tool":"campaigns_enroll","title":"Đưa khách vào chiến dịch","description":"Add contacts to a campaign (do-not-contact contacts are skipped); allowOverlap lets contacts already in another campaign join.","kind":"write","mode":"setup","run":"bulk","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.enroll","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":5000},"allowOverlap":{"type":"boolean","default":false}},"required":["campaignId","contactIds"],"additionalProperties":false}},{"id":"campaigns.enrollment.stop","tool":"campaigns_enrollment_stop","title":"Dừng một người trong chiến dịch","description":"Stop one contact's journey in a campaign.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/campaigns.enrollment.stop","input":{"type":"object","properties":{"enrollmentId":{"type":"string","format":"uuid"}},"required":["enrollmentId"],"additionalProperties":false}},{"id":"campaigns.enrollments.list","tool":"campaigns_enrollments_list","title":"Người trong chiến dịch","description":"List enrollments: current step, state, wait reason, outcome.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.enrollments.list","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"state":{"type":"string","enum":["active","waiting","done","stopped","failed"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.stats.get","tool":"campaigns_stats_get","title":"Số liệu chiến dịch","description":"Funnel per step, replies, friend accepts, A/B variants, goal conversions.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.stats.get","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."}},"required":["campaignId"],"additionalProperties":false}},{"id":"campaigns.occurrences.list","tool":"campaigns_occurrences_list","title":"Các lần đăng theo lịch","description":"Scheduled group posts of a campaign, newest planned first: planned time, group, result (queued/posted/unverified/failed/missed) and whether it was a late catch-up.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/campaigns.occurrences.list","input":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid","description":"Campaign id."},"status":{"type":"string","enum":["queued","posted","unverified","failed","missed"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["campaignId"],"additionalProperties":false}},{"id":"rules.list","tool":"rules_list","title":"Luật tự động","description":"List automation rules (When/If/Then) with enabled state and accounts.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/rules.list","input":{"type":"object","properties":{"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"rules.get","tool":"rules_get","title":"Chi tiết luật","description":"One rule with trigger, conditions and ordered actions.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/rules.get","input":{"type":"object","properties":{"ruleId":{"type":"string","format":"uuid"}},"required":["ruleId"],"additionalProperties":false}},{"id":"rules.templates.list","tool":"rules_templates_list","title":"Mẫu luật có sẵn","description":"Built-in rule templates to start from.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/rules.templates.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"rules.runs.list","tool":"rules_runs_list","title":"Lịch sử chạy luật","description":"Recent runs of a rule (or all rules) with outcome and actions done.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/rules.runs.list","input":{"type":"object","properties":{"ruleId":{"type":"string","format":"uuid"},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"rules.runs.get","tool":"rules_runs_get","title":"Chi tiết lần chạy luật","description":"One rule run: outcome, each action done, notes, and the rule version it executed.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/rules.runs.get","input":{"type":"object","properties":{"runId":{"type":"string","pattern":"^\\d+$","description":"Run id from rules_runs_list."}},"required":["runId"],"additionalProperties":false}},{"id":"rules.revisions.list","tool":"rules_revisions_list","title":"Phiên bản luật","description":"Saved versions of a rule, newest first, each with the full rule as saved.","kind":"read","mode":"setup","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/rules.revisions.list","input":{"type":"object","properties":{"ruleId":{"type":"string","format":"uuid"},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["ruleId"],"additionalProperties":false}},{"id":"rules.validate","tool":"rules_validate","title":"Kiểm tra luật","description":"Validate a rule definition without saving it.","kind":"read","mode":"setup","run":"sync","permissions":["read"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/rules.validate","input":{"type":"object","properties":{"rule":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"enabled":{"type":"boolean","default":true},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"default":[]},"trigger":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["message_in"]},"keywords":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":30,"default":[]},"match":{"type":"string","enum":["any","all","regex"],"default":"any"},"regex":{"type":"string","maxLength":200,"nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["first_message"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["friend_accepted"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["friend_request"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["outside_hours"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["silent"]},"days":{"type":"integer","minimum":1,"maximum":90}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["stage_changed"]},"stageId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["label_added"]},"labelId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["task_overdue"]}},"required":["kind"],"additionalProperties":false}]},"conditions":{"type":"object","properties":{"labelsAny":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"labelsNone":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"threadType":{"type":"string","enum":["any","user","group"],"default":"user"},"groupWithoutMention":{"type":"boolean","default":false},"hours":{"type":"object","properties":{"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"}},"required":["start","end"],"additionalProperties":false,"nullable":true,"default":null},"field":{"type":"object","properties":{"key":{"type":"string","maxLength":40},"value":{"type":"string","maxLength":200}},"required":["key","value"],"additionalProperties":false,"nullable":true,"default":null}},"additionalProperties":false,"default":{}},"actions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["send_template"]},"text":{"type":"string","minLength":1,"maxLength":2000},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5,"default":[]}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["add_label"]},"labelId":{"type":"string","format":"uuid"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["remove_label"]},"labelId":{"type":"string","format":"uuid"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["set_stage"]},"stageId":{"type":"string","format":"uuid"}},"required":["type","stageId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["assign"]},"userId":{"type":"string","format":"uuid","nullable":true},"roundRobin":{"type":"boolean","default":false}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["create_task"]},"title":{"type":"string","minLength":1,"maxLength":200},"dueInHours":{"type":"integer","minimum":0,"maximum":1440,"default":24}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["accept_friend"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["enroll_campaign"]},"campaignId":{"type":"string","format":"uuid"}},"required":["type","campaignId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"url":{"type":"string","format":"uri","maxLength":500}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["notify"]},"target":{"type":"string","enum":["assignee","admins","everyone"],"default":"assignee"},"text":{"type":"string","maxLength":300,"default":""}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["mark_dnc"]}},"required":["type"],"additionalProperties":false}]},"minItems":1,"maxItems":10},"priority":{"type":"integer","minimum":0,"maximum":1000,"default":100},"templateKey":{"type":"string","maxLength":40,"nullable":true,"default":null}},"required":["name","trigger","actions"],"additionalProperties":false}},"required":["rule"],"additionalProperties":false}},{"id":"rules.create","tool":"rules_create","title":"Tạo luật","description":"Create an automation rule: trigger, conditions (labels, stage, hours, fields, group/@mention) and ordered actions.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/rules.create","input":{"type":"object","properties":{"rule":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"enabled":{"type":"boolean","default":true},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"default":[]},"trigger":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["message_in"]},"keywords":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":30,"default":[]},"match":{"type":"string","enum":["any","all","regex"],"default":"any"},"regex":{"type":"string","maxLength":200,"nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["first_message"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["friend_accepted"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["friend_request"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["outside_hours"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["silent"]},"days":{"type":"integer","minimum":1,"maximum":90}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["stage_changed"]},"stageId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["label_added"]},"labelId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["task_overdue"]}},"required":["kind"],"additionalProperties":false}]},"conditions":{"type":"object","properties":{"labelsAny":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"labelsNone":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"threadType":{"type":"string","enum":["any","user","group"],"default":"user"},"groupWithoutMention":{"type":"boolean","default":false},"hours":{"type":"object","properties":{"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"}},"required":["start","end"],"additionalProperties":false,"nullable":true,"default":null},"field":{"type":"object","properties":{"key":{"type":"string","maxLength":40},"value":{"type":"string","maxLength":200}},"required":["key","value"],"additionalProperties":false,"nullable":true,"default":null}},"additionalProperties":false,"default":{}},"actions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["send_template"]},"text":{"type":"string","minLength":1,"maxLength":2000},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5,"default":[]}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["add_label"]},"labelId":{"type":"string","format":"uuid"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["remove_label"]},"labelId":{"type":"string","format":"uuid"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["set_stage"]},"stageId":{"type":"string","format":"uuid"}},"required":["type","stageId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["assign"]},"userId":{"type":"string","format":"uuid","nullable":true},"roundRobin":{"type":"boolean","default":false}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["create_task"]},"title":{"type":"string","minLength":1,"maxLength":200},"dueInHours":{"type":"integer","minimum":0,"maximum":1440,"default":24}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["accept_friend"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["enroll_campaign"]},"campaignId":{"type":"string","format":"uuid"}},"required":["type","campaignId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"url":{"type":"string","format":"uri","maxLength":500}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["notify"]},"target":{"type":"string","enum":["assignee","admins","everyone"],"default":"assignee"},"text":{"type":"string","maxLength":300,"default":""}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["mark_dnc"]}},"required":["type"],"additionalProperties":false}]},"minItems":1,"maxItems":10},"priority":{"type":"integer","minimum":0,"maximum":1000,"default":100},"templateKey":{"type":"string","maxLength":40,"nullable":true,"default":null}},"required":["name","trigger","actions"],"additionalProperties":false}},"required":["rule"],"additionalProperties":false}},{"id":"rules.update","tool":"rules_update","title":"Sửa luật","description":"Replace a rule's definition.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/rules.update","input":{"type":"object","properties":{"ruleId":{"type":"string","format":"uuid"},"rule":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"enabled":{"type":"boolean","default":true},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"default":[]},"trigger":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["message_in"]},"keywords":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":30,"default":[]},"match":{"type":"string","enum":["any","all","regex"],"default":"any"},"regex":{"type":"string","maxLength":200,"nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["first_message"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["friend_accepted"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["friend_request"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["outside_hours"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["silent"]},"days":{"type":"integer","minimum":1,"maximum":90}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["stage_changed"]},"stageId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["label_added"]},"labelId":{"type":"string","format":"uuid","nullable":true,"default":null}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["task_overdue"]}},"required":["kind"],"additionalProperties":false}]},"conditions":{"type":"object","properties":{"labelsAny":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"labelsNone":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"stageIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"threadType":{"type":"string","enum":["any","user","group"],"default":"user"},"groupWithoutMention":{"type":"boolean","default":false},"hours":{"type":"object","properties":{"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"}},"required":["start","end"],"additionalProperties":false,"nullable":true,"default":null},"field":{"type":"object","properties":{"key":{"type":"string","maxLength":40},"value":{"type":"string","maxLength":200}},"required":["key","value"],"additionalProperties":false,"nullable":true,"default":null}},"additionalProperties":false,"default":{}},"actions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["send_template"]},"text":{"type":"string","minLength":1,"maxLength":2000},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5,"default":[]}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["add_label"]},"labelId":{"type":"string","format":"uuid"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["remove_label"]},"labelId":{"type":"string","format":"uuid"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["set_stage"]},"stageId":{"type":"string","format":"uuid"}},"required":["type","stageId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["assign"]},"userId":{"type":"string","format":"uuid","nullable":true},"roundRobin":{"type":"boolean","default":false}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["create_task"]},"title":{"type":"string","minLength":1,"maxLength":200},"dueInHours":{"type":"integer","minimum":0,"maximum":1440,"default":24}},"required":["type","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["accept_friend"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["enroll_campaign"]},"campaignId":{"type":"string","format":"uuid"}},"required":["type","campaignId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"url":{"type":"string","format":"uri","maxLength":500}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["notify"]},"target":{"type":"string","enum":["assignee","admins","everyone"],"default":"assignee"},"text":{"type":"string","maxLength":300,"default":""}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["mark_dnc"]}},"required":["type"],"additionalProperties":false}]},"minItems":1,"maxItems":10},"priority":{"type":"integer","minimum":0,"maximum":1000,"default":100},"templateKey":{"type":"string","maxLength":40,"nullable":true,"default":null}},"required":["name","trigger","actions"],"additionalProperties":false},"expectedVersion":{"type":"integer","minimum":1,"description":"The rule `version` you read; a newer one answers conflict."}},"required":["ruleId","rule"],"additionalProperties":false}},{"id":"rules.enable","tool":"rules_enable","title":"Bật luật","description":"Enable a rule.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/rules.enable","input":{"type":"object","properties":{"ruleId":{"type":"string","format":"uuid"}},"required":["ruleId"],"additionalProperties":false}},{"id":"rules.disable","tool":"rules_disable","title":"Tắt luật","description":"Disable a rule.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/rules.disable","input":{"type":"object","properties":{"ruleId":{"type":"string","format":"uuid"}},"required":["ruleId"],"additionalProperties":false}},{"id":"rules.from_template","tool":"rules_from_template","title":"Tạo luật từ mẫu","description":"Create and enable a rule from a built-in template for some accounts.","kind":"write","mode":"setup","run":"sync","permissions":["read","setup"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/rules.from_template","input":{"type":"object","properties":{"key":{"type":"string","maxLength":40},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"default":[]}},"required":["key"],"additionalProperties":false}},{"id":"rules.delete","tool":"rules_delete","title":"Xoá luật","description":"Delete a rule. Cannot be undone.","kind":"destructive","mode":"setup","run":"sync","permissions":["read","setup","destructive"],"profile":"setup","profileTitle":"Thiết lập tự chạy","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/rules.delete","input":{"type":"object","properties":{"ruleId":{"type":"string","format":"uuid"}},"required":["ruleId"],"additionalProperties":false}},{"id":"operations.get","tool":"operations_get","title":"Trạng thái lệnh","description":"Read one command sent by this connection: status (accepted/queued/waiting+reason/running/succeeded/failed/cancelled/unverified), linked job/message and result.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/operations.get","input":{"type":"object","properties":{"operationId":{"type":"string","format":"uuid"}},"required":["operationId"],"additionalProperties":false}},{"id":"operations.wait","tool":"operations_wait","title":"Chờ kết quả lệnh","description":"Wait up to `seconds` (max 20) until a command finishes, then return its status. Use after inbox_message_send for the Zalo result.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"observe","profileTitle":"Quan sát","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/operations.wait","input":{"type":"object","properties":{"operationId":{"type":"string","format":"uuid"},"seconds":{"type":"integer","minimum":1,"maximum":20,"default":15}},"required":["operationId"],"additionalProperties":false}},{"id":"operations.list","tool":"operations_list","title":"Lệnh gần đây","description":"This connection's recent commands, newest first, filterable by status or operation.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/operations.list","input":{"type":"object","properties":{"status":{"type":"string","maxLength":20},"operation":{"type":"string","maxLength":80},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"operations.cancel","tool":"operations_cancel","title":"Huỷ lệnh","description":"Cancel a command's queued job — or every unfinished item of a bulk command (a running one stops after the machine confirms; sent messages cannot be unsent).","kind":"write","mode":"direct","run":"sync","permissions":["read"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/operations.cancel","input":{"type":"object","properties":{"operationId":{"type":"string","format":"uuid"}},"required":["operationId"],"additionalProperties":false}},{"id":"jobs.list","tool":"jobs_list","title":"Việc đang chạy / chờ","description":"List Zalo jobs of the caller's accounts by status with wait reasons (limits, schedule, pacing, Zalo restriction, machine offline…).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/jobs.list","input":{"type":"object","properties":{"accountId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","leased","cancel_requested","succeeded","failed","unverified","expired","cancelled","dead"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"jobs.get","tool":"jobs_get","title":"Chi tiết việc","description":"One job with progress, result and error.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/jobs.get","input":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid"}},"required":["jobId"],"additionalProperties":false}},{"id":"jobs.cancel","tool":"jobs_cancel","title":"Huỷ việc","description":"Cancel a queued job, or request a running one to stop.","kind":"write","mode":"direct","run":"sync","permissions":["read","message"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/jobs.cancel","input":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid"}},"required":["jobId"],"additionalProperties":false}},{"id":"jobs.retry","tool":"jobs_retry","title":"Thử lại việc lỗi","description":"Queue a failed, expired or cancelled Zalo job again as a new job with the same work (never an unverified one; a conversation send is retried with inbox_message_retry to keep its place in line). Returns the new job id.","kind":"write","mode":"direct","run":"job","permissions":["read","zalo"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/jobs.retry","input":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid"}},"required":["jobId"],"additionalProperties":false}},{"id":"bulk.get","tool":"bulk_get","title":"Kết quả lệnh hàng loạt","description":"Progress and per-item results of a bulk command (each item = one queued Zalo job: status, error). Filter by item status; page with next_cursor.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/bulk.get","input":{"type":"object","properties":{"operationId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","waiting","running","succeeded","failed","cancelled","unverified"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"required":["operationId"],"additionalProperties":false}},{"id":"bulk.retry_failed","tool":"bulk_retry_failed","title":"Thử lại mục lỗi","description":"Queue again the failed / expired items of a bulk command as a new bulk command (never unverified ones; conversation sends are retried with inbox_message_retry). Returns the new operationId.","kind":"write","mode":"direct","run":"bulk","permissions":["read","zalo"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/bulk.retry_failed","input":{"type":"object","properties":{"operationId":{"type":"string","format":"uuid"}},"required":["operationId"],"additionalProperties":false}},{"id":"events.list","tool":"events_list","title":"Sự kiện","description":"Everything that happened in the workspace since a cursor, in order, kept 7 days: messages (received, sent, status, reactions, recalls), command/job results, account/policy/Zalo-wait changes, friends and groups, customers, campaigns and journeys, rule runs, assignments, tasks, connections. Filter by types (e.g. message.received) or one account. Keep the returned cursor for the next call: events come in the order they were committed, as soon as they are committed, and a cursor never skips one (seq is the position, eventId the stable id to de-duplicate). Webhooks push the same events.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/events.list","input":{"type":"object","properties":{"after":{"type":"integer","minimum":0,"default":0},"types":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":30},"accountId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":200,"default":100}},"additionalProperties":false}},{"id":"webhooks.list","tool":"webhooks_list","title":"Webhook","description":"List webhook endpoints with events, enabled state and failure counts.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/webhooks.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"webhooks.get","tool":"webhooks_get","title":"Chi tiết webhook","description":"One webhook endpoint (events, enabled, failures, last success/failure) — never its secret.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/webhooks.get","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"webhooks.create","tool":"webhooks_create","title":"Tạo webhook","description":"Create a signed webhook for chosen events. Returns the signing secret once.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/webhooks.create","input":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":500},"events":{"type":"array","items":{"type":"string","enum":["message.received","message.sent","message.status_changed","message.reaction","message.recalled","operation.completed","job.failed","job.cancelled","job.unverified","bulk.completed","account.session_changed","account.policy_changed","account.wait_state_changed","account.sync_completed","friend.accepted","friend.request_received","friend.removed","group.joined","group.left","group.member_joined","group.member_left","group.pending_request","contact.created","contact.stage_changed","contact.updated","contact.dnc_changed","contact.deleted","campaign.started","campaign.paused","campaign.resumed","campaign.completed","campaign.enrollment_step","campaign.enrollment_completed","campaign.enrollment_stopped","campaign.occurrence","rule.run_completed","rule.run_failed","conversation.assigned","conversation.unanswered","task.due","task.completed","connection.paused","connection.revoked","external.emergency_stop_changed"]},"minItems":1},"includeContent":{"type":"boolean","default":true,"description":"false = message words are left out of the payload (ids only)."}},"required":["url","events"],"additionalProperties":false}},{"id":"webhooks.update","tool":"webhooks_update","title":"Sửa webhook","description":"Change a webhook's URL, events or enabled state.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/webhooks.update","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","format":"uri","maxLength":500},"events":{"type":"array","items":{"type":"string","enum":["message.received","message.sent","message.status_changed","message.reaction","message.recalled","operation.completed","job.failed","job.cancelled","job.unverified","bulk.completed","account.session_changed","account.policy_changed","account.wait_state_changed","account.sync_completed","friend.accepted","friend.request_received","friend.removed","group.joined","group.left","group.member_joined","group.member_left","group.pending_request","contact.created","contact.stage_changed","contact.updated","contact.dnc_changed","contact.deleted","campaign.started","campaign.paused","campaign.resumed","campaign.completed","campaign.enrollment_step","campaign.enrollment_completed","campaign.enrollment_stopped","campaign.occurrence","rule.run_completed","rule.run_failed","conversation.assigned","conversation.unanswered","task.due","task.completed","connection.paused","connection.revoked","external.emergency_stop_changed"]},"minItems":1},"enabled":{"type":"boolean"},"includeContent":{"type":"boolean"}},"required":["id"],"additionalProperties":false}},{"id":"webhooks.replay","tool":"webhooks_replay","title":"Phát lại webhook","description":"Send again every recorded event of a time range (within the 7-day keep) that this webhook subscribes to, with the same event ids. dryRun=true only counts them.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/webhooks.replay","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"dryRun":{"type":"boolean","default":false}},"required":["id","from","to"],"additionalProperties":false}},{"id":"webhooks.rotate_secret","tool":"webhooks_rotate_secret","title":"Đổi khoá ký webhook","description":"Rotate a webhook's signing secret; the new secret is returned once.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/webhooks.rotate_secret","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"webhooks.test","tool":"webhooks_test","title":"Gửi thử webhook","description":"Send a test event to a webhook.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/webhooks.test","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"webhooks.delete","tool":"webhooks_delete","title":"Xoá webhook","description":"Delete a webhook endpoint.","kind":"destructive","mode":"admin","run":"sync","permissions":["read","admin","destructive"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/webhooks.delete","input":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false}},{"id":"webhooks.deliveries.list","tool":"webhooks_deliveries_list","title":"Lần gửi webhook","description":"Recent deliveries with status, attempts and response code.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/webhooks.deliveries.list","input":{"type":"object","properties":{"endpointId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","success","failed","dead"]},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"webhooks.deliveries.redeliver","tool":"webhooks_deliveries_redeliver","title":"Gửi lại webhook","description":"Re-send one delivery now.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"ops","profileTitle":"Theo dõi & sự kiện","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/webhooks.deliveries.redeliver","input":{"type":"object","properties":{"deliveryId":{"type":"string","format":"uuid"}},"required":["deliveryId"],"additionalProperties":false}},{"id":"integrations.keys.list","tool":"integrations_keys_list","title":"Khoá API","description":"API keys (name, prefix, version, permissions, last use) — never the secret. Keys are created/revoked only on the web.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/integrations.keys.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"integrations.connections.list","tool":"integrations_connections_list","title":"Kết nối AI","description":"AI connections of the workspace (app, user, scope, status, last use).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/integrations.connections.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"notifications.list","tool":"notifications_list","title":"Thông báo của tôi","description":"The calling user's notifications, newest first.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/notifications.list","input":{"type":"object","properties":{"unreadOnly":{"type":"boolean","default":false},"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"notifications.mark_read","tool":"notifications_mark_read","title":"Đánh dấu thông báo đã đọc","description":"Mark some or all notifications read.","kind":"write","mode":"direct","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/notifications.mark_read","input":{"type":"object","properties":{"ids":{"anyOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":500}]}},"required":["ids"],"additionalProperties":false}},{"id":"notifications.preferences.get","tool":"notifications_preferences_get","title":"Tuỳ chọn thông báo","description":"Which notification types reach which channels for the caller.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/notifications.preferences.get","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"notifications.preferences.set","tool":"notifications_preferences_set","title":"Sửa tuỳ chọn thông báo","description":"Change the caller's notification preferences.","kind":"write","mode":"setup","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/notifications.preferences.set","input":{"type":"object","properties":{"prefs":{"type":"object","additionalProperties":{}}},"required":["prefs"],"additionalProperties":false}},{"id":"members.list","tool":"members_list","title":"Thành viên","description":"Workspace members with role and assigned Zalo accounts.","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/members.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"invites.list","tool":"invites_list","title":"Lời mời thành viên","description":"Pending member invitations.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/invites.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"invites.create","tool":"invites_create","title":"Mời thành viên","description":"Invite a person by email with a role and the Zalo accounts they may use.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"required","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/invites.create","input":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","member"]},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200,"default":[]}},"required":["email","role"],"additionalProperties":false}},{"id":"invites.revoke","tool":"invites_revoke","title":"Huỷ lời mời","description":"Revoke a pending invitation.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/invites.revoke","input":{"type":"object","properties":{"inviteId":{"type":"string","format":"uuid"}},"required":["inviteId"],"additionalProperties":false}},{"id":"members.role.set","tool":"members_role_set","title":"Đổi vai trò","description":"Make a member admin or member (the owner cannot be changed here).","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/members.role.set","input":{"type":"object","properties":{"memberId":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["admin","member"]}},"required":["memberId","role"],"additionalProperties":false}},{"id":"members.account_access.set","tool":"members_account_access_set","title":"Giao tài khoản Zalo cho thành viên","description":"Set which Zalo accounts a member may use.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/members.account_access.set","input":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"accountIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":500}},"required":["userId","accountIds"],"additionalProperties":false}},{"id":"members.remove","tool":"members_remove","title":"Xoá thành viên","description":"Remove a member from the workspace (their AI connections are revoked).","kind":"destructive","mode":"admin","run":"sync","permissions":["read","admin","destructive"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/members.remove","input":{"type":"object","properties":{"memberId":{"type":"string","format":"uuid"}},"required":["memberId"],"additionalProperties":false}},{"id":"billing.usage.get","tool":"billing_usage_get","title":"Gói và mức dùng","description":"Current plan, expiry, limits and usage (accounts, machines, contacts, sends).","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/billing.usage.get","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"billing.plans.list","tool":"billing_plans_list","title":"Bảng gói","description":"Public plans and their limits (prices may show 'Liên hệ').","kind":"read","mode":"observe","run":"sync","permissions":["read"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"member","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/billing.plans.list","input":{"type":"object","properties":{},"additionalProperties":false}},{"id":"billing.invoices.list","tool":"billing_invoices_list","title":"Hoá đơn","description":"Invoices with status and VietQR payment info.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/billing.invoices.list","input":{"type":"object","properties":{"cursor":{"type":"string","maxLength":200,"nullable":true,"default":null},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50}},"additionalProperties":false}},{"id":"billing.invoices.get","tool":"billing_invoices_get","title":"Chi tiết hoá đơn","description":"One invoice with status, amount and VietQR payment info.","kind":"read","mode":"observe","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"none","confirmation":false,"method":["GET","POST"],"path":"/api/public/v2/ops/billing.invoices.get","input":{"type":"object","properties":{"invoiceId":{"type":"string","format":"uuid"}},"required":["invoiceId"],"additionalProperties":false}},{"id":"billing.invoice.create","tool":"billing_invoice_create","title":"Tạo hoá đơn nâng / gia hạn gói","description":"Create an upgrade/renewal invoice (a person pays by bank transfer). Confirmation required.","kind":"destructive","mode":"admin","run":"sync","permissions":["read","admin","destructive"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":true,"method":["POST"],"path":"/api/public/v2/ops/billing.invoice.create","input":{"type":"object","properties":{"planKey":{"type":"string","minLength":2,"maxLength":40},"period":{"type":"string","enum":["month","year"]}},"required":["planKey","period"],"additionalProperties":false}},{"id":"billing.invoice.cancel","tool":"billing_invoice_cancel","title":"Huỷ hoá đơn chờ","description":"Cancel a pending invoice.","kind":"write","mode":"admin","run":"sync","permissions":["read","admin"],"profile":"workspace","profileTitle":"Quản trị workspace","minRole":"admin","idempotencyKey":"optional","confirmation":false,"method":["POST"],"path":"/api/public/v2/ops/billing.invoice.cancel","input":{"type":"object","properties":{"invoiceId":{"type":"string","format":"uuid"}},"required":["invoiceId"],"additionalProperties":false}}]}