Workflow System

Sign in with your AnyVan Google account

Sign in with Google

Workflow System

Event-driven automation with AI decisions

No workflows configured

Create one to start automating event responses

No workflows match ""

Recent Executions

No matching events

Status Workflow Version Event Action Started Duration Tokens Cost
Loading…

Execution Detail

Based on

Event-driven Fires when a matching SNS event arrives. Pick events + an optional filter.

No catalogued event matches this filter. Events not in the catalogue can still be added below.

Custom

· Unknown event types are accepted — the router discards events with no subscribing workflow.

When unchecked, the workflow skips Bedrock and runs the action chain deterministically — useful when the event payload already contains everything the action needs (e.g. driver-tracking Slack messages templated directly off the SNS event).

Only superadmins can change the model. Contact a superadmin if you need a different one.

Changing the model on an ACTIVE workflow creates a new DRY_RUN version — not applied to the live version until promoted.

The selection mode can't change across versions — disable this workflow and create a new one to switch.

Steps run in order. A failing step does not stop the next.

SLACK_NOTIFICATION pre-set config (optional)

Leave both blank for no pre-set config. A message template needs a Channel ID alongside it; the template renders against the model's action_data.

The model chooses which of these to run per event — possibly none. The action-executor's Slack-channel allow-list below still applies.

Skip this event before hitting Bedrock when the expression is false.

Syntax & examples

Operators: = != > < >= <= IN (...) CONTAINS IS NULL IS NOT NULL. Combine with AND, OR, NOT, and parentheses. Paths are dotted, e.g. payload.listing.total.

Relative dates (compared in UTC): "@today", "@tomorrow", "@yesterday", "@now", with offsets "@today+7d", "@today-1d", "@now-2h", "@now+30m". Add an IANA timezone suffix to use that zone's calendar day instead of UTC: "@today:Europe/London", "@today+2d:Europe/London" (keeps day windows aligned with local midnight across DST).

  • pickup today or tomorrow: payload.listing.date >= "@today" AND payload.listing.date <= "@today+1d"
  • pickup within the next 7 days: payload.listing.date <= "@today+7d"
  • pickup today or tomorrow (list form): payload.listing.date IN ("@today", "@tomorrow")
  • changed in the last 2 hours: payload.someTimestamp >= "@now-2h"
  • pickup in the next 2 days, UK local days: payload.listing.date >= "@today:Europe/London" AND payload.listing.date <= "@today+2d:Europe/London"

Enrichers run before Bedrock. Their output is merged and appended as "Enrichment: { ... }" to the user message.

Bedrock can call selected tools mid-decision, see the result, then continue. Costs an extra Bedrock turn per call — the loop's hard ceiling caps runaway thinking.

Hard ceiling on the agentic loop. Most decisions converge in 2–4 iterations.

Named SQL the snowflake_query tool can run during the agentic loop. Bedrock picks a query by name and supplies parameter values. "Test query" runs an EXPLAIN (parse + scan estimate, no data); "Run sample" executes it with the sample values and previews the rows.

Comma-separated channel IDs / #names / Slack links. Enforced by the action-executor for SLACK_NOTIFICATION and NOTIFY (method=slack). Leave blank for no restriction — an explicit empty list would block every channel.

Only superadmins can set status to Active. A superadmin will review your dry-run executions and promote this workflow when ready.

Draft with AI

Describe the workflow in plain language. The draft replaces whatever is currently in the form; review and edit it before saving — nothing is created until you click Create Workflow.

Paste a real payload from an execution so the draft references actual field paths.

Fields are aligned row by row — removed on the left, added on the right.

Group