Skip to main content
Automations connect a Harly event to one or more actions. Use them for repeatable notifications and task creation, while keeping consequential hiring decisions explicit, reviewable, and authorized by the workspace owner.
The public HTTP API at /api/v1/automations returns 410 Gone. That surface is withdrawn, not temporarily down, even when Automations is enabled in the dashboard. Build recipes, inspect runs, retry, and cancel in the dashboard (automations:manage). A versioned v2 contract will replace this API; do not treat 410 as an outage of the builder.

A safe automation shape

Typical examples:
  • Candidate applies → notify a recruiting channel.
  • Application enters interview stage → create a coordinator task.
  • Interview completed → request a scorecard from the interviewer.
  • Offer accepted → notify the hiring team.

Configure a workflow

1

Open Automations

Select Automations in the left sidebar and choose New workflow.
2

Choose a trigger

Select a supported trigger event:
3

Add conditions

Narrow the trigger with conditions:
  • Job — only fire for a specific job or department.
  • Stage — only fire when entering a specific pipeline stage.
  • Status — only fire when a field has a specific value.
  • AI score — after an ai_score action, branch on ai.score such as ai.score < 50 or ai.score >= 80.
Conditions prevent a notification workflow from firing on every job in the workspace when you only want it for one department.
4

Configure an action

Choose an action:HTTP actions support workspace secret references so credentials do not appear in workflow payloads. Outbound requests use the same SSRF protections as webhooks — loopback, private, and metadata addresses are blocked.
5

Preview and enable

Use the Test tab to choose a candidate, set a reproducible virtual start, and configure synthetic results for each action or wait. You can inspect the visited path, skipped branches, wait time, provider reference, failures, and uncertain outcomes. Simulation never sends messages, calls webhooks, or changes domain records. Run the workflow preview to confirm the trigger and action match your intent. Enable the workflow. It begins processing new events immediately.

Ordered document signing

For a multi-signer document, place at least one required signature field for each signer and assign every field to a signer before sending. Harly activates only signer 1 initially. After that signer completes, the next recipient is activated transactionally and receives a new capability through the durable email outbox. Intermediate PDF versions and evidence are retained; the document remains pending and an automation wait does not continue until the last required signer completes.

Reliability and run history

Each run records:
  • The trigger event that fired it
  • The conditions that matched
  • The action configuration
If an external provider times out after the request may have been accepted, the run stops as uncertain instead of retrying blindly. An authorized operator can open that step in run history, verify the provider, record success or failure, add a required reconciliation note, and optionally provide a provider reference and JSON output. The resolver updates the persisted attempt and resumes v2 without calling the provider again; this decision is also written to the audit log.
  • The result (success, failure, or skipped)
  • The error message if it failed
Open a workflow to see its run history. Retry transient failures from the run detail. Fix configuration failures before replaying — a misconfigured action retries successfully once you correct it.
Harly AI does not make a hiring decision from a chat response or silently apply a workflow. A workspace owner may explicitly authorize a workflow to reject an application, send a defined message, or queue candidate-data erasure. Use an approval or delay for consequential decisions when your policy requires it. Candidate erasure is durable work performed by the worker: legal holds, retention rules, retries, and provider limitations can affect its final status, so do not claim permanent deletion until the run reports it.

HTTP action details

The HTTP action sends a request to the configured URL with a JSON payload matching the trigger event’s schema. It adds an Idempotency-Key derived from the durable workflow effect unless you provide one yourself. Configure a secret to verify the request:
The receiver must return 2xx within 10 seconds. Failed requests are retried by the scheduler using the durable webhook policy. The same event ID and delivery ID are retained across retries so receivers can deduplicate safely.

Inbound webhook trigger

Use the Inbound webhook received trigger when another system should start a workflow. Create the endpoint from the workflow’s block library or its server-side action. Harly shows the URL and signing secret once; store both in the sending system’s secret manager. Disabling an endpoint immediately stops new runs without changing the published workflow graph. Send a JSON object with these headers:
Sign the exact raw UTF-8 request body, the timestamp, and the trimmed event ID header, separated by periods. The event-ID segment is empty when the header is omitted (so the signed message still has two periods); in that case an eventId or id inside the signed body is used when present, otherwise Harly hashes the body. The timestamp must be within five minutes of Harly’s clock. The request must use application/json or an application/*+json content type and stay within 256 KiB. Harly authenticates the HMAC before parsing JSON, then validates the object against the endpoint’s JSON Schema Draft 7 payload rules. Configure and edit those rules in the trigger inspector; {} accepts any JSON object. A schema mismatch returns 422 and creates no receipt or workflow event. X-Event-Id (or X-External-Event-Id) is both signed and used as the idempotency key. Reusing an ID with a different payload is rejected as a conflict. A new request returns 202, while an already accepted duplicate returns 200 and does not create a second workflow event. The trigger payload contains endpointId, externalEventId, and the original JSON under payload.

Next steps

Webhooks

Subscribe to domain events from external systems.

API overview

Build richer integrations against the Harly API.

Notifications

Connect Slack, Discord, and Telegram.

Tasks and scorecards

The task model automations create work for.