# Overview

The Workflow Client lets you programmatically interact with your workflow runs.
You can use it from the same application that hosts your workflows, or from any external service.


## Initialization

Initialize a new client with your credentials:

```javascript
import { Client } from "@upstash/workflow"

const client = new Client({
  baseUrl: process.env.QSTASH_URL!,
  token: process.env.QSTASH_TOKEN!
})
```

The client is lightweight and stateless. You can safely reuse a single instance across your application.


## Functionality

The client exposes a set of functions to manage workflow runs and inspect their state:

- [client.trigger](/workflow/basics/client/trigger)
- [client.cancel](/workflow/basics/client/cancel)
- [client.notify](/workflow/basics/client/notify)
- [client.logs](/workflow/basics/client/logs)
- [client.getWaiters](/workflow/basics/client/waiters)
- client.dlq
    - [client.dlq.list](/workflow/basics/client/dlq/list)
    - [client.dlq.restart](/workflow/basics/client/dlq/restart)
    - [client.dlq.resume](/workflow/basics/client/dlq/resume)
    - [client.dlq.delete](/workflow/basics/client/dlq/delete)
    - [client.dlq.retryFailureFunction](/workflow/basics/client/dlq/callback)
