AI and memory

chiefOfStaff.rules.save

Add or change a rule for some people: by Discord person or role, optionally only in some channels, give them tools, take tools away, answer them with a profile, or add instructions. A tool turned off anywhere else stays off. Pass id and expectedRevision to change a rule. Only the platform owner's workspace has a Chief of Staff. Administrator access required.

POST/api/v1/accounting/chiefOfStaff.rules.save

Permissions

accounting:readaccounting:writeaccounting:admin

Who can call it

admin

Retries

Idempotency key required, with expectedRevision

MCP

accounting_chief_of_staff_rules_save

Fields

  • idstring (ID)

    The rule to change. Leave it out to add a rule.

  • namestringRequired

    A display name.

    1–100 characters

  • enabledboolean
  • peoplearray of objects

    Discord people the rule applies to, each with the name to show.

    at most 50 items

  • rolesarray of strings

    Discord role names the rule applies to; anyone with one of them matches.

    at most 50 items · each 1–100 characters

  • channelIdsarray of strings

    Only in these channels and their threads. Empty means everywhere.

    at most 50 items · each Matches ^\d{17,20}$

  • allowToolsarray of enum values
    getCurrentEventsFromLumagetEventStatsFromLumagetEventDetailsFromLumagetEventGuestsFromLumagetCommunityContactswebSearchscrapeUrlgithubweather

    at most 9 items

  • blockToolsarray of enum values
    getCurrentEventsFromLumagetEventStatsFromLumagetEventDetailsFromLumagetEventGuestsFromLumagetCommunityContactswebSearchscrapeUrlgithubweather

    at most 9 items

  • profileIdenum or null

    Answer these people with this profile.

    generalhackathonorganizernews
  • instructionsstring

    Extra instructions the Chief of Staff follows there, in plain words. Empty clears them.

    at most 2000 characters

  • expectedRevisioninteger

    The revision you last read: 0 for something never saved. A different revision means someone else changed it first.

    0 to 9007199254740990

  • idempotencyKeystringRequired

    Any unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match.

    8–200 characters

Example

curl https://app.getoatmilk.com/api/v1/accounting/chiefOfStaff.rules.save \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "Synthetic Ventures Inc."
}'
Response
{
  "data": { … }
}

Try it

Try it

Checks your input with this action’s real schema and answers like the API, with synthetic data. No key needed, and nothing changes.

POST/api/v1/accounting/chiefOfStaff.rules.save
curl https://app.getoatmilk.com/api/v1/accounting/chiefOfStaff.rules.save \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "Synthetic Ventures Inc."
}'

More in AI and memory.