> ## Documentation index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Ask it with GET https://upstash.com/docs/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.
> Feature requests: https://upstash.com/docs/common/help/feature-requests.md lists what users asked for and how to vote for a request or add one.
> Page rating: `GET https://upstash.com/docs/feedback?path=/docs/workflow/howto/configure&helpful=true` (or `false`) records whether this page helped. An optional `comment` (URL-encoded, at most 500 characters) says what was missing or wrong. It is anonymous and needs no key. Comments hold no code, secrets or personal data.

# Configure a Run

You can configure a workflow run when starting it. The following are the options you can configure:

1. Retries: The number of retry attempt Upstash Workflow does when a step fails in the workflow run
2. Retry Delay: The delay strategy between retries when Upstash Workflow attempts retries.
3. Flow Control: The rate, period and parallelism that steps should respect and logical grouping key to share with other workflow runs.

You can pass these configuration options when starting a workflow run:

```typescript
import { Client } from "@upstash/workflow";

const client = Client()

const { workflowRunId } = await client.trigger({
    url: `http://localhost:3000/api/workflow`,
    retries: 3,
    retryDelay: "(1 + retries) * 1000",
    flowControl: {
        key: "limit-ads",
        rate: 1,
        parallelism: 10
    }
});
```

The workflow run configuration does **not** apply to `context.call()` and `context.invoke()` steps.
These steps accept their own configuration options, allowing fine-grained control over external requests.
If not specified, they fall back to their default values.

For details, see:
- [context.call](/workflow/basics/context/run)
- [context.invoke](/workflow/basics/context/run)

<Tip>
Upstash Workflow does not support step level configuration. The configuration applies to all steps executed by a workflow run.

If you want to specifically throttle a step, there is a workaround by splitting step to another workflow and using `context.invoke()`.
</Tip>
