From cf86d33d0fd524bf91f99458d926f8718231af19 Mon Sep 17 00:00:00 2001 From: deepunyk Date: Sat, 8 Aug 2026 08:09:00 +0530 Subject: [PATCH 1/4] fix(types): include action_id in WorkflowButton (#2207) --- .changeset/workflow-button-action-id.md | 5 +++++ packages/types/src/block-kit/block-elements.ts | 2 +- packages/types/test/block-elements.test-d.ts | 17 ++++++++++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 .changeset/workflow-button-action-id.md diff --git a/.changeset/workflow-button-action-id.md b/.changeset/workflow-button-action-id.md new file mode 100644 index 000000000..4f07855c2 --- /dev/null +++ b/.changeset/workflow-button-action-id.md @@ -0,0 +1,5 @@ +--- +"@slack/types": patch +--- + +fix(types): include `action_id` in `WorkflowButton` diff --git a/packages/types/src/block-kit/block-elements.ts b/packages/types/src/block-kit/block-elements.ts index 6fe6a127d..87c59e6a2 100644 --- a/packages/types/src/block-kit/block-elements.ts +++ b/packages/types/src/block-kit/block-elements.ts @@ -728,7 +728,7 @@ export interface URLSourceElement { * @description Allows users to run a {@link https://docs.slack.dev/tools/deno-slack-sdk/guides/creating-link-triggers/#workflow_buttons link trigger} with customizable inputs. * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element Workflow button element reference}. */ -export interface WorkflowButton extends Confirmable { +export interface WorkflowButton extends Actionable, Confirmable { /** * @description The type of element. In this case `type` is always `workflow_button`. */ diff --git a/packages/types/test/block-elements.test-d.ts b/packages/types/test/block-elements.test-d.ts index 020149637..21570d2c5 100644 --- a/packages/types/test/block-elements.test-d.ts +++ b/packages/types/test/block-elements.test-d.ts @@ -1,5 +1,20 @@ import { expectAssignable, expectError } from 'tsd'; -import type { RichTextInput } from '../src/index'; +import type { RichTextInput, WorkflowButton } from '../src/index'; + +// WorkflowButton happy path +expectAssignable({ + type: 'workflow_button', + text: { + type: 'plain_text', + text: 'Run workflow', + }, + action_id: 'run_workflow', + workflow: { + trigger: { + url: 'https://example.com/trigger', + }, + }, +}); // RichTextInput — happy paths expectAssignable({ From 8f4d2b2ab19287b074b01f5fef9f041df382788b Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Fri, 4 Sep 2026 17:24:56 -0700 Subject: [PATCH 2/4] docs(changeset): link WorkflowButton block element reference Co-Authored-By: Claude --- .changeset/workflow-button-action-id.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/workflow-button-action-id.md b/.changeset/workflow-button-action-id.md index 4f07855c2..d9dd9e882 100644 --- a/.changeset/workflow-button-action-id.md +++ b/.changeset/workflow-button-action-id.md @@ -2,4 +2,4 @@ "@slack/types": patch --- -fix(types): include `action_id` in `WorkflowButton` +fix(types): include `action_id` in the [`WorkflowButton`](https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element) block element From 7b11a9939c68c9e4883cf9346fa49f1f8f512a1f Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Fri, 4 Sep 2026 17:26:45 -0700 Subject: [PATCH 3/4] test(types): keep block-elements assertions alphabetical Move the WorkflowButton assertion below RichTextInput so the block-elements type tests stay in alphabetical order. Co-Authored-By: Claude --- packages/types/test/block-elements.test-d.ts | 30 ++++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/types/test/block-elements.test-d.ts b/packages/types/test/block-elements.test-d.ts index 21570d2c5..0019f74a5 100644 --- a/packages/types/test/block-elements.test-d.ts +++ b/packages/types/test/block-elements.test-d.ts @@ -1,21 +1,6 @@ import { expectAssignable, expectError } from 'tsd'; import type { RichTextInput, WorkflowButton } from '../src/index'; -// WorkflowButton happy path -expectAssignable({ - type: 'workflow_button', - text: { - type: 'plain_text', - text: 'Run workflow', - }, - action_id: 'run_workflow', - workflow: { - trigger: { - url: 'https://example.com/trigger', - }, - }, -}); - // RichTextInput — happy paths expectAssignable({ type: 'rich_text_input', @@ -43,3 +28,18 @@ expectError({ type: 'rich_text_input', max_lines: '16', }); + +// WorkflowButton happy path +expectAssignable({ + type: 'workflow_button', + text: { + type: 'plain_text', + text: 'Run workflow', + }, + action_id: 'run_workflow', + workflow: { + trigger: { + url: 'https://example.com/trigger', + }, + }, +}); From 140653a20aae2e0e9127aea2ae01b83ffe2c29ff Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Fri, 4 Sep 2026 17:32:02 -0700 Subject: [PATCH 4/4] chore(changeset): bump @slack/types to minor for new WorkflowButton property Adding an optional action_id property to an existing element is a feature (new type surface), matching the min_lines/max_lines precedent in 3.1.0. patch was too low. Co-Authored-By: Claude --- .changeset/workflow-button-action-id.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/workflow-button-action-id.md b/.changeset/workflow-button-action-id.md index d9dd9e882..c753db68b 100644 --- a/.changeset/workflow-button-action-id.md +++ b/.changeset/workflow-button-action-id.md @@ -1,5 +1,5 @@ --- -"@slack/types": patch +"@slack/types": minor --- -fix(types): include `action_id` in the [`WorkflowButton`](https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element) block element +feat(types): add optional `action_id` property to the [`WorkflowButton`](https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element) block element