Skip to main content

Managing triggers

Workflow apps require a paid plan

Join the Developer Program and provision a sandbox with access to all Slack features for free.

All triggers can be updated, deleted, viewed, and have their access restricted in the same way.

Update a trigger

Update a trigger with the CLI

Make an update to a pre-existing trigger with the CLI by using the slack trigger update command. Provide the same payload you used to create the trigger in its entirety, in addition to the trigger ID.

slack trigger update --trigger-id Ft123ABC --trigger-def "path/to/trigger.ts"

Update a trigger at runtime

You can update a runtime trigger, but the trigger must be updated in its entirety. Use the same structure as client.workflows.triggers.create() but for client.workflows.triggers.update with the additional trigger_id parameter.

const triggerId = "FtABC123";
const response = await client.workflows.triggers.update<typeof ExampleWorkflow.definition>({
trigger_id: triggerId,
type: "<specific-trigger-type>",
name: "My trigger",
workflow: "#/workflows/myworkflow",
inputs: {
input_name: {
value: "value",
}
}
});
// Error handling example in your custom function
if (response.error) {
const error = `Failed to update a trigger (id: ${triggerId}) due to ${repsonse.error}`;
return { error };
}

Delete a trigger

Delete a trigger with the CLI

You can delete a trigger with the slack trigger delete command.

slack trigger delete --trigger-id FtABC123

Delete a trigger at runtime

Deleting a runtime trigger deletes that specific trigger created in one instance of the workflow. This means that you'll need to have stored the trigger_id created for that instance. Your app will continue to be able to create triggers until you remove the relevant code.

You can delete a runtime trigger by using client.workflows.triggers.delete().

const response = await client.workflows.triggers.delete({
trigger_id: "FtABC123"
});
// Error handling example in your custom function
if (response.error) {
const error = `Failed to delete a trigger due to ${response.error}`;
return { error };
}

List a trigger

Triggers created in your local development environment will only work if your application is still running locally. You can view triggers created in your local development environment with the slack run --show-triggers command. Triggers created in a deployed environment will not be returned.

You can use the slack triggers list command to view information about your app's triggers, including the trigger ID, name, type, creation, and last updated time. When you use that command, you'll be prompted to select the workspace and then the environment (either local or deployed) for the triggers to list.

Manage access to a trigger

A newly-created trigger is accessible to anyone inside the workspace by default. You can manage who can access the trigger using the access Slack CLI command.

Grant access

Required FlagDescriptionExample Argument
--grantA switch to grant access
--trigger-idThe trigger_id of the desired triggerFt123ABC

Set one of the following flags to grant access to different groups. If no flag is selected you will be prompted to select a group within the Slack CLI.

FlagDescriptionExample Argument
--app-collaboratorsA switch to grant access to all app collaborators
--channelsThe channel IDs of channels to be granted accessC123ABC, C456DEF
--everyoneA switch to grant access to all workspace members
--organizationsThe enterprise IDs of organizations to be granted accessE123ABC, E456DEF
--usersThe user ID of users to be granted accessU123ABC, U456DEF
--workspacesThe team IDs of workspaces to be granted accessT123ABC, T456DEF

You can combine types of named entities (channels, organizations, users, and workspaces) in a single command. For example, the following command grants access to the trigger FtABC123 for channel C123ABC, organization E123ABC, user U123ABC and workspace T123ABC:

slack trigger access --trigger-id Ft123ABC --channels C123ABC --organizations E123ABC --users U123ABC --workspaces T123ABC --grant

Revoke access

Required FlagDescriptionExample Argument
--revokeA switch to revoke access
--trigger-idThe trigger_id of the desired triggerFt123ABC

Set one of the following flags to revoke access to different groups. If no flag is selected you will be prompted to select a group within the Slack CLI.

FlagDescriptionExample Argument
--channelsThe channel IDs of channels whose access will be revokedC123ABC, C456DEF
--organizationsThe enterprise IDs of organizations whose access will be revokedE123ABC, E456DEF
--usersThe user IDs of users whose access will be revokedU123ABC, U456DEF
--workspacesThe team IDs of workspaces whose access will be revokedT123ABC, T456DEF

The following example command revokes access to the trigger FtABC123 for users U123ABC and U456DEF and channels C123ABC and C456DEF.

slack trigger access --trigger-id FtABC123 --users U123ABC, U456DEF --channels C123ABC, C456DEF --revoke

Onward

Remember, you won't be able to use any triggers unless your app is active.

If you're still testing out your app you'll want to run your app locally.

If your app is ready to go you'll want to deploy it to Slack.