BulkPublish — Inbox and Comments
The Inbox gathers direct messages, reviews and comment threads from the user's connected accounts. Comment tools work on the comments under a published post.
The rule that matters most
Every reply, message and deletion goes to a real person, immediately, and
cannot be unsent. Before calling reply_to_conversation, reply_to_comment
or moderate_comment with action: "delete":
- Show the user the exact text you will send (or the comment you will delete).
- Name the recipient: the platform, the user's account it goes out from, and the person it is addressed to.
- Wait for an explicit yes for that message. Approval of one reply is not approval of the next.
Never send in bulk. If the user asks you to "answer all of these", draft every reply, show them one by one (or as a numbered list the user approves item by item), and send only the ones they confirmed. Drafting is always safe; sending is not.
Liking, hiding and unhiding a comment are reversible, but still say what you are about to do before doing it.
Tools
list_conversations list conversations
get_conversation messages in one conversation
reply_to_conversation send a DM or review reply now (cannot be unsent)
update_conversation mark read, archive / reopen, snooze, assign
list_post_comments comments on a published post
reply_to_comment public reply under a comment (cannot be unsent)
moderate_comment like, unlike, hide, unhide or delete a comment
list_conversations
Filters, all optional: status (open, archived, snoozed), kind
(dm, review, comment), platforms, channelId, assigned (me,
unassigned, or a teammate's user id), q (text search), limit, and
cursor from the previous page.
get_conversation
Returns the newest 500 messages, oldest first. Reading a conversation does
not mark it read; use update_conversation for that, and only when the user
wants it.
reply_to_conversation
text up to 4,000 characters, mediaIds up to 4 (ids from upload_media).
update_conversation
Mark read or unread, archive or reopen, snooze until a time (at most 90 days ahead), assign to a teammate or unassign.
moderate_comment
action is like, unlike, hide, unhide or delete. Deleting needs an
owner, admin or approver role on the workspace.
When something is refused
Explain it in plain words and say what the user can do. Do not repeat error codes or technical wording back to them.
- Plan. The Inbox is part of the Pro and Business plans; replying to or moderating comments on a post is on every plan except Free. When a call is refused for the plan, say so and suggest upgrading. Reading a post's comments works on every plan.
- Reconnect needed (
RECONNECT_REQUIRED). The account was connected before message or comment access was granted. Ask the user to reconnect that channel from the Channels page, then try again. - Not available on that network. Some platforms do not allow sending DMs or replying through BulkPublish yet. Tell the user to answer on the platform itself.
- Role. Deleting a comment needs an owner, admin or approver; suggest asking one of them.
- Too fast. Sending is limited to 30 messages and 10 comment replies a minute. Wait a minute and continue; do not retry in a tight loop.
- X messages count against the plan's X allowance. Mention this before a long run of X replies.
Recipes
Triage the inbox
list_conversationswithstatus: "open"(addassigned: "me"if asked)get_conversationon the ones that look urgent- Summarise: who wrote, on which account, what they want
- Offer next steps (reply, assign, snooze, archive) and act only on what the user picks
Answer a DM or review
get_conversationto read the thread- Draft a reply and show it with platform, account and recipient
- On a clear yes,
reply_to_conversation - Ask whether to archive or mark it read
Work through comments on a post
list_postswithstatus: "published", thenlist_post_comments- Group the comments (questions, praise, complaints, spam)
- Draft replies; confirm each one before
reply_to_comment - Propose hiding spam; delete only when the user explicitly asks
