Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
awslabs avatar

Aws Step Functions

  • 11 installs
  • 850 repo stars
  • Updated August 3, 2026
  • awslabs/agent-plugins

AWS Step Functions is a Claude skill that helps developers build AWS Step Functions state machines in Amazon States Language using the JSONata query language, covering state types, error handling, service integrations, a

About

AWS Step Functions is a skill for building serverless workflows as state machines using Amazon States Language (ASL) with the JSONata query language. A developer uses it to author, validate, and test workflows that orchestrate microservices, automate processes, and build data or ML pipelines. It covers state types, error handling, AWS service integrations, and migrating existing state machines from JSONPath to JSONata.

  • Writes AWS Step Functions state machines in Amazon States Language using JSONata
  • Covers all state types, error handling, service integrations, and data transformation
  • Ships architecture-pattern examples (saga, scatter-gather, human-in-the-loop) and JSONPath-to-JSONata migration

Aws Step Functions by the numbers

  • 11 all-time installs (skills.sh)
  • Ranked #841 of 1,039 Cloud & Infrastructure skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
At a glance

aws-step-functions capabilities & compatibility

Requires an AWS account; Step Functions billed per state transition or execution

Capabilities
aws lambda durable functions · workflow orchestration · serverless deployment
Works with
aws
Use cases
orchestration · api development · devops
Pricing
Bring your own API key
From the docs

What aws-step-functions says it does

Build workflows with AWS Step Functions state machines using the JSONata query language.
SKILL.md
you can create workflows, also called State machines, to build distributed applications, automate processes, orchestrate microservices, and create data and machine learning pipelines.
SKILL.md
npx skills add https://github.com/awslabs/agent-plugins --skill aws-step-functions

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs11
repo stars850
Last updatedAugust 3, 2026
Repositoryawslabs/agent-plugins

What it does

Author and test an AWS Step Functions state machine in ASL that orchestrates AWS services with error handling and data transformation.

Who is it for?

Orchestrating AWS microservices, data pipelines, and long-running workflows via ASL state machines

Skip if: Non-AWS workflow engines or simple single-function tasks with no orchestration

When should I use this skill?

You are writing or migrating an AWS Step Functions state machine and need ASL, JSONata, error handling, or service integration guidance.

What you get

A validated ASL state machine using JSONata with proper error handling and AWS service integrations.

  • ASL state machine JSON
  • Error handling config
  • Service integration patterns

By the numbers

  • eight available workflow states
  • seven bundled ASL example patterns
  • Standard max duration 1 year, Express 5 minutes

Files

SKILL.mdMarkdownGitHub ↗

AWS Step Functions

Overview

AWS Step Functions uses Amazon States Language (ASL) to define state machines as JSON. With AWS Step Functions, you can create workflows, also called State machines, to build distributed applications, automate processes, orchestrate microservices, and create data and machine learning pipelines.

This skill provides comprehensive guidance for writing state machines in ASL, covering:

  • ASL structure and JSONata expression syntax
  • Details on the eight available workflow states
  • The $states reserved variable
  • Workflow variables with Assign
  • Error handling
  • AWS Service integration patterns
  • Example code for data transformation and architecture
  • Validation and testing of state machines
  • How to migrate from JSONPath to JSONata

When to Load Reference Files

