Configured tool · write
set_approval_rule
Change when Postdom asks the person before posting, or pause posting, for the whole workspace or for one connected account.
Human and agent roles
Configured boundary
Configured workspace
Postdom Chat only, with the signed-in owner's or admin's authority. It is not on the agent MCP menu: it writes through the dashboard's rules routes, which refuse every agent credential, and a member is refused with admin_role_required. Level 3 keeps its gate: a daily limit and at least one allowed visibility on the account. The gates are in the API, not in the prompt: a rules tool is refused outright after a tool result. Propose, then confirm: the API refuses any call the assistant's own previous answer did not propose and the person's current message does not agree to. The proposal is read from the end of that answer only: the last sentence ending in a question mark, plus the one sentence before it. Those sentences carry the new value and where it lands - the asking level as its own sentence, posts per day as a digit, quiet hours as HH:MM to HH:MM or the words no quiet hours, a pause as pause or resume, brand notes as the section text in double quotes - with @handle for one account or the word everywhere for the workspace. One change per question: a question that offers two changes, joins alternatives with or, or names two accounts (or an account and the workspace) is refused, because a yes does not say which. Anything else is refused with rules_change_not_asked before the call. asking_level 3 is confirmed by its own sentence rather than by yes - Post without asking, which is what the onboarding chip sends.
This reference describes a connection made with @postdom/mcp@0.4.0 and a workspace-scoped agent key created in Accounts.
Callable schema
Input fields
Field names match the configured tool schema. Runtime-only constraints are labeled separately from schema validation.
account_idOptionalstringScopes the change to one account as an exception to the workspace rule. Omit for the workspace.
asking_levelOptional0 | 1 | 2 | 3When Postdom asks the person before posting. The L-numbers stay in the API; the chat says the sentence.
pausedOptionalbooleanStops new agent work. Anything already handed to a platform still goes out.
Synthetic values
Example call
Identifiers and values are examples. They do not represent a connected workspace or accepted media source.
set_approval_rule({
account_id: "acct_example_li",
asking_level: 1
})Observed API record
Return shape
Returns the rules_change card: the rules before, the rules after, exactly which fields moved, and a one-line summary. applied is false, with a blocked sentence, when nothing was saved.
kind · subjectrules_change · rules- The card shape the app renders and the chat reports from.
scopeworkspace | account- Whose rules changed. An account scope carries its id, platform and handle.
appliedboolean- Whether the write landed. False means before equals after and blocked says why.
before · afterrules snapshot- asking_level with its sentence, paused, posts_per_day and quiet_hours, read back from the API after the write rather than assumed from the request.
changedfield[]- Exactly the fields that differ between before and after.
blockedobject | null- code and one sentence when nothing was saved. policy_required names what level 3 is missing; policy_version_conflict means someone else saved first, twice.
exceptions · exceptions_not_shownarray · integer- Accounts that keep their own asking level when the workspace's changes, so the card never claims a workspace rule over an exception. A card too large to carry all of them drops from the end and counts what it dropped.
timezone · summarystring- The workspace clock the limits are counted on, and the one-line before → after.
Stop conditions
Agent handoff
appliedSay the change
State before → after in the person's words, from the card, never as a prediction.
policy_requiredSay what is missing
Repeat the blocked sentence as written and do not claim the level changed.
policy_version_conflictShow the latest
The rules changed under the write twice. The card carries the latest saved rules; say so.
post_without_asking_unconfirmedAsk for the sentence
Level 3 was not set. Propose it and ask them to reply with Post without asking; a yes is not enough for this one.
rules_change_not_askedPropose, do not retry
Nothing you proposed was confirmed. Say the change in one sentence with its values and where it lands, end with a question, and call again on their yes.
admin_role_requiredRefuse truthfully
A workspace owner or admin can change rules.