Slack

App · Messaging · 79 actions · 6 triggers

Post, schedule and edit Slack messages with Markdown or Block Kit, share and download files, and manage channels, reactions, pins and bookmarks. Look people up by email or name, and work with user groups, canvases, Lists and Workflow Builder workflows.

Triggers

Start a workflow when something happens in Slack. See how triggers work.

New Slack message

Runs when a new message is posted in a Slack channel.

Filters

Narrow which events start a run.

channel_idRequired
from_user
keyword

Event fields

What a run starts with. Later steps read each field with an @ reference.

message_tstext
channel_idtext
user_idtext
texttext

Channel created

Runs when a new Slack channel is created.

Event fields

What a run starts with. Later steps read each field with an @ reference.

channel_idtext
nametext
is_privatetrue/false
creator_idtext
creatednumber

New command in channel

Runs when a message in a Slack channel starts with a command word.

Filters

Narrow which events start a run.

channel_idRequired
commandRequired
from_user

Event fields

What a run starts with. Later steps read each field with an @ reference.

message_tstext
channel_idtext
user_idtext
texttext
commandtext
argumentstext

New mention in channel

Runs when someone is mentioned in a Slack channel.

Filters

Narrow which events start a run.

channel_idRequired
user_id
from_user

Event fields

What a run starts with. Later steps read each field with an @ reference.

message_tstext
channel_idtext
user_idtext
texttext
mentioned_user_idtext

Reaction added to message

Runs when an emoji reaction is added to a Slack message.

Filters

Narrow which events start a run.

channel_idRequired
emoji
from_user

Event fields

What a run starts with. Later steps read each field with an @ reference.

message_tstext
channel_idtext
emojitext
user_idtext
texttext

Reaction removed from message

Runs when an emoji reaction is removed from a Slack message.

Filters

Narrow which events start a run.

channel_idRequired
emoji
from_user

Event fields

What a run starts with. Later steps read each field with an @ reference.

message_tstext
channel_idtext
emojitext
user_idtext
texttext

Actions

ActionWhat it does
Add a bookmarkAdd a link to the bookmarks bar under a channel's name, such as this week's dashboard or the current release notes.
Add a List itemAdd an item to a Slack List, filling in the columns you give.
Add a reactionAdd an emoji reaction to a Slack message.
Add people to a user groupAdd people to a user group, keeping everyone already in it.
Archive a channelArchive a Slack channel.
Create a canvasCreate a canvas from Markdown, such as a weekly report or an incident summary.
Create a channelCreate a new public or private Slack channel.
Create a channel canvasCreate a channel's own canvas, the one shown in the channel's header, for example to hold a project's plan or a team's links.
Create a ListCreate a Slack List, a table of items people can track together, with the columns you name or copied from another List.
Create a user groupCreate a user group, an @team handle that notifies everyone in it.
Delete a canvasDelete a canvas.
Delete a fileDelete a file from Slack.
Delete a List itemDelete an item from a Slack List.
Delete a messageDelete a Slack message.
Delete a scheduled messageCancel a message scheduled with Schedule a message before it is sent.
Disable a user groupDisable a user group so its handle stops notifying anyone.
Download a fileSave a file shared in Slack as a Lodol document, so later steps can read or attach it (an invoice to extract data from, say).
Edit a bookmarkChange a bookmark's title, link or emoji.
Edit a canvasMake one change to a canvas: add Markdown at the start or end, before or after a section, replace a section or the whole canvas, delete a section, or rename it.
Edit a messageReplace the text of a message the app has already posted.
Enable a user groupRe-enable a disabled user group.
Export a ListExport a Slack List as a CSV or JSON file saved as a Lodol document, for a spreadsheet, a report or another step.
Find a channel by nameFind a channel by its name and get its ID, for example to post in a channel named in a form or spreadsheet.
Find a user by emailFind the workspace member with an email address, for example to message the person behind a form entry or CRM record.
Find a user by nameFind a workspace member by handle, display name or full name, ignoring capitals.
Find canvas sectionsFind the IDs of a canvas's sections by kind (headings, lists, tables and so on) or by the text they contain, for Edit a canvas.
Find messagesReturn every recent message matching your search criteria.
Get a channelGet a channel's details: name, topic, description, creator, whether it is private or archived, and its member count.
Get a fileGet a file's details: name, type, size, who shared it and where.
Get a List itemGet one item from a Slack List, with its values by column name.
Get a message by timestampFetch a single Slack message by its channel and timestamp.
Get a message linkGet a shareable link to a message, including a reply in a thread.
Get a message's reactionsList every emoji reaction on a message and who added each one.
Get a userLook up one workspace member's profile details by ID.
Get a user's Do Not Disturb statusCheck a member's Do Not Disturb schedule, for example before sending a non-urgent message.
Get a user's presenceCheck whether a member is active in Slack right now or away.
Get a user's profileGet a member's profile: name, title, contact details, status and the workspace's custom profile fields.
Get channel historyRead a channel's recent messages, newest first.
Get thread messagesList every message in a thread, starting with the message that started it.
Get workspace infoGet the connected workspace's name, address, email domain and icon.
Invite a user to a channelAdd one or more workspace members to a Slack channel.
Join a channelAdd the Lodol app to a public channel so it can read the channel's messages.
Leave a channelTake the Lodol app out of a channel.
List a user's channelsList the channels a member belongs to: every public channel they're in, plus private channels the Lodol app shares with them.
List bookmarksList the bookmarks in a channel's bookmarks bar.
List channelsList the Slack channels you can access, optionally hiding archived ones.
List custom emojiList the workspace's custom emoji, alphabetically.
List filesList files shared in the workspace, newest first, optionally narrowed to a channel, a person, file types or a date range.
List items in a ListGet the items in a Slack List, with its title and columns.
List pinned messagesList the messages pinned in a channel.
List profile fieldsList the custom profile fields the workspace defines, such as Team or Start date, with their IDs and allowed values.
List scheduled messagesList the messages this Slack connection has scheduled that haven't been sent yet.
List user group membersList the IDs of the people in a user group.
List user groupsList the workspace's user groups, the @team handles that notify a set of people at once.
List users in a channelList the members of one Slack channel.
List users in the workspaceList the members of the connected Slack workspace.
Pin a messagePin a message to its channel.
Remove a bookmarkRemove a bookmark from a channel's bookmarks bar.
Remove a reactionRemove an emoji reaction the Lodol app added to a message.
Remove a user from a channelRemove a member from a Slack channel.
Remove people from a user groupTake people out of a user group, keeping everyone else.
Rename a channelRename a channel.
Schedule a messageSchedule a message to be posted at a future time.
Send a direct messageSend a direct message to a Slack user.
Send a direct message by emailSend a direct message to the workspace member with an email address, without looking up their Slack ID first.
Send a group direct messageSend one message to a group direct message with 2 to 8 people.
Send a message to a channelSend a message to a public or private Slack channel.
Send an ephemeral messageShow a message in a channel that only one member can see.
Set a channel descriptionSet the description shown in a channel's details, up to 250 characters.
Set a channel topicSet the topic shown at the top of a Slack channel.
Set user group membersReplace a user group's members with exactly these people, for example to hand @oncall to this week's rota.
Share a canvasShare a canvas with channels or people, as sharing it in Slack does: its link is posted to each channel and sent to each person, with an optional message, and they can then view or edit it.
Share a ListLet channels or people view or edit a Slack List.
Start a Slack workflowStart a Workflow Builder workflow that begins 'From a webhook', passing it up to 20 variables.
Unpin a messageUnpin a message from its channel.
Unshare a canvasRemove channels' or people's access to a canvas.
Update a List itemChange some of a List item's values; columns you leave empty keep their values.
Update a user groupChange a user group's name, handle, description or default channels.
Upload a fileShare a file in a channel or thread, with an optional message.

Add a bookmark

Add a link to the bookmarks bar under a channel's name, such as this week's dashboard or the current release notes. A channel holds up to 100 bookmarks.

Inputs

Channelchannel_idtextRequired
The channel to act on.
TitletitletextRequired
The bookmark's title.
LinklinktextRequired
The web address to bookmark, starting with https://.
Emojiemojitext
An emoji to show beside the bookmark, e.g. pushpin or :pushpin:.

Outputs

bookmarkobject
The bookmark.
statustext
Operation status (typically 'success').
Example output
{
  "bookmark": {
    "channel_id": "example_value",
    "date_created": 1,
    "date_updated": 1,
    "emoji": "example_value",
    "icon_url": "example_value",
    "id": "example_value",
    "link": "example_value",
    "title": "example_value",
    "type": "example_value"
  },
  "status": "example_value"
}

Add a List item

Add an item to a Slack List, filling in the columns you give. Needs a paid Slack plan.

Inputs

