# AWS (/docs/workflows/integrations/aws)

> For the complete documentation index, see [llms.txt](https://docs.tandemcx.ai/llms.txt). Any page on this site can be fetched as Markdown by appending `.md` to its URL.

The AWS integration lets you run custom logic by invoking your AWS Lambda
functions directly from a workflow — anything you can express as a Lambda becomes
a step in a flow.

## Setup

Connect an AWS integration on the **Integrations** page in the app, supplying the
credentials and region for the account whose functions you want to invoke. The
Invoke Lambda node references the connected integration for its credentials, so
you select which integration to use on the node itself.

## What you can do

- **Invoke a function** — call any Lambda in the connected account, optionally
  targeting a specific version or alias with a qualifier.
- **Pass data in** — send a JSON payload that can embed `$(name)` variables, so
  the function receives values gathered earlier in the flow.
- **Use the result** — capture fields from the returned JSON into variables by
  JSONPath and branch on or reuse them downstream.
- **Fire and forget** — invoke asynchronously when you don't need to wait for a
  result.

<Callout>
    The Invoke Lambda node exposes a `timeout` exit for when the function has not answered within
    the node's **Timeout** plus one second, or 28 seconds, whichever is shorter. Wire it so the flow
    degrades gracefully. Your function keeps running after the node takes `timeout`: the node stops
    waiting, but the invocation is not cancelled. See [Error
    Handling](/docs/workflows/error-handling).
</Callout>

## When the function fails

If your function throws, or runs past its own configured Lambda timeout, the node takes
`fallback`. The message it carries is the function's `errorType: errorMessage`, or `errorType`
alone when the function reported no message. What a Lambda timeout reads as depends on the
function's Lambda runtime, for example `Sandbox.Timedout: ...`. No stack trace or other part of
the error payload is included, and the type and message are cut at 100 and 500 characters. Inside a Try / Catch, the message is in `$(sys.error.message)`.

## Nodes

<IntegrationNodes provider="aws" />
