Docs/Dashboards Automation/Automations

Automations & Webhooks

An automation pairs a trigger with one action. Today the trigger is always a change to a prompt version, and the action sends a webhook or a Slack message. Use it to notify a team when a prompt changes, or to start your own CI, tests or deployment when the production label moves.

ℹ

Automations are not in the sidebar. Open them with the Automations button on the Prompts page or on the Slack integration page in Project Settings > Integrations, or go to /project/<projectId>/automations.

Triggers

SettingOptions
Event SourcePrompt
Event Actioncreated: a new prompt version is created. updated: labels or tags on a version change. deleted: a version is deleted. Pick one or more.
FilterOptional. Limit the automation to prompts by Name.

Automations do not trigger on traces, scores, costs, latency, errors or budgets. For governance findings such as PII detections or drift, see Governance Notifications. For spend limits, see Budget AI budgets.

Actions

ActionWhat it doesNeeds
WebhookSends an HTTP POST with the event as JSON to your URL, signed with a secret.A URL that accepts POST
SlackPosts a formatted message about the prompt change to a channel.The Slack integration connected to the project
⚠

The action list also shows PagerDuty. In the current release, PagerDuty automation actions are saved but not delivered. To page from a prompt change, send a webhook to a service that calls PagerDuty. PagerDuty alerts for governance findings work through Governance Notifications.

Create an automation

Start

On the Automations page, select Create Automation and give it a name.

Define the trigger

Under Trigger, choose Event Source Prompt, the Event Action values, and an optional Filter on prompt name.

Choose the action

Under Action, choose the Action Type:

  • Webhook: enter the URL, choose the API Version (v1), and add any Headers. Mark a header as secret to hide its value after saving.
  • Slack: choose the Channel.

Save and keep the secret

Save the automation. For a webhook, ANTS Platform shows the Webhook Secret once. Copy it now. You can regenerate it later from the webhook settings, which invalidates the old one.

Check the executions

Open the automation to see its execution history: status, start time, duration, input and output, and any error.

The Active switch turns an automation on and off.

Webhook delivery

Each event is sent as one POST with these headers:

HeaderValue
content-typeapplication/json
x-langfuse-signaturet=<unix timestamp>,v1=<hex signature>
Your headersAny headers you configured

The body:

json
{ "id": "<execution id>", "timestamp": "2026-10-01T09:30:00.000Z", "type": "prompt-version", "apiVersion": "v1", "action": "updated", "prompt": { "id": "<prompt version id>", "name": "support/answer", "version": 3, "projectId": "<project id>", "labels": ["production", "latest"], "prompt": "Answer the question about {{product}}: {{question}}", "type": "text", "config": { "model": "gpt-4o-mini" }, "commitMessage": "Shorter system message", "tags": ["support"], "createdAt": "2026-10-01T09:00:00.000Z", "updatedAt": "2026-10-01T09:30:00.000Z" } }

For chat prompts, prompt.prompt is a list of messages.

Verify the signature

Compute HMAC-SHA256(secret, "<t>.<raw request body>") as lowercase hex, where <t> is the timestamp from the header, and compare it with v1. Reject requests with an old t to stop replays.

python
def verify(secret: str, header: str, raw_body: bytes, max_age_seconds: int = 300) -> bool: parts = dict(item.split("=", 1) for item in header.split(",")) timestamp, signature = parts["t"], parts["v1"] if abs(time.time() - int(timestamp)) > max_age_seconds: return False signed = f"{timestamp}.".encode() + raw_body expected = hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, signature)

Responses, retries and auto-disable

  • Your endpoint must answer with status 200 within 10 seconds. Any other status, including other 2xx codes, counts as a failure.
  • A failed delivery is retried up to 4 attempts in total, with backoff.
  • After 5 failed executions in a row, the automation is turned off and a banner on the automation shows the failure. Fix the endpoint and switch it back on.
  • A Slack action that fails is turned off after the first failure, for example when the channel no longer exists.

Permissions

Viewing automations needs automations read access, which Owner, Department Admin, Security & Compliance, Cost Analyst and Auditor have. Creating, editing and deleting automations needs automations write access: Owner and Security & Compliance. See Members & Roles.

Next steps

© 2026 ANTS Platform, Inc.Docs v1.0 · Last updated June 2026