Slack
Integrate Furl with Slack by creating a Slack app in your workspace and giving Furl its bot token.
Description
Section titled “Description”Furl posts notices to a Slack channel you choose, such as a remediation that failed. Furl can also message people directly and import your workspace members, so it can match people in Furl to their Slack accounts.
Configuration Steps
Section titled “Configuration Steps”-
Go to the Slack API portal: https://api.slack.com/apps
-
Click Create New App, choose From a manifest, and pick your workspace.
-
Paste this manifest and create the app:
display_information:name: furlfeatures:bot_user:display_name: furlalways_online: falseoauth_config:scopes:bot:- channels:read- chat:write- groups:read- im:write- users:read- users:read.emailsettings:org_deploy_enabled: falsesocket_mode_enabled: falsetoken_rotation_enabled: false -
Under Install App, click Install to Workspace and allow the requested permissions.
-
Under OAuth & Permissions, copy the Bot User OAuth Token. It starts with
xoxb-. -
In Slack, invite the bot to each channel Furl should post in. Run
/invite @furlin the channel.
To create the app from scratch instead, add the scopes below under OAuth & Permissions → Bot Token Scopes.
Required Scopes
Section titled “Required Scopes”Add these as bot token scopes. Do not add user token scopes.
| Scope | Why Furl needs it |
|---|---|
channels:read |
Finds a public channel by the name you entered. |
groups:read |
Finds a private channel by name, once the bot is a member. |
chat:write |
Posts messages to channels and direct messages. |
im:write |
Opens a direct message with a person before messaging them. |
users:read |
Lists workspace members to find the person to message and to import users. |
users:read.email |
Matches workspace members to people in Furl by email address. |
The Send message to channel action can also create channels and add members. That needs extra scopes, and Furl notifications never use it. Add channels:manage for public channels or groups:write for private channels only when you run that action with those options.
Required Configuration
Section titled “Required Configuration”Provide the following in Furl:
- Token: the Bot User OAuth Token from step 5. It starts with
xoxb-.
Use the bot token, not a user token. A user token starts with xoxp- and posts as the person who installed the app. Messages then fail in any channel that person hasn’t joined, even after you invite the bot.
Supported Capabilities
Section titled “Supported Capabilities”Datasources
Section titled “Datasources”- Users → Imports workspace members so Furl can match people to their Slack accounts.
Actions
Section titled “Actions”- Send message to channel → Sends a message to a channel by name. When the channel doesn’t exist, the action fails. Set
reuse_existing_channelto true to create it instead. It can also add members to the channel. - Send message to user → Sends a direct message to a person. Accepts a Slack member ID, username, display name, real name or email. Supports threading through
message_thread_id.
Troubleshooting
Section titled “Troubleshooting”not_in_channel: The bot isn’t a member of the channel. Run/invite @furlin the channel. When the error persists, check that Furl has thexoxb-bot token and not a user token.missing_scope: The app lacks a scope from the table above. Add it, reinstall the app, and copy the token again.- “Invalid permissions requested” when installing: The app has user token scopes. Remove every user token scope, for example through Features → App Manifest, and install again.
- Channel not found: Check the channel name. For a private channel, invite the bot first. Slack only shows the bot private channels it belongs to.
- Messages stopped after deleting a connection: Channel subscriptions keep pointing at the deleted connection. Edit each subscription in Settings → Notifications and choose the new connection.