Skip to content

Slack

Integrate Furl with Slack by creating a Slack app in your workspace and giving Furl its bot token.

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.

  1. Go to the Slack API portal: https://api.slack.com/apps

  2. Click Create New App, choose From a manifest, and pick your workspace.

  3. Paste this manifest and create the app:

    display_information:
    name: furl
    features:
    bot_user:
    display_name: furl
    always_online: false
    oauth_config:
    scopes:
    bot:
    - channels:read
    - chat:write
    - groups:read
    - im:write
    - users:read
    - users:read.email
    settings:
    org_deploy_enabled: false
    socket_mode_enabled: false
    token_rotation_enabled: false
  4. Under Install App, click Install to Workspace and allow the requested permissions.

  5. Under OAuth & Permissions, copy the Bot User OAuth Token. It starts with xoxb-.

  6. In Slack, invite the bot to each channel Furl should post in. Run /invite @furl in the channel.

To create the app from scratch instead, add the scopes below under OAuth & Permissions → Bot Token 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.

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.

  • Users → Imports workspace members so Furl can match people to their Slack accounts.
  • Send message to channel → Sends a message to a channel by name. When the channel doesn’t exist, the action fails. Set reuse_existing_channel to 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.
  • not_in_channel: The bot isn’t a member of the channel. Run /invite @furl in the channel. When the error persists, check that Furl has the xoxb- 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.