Listlist_idtextRequired
The List's ID (it starts with F), as Create a List returns it, or the List's link from Slack (Copy link).
Valuesfieldsobject
Values by column. A choice column takes the choice's name, a people or channel column takes member or channel IDs, and several values are separated by commas. Dates are YYYY-MM-DD and checkboxes true or false.
Subtask ofparent_item_idtext
To add a subtask, the ID of the item it belongs under.

Outputs

itemobject
The List item.
statustext
Operation status (typically 'success').
Example output
{
  "item": {
    "archived": true,
    "created_by": "example_value",
    "date_created": 1,
    "fields": {},
    "id": "example_value",
    "list_id": "example_value",
    "parent_item_id": "example_value",
    "updated_by": "example_value"
  },
  "status": "example_value"
}

Add a reaction

Add an emoji reaction to a Slack message.

Inputs

Channelchannel_idtextRequired
The channel that contains the message to react to.
Message timestamptimestamptextRequired
The timestamp of the message to react to (the value returned when the message was sent).
EmojiemojitextRequired
The emoji name, for example thumbsup or :thumbsup: (surrounding colons are optional).

Outputs

statustext
Operation status (typically 'success').
Example output
{
  "status": "example_value"
}

Add people to a user group

Add people to a user group, keeping everyone already in it. People already in the group are left as they are. Needs a paid Slack plan, and a workspace setting that lets everyone manage user groups (by default only admins can).

Inputs

User groupuser_group_idtextRequired
The user group (an @team handle) to act on.
Peopleuser_idslistRequired
The people to act on. Guests and bots can't be in a user group.

Outputs

addedlist
IDs of the people who were added.
already_memberslist
IDs of the people who were already in it.
statustext
Operation status (typically 'success').
user_group_idtext
Group ID.
user_idslist
IDs of everyone in the group now.
Example output
{
  "added": [],
  "already_members": [],
  "status": "example_value",
  "user_group_id": "example_value",
  "user_ids": []
}

Archive a channel

Archive a Slack channel.

Inputs

Channelchannel_idtextRequired
The channel to archive.

Outputs

statustext
Operation status (typically 'success').
Example output
{
  "status": "example_value"
}

Create a canvas

Create a canvas from Markdown, such as a weekly report or an incident summary. With a channel it is added to that channel as a tab its members can edit. Without one it is a standalone canvas that only the app can see until you share it, which needs a paid Slack plan. The app can write canvases but can't read their content back.

Inputs

