admin.functions.*: list the custom functions apps provide and control who can use them in workflows. Scope: admin.workflows:read / admin.workflows:write.

Example

::functions ::slack::admin::functions

fns ::functions/list(::functions/ListRequest({app_ids: ["A0123ABCDEF"]}))
::functions/permissions-set(::functions/PermissionsSetRequest({
  function_id: first(fns.functions).id,
  visibility: "app_collaborators"
}))

Functions

list

fn (request: ListRequest): Map
fn (request: ListRequest, opts: Map): Map

admin.functions.list - List the functions of up to 50 apps (functions).

Scope: admin.workflows:read. Returns Slack's response body; ok: false comes back as an Err(SlackError). Cursor-paginated: pass cursor from response_metadata.next_cursor, or use list-all.

list-all

fn (request: ListRequest): Vec
fn (request: ListRequest, max-items: Int): Vec
fn (request: ListRequest, max-items: Int, opts: Map): Vec

Every functions entry from admin.functions.list, following next_cursor until the last page or max-items (default 1000). request sets the filters; its cursor is the starting point.

permissions-lookup

fn (request: PermissionsLookupRequest): Map
fn (request: PermissionsLookupRequest, opts: Map): Map

admin.functions.permissions.lookup - Get the visibility and allowed users for functions.

Scope: admin.workflows:read. Returns Slack's response body; ok: false comes back as an Err(SlackError).

permissions-set

fn (request: PermissionsSetRequest): Map
fn (request: PermissionsSetRequest, opts: Map): Map

admin.functions.permissions.set - Set who can use a function: everyone, app_collaborators, named_entities (with user_ids) or no_one.

Scope: admin.workflows:read. Returns Slack's response body; ok: false comes back as an Err(SlackError).

Types

ListRequest

ListRequest type {
    app_ids: Vec<Str>,
    team_id: Str?,
    cursor: Str?,
    limit: Int?
}

PermissionsLookupRequest

PermissionsLookupRequest type {
    function_ids: Vec<Str>
}

PermissionsSetRequest

PermissionsSetRequest type {
    function_id: Str,
    visibility: Str,
    user_ids: Vec<Str>?
}