Automations

Event-driven rules engine: set it up once, it runs forever


Automations are rules that fire on upload, on schedule, or on any event. Chain operations, publish to a public URL, notify a webhook — no human in the loop required.


How it's shaped

An automation pairs a trigger with an action that references a preset by ID. The preset is where the actual pipeline (resize, compress, AI edit, etc.) lives — automations don't define inline steps, they wire triggers to presets.

{
  "name": "Web-optimize on upload",
  "enabled": true,
  "trigger": {
    "type": "event",
    "eventType": "media.upload",
    "folderId": "<products-folder-id>"
  },
  "action": {
    "type": "processing_preset",
    "presetId": "builtin-preset-util-web-optimize",
    "outputMode": "new_media",
    "targetFolderId": "<cdn-folder-id>"
  }
}

Submit this body to POST /api/v1/automations to create it.


Triggers

A trigger has a type plus type-specific fields.

typeRequired fieldsFires when
eventeventTypeA platform event matches. Valid eventTypes: media.upload, media.process.done, media.metadata.ready.
croncronExpression (and optional timezone)The cron schedule fires.

Both trigger types accept an optional folderId to scope the trigger to media within a folder, and an optional includeOrigins array (subset of upload, edit, job, automation, session) to control which media origins fire the rule.


Actions

An action references a preset to run.

typeWhat runs
processing_presetA deterministic processing preset (resize, compress, format conversion).
image_ai_presetAn AI image-edit/generation preset.
chat_ai_presetA chat AI preset (typically for tagging or metadata; structured output is written to media metadata automatically — outputMode is optional here).

outputMode is new_media or replace_media. targetFolderId optionally routes output media to a specific folder.


Where to manage them

In the app: Automations (/automations) lets you create, pause, and inspect rules. Job History (/jobs) shows every run with logs and retries.


What's next

Last updated: July 7, 2026