Skip to content

Commit c852585

Browse files
authored
chore(triggers): deprecate trigger-save subblock (#4107)
* chore(triggers): deprecate trigger-save subblock Remove the defunct triggerSave subblock from all 102 trigger definitions, the SubBlockType union, SYSTEM_SUBBLOCK_IDS, tool params, and command templates. Retain the backwards-compat filter in getTrigger() for any legacy stored data. * fix(triggers): remove leftover no-op blocks.push() in linear utils * chore(triggers): remove orphaned triggerId property and stale comments
1 parent 20cc018 commit c852585

File tree

111 files changed

+7
-1140
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+7
-1140
lines changed

.claude/commands/add-trigger.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,6 @@ export const {service}PollingTrigger: TriggerConfig = {
423423
subBlocks: [
424424
{ id: 'triggerCredentials', type: 'oauth-input', title: 'Credentials', serviceId: '{service}', requiredScopes: [], required: true, mode: 'trigger', supportsCredentialSets: true },
425425
// ... service-specific config fields (dropdowns, inputs, switches) ...
426-
{ id: 'triggerSave', type: 'trigger-save', title: '', hideFromPreview: true, mode: 'trigger', triggerId: '{service}_poller' },
427426
{ id: 'triggerInstructions', type: 'text', title: 'Setup Instructions', hideFromPreview: true, mode: 'trigger', defaultValue: '...' },
428427
],
429428

@@ -486,7 +485,6 @@ Add to `helm/sim/values.yaml` under the existing polling cron jobs:
486485
- [ ] Handler implements `PollingProviderHandler` at `lib/webhooks/polling/{service}.ts`
487486
- [ ] Trigger config has `polling: true` and defines subBlocks manually (no `buildTriggerSubBlocks`)
488487
- [ ] Provider string matches across: trigger config, handler, `POLLING_PROVIDERS`, polling registry
489-
- [ ] `triggerSave` subBlock `triggerId` matches trigger config `id`
490488
- [ ] First poll seeds state and emits nothing
491489
- [ ] Added provider to `POLLING_PROVIDERS` in `triggers/constants.ts`
492490
- [ ] Added handler to `POLLING_HANDLERS` in `lib/webhooks/polling/registry.ts`

.cursor/commands/add-trigger.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,6 @@ export const {service}PollingTrigger: TriggerConfig = {
418418
subBlocks: [
419419
{ id: 'triggerCredentials', type: 'oauth-input', title: 'Credentials', serviceId: '{service}', requiredScopes: [], required: true, mode: 'trigger', supportsCredentialSets: true },
420420
// ... service-specific config fields (dropdowns, inputs, switches) ...
421-
{ id: 'triggerSave', type: 'trigger-save', title: '', hideFromPreview: true, mode: 'trigger', triggerId: '{service}_poller' },
422421
{ id: 'triggerInstructions', type: 'text', title: 'Setup Instructions', hideFromPreview: true, mode: 'trigger', defaultValue: '...' },
423422
],
424423

@@ -481,7 +480,6 @@ Add to `helm/sim/values.yaml` under the existing polling cron jobs:
481480
- [ ] Handler implements `PollingProviderHandler` at `lib/webhooks/polling/{service}.ts`
482481
- [ ] Trigger config has `polling: true` and defines subBlocks manually (no `buildTriggerSubBlocks`)
483482
- [ ] Provider string matches across: trigger config, handler, `POLLING_PROVIDERS`, polling registry
484-
- [ ] `triggerSave` subBlock `triggerId` matches trigger config `id`
485483
- [ ] First poll seeds state and emits nothing
486484
- [ ] Added provider to `POLLING_PROVIDERS` in `triggers/constants.ts`
487485
- [ ] Added handler to `POLLING_HANDLERS` in `lib/webhooks/polling/registry.ts`

apps/sim/blocks/blocks.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,6 @@ describe.concurrent('Blocks Module', () => {
399399
'mcp-dynamic-args',
400400
'input-format',
401401
'response-format',
402-
'trigger-save',
403402
'file-upload',
404403
'input-mapping',
405404
'variables-input',

apps/sim/blocks/blocks/linear.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2561,7 +2561,6 @@ export const LinearV2Block: BlockConfig<LinearResponse> = {
25612561
(sb) =>
25622562
!sb.id?.startsWith('webhookUrlDisplay') &&
25632563
!sb.id?.startsWith('webhookSecret') &&
2564-
!sb.id?.startsWith('triggerSave') &&
25652564
!sb.id?.startsWith('triggerInstructions') &&
25662565
!sb.id?.startsWith('selectedTriggerId')
25672566
),

apps/sim/blocks/types.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,6 @@ export type SubBlockType =
153153
| 'response-format' // Response structure format
154154
| 'filter-builder' // Filter conditions builder
155155
| 'sort-builder' // Sort conditions builder
156-
/**
157-
* @deprecated Legacy trigger save subblock type.
158-
*/
159-
| 'trigger-save' // Trigger save button with validation
160156
| 'file-upload' // File uploader
161157
| 'input-mapping' // Map parent variables to child workflow input schema
162158
| 'variables-input' // Variable assignments for updating workflow variables
@@ -414,8 +410,6 @@ export interface SubBlockConfig {
414410
dependsOn?: string[] | { all?: string[]; any?: string[] }
415411
// Copyable-text specific: Use webhook URL from webhook management hook
416412
useWebhookUrl?: boolean
417-
// Trigger-save specific: The trigger ID for validation and saving
418-
triggerId?: string
419413
// Dropdown/Combobox: Function to fetch options dynamically
420414
// Works with both 'dropdown' (select-only) and 'combobox' (editable with expression support)
421415
fetchOptions?: (blockId: string) => Promise<Array<{ label: string; id: string }>>

apps/sim/tools/params.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -869,7 +869,6 @@ const EXCLUDED_SUBBLOCK_TYPES = new Set([
869869
'eval-input',
870870
'webhook-config',
871871
'schedule-info',
872-
'trigger-save',
873872
'input-format',
874873
'response-format',
875874
'mcp-server-selector',

apps/sim/triggers/airtable/webhook.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,6 @@ export const airtableWebhookTrigger: TriggerConfig = {
4747
defaultValue: false,
4848
mode: 'trigger',
4949
},
50-
{
51-
id: 'triggerSave',
52-
title: '',
53-
type: 'trigger-save',
54-
hideFromPreview: true,
55-
mode: 'trigger',
56-
triggerId: 'airtable_webhook',
57-
},
5850
{
5951
id: 'triggerInstructions',
6052
title: 'Setup Instructions',

apps/sim/triggers/attio/utils.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,6 @@ export function buildAttioTriggerSubBlocks(triggerId: string): SubBlockConfig[]
5656
required: true,
5757
condition: { field: 'selectedTriggerId', value: triggerId },
5858
},
59-
{
60-
id: 'triggerSave',
61-
title: 'Save',
62-
type: 'trigger-save',
63-
mode: 'trigger',
64-
condition: { field: 'selectedTriggerId', value: triggerId },
65-
},
6659
{
6760
id: 'triggerInstructions',
6861
title: 'Setup Instructions',

apps/sim/triggers/calendly/invitee_canceled.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,6 @@ export const calendlyInviteeCanceledTrigger: TriggerConfig = {
3838
value: 'calendly_invitee_canceled',
3939
},
4040
},
41-
{
42-
id: 'triggerSave',
43-
title: '',
44-
type: 'trigger-save',
45-
hideFromPreview: true,
46-
mode: 'trigger',
47-
triggerId: 'calendly_invitee_canceled',
48-
condition: {
49-
field: 'selectedTriggerId',
50-
value: 'calendly_invitee_canceled',
51-
},
52-
},
5341
{
5442
id: 'triggerInstructions',
5543
title: 'Setup Instructions',

apps/sim/triggers/calendly/invitee_created.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,6 @@ export const calendlyInviteeCreatedTrigger: TriggerConfig = {
4747
value: 'calendly_invitee_created',
4848
},
4949
},
50-
{
51-
id: 'triggerSave',
52-
title: '',
53-
type: 'trigger-save',
54-
hideFromPreview: true,
55-
mode: 'trigger',
56-
triggerId: 'calendly_invitee_created',
57-
condition: {
58-
field: 'selectedTriggerId',
59-
value: 'calendly_invitee_created',
60-
},
61-
},
6250
{
6351
id: 'triggerInstructions',
6452
title: 'Setup Instructions',

0 commit comments

Comments
 (0)