Skip to main content
Customers usually create automations conversationally, but these endpoints let your product manage them directly — render an automations dashboard, pause one with a toggle, or provision defaults at onboarding.

Create an automation

POST /v1/deployments/:deployment_id/automations
const automation = await herm.automations.create("dep_7xK9s2", {
  name: "Weekly video variations",
  schedule: "0 9 * * 1",
  instructions:
    "Look at our top-performing influencer video from last week and make five variations.",
  enabled: true,
});
ParameterTypeRequiredDescription
namestringYesHuman-readable name
schedulestringYesCron expression (UTC), or natural language like "every Monday at 9am"
instructionsstringYesWhat the agent should do each run
thread_idstringNoThread runs append to. Defaults to a dedicated automation thread
enabledbooleanNoDefaults to true
{
  "automation_id": "auto_5cT2k9",
  "deployment_id": "dep_7xK9s2",
  "name": "Weekly video variations",
  "schedule": "0 9 * * 1",
  "enabled": true,
  "next_run_at": "2026-06-15T09:00:00Z",
  "created_at": "2026-06-11T21:20:10Z"
}

List automations

GET /v1/deployments/:deployment_id/automations
const { data } = await herm.automations.list("dep_7xK9s2");
{
  "data": [
    {
      "automation_id": "auto_5cT2k9",
      "name": "Weekly video variations",
      "schedule": "0 9 * * 1",
      "enabled": true,
      "last_run_at": "2026-06-08T09:00:00Z",
      "last_run_status": "completed",
      "next_run_at": "2026-06-15T09:00:00Z"
    }
  ],
  "next_cursor": null
}

Get an automation

GET /v1/deployments/:deployment_id/automations/:automation_id
Returns the automation plus its recent runs.
const automation = await herm.automations.get("dep_7xK9s2", "auto_5cT2k9");

Update an automation

PATCH /v1/deployments/:deployment_id/automations/:automation_id
Any create field can be updated. Pause by setting enabled to false:
await herm.automations.update("dep_7xK9s2", "auto_5cT2k9", {
  enabled: false,
});

Trigger a run now

POST /v1/deployments/:deployment_id/automations/:automation_id/trigger
Runs the automation immediately without affecting its schedule. Returns the run_id; watch it on the SSE stream.
const { run_id } = await herm.automations.trigger("dep_7xK9s2", "auto_5cT2k9");

Delete an automation

DELETE /v1/deployments/:deployment_id/automations/:automation_id
await herm.automations.delete("dep_7xK9s2", "auto_5cT2k9");
Deleted automations stop running immediately. Past runs and their outputs are unaffected.

Errors

StatusErrorWhen
400validation_errorInvalid schedule or request body
404not_foundDeployment or automation does not exist
See Errors for the full error reference.