Slack Automation API

The Automation API from Slack — 5 operation(s) for automation.

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /functions.completeSuccess Mark a custom workflow step as succeeded · Complete Function Success #
Ask an LLM
“How does my custom function tell the workflow it finished successfully?”
“Can I pass output values back to the workflow when a step succeeds?”
Tell an agent
Report function execution {function_execution_id} as successful with outputs {outputs}.
Complete step {function_execution_id} successfully and return {outputs} to the workflow.
POST /functions.completeError Mark a custom workflow step as failed · Complete Function Error #
Ask an LLM
“What should my custom function do when it hits an error mid-workflow?”
“Can I show the workflow a reason why my step failed?”
Tell an agent
Fail function execution {function_execution_id} with error {error}.
Tell the workflow step {function_execution_id} broke because {error}.
POST /functions.distributions.permissions.add Grant users access to a custom function · Add Function Distribution Permissions #
Ask an LLM
“How do I let more people use a custom function in their workflows?”
“Can I share a function with specific users instead of everyone?”
Tell an agent
Grant users {user_ids} access to function {function_app_id}.
Set distribution for function {function_app_id} to {permission_type}.
GET /functions.distributions.permissions.list List who can use a custom function · List Function Distribution Permissions #
Ask an LLM
“Who currently has permission to use my custom function?”
“Is my function shared with everyone or only named users?”
Tell an agent
Show the distribution permissions for function {function_app_id}.
List who is allowed to use {function_app_id} in workflows.
POST /functions.distributions.permissions.remove Revoke users' access to a custom function · Remove Function Distribution Permissions #
Ask an LLM
“Can I take away someone's ability to use my custom function?”
“What happens to workflows when I revoke a function's distribution?”
Tell an agent destructive · confirm first
Revoke access to function {function_app_id} for users {user_ids}.
Stop sharing function {function_app_id}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/slack-automation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

slack-automation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Slack Functions Automation API
  description: The Slack Functions API provides methods for managing custom functions that run as steps within Slack workflows. The key methods are functions.completeSuccess, which marks a custom function as having completed successfully and passes output data conforming to the function's defined output schema, and functions.completeError, which marks a custom function as having failed and passes an error message that surfaces to the end user via Slackbot.
  version: 1.0.0
  contact:
    name: Slack Developer Relations
    url: https://docs.slack.dev
servers:
- url: https://slack.com/api
tags:
- name: Automation
paths:
  /functions.completeSuccess:
    post:
      tags:
      - Automation
      summary: Complete Function Success
      description: Indicates that a custom function step in a workflow completed successfully.
      operationId: postFunctionsCompleteSuccess
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `functions:write`'
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - function_execution_id
              - outputs
              type: object
              properties:
                function_execution_id:
                  type: string
                  description: The execution ID of the function step being completed.
                outputs:
                  type: string
                  description: JSON-encoded map of output values conforming to the function's output schema.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
              example:
                ok: true
        default:
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  error:
                    type: string
              example:
                ok: false
                error: invalid_function_execution_id
      security:
      - slackAuth:
        - functions:write
  /functions.completeError:
    post:
      tags:
      - Automation
      summary: Complete Function Error
      description: Indicates that a custom function step in a workflow completed with an error.
      operationId: postFunctionsCompleteError
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `functions:write`'
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - function_execution_id
              - error
              type: object
              properties:
                function_execution_id:
                  type: string
                  description: The execution ID of the function step that failed.
                error:
                  type: string
                  description: Error message that will be surfaced to the user via Slackbot.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
              example:
                ok: true
        default:
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  error:
                    type: string
              example:
                ok: false
                error: invalid_function_execution_id
      security:
      - slackAuth:
        - functions:write
  /functions.distributions.permissions.add:
    post:
      tags:
      - Automation
      summary: Add Function Distribution Permissions
      description: Adds permissions for distributing a custom function to additional users or workspaces.
      operationId: postFunctionsDistributionsPermissionsAdd
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `functions:write`'
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - function_app_id
              - permission_type
              type: object
              properties:
                function_app_id:
                  type: string
                  description: ID of the function app.
                permission_type:
                  type: string
                  description: Type of permission to grant (named_entities, everyone).
                user_ids:
                  type: string
                  description: Comma-separated list of user IDs to grant access to.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
              example:
                ok: true
        default:
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  error:
                    type: string
              example:
                ok: false
                error: invalid_auth
      security:
      - slackAuth:
        - functions:write
  /functions.distributions.permissions.list:
    get:
      tags:
      - Automation
      summary: List Function Distribution Permissions
      description: Lists the distribution permissions for a custom function.
      operationId: getFunctionsDistributionsPermissionsList
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `functions:read`'
        required: true
        schema:
          type: string
      - name: function_app_id
        in: query
        description: ID of the function app.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  permission_type:
                    type: string
                  user_ids:
                    type: array
                    items:
                      type: string
              example:
                ok: true
                permission_type: named_entities
                user_ids:
                - U123ABC
        default:
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  error:
                    type: string
              example:
                ok: false
                error: invalid_auth
      security:
      - slackAuth:
        - functions:read
  /functions.distributions.permissions.remove:
    post:
      tags:
      - Automation
      summary: Remove Function Distribution Permissions
      description: Removes distribution permissions for a custom function from users or workspaces.
      operationId: postFunctionsDistributionsPermissionsRemove
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `functions:write`'
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - function_app_id
              type: object
              properties:
                function_app_id:
                  type: string
                  description: ID of the function app.
                user_ids:
                  type: string
                  description: Comma-separated list of user IDs to remove access from.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
              example:
                ok: true
        default:
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  error:
                    type: string
              example:
                ok: false
                error: invalid_auth
      security:
      - slackAuth:
        - functions:write
components:
  securitySchemes:
    slackAuth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://slack.com/oauth/v2/authorize
          tokenUrl: https://slack.com/api/oauth.v2.access
          scopes:
            functions:read: Read function data
            functions:write: Write function data