TitletitletextRequired
The canvas's title.
ContentcontenttextRequired
The content, in Markdown: headings (up to ###), lists, checklists, tables, quotes, code and links. Mention someone with `![](@U123)` and a channel with `![](#C123)`. Up to about a million characters.
Add to channelchannel_idtext
A channel to add the canvas to as a tab. Required on free Slack plans, which allow one such canvas per channel.

Outputs

canvas_idtext
Canvas ID, for the other canvas steps.
channel_idtext
Channel it was added to, if any.
permalinktext
Link to the canvas, when Slack returns one.
statustext
Operation status (typically 'success').
Example output
{
  "canvas_id": "example_value",
  "channel_id": "example_value",
  "permalink": "example_value",
  "status": "example_value"
}

Create a channel

Create a new public or private Slack channel.

Inputs

Channel namenametextRequired
The name for the new channel. Capitals become lowercase and spaces become hyphens automatically.
Private channelis_privatetrue/false
Set to true to make the channel private.Default: false.
Topictopictext
A topic to set for the channel.
Descriptiondescriptiontext
A description of what the channel is for, shown in its details (Slack calls this the channel's purpose).

Outputs

channelobject
statustext
Operation status (typically 'success').
Example output
{
  "channel": {
    "id": "example_value",
    "is_archived": true,
    "is_private": true,
    "name": "example_value"
  },
  "status": "example_value"
}

Create a channel canvas

Create a channel's own canvas, the one shown in the channel's header, for example to hold a project's plan or a team's links. A channel has only one. If it already has one, nothing is written and its ID comes back with created set to false, so you can change it with Edit a canvas.

Inputs

Channelchannel_idtextRequired
The channel to act on.
ContentcontenttextRequired
The content, in Markdown: headings (up to ###), lists, checklists, tables, quotes, code and links. Mention someone with `![](@U123)` and a channel with `![](#C123)`. Up to about a million characters.
Titletitletext
The canvas's title.

Outputs

canvas_idtext
ID of the channel's canvas.
channel_idtext
Channel ID.
createdtrue/false
False when the channel already had a canvas.
statustext
Operation status (typically 'success').
Example output
{
  "canvas_id": "example_value",
  "channel_id": "example_value",
  "created": true,
  "status": "example_value"
}

Create a List

Create a Slack List, a table of items people can track together, with the columns you name or copied from another List. A List the app creates is visible only to the app until it is shared, so give channels to share it with. Needs a paid Slack plan.

Inputs

NamenametextRequired
The List's name.
Columnscolumnslist
The List's columns, in order. The first is its main column and must be text. A choice column lists its choices separated by commas. Leave empty for a single text column, or when copying a List.
Descriptiondescriptiontext
What the List is for.
Track taskstodo_modetrue/false
Set to true to add Completed, Assignee and Due date columns for tracking tasks.Default: false.
Copy columns from Listcopy_from_list_idtext
A List to copy the columns from, by ID or link. Columns above are then ignored.
Copy its items tooinclude_copied_itemstrue/false
When copying a List, set to true to copy its items too.Default: false.
Share with channelsshare_with_channel_idslist
Channels whose members can view and edit the new List.

Outputs

columnslist
The List's columns.
list_idtext
List ID, for the other List steps.
permalinktext
Link to the List, when Slack returns one.
shared_with_channel_idslist
IDs of the channels it was shared with.
statustext
Operation status (typically 'success').
Example output
{
  "columns": [],
  "list_id": "example_value",
  "permalink": "example_value",
  "shared_with_channel_ids": [],
  "status": "example_value"
}

Create a user group

Create a user group, an @team handle that notifies everyone in it. Add people afterwards with Set user group members. Needs a paid Slack plan, and a workspace setting that lets everyone manage user groups (by default only admins can).

Inputs

NamenametextRequired
The group's name, e.g. On-call Engineers. Must be unique.
Handlehandletext
The handle people mention, e.g. oncall for @oncall. Must not match a channel, a member or another group.
Descriptiondescriptiontext
What the group is for.
Default channelsdefault_channel_idslist
Channels that people added to the group are added to as well.

Outputs

statustext
Operation status (typically 'success').
user_groupobject
The user group.
Example output
{
  "status": "example_value",
  "user_group": {
    "created_by": "example_value",
    "date_create": 1,
    "date_update": 1,
    "default_channel_ids": [],
    "description": "example_value",
    "handle": "example_value",
    "id": "example_value",
    "is_disabled": true,
    "name": "example_value",
    "user_count": 1,
    "user_ids": []
  }
}

Delete a canvas

Delete a canvas. Slack has no way to get a deleted canvas back.

Inputs

Canvascanvas_idtextRequired
The canvas: pick one the app can see, or enter its ID (it starts with F) or its link.

Outputs

canvas_idtext
ID of the deleted canvas.
statustext
Operation status (typically 'success').
Example output
{
  "canvas_id": "example_value",
  "status": "example_value"
}

Delete a file

Delete a file from Slack. The Lodol app can delete files it uploaded; Slack refuses files other people shared.

Inputs

File IDfile_idtextRequired
The ID of a Slack file, such as the 'id' Upload a file or List files returns (it starts with F).

Outputs

file_idtext
ID of the deleted file.
statustext
Operation status (typically 'success').
Example output
{
  "file_id": "example_value",
  "status": "example_value"
}

Delete a List item

Delete an item from a Slack List. Needs a paid Slack plan.

Inputs

Listlist_idtextRequired
The List's ID (it starts with F), as Create a List returns it, or the List's link from Slack (Copy link).
Item IDitem_idtextRequired
The item's ID (it starts with Rec), as Add a List item returns it.

Outputs

item_idtext
ID of the deleted item.
list_idtext
List ID.
statustext
Operation status (typically 'success').
Example output
{
  "item_id": "example_value",
  "list_id": "example_value",
  "status": "example_value"
}

Delete a message

Delete a Slack message. A bot connection can only delete messages it posted itself.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Message timestamptimestamptextRequired
The timestamp of the message (the 'ts' value returned when the message was sent).

Outputs

statustext
Operation status (typically 'success').
Example output
{
  "status": "example_value"
}

Delete a scheduled message

Cancel a message scheduled with Schedule a message before it is sent. Slack can't cancel one due within the next 60 seconds.

Inputs

Channelchannel_idtextRequired
The channel the message is scheduled for.
Scheduled message IDscheduled_message_idtextRequired
The 'scheduled_message_id' Schedule a message returned, or an 'id' from List scheduled messages.

Outputs

channel_idtext
Channel the message was scheduled for.
scheduled_message_idtext
ID of the cancelled message.
statustext
Operation status (typically 'success').
Example output
{
  "channel_id": "example_value",
  "scheduled_message_id": "example_value",
  "status": "example_value"
}

Disable a user group

Disable a user group so its handle stops notifying anyone. Enable a user group brings it back. Needs a paid Slack plan, and a workspace setting that lets everyone manage user groups (by default only admins can).

Inputs

User groupuser_group_idtextRequired
The user group (an @team handle) to act on.

Outputs

statustext
Operation status (typically 'success').
user_groupobject
The user group.
Example output
{
  "status": "example_value",
  "user_group": {
    "created_by": "example_value",
    "date_create": 1,
    "date_update": 1,
    "default_channel_ids": [],
    "description": "example_value",
    "handle": "example_value",
    "id": "example_value",
    "is_disabled": true,
    "name": "example_value",
    "user_count": 1,
    "user_ids": []
  }
}

Download a file

Save a file shared in Slack as a Lodol document, so later steps can read or attach it (an invoice to extract data from, say). Files up to 100 MB. A file only linked from another service, like Google Drive, can't be downloaded through Slack.

Inputs

File IDfile_idtextRequired
The ID of a Slack file, such as the 'id' Upload a file or List files returns (it starts with F).

Outputs

content_typetext
MIME type of the file.
document_reftext
Reference to the saved document, for steps that take a file.
documentslist
The saved document, as a one-item list for steps that take several.
fileobject
The file's details in Slack.
filenametext
File name.
size_bytesnumber
Size in bytes.
statustext
Operation status (typically 'success').
urltext
Lodol address that serves the saved document.
Example output
{
  "content_type": "example_value",
  "document_ref": "example_value",
  "documents": [],
  "file": {
    "created": 1,
    "filetype": "example_value",
    "id": "example_value",
    "is_external": true,
    "is_public": true,
    "mimetype": "example_value",
    "name": "example_value",
    "permalink": "example_value",
    "pretty_type": "example_value",
    "public_url_shared": true,
    "shared_in": [],
    "size": 1,
    "title": "example_value",
    "url_private": "example_value",
    "url_private_download": "example_value",
    "user": "example_value"
  },
  "filename": "example_value",
  "size_bytes": 1,
  "status": "example_value",
  "url": "example_value"
}

Edit a bookmark

Change a bookmark's title, link or emoji. Anything left empty stays as it is.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Bookmarkbookmark_idtextRequired
The bookmark to change, from the channel chosen above.
New titletitletext
The bookmark's new title.
New linklinktext
The new web address, starting with https://.
Emojiemojitext
An emoji to show beside the bookmark, e.g. pushpin or :pushpin:.

Outputs

bookmarkobject
The bookmark.
statustext
Operation status (typically 'success').
Example output
{
  "bookmark": {
    "channel_id": "example_value",
    "date_created": 1,
    "date_updated": 1,
    "emoji": "example_value",
    "icon_url": "example_value",
    "id": "example_value",
    "link": "example_value",
    "title": "example_value",
    "type": "example_value"
  },
  "status": "example_value"
}

Edit a canvas

Make one change to a canvas: add Markdown at the start or end, before or after a section, replace a section or the whole canvas, delete a section, or rename it. Name a section by text only it contains, or by an ID from Find canvas sections.

Inputs

Canvascanvas_idtextRequired
The canvas: pick one the app can see, or enter its ID (it starts with F) or its link.
ChangeoperationtextRequired
What to do to the canvas.One of: insert_at_end (Add at the end), insert_at_start (Add at the start), insert_after (Add after a section), insert_before (Add before a section), replace (Replace a section or everything), delete (Delete a section), rename (Rename the canvas).
Contentcontenttext
The Markdown to add or to replace with. Not used to delete a section or rename the canvas.
Section with textsection_contains_texttext
For a change to one section: text that only that section contains, such as its heading. Leave empty to replace the whole canvas.
Section IDsection_idtext
Instead of text, the section's ID from Find canvas sections.
New titletitletext
For Rename the canvas: its new title.

Outputs

canvas_idtext
Canvas ID.
operationtext
The change that was made.
section_idtext
ID of the section changed or used, if any.
statustext
Operation status (typically 'success').
Example output
{
  "canvas_id": "example_value",
  "operation": "example_value",
  "section_id": "example_value",
  "status": "example_value"
}

Edit a message

Replace the text of a message the app has already posted. A message with Block Kit blocks loses them unless the edit sends blocks again.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Message timestamptimestamptextRequired
The timestamp of the message (the 'ts' value returned when the message was sent).
New messagetexttextRequired
The text that replaces the message's current text.
Text formattext_formattext
How the message text is written. Slack formatting, the default, uses Slack's own markup: *bold*, _italic_ and <https://example.com|a link>. Markdown takes standard Markdown, such as the output of an AI step: **bold**, [a link](https://example.com), headings, lists and tables, up to 12,000 characters. Markdown can't be combined with Block Kit blocks.One of: slack (Slack formatting), markdown. Default: slack.
Block Kit blocksblockstext
Optional Block Kit layout as JSON: a list of blocks, or the whole payload Block Kit Builder exports. The message text is still required, because Slack shows it in notifications, which don't display blocks. At most 50 blocks.
Also send to channelreply_broadcasttrue/false
For a reply in a thread, set to true to also show it in the channel.Default: false.

Outputs

channeltext
ID of the channel holding the edited message.
statustext
Operation status (typically 'success').
tstext
Timestamp of the edited message.
Example output
{
  "channel": "example_value",
  "status": "example_value",
  "ts": "example_value"
}

Enable a user group

Re-enable a disabled user group. Needs a paid Slack plan, and a workspace setting that lets everyone manage user groups (by default only admins can).

Inputs

User groupuser_group_idtextRequired
The user group (an @team handle) to act on.

Outputs

statustext
Operation status (typically 'success').
user_groupobject
The user group.
Example output
{
  "status": "example_value",
  "user_group": {
    "created_by": "example_value",
    "date_create": 1,
    "date_update": 1,
    "default_channel_ids": [],
    "description": "example_value",
    "handle": "example_value",
    "id": "example_value",
    "is_disabled": true,
    "name": "example_value",
    "user_count": 1,
    "user_ids": []
  }
}

Export a List

Export a Slack List as a CSV or JSON file saved as a Lodol document, for a spreadsheet, a report or another step. Needs a paid Slack plan.

Inputs

Listlist_idtextRequired
The List's ID (it starts with F), as Create a List returns it, or the List's link from Slack (Copy link).
Formatformattext
The file format.One of: csv, json. Default: csv.
Include archived itemsinclude_archivedtrue/false
Set to true to include archived items.Default: false.

Outputs

content_typetext
text/csv or application/json.
document_reftext
Reference to the saved export, for steps that take a file.
filenametext
File name.
list_idtext
List ID.
size_bytesnumber
Size in bytes.
statustext
Operation status (typically 'success').
urltext
Lodol address that serves the saved export.
Example output
{
  "content_type": "example_value",
  "document_ref": "example_value",
  "filename": "example_value",
  "list_id": "example_value",
  "size_bytes": 1,
  "status": "example_value",
  "url": "example_value"
}

Find a channel by name

Find a channel by its name and get its ID, for example to post in a channel named in a form or spreadsheet. Private channels are found only if the Lodol app is a member.

Inputs

Channel namenametextRequired
The channel's name, with or without the #. Matching ignores capitals, and spaces match hyphens.
Include archived channelsinclude_archivedtrue/false
Set to true to also match archived channels.Default: false.

Outputs

channelobject
The matching channel, or null when none was found.
foundtrue/false
Whether a match was found. The other fields are empty when not.
statustext
Operation status (typically 'success').
Example output
{
  "channel": {
    "created": 1,
    "creator": "example_value",
    "description": "example_value",
    "id": "example_value",
    "is_archived": true,
    "is_general": true,
    "is_member": true,
    "is_private": true,
    "is_shared": true,
    "name": "example_value",
    "num_members": 1,
    "topic": "example_value"
  },
  "found": true,
  "status": "example_value"
}

Find a user by email

Find the workspace member with an email address, for example to message the person behind a form entry or CRM record. Deactivated accounts aren't found.

Inputs

EmailemailtextRequired
The member's email address.

Outputs

foundtrue/false
Whether a match was found. The other fields are empty when not.
statustext
Operation status (typically 'success').
userobject
The matching member, or null when none was found.
Example output
{
  "found": true,
  "status": "example_value",
  "user": {
    "deleted": true,
    "display_name": "example_value",
    "email": "example_value",
    "id": "example_value",
    "image_url": "example_value",
    "is_admin": true,
    "is_bot": true,
    "name": "example_value",
    "real_name": "example_value",
    "status_emoji": "example_value",
    "status_text": "example_value",
    "timezone": "example_value",
    "title": "example_value"
  }
}

Find a user by name

Find a workspace member by handle, display name or full name, ignoring capitals. Names aren't unique, so the first match is returned with a count of all matches; use an ID or email when you have one.

Inputs

NamenametextRequired
The name to look for, with or without the @.
Include deactivated accountsinclude_deactivatedtrue/false
Set to true to also match deactivated members.Default: false.

Outputs

foundtrue/false
Whether a match was found. The other fields are empty when not.
match_countnumber
How many members matched the name.
statustext
Operation status (typically 'success').
userobject
The matching member, or null when none was found.
Example output
{
  "found": true,
  "match_count": 1,
  "status": "example_value",
  "user": {
    "deleted": true,
    "display_name": "example_value",
    "email": "example_value",
    "id": "example_value",
    "image_url": "example_value",
    "is_admin": true,
    "is_bot": true,
    "name": "example_value",
    "real_name": "example_value",
    "status_emoji": "example_value",
    "status_text": "example_value",
    "timezone": "example_value",
    "title": "example_value"
  }
}

Find canvas sections

Find the IDs of a canvas's sections by kind (headings, lists, tables and so on) or by the text they contain, for Edit a canvas. Slack returns IDs only, not the sections' text.

Inputs

Canvascanvas_idtextRequired
The canvas: pick one the app can see, or enter its ID (it starts with F) or its link.
Kinds of sectionsection_typeslist
Only find these kinds of section.One or more of: any_header (Any heading), h1 (Heading 1), h2 (Heading 2), h3 (Heading 3), list, table, blockquote (Quote), callout, horizontal_line (Divider), user_mention (Mention).
Containing textcontains_texttext
Only find sections containing this text.

Outputs

canvas_idtext
Canvas ID.
section_idslist
IDs of the matching sections, in order.
statustext
Operation status (typically 'success').
Example output
{
  "canvas_id": "example_value",
  "section_ids": [],
  "status": "example_value"
}

Find messages

Return every recent message matching your search criteria. Searches one channel when you pick one, otherwise the recent history of the channels the Lodol app belongs to.

Inputs

Search textquerytextRequired
Text to look for in the message. Matching ignores upper/lower case.
Channelchannel_idtext
Limit the search to one channel. Leave empty to search every channel the Lodol app is a member of.
From userfrom_usertext
Only return messages from this person. Leave empty to match any sender.
Max resultslimitnumber
The maximum number of messages to return, from 1 to 1000.From 1 to 1000. Default: 20.

Outputs

messageslist
The matching messages.
statustext
Operation status (typically 'success').
Example output
{
  "messages": [],
  "status": "example_value"
}

Get a channel

Get a channel's details: name, topic, description, creator, whether it is private or archived, and its member count.

Inputs

Channelchannel_idtextRequired
The channel to act on.

Outputs

channelobject
The channel's details.
statustext
Operation status (typically 'success').
Example output
{
  "channel": {
    "created": 1,
    "creator": "example_value",
    "description": "example_value",
    "id": "example_value",
    "is_archived": true,
    "is_general": true,
    "is_member": true,
    "is_private": true,
    "is_shared": true,
    "name": "example_value",
    "num_members": 1,
    "topic": "example_value"
  },
  "status": "example_value"
}

Get a file

Get a file's details: name, type, size, who shared it and where. The Lodol app sees files shared in the channels it belongs to.

Inputs

File IDfile_idtextRequired
The ID of a Slack file, such as the 'id' Upload a file or List files returns (it starts with F).

Outputs

fileobject
The file's details.
statustext
Operation status (typically 'success').
Example output
{
  "file": {
    "created": 1,
    "filetype": "example_value",
    "id": "example_value",
    "is_external": true,
    "is_public": true,
    "mimetype": "example_value",
    "name": "example_value",
    "permalink": "example_value",
    "pretty_type": "example_value",
    "public_url_shared": true,
    "shared_in": [],
    "size": 1,
    "title": "example_value",
    "url_private": "example_value",
    "url_private_download": "example_value",
    "user": "example_value"
  },
  "status": "example_value"
}

Get a List item

Get one item from a Slack List, with its values by column name. Needs a paid Slack plan.

Inputs

Listlist_idtextRequired
The List's ID (it starts with F), as Create a List returns it, or the List's link from Slack (Copy link).
Item IDitem_idtextRequired
The item's ID (it starts with Rec), as Add a List item returns it.

Outputs

itemobject
The List item.
statustext
Operation status (typically 'success').
Example output
{
  "item": {
    "archived": true,
    "created_by": "example_value",
    "date_created": 1,
    "fields": {},
    "id": "example_value",
    "list_id": "example_value",
    "parent_item_id": "example_value",
    "updated_by": "example_value"
  },
  "status": "example_value"
}

Get a message by timestamp

Fetch a single Slack message by its channel and timestamp.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Message timestamptimestamptextRequired
The timestamp of the message (the 'ts' value returned when the message was sent).

Outputs

messageobject
The message at the requested timestamp.
statustext
Operation status (typically 'success').
Example output
{
  "message": {
    "channel": "example_value",
    "reactions": [],
    "reply_count": 1,
    "text": "example_value",
    "thread_ts": "example_value",
    "ts": "example_value",
    "user": "example_value"
  },
  "status": "example_value"
}

Get a shareable link to a message, including a reply in a thread. Only people who can see the channel can open it.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Message timestamptimestamptextRequired
The timestamp of the message (the 'ts' value returned when the message was sent).

Outputs

channeltext
Channel ID.
permalinktext
Link to the message in Slack.
statustext
Operation status (typically 'success').
timestamptext
Timestamp of the message.
Example output
{
  "channel": "example_value",
  "permalink": "example_value",
  "status": "example_value",
  "timestamp": "example_value"
}

Get a message's reactions

List every emoji reaction on a message and who added each one.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Message timestamptimestamptextRequired
The timestamp of the message (the 'ts' value returned when the message was sent).

Outputs

channeltext
Channel ID.
permalinktext
Link to the message.
reactionslist
Emoji reactions on the message.
statustext
Operation status (typically 'success').
timestamptext
Timestamp of the message.
total_countnumber
Total number of reactions across all emoji.
Example output
{
  "channel": "example_value",
  "permalink": "example_value",
  "reactions": [],
  "status": "example_value",
  "timestamp": "example_value",
  "total_count": 1
}

Get a user

Look up one workspace member's profile details by ID.

Inputs

Personuser_idtextRequired
The workspace member to look up.

Outputs

statustext
Operation status (typically 'success').
userobject
The requested workspace member.
Example output
{
  "status": "example_value",
  "user": {
    "deleted": true,
    "display_name": "example_value",
    "email": "example_value",
    "id": "example_value",
    "image_url": "example_value",
    "is_admin": true,
    "is_bot": true,
    "name": "example_value",
    "real_name": "example_value",
    "status_emoji": "example_value",
    "status_text": "example_value",
    "timezone": "example_value",
    "title": "example_value"
  }
}

Get a user's Do Not Disturb status

Check a member's Do Not Disturb schedule, for example before sending a non-urgent message. A snooze the person turned on by hand isn't visible to apps.

Inputs

Personuser_idtextRequired
The workspace member to act on.

Outputs

dnd_enabledtrue/false
Whether the member has a Do Not Disturb schedule on.
in_do_not_disturb_nowtrue/false
True when the schedule is on and now falls inside that window.
next_dnd_end_tsnumber
End of that window, as a Unix timestamp.
next_dnd_start_tsnumber
Start of the scheduled window Slack reports, as a Unix timestamp.
statustext
Operation status (typically 'success').
user_idtext
Member ID.
Example output
{
  "dnd_enabled": true,
  "in_do_not_disturb_now": true,
  "next_dnd_end_ts": 1,
  "next_dnd_start_ts": 1,
  "status": "example_value",
  "user_id": "example_value"
}

Get a user's presence

Check whether a member is active in Slack right now or away.

Inputs

Personuser_idtextRequired
The workspace member to act on.

Outputs

is_activetrue/false
True when the member is active.
presencetext
'active' or 'away'.
statustext
Operation status (typically 'success').
user_idtext
Member ID.
Example output
{
  "is_active": true,
  "presence": "example_value",
  "status": "example_value",
  "user_id": "example_value"
}

Get a user's profile

Get a member's profile: name, title, contact details, status and the workspace's custom profile fields.

Inputs

Personuser_idtextRequired
The workspace member to act on.

Outputs

profileobject
The member's profile.
statustext
Operation status (typically 'success').
Example output
{
  "profile": {
    "custom_fields": [],
    "display_name": "example_value",
    "email": "example_value",
    "first_name": "example_value",
    "image_url": "example_value",
    "last_name": "example_value",
    "phone": "example_value",
    "pronouns": "example_value",
    "real_name": "example_value",
    "status_emoji": "example_value",
    "status_expiration": 1,
    "status_text": "example_value",
    "title": "example_value",
    "user_id": "example_value"
  },
  "status": "example_value"
}

Get channel history

Read a channel's recent messages, newest first. Optionally restrict the read to a timestamp window.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Max messageslimitnumber
The maximum number of messages to return, from 1 to 1000.From 1 to 1000. Default: 20.
Oldest timestampoldesttext
Only return messages at or after this message timestamp (the 'ts' value of an earlier message). Leave empty for no lower bound.
Newest timestamplatesttext
Only return messages at or before this message timestamp. Leave empty to start from the most recent message.

Outputs

messageslist
The matching messages.
statustext
Operation status (typically 'success').
Example output
{
  "messages": [],
  "status": "example_value"
}

Get thread messages

List every message in a thread, starting with the message that started it.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Thread timestampthread_tstextRequired
The timestamp of the message that started the thread (the 'ts' value returned when that message was sent).
Max messageslimitnumber
The maximum number of messages to return, from 1 to 1000.From 1 to 1000. Default: 100.

Outputs

messageslist
The matching messages.
statustext
Operation status (typically 'success').
Example output
{
  "messages": [],
  "status": "example_value"
}

Get workspace info

Get the connected workspace's name, address, email domain and icon.

Inputs

None.

Outputs

statustext
Operation status (typically 'success').
workspaceobject
The workspace.
Example output
{
  "status": "example_value",
  "workspace": {
    "domain": "example_value",
    "email_domain": "example_value",
    "enterprise_id": "example_value",
    "enterprise_name": "example_value",
    "icon_url": "example_value",
    "id": "example_value",
    "name": "example_value",
    "url": "example_value"
  }
}

Invite a user to a channel

Add one or more workspace members to a Slack channel.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Peopleuser_idstextRequired
The people to add to the channel. Enter one member, or several separated by commas.
Skip people who can't be addedskip_invalidtrue/false
By default Slack adds nobody if any one person can't be added (a deactivated account, say). Set to true to add everyone who can be and skip the rest.Default: false.

Outputs

channel_idtext
ID of the channel the people were added to.
statustext
Operation status (typically 'success').
user_idslist
IDs of the people who were added.
Example output
{
  "channel_id": "example_value",
  "status": "example_value",
  "user_ids": []
}

Join a channel

Add the Lodol app to a public channel so it can read the channel's messages. A private channel has to invite the app with /invite in Slack instead.

Inputs

Channelchannel_idtextRequired
The channel to act on.

Outputs

already_membertrue/false
True when the app was already in the channel.
channelobject
The channel joined.
statustext
Operation status (typically 'success').
Example output
{
  "already_member": true,
  "channel": {
    "created": 1,
    "creator": "example_value",
    "description": "example_value",
    "id": "example_value",
    "is_archived": true,
    "is_general": true,
    "is_member": true,
    "is_private": true,
    "is_shared": true,
    "name": "example_value",
    "num_members": 1,
    "topic": "example_value"
  },
  "status": "example_value"
}

Leave a channel

Take the Lodol app out of a channel. Its triggers and read actions stop seeing that channel's messages, and a private channel would have to invite it back. Leaving also gives up the channel manager role the app holds in channels it created, so after rejoining it may no longer be allowed to remove members.

Inputs

Channelchannel_idtextRequired
The channel to act on.

Outputs

channel_idtext
Channel ID.
statustext
Operation status (typically 'success').
was_membertrue/false
False when the app wasn't in the channel.
Example output
{
  "channel_id": "example_value",
  "status": "example_value",
  "was_member": true
}

List a user's channels

List the channels a member belongs to: every public channel they're in, plus private channels the Lodol app shares with them.

Inputs

Personuser_idtextRequired
The workspace member to act on.
Hide archived channelsexclude_archivedtrue/false
Set to false to include archived channels.Default: true.
Max channelslimitnumber
The maximum number of channels to return, from 1 to 1000.From 1 to 1000. Default: 200.

Outputs

channelslist
The member's channels.
statustext
Operation status (typically 'success').
Example output
{
  "channels": [],
  "status": "example_value"
}

List bookmarks

List the bookmarks in a channel's bookmarks bar.

Inputs

Channelchannel_idtextRequired
The channel to act on.

Outputs

bookmarkslist
The channel's bookmarks.
statustext
Operation status (typically 'success').
Example output
{
  "bookmarks": [],
  "status": "example_value"
}

List channels

List the Slack channels you can access, optionally hiding archived ones.

Inputs

Hide archived channelsexclude_archivedtrue/false
Set to true to leave out archived channels.Default: true.
Max channelslimitnumber
The maximum number of channels to return, from 1 to 1000.From 1 to 1000.
Only channels the app is inmember_onlytrue/false
Set to true to list only the channels the Lodol app is a member of, which are the ones its read actions can see.Default: false.

Outputs

channelslist
Channels visible to the bot.
statustext
Operation status (typically 'success').
Example output
{
  "channels": [],
  "status": "example_value"
}

List custom emoji

List the workspace's custom emoji, alphabetically.

Inputs

Include aliasesinclude_aliasestrue/false
Set to false to leave out aliases (extra names for another emoji).Default: true.

Outputs

emojilist
The custom emoji.
statustext
Operation status (typically 'success').
Example output
{
  "emoji": [],
  "status": "example_value"
}

List files

List files shared in the workspace, newest first, optionally narrowed to a channel, a person, file types or a date range. Only files the Lodol app can see are listed, and a file shared in the last few seconds may not be listed yet.

Inputs

Channelchannel_idtext
Only list files shared in this channel.
Shared byfrom_usertext
Only list files this person shared.
File typestypeslist
Only list these kinds of file. Leave empty for all.One or more of: spaces (Posts), snippets, images, pdfs, gdocs (Google Docs), zips (Zip files), canvas (Canvases).
Shared aftercreated_afterdate and time
Only list files shared at or after this time.
Shared beforecreated_beforedate and time
Only list files shared at or before this time.
Max resultslimitnumber
The maximum number of results to return, from 1 to 1000.From 1 to 1000. Default: 100.

Outputs

fileslist
The matching files, newest first.
statustext
Operation status (typically 'success').
Example output
{
  "files": [],
  "status": "example_value"
}

List items in a List

Get the items in a Slack List, with its title and columns. Needs a paid Slack plan.

Inputs

Listlist_idtextRequired
The List's ID (it starts with F), as Create a List returns it, or the List's link from Slack (Copy link).
Max itemslimitnumber
The maximum number of items to return, from 1 to 5000.From 1 to 5000. Default: 100.
Archived itemsarchivedtrue/false
Set to true to get the archived items instead.Default: false.

Outputs

columnslist
The List's columns.
itemslist
The items.
list_idtext
List ID.
statustext
Operation status (typically 'success').
titletext
The List's title.
Example output
{
  "columns": [],
  "items": [],
  "list_id": "example_value",
  "status": "example_value",
  "title": "example_value"
}

List pinned messages

List the messages pinned in a channel.

Inputs

Channelchannel_idtextRequired
The channel to act on.

Outputs

itemslist
The pinned messages.
statustext
Operation status (typically 'success').
Example output
{
  "items": [],
  "status": "example_value"
}

List profile fields

List the custom profile fields the workspace defines, such as Team or Start date, with their IDs and allowed values.

Inputs

None.

Outputs

fieldslist
The fields, in display order.
statustext
Operation status (typically 'success').
Example output
{
  "fields": [],
  "status": "example_value"
}

List scheduled messages

List the messages this Slack connection has scheduled that haven't been sent yet. Messages people scheduled in Slack themselves are not included.

Inputs

Channelchannel_idtext
Only list messages scheduled for this channel.
Max resultslimitnumber
The maximum number of results to return, from 1 to 1000.From 1 to 1000. Default: 100.

Outputs

scheduled_messageslist
Pending scheduled messages, soonest first as Slack returns them.
statustext
Operation status (typically 'success').
Example output
{
  "scheduled_messages": [],
  "status": "example_value"
}

List user group members

List the IDs of the people in a user group. Needs a paid Slack plan.

Inputs

User groupuser_group_idtextRequired
The user group (an @team handle) to act on.
Include a disabled groupinclude_disabledtrue/false
Set to true to list the members of a disabled group too.Default: false.

Outputs

statustext
Operation status (typically 'success').
user_group_idtext
Group ID.
user_idslist
IDs of the group's members.
Example output
{
  "status": "example_value",
  "user_group_id": "example_value",
  "user_ids": []
}

List user groups

List the workspace's user groups, the @team handles that notify a set of people at once. Needs a paid Slack plan.

Inputs

Include disabled groupsinclude_disabledtrue/false
Set to true to also list disabled user groups.Default: false.
Include membersinclude_memberstrue/false
Set to true to include each group's member IDs.Default: false.

Outputs

statustext
Operation status (typically 'success').
user_groupslist
The user groups.
Example output
{
  "status": "example_value",
  "user_groups": []
}

List users in a channel

List the members of one Slack channel.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Max userslimitnumber
The maximum number of members to return, from 1 to 1000.From 1 to 1000.

Outputs

statustext
Operation status (typically 'success').
userslist
The matching workspace members.
Example output
{
  "status": "example_value",
  "users": []
}

List users in the workspace

List the members of the connected Slack workspace.

Inputs

Max userslimitnumber
The maximum number of members to return, from 1 to 1000.From 1 to 1000.
Include botsinclude_botstrue/false
Set to false to leave out bot and app users.Default: true.
Include deactivated accountsinclude_deactivatedtrue/false
Set to true to also return deactivated members.Default: false.

Outputs

statustext
Operation status (typically 'success').
userslist
The matching workspace members.
Example output
{
  "status": "example_value",
  "users": []
}

Pin a message

Pin a message to its channel. Pinning a message that is already pinned succeeds.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Message timestamptimestamptextRequired
The timestamp of the message (the 'ts' value returned when the message was sent).

Outputs

channel_idtext
Channel ID.
pinnedtrue/false
Always true.
statustext
Operation status (typically 'success').
timestamptext
Timestamp of the pinned message.
Example output
{
  "channel_id": "example_value",
  "pinned": true,
  "status": "example_value",
  "timestamp": "example_value"
}

Remove a bookmark

Remove a bookmark from a channel's bookmarks bar.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Bookmarkbookmark_idtextRequired
The bookmark to change, from the channel chosen above.

Outputs

bookmark_idtext
ID of the removed bookmark.
channel_idtext
Channel ID.
statustext
Operation status (typically 'success').
Example output
{
  "bookmark_id": "example_value",
  "channel_id": "example_value",
  "status": "example_value"
}

Remove a reaction

Remove an emoji reaction the Lodol app added to a message. Reactions other people added can't be removed. If the app hadn't reacted, the step succeeds with removed set to false.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Message timestamptimestamptextRequired
The timestamp of the message (the 'ts' value returned when the message was sent).
EmojiemojitextRequired
The emoji name, for example thumbsup or :thumbsup: (surrounding colons are optional).

Outputs

emojitext
The emoji name.
removedtrue/false
False when the app had no such reaction to remove.
statustext
Operation status (typically 'success').
Example output
{
  "emoji": "example_value",
  "removed": true,
  "status": "example_value"
}

Remove a user from a channel

Remove a member from a Slack channel.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Personuser_idtextRequired
The person to remove from the channel.

Outputs

channel_idtext
ID of the channel the person was removed from.
statustext
Operation status (typically 'success').
user_idtext
ID of the person who was removed.
Example output
{
  "channel_id": "example_value",
  "status": "example_value",
  "user_id": "example_value"
}

Remove people from a user group

Take people out of a user group, keeping everyone else. Slack won't leave a group empty, so disable it instead of removing everyone. Needs a paid Slack plan, and a workspace setting that lets everyone manage user groups (by default only admins can).

Inputs

User groupuser_group_idtextRequired
The user group (an @team handle) to act on.
Peopleuser_idslistRequired
The people to act on. Guests and bots can't be in a user group.

Outputs

not_memberslist
IDs of the people who weren't in it.
removedlist
IDs of the people who were removed.
statustext
Operation status (typically 'success').
user_group_idtext
Group ID.
user_idslist
IDs of everyone in the group now.
Example output
{
  "not_members": [],
  "removed": [],
  "status": "example_value",
  "user_group_id": "example_value",
  "user_ids": []
}

Rename a channel

Rename a channel. Slack lets only a channel's creator, admins and channel managers rename it, so the Lodol app can rename channels it created.

Inputs

Channelchannel_idtextRequired
The channel to act on.
New namenametextRequired
The channel's new name. Capitals become lowercase and spaces become hyphens automatically.

Outputs

channelobject
The renamed channel.
statustext
Operation status (typically 'success').
Example output
{
  "channel": {
    "created": 1,
    "creator": "example_value",
    "description": "example_value",
    "id": "example_value",
    "is_archived": true,
    "is_general": true,
    "is_member": true,
    "is_private": true,
    "is_shared": true,
    "name": "example_value",
    "num_members": 1,
    "topic": "example_value"
  },
  "status": "example_value"
}

Schedule a message

Schedule a message to be posted at a future time.

Inputs

Channelchannel_idtextRequired
The channel to post the message to.
MessagetexttextRequired
The message text to send.
Send atpost_atdate and timeRequired
When to send the message. Pick a date and time in the future, at most 120 days ahead.
Reply Tothread_tstext
To schedule a reply inside a thread, enter the timestamp of the first message in that thread. Leave empty to schedule a new message.
Text formattext_formattext
How the message text is written. Slack formatting, the default, uses Slack's own markup: *bold*, _italic_ and <https://example.com|a link>. Markdown takes standard Markdown, such as the output of an AI step: **bold**, [a link](https://example.com), headings, lists and tables, up to 12,000 characters. Markdown can't be combined with Block Kit blocks.One of: slack (Slack formatting), markdown. Default: slack.
Block Kit blocksblockstext
Optional Block Kit layout as JSON: a list of blocks, or the whole payload Block Kit Builder exports. The message text is still required, because Slack shows it in notifications, which don't display blocks. At most 50 blocks.
Also send to channelreply_broadcasttrue/false
For a reply in a thread, set to true to also show the reply in the channel, like ticking 'Also send to #channel' in Slack.Default: false.
Show link previewsunfurl_linkstrue/false
Set to false to stop Slack adding a preview of web pages linked in the message. Leave empty to use Slack's default.
Show media previewsunfurl_mediatrue/false
Set to false to stop Slack previewing linked images and videos. Leave empty to use Slack's default.

Outputs

channeltext
ID of the channel where the message is scheduled.
post_attext
Scheduled post timestamp returned by Slack.
scheduled_message_idtext
ID of the scheduled message. Pass it to Delete a scheduled message to cancel it.
statustext
Operation status (typically 'success').
Example output
{
  "channel": "example_value",
  "post_at": "example_value",
  "scheduled_message_id": "example_value",
  "status": "example_value"
}

Send a direct message

Send a direct message to a Slack user.

Inputs

Recipientuser_idtextRequired
The person to send the direct message to.
MessagetexttextRequired
The message text to send.
Text formattext_formattext
How the message text is written. Slack formatting, the default, uses Slack's own markup: *bold*, _italic_ and <https://example.com|a link>. Markdown takes standard Markdown, such as the output of an AI step: **bold**, [a link](https://example.com), headings, lists and tables, up to 12,000 characters. Markdown can't be combined with Block Kit blocks.One of: slack (Slack formatting), markdown. Default: slack.
Block Kit blocksblockstext
Optional Block Kit layout as JSON: a list of blocks, or the whole payload Block Kit Builder exports. The message text is still required, because Slack shows it in notifications, which don't display blocks. At most 50 blocks.
Show link previewsunfurl_linkstrue/false
Set to false to stop Slack adding a preview of web pages linked in the message. Leave empty to use Slack's default.
Show media previewsunfurl_mediatrue/false
Set to false to stop Slack previewing linked images and videos. Leave empty to use Slack's default.
Sender nameusernametext
A name to show on this message instead of the app's name, e.g. 'Deploy Bot'. Slack still marks the message as sent by an app. Needs the chat:write.customize scope.
Sender icon (emoji)icon_emojitext
An emoji to show as the sender's picture on this message, e.g. rocket or :rocket:. Takes priority over an icon URL. Needs the chat:write.customize scope.
Sender icon (image URL)icon_urltext
The web address of an image to show as the sender's picture on this message. Needs the chat:write.customize scope.

Outputs

channeltext
ID of the direct message channel created or used.
statustext
Operation status (typically 'success').
tstext
Timestamp of the posted message. Use this for add-reaction or threading (thread_ts parameter).
Example output
{
  "channel": "example_value",
  "status": "example_value",
  "ts": "example_value"
}

Send a direct message by email

Send a direct message to the workspace member with an email address, without looking up their Slack ID first. Fails if no active member has that address.

Inputs

EmailemailtextRequired
The recipient's email address.
MessagetexttextRequired
The message text to send.
Text formattext_formattext
How the message text is written. Slack formatting, the default, uses Slack's own markup: *bold*, _italic_ and <https://example.com|a link>. Markdown takes standard Markdown, such as the output of an AI step: **bold**, [a link](https://example.com), headings, lists and tables, up to 12,000 characters. Markdown can't be combined with Block Kit blocks.One of: slack (Slack formatting), markdown. Default: slack.
Block Kit blocksblockstext
Optional Block Kit layout as JSON: a list of blocks, or the whole payload Block Kit Builder exports. The message text is still required, because Slack shows it in notifications, which don't display blocks. At most 50 blocks.
Show link previewsunfurl_linkstrue/false
Set to false to stop Slack adding a preview of web pages linked in the message. Leave empty to use Slack's default.
Show media previewsunfurl_mediatrue/false
Set to false to stop Slack previewing linked images and videos. Leave empty to use Slack's default.
Sender nameusernametext
A name to show on this message instead of the app's name, e.g. 'Deploy Bot'. Slack still marks the message as sent by an app. Needs the chat:write.customize scope.
Sender icon (emoji)icon_emojitext
An emoji to show as the sender's picture on this message, e.g. rocket or :rocket:. Takes priority over an icon URL. Needs the chat:write.customize scope.
Sender icon (image URL)icon_urltext
The web address of an image to show as the sender's picture on this message. Needs the chat:write.customize scope.

Outputs

channeltext
ID of the conversation the message was posted in.
statustext
Operation status (typically 'success').
tstext
Timestamp of the posted message, which is also its ID.
user_idtext
ID of the member the address belongs to.
Example output
{
  "channel": "example_value",
  "status": "example_value",
  "ts": "example_value",
  "user_id": "example_value"
}

Send a group direct message

Send one message to a group direct message with 2 to 8 people. Running it again for the same people posts in the same conversation.

Inputs

Peopleuser_idslistRequired
The 2 to 8 people to message together.
MessagetexttextRequired
The message text to send.
Text formattext_formattext
How the message text is written. Slack formatting, the default, uses Slack's own markup: *bold*, _italic_ and <https://example.com|a link>. Markdown takes standard Markdown, such as the output of an AI step: **bold**, [a link](https://example.com), headings, lists and tables, up to 12,000 characters. Markdown can't be combined with Block Kit blocks.One of: slack (Slack formatting), markdown. Default: slack.
Block Kit blocksblockstext
Optional Block Kit layout as JSON: a list of blocks, or the whole payload Block Kit Builder exports. The message text is still required, because Slack shows it in notifications, which don't display blocks. At most 50 blocks.
Show link previewsunfurl_linkstrue/false
Set to false to stop Slack adding a preview of web pages linked in the message. Leave empty to use Slack's default.
Show media previewsunfurl_mediatrue/false
Set to false to stop Slack previewing linked images and videos. Leave empty to use Slack's default.
Sender nameusernametext
A name to show on this message instead of the app's name, e.g. 'Deploy Bot'. Slack still marks the message as sent by an app. Needs the chat:write.customize scope.
Sender icon (emoji)icon_emojitext
An emoji to show as the sender's picture on this message, e.g. rocket or :rocket:. Takes priority over an icon URL. Needs the chat:write.customize scope.
Sender icon (image URL)icon_urltext
The web address of an image to show as the sender's picture on this message. Needs the chat:write.customize scope.

Outputs

channeltext
ID of the conversation the message was posted in.
statustext
Operation status (typically 'success').
tstext
Timestamp of the posted message, which is also its ID.
user_idslist
IDs of the people in the conversation.
Example output
{
  "channel": "example_value",
  "status": "example_value",
  "ts": "example_value",
  "user_ids": []
}

Send a message to a channel

Send a message to a public or private Slack channel.

Inputs

Channelchannel_idtextRequired
The channel to post the message to.
MessagetexttextRequired
The message text to send.
Reply Tothread_tstext
To reply inside a thread, enter the timestamp of the first message in that thread (the 'ts' value returned when a message is sent). Leave empty to post a new message.
Text formattext_formattext
How the message text is written. Slack formatting, the default, uses Slack's own markup: *bold*, _italic_ and <https://example.com|a link>. Markdown takes standard Markdown, such as the output of an AI step: **bold**, [a link](https://example.com), headings, lists and tables, up to 12,000 characters. Markdown can't be combined with Block Kit blocks.One of: slack (Slack formatting), markdown. Default: slack.
Block Kit blocksblockstext
Optional Block Kit layout as JSON: a list of blocks, or the whole payload Block Kit Builder exports. The message text is still required, because Slack shows it in notifications, which don't display blocks. At most 50 blocks.
Also send to channelreply_broadcasttrue/false
For a reply in a thread, set to true to also show the reply in the channel, like ticking 'Also send to #channel' in Slack.Default: false.
Show link previewsunfurl_linkstrue/false
Set to false to stop Slack adding a preview of web pages linked in the message. Leave empty to use Slack's default.
Show media previewsunfurl_mediatrue/false
Set to false to stop Slack previewing linked images and videos. Leave empty to use Slack's default.
Sender nameusernametext
A name to show on this message instead of the app's name, e.g. 'Deploy Bot'. Slack still marks the message as sent by an app. Needs the chat:write.customize scope.
Sender icon (emoji)icon_emojitext
An emoji to show as the sender's picture on this message, e.g. rocket or :rocket:. Takes priority over an icon URL. Needs the chat:write.customize scope.
Sender icon (image URL)icon_urltext
The web address of an image to show as the sender's picture on this message. Needs the chat:write.customize scope.

Outputs

channeltext
ID of the channel where the message was sent.
statustext
Operation status (typically 'success').
tstext
Timestamp of the posted message. Use this for add-reaction or threading (thread_ts parameter).
Example output
{
  "channel": "C0123456789",
  "status": "success",
  "ts": "1712345678.901234"
}

Send an ephemeral message

Show a message in a channel that only one member can see. Slack delivers it only while that person is active in Slack and a member of the channel, and it disappears when they reload, so use it for a nudge rather than a record.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Visible touser_idtextRequired
The channel member who will see the message.
MessagetexttextRequired
The message text to show.
Reply Tothread_tstext
To post inside a thread, enter the timestamp of the first message in that thread. Leave empty to post in the channel.
Text formattext_formattext
How the message text is written. Slack formatting, the default, uses Slack's own markup: *bold*, _italic_ and <https://example.com|a link>. Markdown takes standard Markdown, such as the output of an AI step: **bold**, [a link](https://example.com), headings, lists and tables, up to 12,000 characters. Markdown can't be combined with Block Kit blocks.One of: slack (Slack formatting), markdown. Default: slack.
Block Kit blocksblockstext
Optional Block Kit layout as JSON: a list of blocks, or the whole payload Block Kit Builder exports. The message text is still required, because Slack shows it in notifications, which don't display blocks. At most 50 blocks.
Sender nameusernametext
A name to show on this message instead of the app's name, e.g. 'Deploy Bot'. Slack still marks the message as sent by an app. Needs the chat:write.customize scope.
Sender icon (emoji)icon_emojitext
An emoji to show as the sender's picture on this message, e.g. rocket or :rocket:. Takes priority over an icon URL. Needs the chat:write.customize scope.
Sender icon (image URL)icon_urltext
The web address of an image to show as the sender's picture on this message. Needs the chat:write.customize scope.

Outputs

channeltext
ID of the channel it was shown in.
message_tstext
Timestamp Slack gave the ephemeral message.
statustext
Operation status (typically 'success').
user_idtext
ID of the member who can see it.
Example output
{
  "channel": "example_value",
  "message_ts": "example_value",
  "status": "example_value",
  "user_id": "example_value"
}

Set a channel description

Set the description shown in a channel's details, up to 250 characters. The Lodol app must be a member of the channel.

Inputs

Channelchannel_idtextRequired
The channel to act on.
DescriptiondescriptiontextRequired
What the channel is for. Send an empty value to clear it.

Outputs

channel_idtext
Channel ID.
descriptiontext
The description that was set.
statustext
Operation status (typically 'success').
Example output
{
  "channel_id": "example_value",
  "description": "example_value",
  "status": "example_value"
}

Set a channel topic

Set the topic shown at the top of a Slack channel.

Inputs

Channelchannel_idtextRequired
The channel to act on.
TopictopictextRequired
The topic text. Send an empty value to clear the topic.

Outputs

channel_idtext
ID of the channel whose topic was set.
statustext
Operation status (typically 'success').
topictext
The topic Slack stored.
Example output
{
  "channel_id": "example_value",
  "status": "example_value",
  "topic": "example_value"
}

Set user group members

Replace a user group's members with exactly these people, for example to hand @oncall to this week's rota. Slack won't empty a group; disable it instead. Needs a paid Slack plan, and a workspace setting that lets everyone manage user groups (by default only admins can).

Inputs

User groupuser_group_idtextRequired
The user group (an @team handle) to act on.
Peopleuser_idslistRequired
The people to act on. Guests and bots can't be in a user group.

Outputs

statustext
Operation status (typically 'success').
user_groupobject
The user group.
Example output
{
  "status": "example_value",
  "user_group": {
    "created_by": "example_value",
    "date_create": 1,
    "date_update": 1,
    "default_channel_ids": [],
    "description": "example_value",
    "handle": "example_value",
    "id": "example_value",
    "is_disabled": true,
    "name": "example_value",
    "user_count": 1,
    "user_ids": []
  }
}

Share a canvas

Share a canvas with channels or people, as sharing it in Slack does: its link is posted to each channel and sent to each person, with an optional message, and they can then view or edit it. Slack requires the link to be sent before it grants access.

Inputs

Canvascanvas_idtextRequired
The canvas: pick one the app can see, or enter its ID (it starts with F) or its link.
Accessaccess_leveltext
Whether they can only read it or also edit it.One of: read (Can view), write (Can edit). Default: read.
Channelschannel_idslist
Channels to act on. Direct messages can't be used here; choose people instead.
Peopleuser_idslist
People to act on.
Messagemessagetext
A message to post with the canvas's link.

Outputs

access_leveltext
'read' or 'write'.
canvas_idtext
Canvas ID.
channel_idslist
IDs of the channels given access.
permalinktext
The canvas link that was sent.
statustext
Operation status (typically 'success').
user_idslist
IDs of the people given access.
Example output
{
  "access_level": "example_value",
  "canvas_id": "example_value",
  "channel_ids": [],
  "permalink": "example_value",
  "status": "example_value",
  "user_ids": []
}

Share a List

Let channels or people view or edit a Slack List. Needs a paid Slack plan.

Inputs

Listlist_idtextRequired
The List's ID (it starts with F), as Create a List returns it, or the List's link from Slack (Copy link).
Accessaccess_leveltext
Whether they can only read it or also edit it.One of: read (Can view), write (Can edit). Default: read.
Channelschannel_idslist
Channels to act on. Direct messages can't be used here; choose people instead.
Peopleuser_idslist
People to act on.

Outputs

access_leveltext
'read' or 'write'.
channel_idslist
IDs of the channels given access.
list_idtext
List ID.
statustext
Operation status (typically 'success').
user_idslist
IDs of the people given access.
Example output
{
  "access_level": "example_value",
  "channel_ids": [],
  "list_id": "example_value",
  "status": "example_value",
  "user_ids": []
}

Start a Slack workflow

Start a Workflow Builder workflow that begins 'From a webhook', passing it up to 20 variables. Workflow Builder webhooks need a paid Slack plan and start about one run a second.

Inputs

Workflow webhook URLwebhook_urltextRequired
The URL Workflow Builder shows for the workflow's webhook, starting with https://hooks.slack.com/triggers/. Anyone with it can start the workflow, so save it under Secrets and Values and use it here as @secrets.YOUR_NAME rather than pasting it.
Variablesvariablesobject
Values for the variables the workflow's webhook defines, by name: text, a member ID, a channel ID or an email. Up to 20.

Outputs

startedtrue/false
True once Slack accepted the start.
statustext
Operation status (typically 'success').
variables_sentlist
Names of the variables sent to the workflow.
Example output
{
  "started": true,
  "status": "example_value",
  "variables_sent": []
}

Unpin a message

Unpin a message from its channel. If it wasn't pinned, the step succeeds with was_pinned set to false.

Inputs

Channelchannel_idtextRequired
The channel to act on.
Message timestamptimestamptextRequired
The timestamp of the message (the 'ts' value returned when the message was sent).

Outputs

channel_idtext
Channel ID.
statustext
Operation status (typically 'success').
timestamptext
Timestamp of the message.
was_pinnedtrue/false
False when the message wasn't pinned.
Example output
{
  "channel_id": "example_value",
  "status": "example_value",
  "timestamp": "example_value",
  "was_pinned": true
}

Unshare a canvas

Remove channels' or people's access to a canvas. Access given to a channel belongs to the channel, so one of its members can't lose access while the channel keeps it.

Inputs

Canvascanvas_idtextRequired
The canvas: pick one the app can see, or enter its ID (it starts with F) or its link.
Channelschannel_idslist
Channels to act on. Direct messages can't be used here; choose people instead.
Peopleuser_idslist
People to act on.

Outputs

canvas_idtext
Canvas ID.
channel_idslist
IDs of the channels whose access was removed.
statustext
Operation status (typically 'success').
user_idslist
IDs of the people whose access was removed.
Example output
{
  "canvas_id": "example_value",
  "channel_ids": [],
  "status": "example_value",
  "user_ids": []
}

Update a List item

Change some of a List item's values; columns you leave empty keep their values. Needs a paid Slack plan.

Inputs

Listlist_idtextRequired
The List's ID (it starts with F), as Create a List returns it, or the List's link from Slack (Copy link).
Item IDitem_idtextRequired
The item's ID (it starts with Rec), as Add a List item returns it.
New valuesfieldsobjectRequired
Values by column. A choice column takes the choice's name, a people or channel column takes member or channel IDs, and several values are separated by commas. Dates are YYYY-MM-DD and checkboxes true or false.

Outputs

itemobject
The List item.
statustext
Operation status (typically 'success').
Example output
{
  "item": {
    "archived": true,
    "created_by": "example_value",
    "date_created": 1,
    "fields": {},
    "id": "example_value",
    "list_id": "example_value",
    "parent_item_id": "example_value",
    "updated_by": "example_value"
  },
  "status": "example_value"
}

Update a user group

Change a user group's name, handle, description or default channels. Anything left empty stays as it is. Needs a paid Slack plan, and a workspace setting that lets everyone manage user groups (by default only admins can).

Inputs

User groupuser_group_idtextRequired
The user group (an @team handle) to act on.
New namenametext
The group's new name.
New handlehandletext
The new handle people mention, without the @.
New descriptiondescriptiontext
The group's new description.
Default channelsdefault_channel_idslist
Channels that people added to the group are added to as well.

Outputs

statustext
Operation status (typically 'success').
user_groupobject
The user group.
Example output
{
  "status": "example_value",
  "user_group": {
    "created_by": "example_value",
    "date_create": 1,
    "date_update": 1,
    "default_channel_ids": [],
    "description": "example_value",
    "handle": "example_value",
    "id": "example_value",
    "is_disabled": true,
    "name": "example_value",
    "user_count": 1,
    "user_ids": []
  }
}

Upload a file

Share a file in a channel or thread, with an optional message. Upload a file, pass a file from an earlier step, or turn text into a file (a CSV or report, say). The Lodol app must be a member of a private channel to share there.

Inputs

Channelchannel_idtextRequired
The channel to share the file in.
Filefiletext
The file to share: upload one, or pick a file from an earlier step. Leave empty to send File contents instead.
File contentscontenttext
Text to save as the file, such as a CSV or report an earlier step wrote. Used only when File is empty; File name is then required.
File namefilenametext
The file's name in Slack, with its extension, e.g. report.csv. Defaults to the uploaded file's name.
Titletitletext
A title to show instead of the file name.
Messageinitial_commenttext
A message to post with the file.
Reply Tothread_tstext
To post inside a thread, enter the timestamp of the first message in that thread. Leave empty to post in the channel.

Outputs

channel_idtext
Channel the file was shared in.
fileobject
The uploaded file.
statustext
Operation status (typically 'success').
Example output
{
  "channel_id": "example_value",
  "file": {
    "id": "example_value",
    "name": "example_value",
    "title": "example_value"
  },
  "status": "example_value"
}

On this page

TriggersNew Slack messageChannel createdNew command in channelNew mention in channelReaction added to messageReaction removed from messageActionsAdd a bookmarkAdd a List itemAdd a reactionAdd people to a user groupArchive a channelCreate a canvasCreate a channelCreate a channel canvasCreate a ListCreate a user groupDelete a canvasDelete a fileDelete a List itemDelete a messageDelete a scheduled messageDisable a user groupDownload a fileEdit a bookmarkEdit a canvasEdit a messageEnable a user groupExport a ListFind a channel by nameFind a user by emailFind a user by nameFind canvas sectionsFind messagesGet a channelGet a fileGet a List itemGet a message by timestampGet a message linkGet a message's reactionsGet a userGet a user's Do Not Disturb statusGet a user's presenceGet a user's profileGet channel historyGet thread messagesGet workspace infoInvite a user to a channelJoin a channelLeave a channelList a user's channelsList bookmarksList channelsList custom emojiList filesList items in a ListList pinned messagesList profile fieldsList scheduled messagesList user group membersList user groupsList users in a channelList users in the workspacePin a messageRemove a bookmarkRemove a reactionRemove a user from a channelRemove people from a user groupRename a channelSchedule a messageSend a direct messageSend a direct message by emailSend a group direct messageSend a message to a channelSend an ephemeral messageSet a channel descriptionSet a channel topicSet user group membersShare a canvasShare a ListStart a Slack workflowUnpin a messageUnshare a canvasUpdate a List itemUpdate a user groupUpload a file