Skip to content

Processes & step types ​

A process is a business process the workspace runs end to end — validate a supplier invoice, chase a receivable, onboard a supplier. It is a chain of steps, started by a trigger, and each start is a run.

bash
# List processes, read one, start a manual run, follow it
curl https://app.neody.ai/api/v1/processes -H "Authorization: Bearer $NEODY_KEY"
curl https://app.neody.ai/api/v1/processes/<id> -H "Authorization: Bearer $NEODY_KEY"
curl -X POST https://app.neody.ai/api/v1/processes/<id>/start -H "Authorization: Bearer $NEODY_KEY" \
  -H "Content-Type: application/json" -d '{"subject": {"type": "none", "label": "Order 42"}}'
curl https://app.neody.ai/api/v1/process-runs/<run_id> -H "Authorization: Bearer $NEODY_KEY"

Triggers ​

TriggerStarts a run when
eventan event happens (e.g. docs.document.validated), optionally filtered on its fields
manualsomeone (or an integration) calls POST /v1/processes/{id}/start
scheduleon a schedule ("cron": "0 8 * * 1-5")

Step types ​

TypeWhat it does
intakeTakes documents or messages in and extracts their fields
validateChecks a record against the workspace's rules; every exception cites its evidence
routeDecides where the item goes next and who owns it
consolidatePulls sources together and matches them (e.g. invoice to purchase order)
analyseFinds patterns and outliers in history
draftWrites the output (a reply, a report, a quote) for a person to review
monitorWatches for a condition over time
follow_upChases a person or supplier for something missing, with reminders
executeActs in a system of record (create, send, pay) — behind the autonomy rules
human_taskA task for a person (approve, decide, fill in fields)
waitWaits for a time or an event

GET /v1/processes/step-types returns each type's configuration schema and whether it can run today.

Capabilities: our apps or yours ​

Steps call capabilities such as task.create, email.send or document.validate, not specific apps. A workspace binds each capability to a provider — a NeodyAI app, a connector, or your app — so the same process runs across whatever systems the business uses. GET /v1/capabilities lists them with their providers.

Per-step controls ​

Any step can carry:

ControlEffect
require_approval: trueA person approves before the step runs; rejecting stops the run
sla_hoursThe run is overdue after waiting this long on the step
amount_cap_centsAbove this amount a person must approve, even in supervised mode
allowed_toolsThe step may only call these tools

Loosening a control (removing an approval, raising a cap, allowing more tools) is a widening change: with four-eyes on it waits for a second person.

Versions ​

Editing steps or the trigger creates a new version. Runs keep the version they started on, so a change never alters a run in flight. GET /v1/processes/{id}/versions lists them.

Tasks and approvals ​

  • GET /v1/tasks and POST /v1/tasks/{id}/complete — work on human tasks.
  • GET /v1/approvals?status=pending, POST /v1/approvals/{id}/approve and …/reject — decide AI actions waiting for a person (needs approvals.decide).

NeodyAI — run your business from one place.