@@ -41814,8 +41814,9 @@ Pass an object with a `filter` field containing one or more filter criteria:
4181441814 Cancel workflows whose URL starts with this prefix. Cannot be combined with `workflowUrl`.
4181541815 </ParamField>
4181641816
41817- <ParamField body="label" type="string" optional>
41818- Cancel workflows with this label.
41817+ <ParamField body="label" type="string | string[]" optional>
41818+ Cancel workflows with this label. Pass an array to match runs that
41819+ have any of the given labels (OR semantics).
4181941820 </ParamField>
4182041821
4182141822 <ParamField body="fromDate" type="Date | number" optional>
@@ -41975,8 +41976,9 @@ await client.dlq.delete({ dlqIds: ["dlq-123", "dlq-456"] });
4197541976 Filter by workflow run ID.
4197641977 </ParamField>
4197741978
41978- <ParamField body="label" type="string" optional>
41979- Delete workflows with this label.
41979+ <ParamField body="label" type="string | string[]" optional>
41980+ Delete workflows with this label. Pass an array to match runs that
41981+ have any of the given labels (OR semantics).
4198041982 </ParamField>
4198141983
4198241984 <ParamField body="fromDate" type="Date | number" optional>
@@ -42089,8 +42091,9 @@ DLQ messages represent failed workflow or QStash deliveries that could not be re
4208942091 Filter by workflow run ID.
4209042092 </ParamField>
4209142093
42092- <ParamField body="label" type="string" optional>
42093- Filter by workflow label.
42094+ <ParamField body="label" type="string | string[]" optional>
42095+ Filter by workflow label. Pass an array to match runs that have any
42096+ of the given labels (OR semantics).
4209442097 </ParamField>
4209542098
4209642099 <ParamField body="fromDate" type="Date | number" optional>
@@ -42186,8 +42189,9 @@ Pass an object with a `filter` field:
4218642189 Filter by workflow run ID.
4218742190 </ParamField>
4218842191
42189- <ParamField body="label" type="string" optional>
42190- Restart workflows with this label.
42192+ <ParamField body="label" type="string | string[]" optional>
42193+ Restart workflows with this label. Pass an array to match runs that
42194+ have any of the given labels (OR semantics).
4219142195 </ParamField>
4219242196
4219342197 <ParamField body="fromDate" type="Date | number" optional>
@@ -42349,8 +42353,9 @@ Pass an object with a `filter` field:
4234942353 Filter by workflow run ID.
4235042354 </ParamField>
4235142355
42352- <ParamField body="label" type="string" optional>
42353- Resume workflows with this label.
42356+ <ParamField body="label" type="string | string[]" optional>
42357+ Resume workflows with this label. Pass an array to match runs that
42358+ have any of the given labels (OR semantics).
4235442359 </ParamField>
4235542360
4235642361 <ParamField body="fromDate" type="Date | number" optional>
@@ -42521,8 +42526,9 @@ The `logs` method retrieves workflow run logs using the [List Workflow Runs API]
4252142526 Filter by the exact workflow URL.
4252242527 </ParamField>
4252342528
42524- <ParamField body="label" type="string" optional>
42525- Filter by workflow label.
42529+ <ParamField body="label" type="string | string[]" optional>
42530+ Filter by workflow label. Pass an array to match runs that have any
42531+ of the given labels (OR semantics).
4252642532 </ParamField>
4252742533
4252842534 <ParamField body="workflowCreatedAt" type="number" optional>
@@ -42588,8 +42594,13 @@ The `logs` method retrieves workflow run logs using the [List Workflow Runs API]
4258842594 The Unix timestamp (in milliseconds) when the workflow run was completed, if applicable.
4258942595 </ResponseField>
4259042596
42591- <ResponseField name="label" type="string">
42592- The label of the run assigned by the user on trigger.
42597+ <ResponseField name="labels" type="string[]">
42598+ The labels of the run assigned by the user on trigger.
42599+ </ResponseField>
42600+
42601+ <ResponseField name="label" type="string" deprecated>
42602+ Deprecated. Use `labels` instead. When a run has multiple labels, this only
42603+ contains the first one.
4259342604 </ResponseField>
4259442605
4259542606 <ResponseField name="failureFunction" type="FailureFunction">
@@ -42879,6 +42890,20 @@ const { runs } = await client.logs({
4287942890})
4288042891```
4288142892
42893+ ### Filter by multiple labels
42894+
42895+ Passing an array matches runs that have any of the given labels (OR semantics).
42896+ For example, with runs labelled `["label-1", "label-2"]` and `["label-2", "label-3"]`,
42897+ filtering by `["label-1", "label-2"]` returns both.
42898+
42899+ ```ts
42900+ const { runs } = await client.logs({
42901+ filter: {
42902+ label: ["label-1", "label-2"],
42903+ }
42904+ })
42905+ ```
42906+
4288242907# client.notify
4288342908Source: https://upstash.com/docs/workflow/basics/client/notify
4288442909
@@ -43041,9 +43066,13 @@ You can also trigger multiple workflow runs in a single call by passing an array
4304143066 Unix timestamp in seconds.
4304243067</ParamField>
4304343068
43044- <ParamField body="label" type="string">
43069+ <ParamField body="label" type="string | string[] ">
4304543070 An optional label to assign to the workflow run.
4304643071 This can be useful for identifying and filtering runs in the dashboard or logs.
43072+
43073+ Pass an array to attach multiple labels to a single workflow run. The run will
43074+ then match a [logs](/docs/workflow/basics/client/logs) or DLQ filter for any of its
43075+ labels (OR semantics).
4304743076</ParamField>
4304843077
4304943078<ParamField body="disableTelemetry" type="boolean">
@@ -43217,8 +43246,14 @@ The context object provides:
4321743246 The QStash client instance used by the workflow endpoint.
4321843247</ParamField>
4321943248
43220- <ParamField path="label" type="srting | undefined">
43221- The label of the current workflow run, if set in [client.trigger](/docs/workflow/basics/client/trigger).
43249+ <ParamField path="labels" type="string[]">
43250+ The labels attached to the current workflow run, if set in [client.trigger](/docs/workflow/basics/client/trigger).
43251+ Defaults to an empty array when no label was set.
43252+ </ParamField>
43253+
43254+ <ParamField path="label" type="string | undefined" deprecated>
43255+ Deprecated. Use `labels` instead. When a run has multiple labels, this only
43256+ returns the first one.
4322243257</ParamField>
4322343258
4322443259## Context Object Functions
@@ -44834,6 +44869,11 @@ Source: https://upstash.com/docs/workflow/changelog
4483444869 We have moved the roadmap and the changelog to [Github Discussions](https://github.com/orgs/upstash/discussions) starting from October 2025.Now you can follow `In Progress` features. You can see that your `Feature Requests` are recorded. You can vote for them and comment your specific use-cases to shape the feature to your needs.
4483544870</Note>
4483644871
44872+ <Update label="June 2026">
44873+ * **TypeScript SDK (`workflow-js`):**
44874+ * Multiple labels per workflow run are now supported. `label` on [`client.trigger`](/docs/workflow/basics/client/trigger) and `context.invoke` accepts `string | string[]`, and log/DLQ/cancel filters accept an array to match runs that have any of the given labels (OR semantics). Workflow run logs now expose a `labels: string[]` field, and `context.labels: string[]` replaces the now-deprecated `context.label`.
44875+ </Update>
44876+
4483744877<Update label="March 2026">
4483844878* **TypeScript SDK (`workflow-js`):**
4483944879 * Added optional `workflowRunId` parameter to `notify` method, enabling **lookback functionality**. When provided, notifications are stored and delivered even if sent before a workflow reaches `waitForEvent`, preventing race conditions. See [notify documentation](/docs/workflow/basics/client/notify) and [wait-for-event guide](/docs/workflow/features/wait-for-event#race-condition-between-wait-and-notify) for details.
0 commit comments