History and rollback
Every change anyone made to the company, who made it and how, and previewed rollbacks.
7 actions
Give an AI assistant only these actions with the history MCP toolset.
https://app.getoatmilk.com/api/mcp?toolset=historyhistory
- GET
history.facetsCount History by person, source and action for a date range (from/to), with the first and last change, so filters only offer choices that exist. - GET
history.getRead one change from History by its id: every record it touched in that step, the values before and after where Oatmilk kept them, how it was made (Ask AI, an AI app, the API, the integration key), the error when it failed, any rollback of it (or the change it rolled back), and the same record's other recent changes. - GET
history.listList everything anyone changed in the company, newest first: people in Oatmilk, Ask AI, AI apps over MCP, the API, contractors and signers in their portals, and Oatmilk's own automation (Autopilot, syncs, readers). Each item is one step (all records one person changed at once), with who, how (source), what, the record, and whether it was rolled back. Filter by from/to dates, query (text), actorIds, sources (web, assistant, mcp, api, automation, portal, signer), areas (banking, transactions, budgets, inbox, invoices, reimbursements, agreements, contractors, recruiting, tax, compliance, subscriptions, access, settings), actions (exact action names), statuses (succeeded, failed, rolledBack, active, revertible) and targetId (one record's changes). Sort by at, actor, action, area, size or source, asc or desc. Pages with cursor; total counts every match.
history.rollback
- POST
history.rollback.applyRoll back one change from History using the previewFingerprint from history.rollback.preview, a reason and an idempotencyKey. Every step runs as the person through the same checks as doing it by hand (role, revision, closed periods), and is itself recorded in History, so a rollback can be rolled back too. A change made since the preview stops it with a conflict; preview again. - POST
history.rollback.applyManyRoll back up to 50 changes from History, newest first, using the previewFingerprint from history.rollback.previewMany, a reason and an idempotencyKey. Blocked changes are skipped and reported; each result says what was rolled back. - GET
history.rollback.previewCheck whether one change from History can be rolled back and exactly what rolling it back would do, record by record: the values it puts back, what is already back, and what blocks it (a later edit, a deleted record, a closed period). For a statement or CSV import it previews undoing every line that can be undone. Returns previewFingerprint for history.rollback.apply. Nothing changes. - GET
history.rollback.previewManyPreview rolling back up to 50 changes from History at once, newest first, with each change's plan and one previewFingerprint for history.rollback.applyMany. Nothing changes.