## §OIP SYSTEM ARTICLE — Automation (6 operations)
A generated article for one OIP shelf. It lists every operation in this API/CLI/MCP/device/model/core subsystem, links each leaf article, and gives the ledger path for proof.

### Read Order
- scan operations
- open a leaf doc
- run via run_now or POST /api/dispatch
- open receipt
- repair/replay if needed

### Operations
- **AUTOMATE_ADD** — Automate a capability — make it fire itself every N minutes and ledger a receipt each run. Turns a one-off act
  when: "automate this", "do this every morning/hour", "keep doing X", "run this on a schedule".
  args: name | every_minutes | KEY | body (body is whatever that KEY takes; may contain pipes)
  doc: https://miscsubjects.com/api/dispatch?key=AUTOMATE_ADD&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=AUTOMATE_ADD&body=morning%20ping%7C1440%7CSEND_BY_CHANNEL%7Cblooio%7C%2B14155480666%7Cautomated%20good%20morning&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=AUTOMATE_ADD
- **AUTOMATE_LIST** — List every automation — id, name, schedule, target key, enabled, last run, run count.
  when: "what's automated", "list my automations", "what runs on a schedule".
  args: none
  doc: https://miscsubjects.com/api/dispatch?key=AUTOMATE_LIST&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=AUTOMATE_LIST&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=AUTOMATE_LIST
- **AUTOMATE_TOGGLE** — Turn an automation on or off by id (paused, not deleted).
  when: "pause that automation", "turn it back on", "stop the morning ping".
  args: id | 1|0
  doc: https://miscsubjects.com/api/dispatch?key=AUTOMATE_TOGGLE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=AUTOMATE_TOGGLE&body=3%7C0&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=AUTOMATE_TOGGLE
- **AUTOMATE_DELETE** — Delete an automation by id.
  when: "remove that automation", "delete the scheduled job".
  args: id
  doc: https://miscsubjects.com/api/dispatch?key=AUTOMATE_DELETE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=AUTOMATE_DELETE&body=3&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=AUTOMATE_DELETE
- **AUTOMATE_RUN_DUE** — Fire every enabled automation whose interval has elapsed; ledger a receipt for each. Called by the cron each t
  when: "run due automations now", or the cron calls it automatically.
  args: none
  doc: https://miscsubjects.com/api/dispatch?key=AUTOMATE_RUN_DUE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=AUTOMATE_RUN_DUE&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=AUTOMATE_RUN_DUE
- **AUTOMATE_FIRE** — Fire every enabled automation registered for an event (trigger=event:NAME). Any inbound hook (a customer text,
  when: an event source (webhook, hook, cron) signals something happened — "when a customer text arrives", "on error", "on new order".
  args: event_name | payload (payload is passed to each automation whose body is empty)
  doc: https://miscsubjects.com/api/dispatch?key=AUTOMATE_FIRE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=AUTOMATE_FIRE&body=customer_text%7Chi%2C%20is%20this%20still%20available%3F&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=AUTOMATE_FIRE

### Troubleshooting
- If a row's example has placeholders, replace only the placeholder values and preserve separators.
- If a call fails, open its receipt and repair it with POST /api/dispatch {key, body, repairs:'inv_ID'}.
- If token scope denies this system, ask the owner for a row:/rows:/pfx: token scoped to the exact operation set.

Back to the tree: https://miscsubjects.com/api/dispatch?map=1&format=markdown