Slack Integration
Connect Slack to Arahi's no-code AI agents and automate workflows in minutes.
About the Slack integration
Slack is a channel-based messaging platform. With Slack, people can work together more effectively, connect all their software tools and services, and find the information they need to do their best work — all within a secure, enterprise-grade environment. With Arahi AI, you can connect Slack to Bird, Bot for Slack, ClickSend SMS and 1,500+ other apps using AI-powered workflows. No coding required — set up triggers, actions, and intelligent automation in minutes.
- Category
- Communication
- Authentication
- oauth
Slack automation use cases
- Message → CRM activity log
- Log threaded conversations from Slack into the matching CRM contact or account record.
- Channel summary digest
- Summarize busy Slack channels at end of day into a digest so nobody has to scroll up.
- Escalation routing
- Auto-route messages containing billing, bug, or churn keywords from Slack to the right team.
- New-hire onboarding drip
- Drip onboarding tasks into Slack DMs over a new hire's first two weeks — no manual prodding.
Slack workflow examples
- Reaction-to-task handoff
The Reaction Added Trigger on a jira emoji grabs the message text and creates a Jira issue in the right project automatically.
jira emoji on message -> Jira issue created with thread link.
- DM triage into HubSpot
When New Direct Message Received Trigger fires to your support bot, extract intent with OpenAI and create a HubSpot ticket.
DM to support bot -> OpenAI intent -> HubSpot ticket created.
- Private channel digest
Listen on New Private Channel Message Received Trigger and append a daily digest of #exec-room conversations to a Notion page.
Day-end cron -> #exec-room messages -> Notion daily digest page.
Slack triggers
- New Channel Created Trigger
- Triggered when a new channel is created in Slack.
- Reaction Added Trigger
- Triggered when a new message is posted to a Slack channel.
- Reaction Removed Trigger
- Triggered when a reaction is removed from a message.
- New Bot Message Received Trigger
- Triggered when a new bot message is posted to a Slack channel.
- New Direct Message Received Trigger
- Triggered when a new direct message (DM) is sent to a user in Slack.
- New Private Channel Message Received Trigger
- Triggered when a new message is posted to a private channel in Slack.
- New Message Received Trigger
- Triggered when a new message is posted to a Slack channel.
- New Multi-Person Direct Message Received Trigger
- Triggered when a new message is posted to a multi-person direct message in Slack.
- Thread Reply Received Trigger
- Triggered when reply is added to a message in a thread.\ Excludes the parent message_replied event by design (ts != thread_ts check).
Slack actions
- Add an emoji alias
- Adds an alias for an existing custom emoji in a slack enterprise grid organization.
- Add a remote file
- Adds a reference to an external file (e.g., google drive, dropbox) to slack for discovery and sharing, requiring a unique `external id` and an `external url` accessible by slack.
- Add a star to an item
- Stars a channel, file, file comment, or a specific message in slack.
- Add call participants
- Registers new participants added to a slack call.
- Add emoji
- Adds a custom emoji to a slack workspace given a unique name and an image url; subject to workspace emoji limits.
- Add reaction to message
- Adds a specified emoji reaction to an existing message in a slack channel, identified by its timestamp; does not remove or retrieve reactions.
- Archive a public or private channel
- Archives a slack public or private channel, making it read-only; the primary 'general' channel cannot be archived.
- Archive a Slack conversation
- Archives a slack conversation by its id, rendering it read-only and hidden while retaining history, ideal for cleaning up inactive channels; be aware that some channels (like #general or certain dms) cannot be archived and this may impact connected integrations.
- Close conversation channel
- Closes a slack direct message (dm) or multi-person direct message (mpdm) channel, removing it from the user's sidebar without deleting history; this action affects only the calling user's view.
- Create a reminder
- Creates a slack reminder with specified text and time; time accepts unix timestamps, seconds from now, or natural language (e.g., 'in 15 minutes', 'every thursday at 2pm').
- Create a Slack user group
- Creates a new user group (often referred to as a subteam) in a slack workspace.
- Create channel
- Initiates a public or private channel-based conversation
- Create a channel-based conversation
- Creates a new public or private slack channel with a unique name; the channel can be org-wide, or team-specific if `team id` is given (required if `org wide` is false or not provided).
- Customize URL unfurl
- Customizes url previews (unfurling) in a specific slack message using a url-encoded json in `unfurls` to define custom content or remove existing previews.
- Delete file comment
- Deletes a specific comment from a file in slack; this action is irreversible.
- Delete a file by ID
- Permanently deletes an existing file from a slack workspace using its unique file id; this action is irreversible and also removes any associated comments or shares.
- Delete a public or private channel
- Permanently and irreversibly deletes a specified public or private channel, including all its messages and files, within a slack enterprise grid organization.
- Delete scheduled chat message
- Deletes a pending, unsent scheduled message from the specified slack channel, identified by its `scheduled message id`.
- Delete a Slack reminder
- Deletes an existing slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.
- Delete a message from a chat
- Deletes a message, identified by its channel id and timestamp, from a slack channel, private group, or direct message conversation; the authenticated user or bot must be the original poster.
- Delete user profile photo
- Deletes the slack profile photo for the user identified by the token, reverting them to the default avatar; this action is irreversible and succeeds even if no custom photo was set.
- Disable a Slack user group
- Disables a specified, currently enabled slack user group by its unique id, effectively archiving it by setting its 'date delete' timestamp; the group is not permanently deleted and can be re-enabled.
- Enable a user group
- Enables a disabled user group in slack using its id, reactivating it for mentions and permissions; this action only changes the enabled status and cannot create new groups or modify other properties.
- Share file public url
- Enables public sharing for an existing slack file by generating a publicly accessible url; this action does not create new files.
- End a call
- Ends an ongoing slack call, identified by its id (obtained from `calls.add`), optionally specifying the call's duration.
- End snooze
- Ends the current user's snooze mode immediately.
- End DND session
- Ends the authenticated user's current do not disturb (dnd) session in slack, affecting only dnd status and making them available; if dnd is not active, slack acknowledges the request without changing status.
- Fetch bot user information
- Fetches information for a specified, existing slack bot user; will not work for regular user accounts or other integration types.
- Fetch conversation history
- Fetches a chronological list of messages and events from a specified slack conversation, accessible by the authenticated user/bot, with options for pagination and time range filtering.
- Fetch item reactions
- Fetches reactions for a slack message, file, or file comment, requiring one of: channel and timestamp; file id; or file comment id.
- Retrieve conversation replies
- Retrieves replies to a specific parent message in a slack conversation, using the channel id and the parent message's timestamp (`ts`).
- Fetch team info
- Fetches comprehensive metadata about the current slack team, or a specified team if the provided id is accessible.
- Fetch workspace settings information
- Retrieves detailed settings for a specific slack workspace, primarily for administrators in an enterprise grid organization to view or audit workspace configurations.
- Find channels
- Find channels in a slack workspace by any criteria - name, topic, purpose, or description.
- Lookup users by email
- Retrieves the slack user object for an active user by their registered email address; fails with 'users not found' if the email is unregistered or the user is inactive.
- Find users
- Find users in a slack workspace by any criteria - email, name, display name, or other text. includes optimized email lookup for exact email matches.
- Get channel conversation preferences
- Retrieves conversation preferences (e.g., who can post, who can thread) for a specified channel, primarily for use within slack enterprise grid environments.
- Get reminder information
- Retrieves detailed information for an existing slack reminder specified by its id; this is a read-only operation.
- Get remote file
- Retrieve information about a remote file added to slack.
- Get team DND status
- Retrieves a user's current do not disturb status.
- Retrieve user presence
- Retrieves a slack user's current real-time presence (e.g., 'active', 'away') to determine their availability, noting this action does not provide historical data or status reasons.
- Invite users to a Slack channel
- Invites users to an existing slack channel using their valid slack user ids.
- Invite users to channel
- Invites users to a specified slack channel; this action is restricted to enterprise grid workspaces and requires the authenticated user to be a member of the target channel.
- Invite user to workspace
- Invites a user to a slack workspace and specified channels by email; use `resend=true` to re-process an existing invitation for a user not yet signed up.
- Join conversation by channel id
- Joins an existing slack conversation (public channel, private channel, or multi-person direct message) by its id, if the authenticated user has permission.
- Leave conversation channel
- Leaves a slack conversation given its channel id; fails if leaving as the last member of a private channel or if used on a slack connect channel.
- List all channels
- Lists conversations available to the user with various filters and search options.
- List all users
- Retrieves a paginated list of all users, including comprehensive details, profile information, status, and team memberships, in a slack workspace; data may not be real-time.
- List all users in a user group
- Retrieves a list of all user ids within a specified slack user group, with an option to include users from disabled groups.
- List conversations
- Retrieves conversations accessible to a specified user (or the authenticated user if no user id is provided), respecting shared membership for non-public channels.
- List Slack files
- Lists files and their metadata within a slack workspace, filterable by user, channel, timestamp, or type; this action returns metadata only, not file content.
- List reminders
- Lists all reminders with their details for the authenticated slack user; returns an empty list if no reminders exist.
- List remote files
- Retrieve information about a team's remote files.
- List scheduled messages
- Retrieves a list of pending (not yet delivered) messages scheduled in a specific slack channel, or across all accessible channels if no channel id is provided, optionally filtered by time and paginated.
- List pinned items in a channel
- Retrieves all messages and files pinned to a specified channel; the caller must have access to this channel.
- List starred items
- Lists items starred by a user.
- List team custom emojis
- Retrieves all custom emojis for the slack workspace (image urls or aliases), not standard unicode emojis; does not include usage statistics or creation dates.
- List user groups
- Lists user groups in a slack workspace, including user-created and default groups; results for large workspaces may be paginated.
- List user reactions
- Lists all reactions added by a specific user to messages, files, or file comments in slack, useful for engagement analysis when the item content itself is not required.
- List admin users
- Retrieves a paginated list of admin users for a specified slack workspace.
- Set user presence
- Manually sets a user's slack presence, overriding automatic detection; this setting persists across connections but can be overridden by user actions or slack's auto-away (e.g., after 10 mins of inactivity).
- Mark reminder as complete
- Marks a specific slack reminder as complete using its `reminder` id; **deprecated**: this slack api endpoint ('reminders.complete') was deprecated in march 2023 and is not recommended for new applications.
- Open DM
- Opens or resumes a slack direct message (dm) or multi-person direct message (mpim) by providing either user ids or an existing channel id.
- Pin an item to a channel
- Pins a message to a specified slack channel; the message must not already be pinned.
- Remove remote file
- Removes the slack reference to an external file (which must have been previously added via the remote files api), specified by either its `external id` or `file` id (one of which is required), without deleting the actual external file.
- Remove a star from an item
- Removes a star from a previously starred slack item (message, file, file comment, channel, group, or dm), requiring identification via `file`, `file comment`, `channel` (for channel/group/dm), or both `channel` and `timestamp` (for a message).
- Remove user from conversation
- Removes a specified user from a slack conversation (channel); the caller must have permissions to remove users and cannot remove themselves using this action.
- Remove call participants
- Registers participants removed from a slack call.
- Remove reaction from item
- Removes an emoji reaction from a message, file, or file comment in slack.
- Rename a conversation
- Renames a slack channel, automatically adjusting the new name to meet naming conventions (e.g., converting to lowercase), which may affect integrations using the old name.
- Rename an emoji
- Renames an existing custom emoji in a slack workspace, updating all its instances.
- Rename a Slack channel
- Renames a public or private slack channel; for enterprise grid workspaces, the user must be a workspace admin or channel manager.
- Retrieve a user's identity details
- Retrieves the authenticated user's and their team's identity, with details varying based on oauth scopes (e.g., `identity.basic`, `identity.email`, `identity.avatar`).
- Retrieve call information
- Retrieves a point-in-time snapshot of a specific slack call's information.
- Retrieve conversation information
- Retrieves metadata for a slack conversation by id (e.g., name, purpose, creation date, with options for member count/locale), excluding message content; requires a valid channel id.
- Get conversation members
- Retrieves a paginated list of active member ids for a specified slack public channel, private channel, direct message (dm), or multi-person direct message (mpim).
- Retrieve user DND status
- Retrieves a slack user's current do not disturb (dnd) status to determine their availability before interaction; any specified user id must be a valid slack user id.
- Retrieve detailed file information
- Retrieves detailed metadata and paginated comments for a specific slack file id; does not download file content.
- Retrieve detailed user information
- Retrieves comprehensive information for a valid slack user id, excluding message history and channel memberships.
- Retrieve message permalink
- Retrieves a permalink url for a specific message in a slack channel or conversation; the permalink respects slack's privacy settings.
- Retrieve team profile details
- Retrieves all profile field definitions for a slack team, optionally filtered by visibility, to understand the team's profile structure.
- Retrieve user profile information
- Retrieves profile information for a specified slack user (defaults to the authenticated user if `user` id is omitted); a provided `user` id must be valid.
- Revoke a file's public url
- Revokes a slack file's public url, making it private; this is a no-op if not already public and is irreversible.
- Schedule message
- Schedules a message to a slack channel, dm, or private group for a future time (`post at`), requiring `text`, `blocks`, or `attachments` for content; scheduling is limited to 120 days in advance.
- Search messages
- Workspace‑wide slack message search with date ranges and filters. use `query` modifiers (e.g., in:#channel, from:@user, before/after:yyyy-mm-dd), sorting (score/timestamp), and pagination.
- Send ephemeral message
- Sends an ephemeral message to a user in a channel.
- Send message
- Posts a message to a slack channel, direct message, or private group; requires content via `text`, `blocks`, or `attachments`.
- Set a conversation's purpose
- Sets the purpose (a short description of its topic/goal, displayed in the header) for a slack conversation; the calling user must be a member.
- Set DND duration
- Turns on do not disturb mode for the current user, or changes its duration.
- Set profile photo
- This method allows the user to set their profile image.
- Set conversation read cursor
- Marks a message, specified by its timestamp (`ts`), as the most recently read for the authenticated user in the given `channel`, provided the user is a member of the channel and the message exists within it.
- Set Slack user profile information
- Updates a slack user's profile, setting either individual fields or multiple fields via a json object.
- Set conversation topic
- Sets or updates the topic for a specified slack conversation.
- Share a me message in a channel
- Sends a 'me message' (e.g., '/me is typing') to a slack channel, where it's displayed as a third-person user action; messages are plain text and the channel must exist and be accessible.
- Share a remote file in channels
- Shares a remote file, which must already be registered with slack, into specified slack channels or direct message conversations.
- Start call
- Registers a new call in slack using `calls.add` for third-party call integration; `created by` is required if not using a user-specific token.
- Start real time messaging session
- Initiates a slack rtm session providing a single-use websocket url (valid 30s) for event streaming; does not set initial presence status.
- Unarchive a public or private channel
- Unarchives a specified public or private slack channel that is currently archived, using its channel id.
- Unarchive channel
- Reverses conversation archival.
- Unpin message from channel
- Unpins a message, identified by its timestamp, from a specified channel if the message is currently pinned there; this operation is destructive.
- Update Slack user group
- Updates an existing slack user group, which must be specified by an existing `usergroup` id, with new optional details such as its name, description, handle, or default channels.
- Update an existing remote file
- Updates metadata or content details for an existing remote file in slack; this action cannot upload new files or change the fundamental file type.
- Update a Slack message
- Updates a slack message, identified by `channel` id and `ts` timestamp, by modifying its `text`, `attachments`, or `blocks`; provide at least one content field, noting `attachments`/`blocks` are replaced if included (`[]` clears them).
- Update call information
- Updates the title, join url, or desktop app join url for an existing slack call identified by its id.
- Update user group members
- Replaces all members of an existing slack user group with a new list of valid user ids.
- Upload or create a file in Slack
- Uploads a file to slack, requiring either `content` (for text) or `file` (for binary data), optionally sharing it in specified `channels` or as a reply via `thread ts`.