Skip to main content

Revisions

Internal beta — not released yet

The Automation API is an internal beta and is not released yet. Its endpoints and payloads are not final and may change or be withdrawn at any time without notice.

Every change to an automation appends an immutable revision — a frozen snapshot of its definition. There is no "active version" pointer; to roll back, retrieve a revision and PUT its definition back. Both endpoints require a user API key and workspace-admin access, and cost 1x base credits.

Rolling back is not always a verbatim re-PUT

A revision is a read snapshot, so its trigger / filter can carry output-only fields — a webhook_received trigger's server-assigned webhook_url, or a change-tracking condition (see triggers and filters). Strip those before re-submitting; a verbatim PUT of such a revision is rejected with a 400. Ordinary field / metadata / trigger / action subjects round-trip fine.

List revisions

GEThttps://api.tapeapp.com/v1/automation/{automation_id}/revision

Returns the automation's full history, newest-first. This listing is unpaginated — there is no cursor or total. Simulation snapshots are excluded.

➡️ Request
curl https://api.tapeapp.com/v1/automation/4021/revision -u user_key_replace_with_your_api_key:
⬅️ Response
{
"revisions": [
{
"id": "90071992547409929",
"automation_id": 4021,
"created_at": "2024-05-20 16:03:08",
"name": "Email the owner on a new high-priority lead",
"paused": false,
"broken": false,
"trigger": { "type": "record_created", "config": {} },
"filter": null,
"actions": []
}
]
}

Retrieve a revision

GEThttps://api.tapeapp.com/v1/automation/{automation_id}/revision/{revision_id}

Returns one frozen revision, which must belong to this automation. A revision_id that is unknown, malformed, or belongs to another automation all answer the same 404 (never an existence oracle).

➡️ Request
curl https://api.tapeapp.com/v1/automation/4021/revision/90071992547409929 -u user_key_replace_with_your_api_key:

Returns { revision }.

The revision object

A revision snapshots the automation's definition as of one edit.

FieldTypeDescription
idstringThe revision ID — a 64-bit value, returned as a string.
automation_idintegerThe automation this revision belongs to.
created_atstringWhen the revision was created, UTC YYYY-MM-DD HH:mm:ss.
namestringThe name as of this revision.
paused / brokenbooleanState as of this revision.
triggerobject | nullThe trigger as of this revision.
filterobject | nullThe filter as of this revision.
actionsarrayThe actions as of this revision.

A revision is deliberately narrower than the automation object: it has no description, broken_reason, updated_at, app_id or workspace_id.