Load the appropriate reference file based on what the user is working on:

  • ASL structure, state types, Task, Pass, Choice, Wait, Succeed, Fail, Parallel, Map → see references/asl-state-types.md
  • Error handling, troubleshooting, Retry, Catch, fallback, error codes, States.Timeout, States.ALL → see references/error-handling.md
  • Service integrations, Lambda invoke, DynamoDB, SNS, SQS, SDK integrations, Resource ARN, sync, async → see references/service-integrations.md
  • Migrating from JSONPath to JSONata, migration, JSONPath to JSONata, InputPath, Parameters, ResultSelector, ResultPath, OutputPath, intrinsic functions, Iterator, payload template → see references/migrating-from-jsonpath-to-jsonata.md
  • Validation, linting, testing, TestState, test state, mock, mocking, unit test, inspection level, DEBUG, TRACE, validate state, test in isolation → see references/validation-and-testing.md
  • Architecture patterns, examples, polling, saga, compensation, scatter-gather, semaphore, lock, human-in-the-loop, escalation, Express to Standard → see references/architecture-patterns.md
  • Data transformation, JSONata expressions, filtering, aggregation, string operations, $reduce, $lookup, $toMillis, $partition, $parse, $hash, $uuid → see references/transforming-data.md
  • State input/output, $states, Assign, Output, Arguments, variable scope, variable limits, evaluation order, passing data between states → see references/processing-state-inputs-and-outputs.md
  • Deployment, SAM, CloudFormation, IaC, DefinitionSubstitutions, X-Ray tracing, logging → see the aws-serverless-deployment skill or deploy-on-aws plugin

Quick Reference

Standard vs Express Workflows

StandardExpress
Max duration1 year5 minutes
Execution semanticsExactly-onceAt-least-once (async) / At-most-once (sync)
Execution historyRetained 90 days, queryable via APICloudWatch Logs only
Max throughput2,000 exec/sec100,000 exec/sec
Pricing modelPer state transitionPer execution count + duration
`.sync` / `.waitForTaskToken`SupportedNot supported
Best forAuditable, non-idempotent operationsHigh-volume, idempotent event processing

Choose Standard for: payment processing, order fulfillment, compliance workflows, anything that must never execute twice.

Choose Express for: IoT data ingestion, streaming transformations, mobile backends, high-throughput short-lived processing.

Setting the State Machine Query Language

JSONata is the modern, preferred way to reference and transform data in ASL. It replaces the five JSONPath I/O fields (InputPath, Parameters, ResultSelector, ResultPath, OutputPath) with just two: Arguments (inputs) and Output.

Enable at the top level to apply to all states:

{ "QueryLanguage": "JSONata", "StartAt": "...", "States": {...} }

Or per-state to migrate from JSONPath incrementally:

{ "Type": "Task", "QueryLanguage": "JSONata", ... }

JSONPath is still supported and is the default if QueryLanguage is omitted — existing state machines do not need to be migrated.

Best Practices

  • Set "QueryLanguage": "JSONata" at the top level for new state machines unless the user wants to use JSONPath
  • Keep Output minimal — only include what the state immediately after the current state needs
  • Use Assign to store variables needed in later states instead of threading it through Output
  • Use $states.input to reference original state input
  • Remember: Assign and Output are evaluated in parallel — variable assignments in Assign are NOT available in Output of the same state
  • All JSONata expressions must produce a defined value — $data.nonExistentField throws States.QueryEvaluationError
  • Use $states.context.Execution.Input to access the original workflow input from any state
  • Save state machine definitions with .asl.json extension when working outside the console
  • Prefer the optimized Lambda integration (arn:aws:states:::lambda:invoke) over the SDK integration

Troubleshooting

Common Errors

  • States.QueryEvaluationError — JSONata expression failed. Check for type errors, undefined fields, or out-of-range values.
  • Mixing JSONPath fields with JSONata fields in the same state.
  • Using $ or $$ at the top level of a JSONata expression — use $states.input instead.
  • Forgetting {% %} delimiters around JSONata expressions — the string will be treated as a literal.
  • Assigning variables in Assign and expecting them in Output of the same state — new values only take effect in the next state.
  • Reference references/validation-and-testing.md and references/error-handling.md for detailed troubleshooting information.

Resources

Related skills

FAQ

Standard or Express workflows?

Standard suits auditable, non-idempotent operations (exactly-once, up to 1 year); Express suits high-volume idempotent event processing (up to 5 minutes).

Does JSONata replace JSONPath?

JSONata is the preferred query language, but JSONPath is still supported and is the default if QueryLanguage is omitted, so existing state machines do not need migrating.

Cloud & Infrastructurebackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.