This automations page is moving! We've been working hard at building out our tools documentation at tools.slack.dev β€” the new home of our Deno Slack SDK and Slack CLI docs! You can start using the new docs today, but we'll keep the content on both sites up to date during the transition.

Slack functions

Developing automations requires a paid plan. Don't have one? Join the Developer Program and provision a sandbox with access to all Slack features for free.

Slack functions are essentially Slack-native actions, like creating a channel or sending a message. Use them alongside your custom functions in a workflow. Browse our inventory of Slack functions.

Slack functions need to be imported from the standard library built into the Slack Deno SDKβ€”all Slack functions are children of the Schema.slack.functions object. Just like custom functions, Slack functions can be added to steps in a workflow using the addStep method.

Slack functions define their own inputs and outputs, as detailed for each Slack function in the catalog below.

When building workflows using functions, there is a 60 second timeout for a deployed function and a 15 second timeout for a locally-run function.

For deployed functions using a block_suggestion, block_actions, view_submission, or view_closed payload, there is a 10 second timeout.

If a function has not finished running within its respective time limit, you will see an error in your log. Refer to logging for more details.

Slack functions catalog

The details for each Slack function can be found in our reference documentation.

Bookmarks

Canvas

Channel management

Helpers

Interactivity

Messaging

Pinned items

User management

Slack function example

Here's an example of a workflow that creates a new Slack channel using the CreateChannel Slack function:

import { DefineWorkflow, Schema } from "deno-slack-sdk/mod.ts";

// Define a workflow that can pass the parameters for the Slack function
const myWorkflow = DefineWorkflow({
  callback_id: "channel-creator",
  title: "Channel Creator",
  input_parameters: {
    properties: { channel_name: { type: Schema.types.string } },
    required: ["channel_name"],
  },
});

const createChannelStep = myWorkflow.addStep(
  Schema.slack.functions.CreateChannel,
  {
    channel_name: myWorkflow.inputs.channel_name,
    is_private: false,
  },
);

export default myWorkflow;

➑️ To learn how to add a Slack function to a workflow, head to the workflows section.

✨ To learn how to create your own custom functions, head to the custom functions section.

Browse all Slack functions


Have 2 minutes to provide some feedback?

We'd love to hear about your experience building Slack automations. Please complete our short survey so we can use your feedback to improve.