Skip to main content

Slack app manifest

This is the manifest you paste to create OttoBot's Slack app. OttoBot isn't listed in the Slack App Directory yet, so every installation starts here with a "From a manifest" app.

For the full walkthrough (installing the app, copying both tokens, entering them in HG Insights, and checking that it works), see Slack Integration.

Paste this into Slack​

At api.slack.com/apps, choose Create New App → From a manifest, select your workspace, then paste the YAML below unchanged. Editing it is the most common cause of an install that seems to succeed but leaves OttoBot silent or half-working.

display_information:
name: OttoBot
description: AI sales assistant — ask me about accounts, contacts, and deals.
background_color: "#3E78B9"

features:
bot_user:
display_name: OttoBot
always_online: true
app_home:
messages_tab_enabled: true
messages_tab_read_only_enabled: false
# Makes a DM with OttoBot an assistant thread, which is what enables the
# tool-activity status line. Use `agent_view` (not the legacy `assistant_view`).
agent_view:
agent_description: Ask OttoBot about accounts, contacts, and deals.

oauth_config:
scopes:
bot:
- app_mentions:read
- channels:history
- channels:read
- chat:write
- files:read
- files:write
- groups:history
- groups:read
- im:history
- im:read
- im:write
- users:read
- users:read.email
- reactions:read
- reactions:write
# Slack adds this automatically when the agent surface is enabled; it is declared
# here so the manifest matches what Slack actually provisions.
- assistant:write

settings:
event_subscriptions:
bot_events:
- app_mention
- message.channels
- message.groups
- message.im
# Required by the agent surface. Do not add `assistant_thread_started` — it belongs
# to the superseded `assistant_view` surface.
- app_home_opened
- app_context_changed
interactivity:
is_enabled: false
org_deploy_enabled: false
socket_mode_enabled: true
token_rotation_enabled: false

Why these settings matter​

SettingWhy it must stay as-is
socket_mode_enabled: trueOttoBot connects out to Slack over Socket Mode. Without it there is no inbound URL for Slack to call, so OttoBot never receives messages.
agent_viewMakes a DM with OttoBot an assistant thread, which is what enables the tool-activity status line while it works.
interactivity.is_enabled: falseOttoBot uses no buttons or modals.
token_rotation_enabled: falseHG Insights stores long-lived tokens. Enabling rotation invalidates them on Slack's schedule and OttoBot goes offline.
Scopes and eventsWhat each one is for, including the ones OttoBot doesn't use today, is listed in Permissions you're approving. Editing the manifest is unsupported, and removing a scope OttoBot uses causes partial failures that are hard to diagnose.

After creating the app​

Once Slack creates the app, you land on its Basic Information page. OttoBot needs two different tokens from two different screens of this Slack app. You'll copy both into HG Insights. They're often swapped, so check the prefix of each one before pasting it.

HG Insights fieldTokenWhere to get it in Slack
Bot User OAuth Tokenstarts xoxb-Features → OAuth & Permissions, after installing the app
App-Level Tokenstarts xapp-Basic Information → App-Level Tokens, after you generate it

1. Get the Bot User OAuth Token (xoxb-)​

  1. In the left sidebar, under Features, open OAuth & Permissions.
  2. Under OAuth Tokens, click Install to your workspace.
  3. Check that the workspace shown is the one OttoBot will work in, then click Allow.
  4. You're returned to OAuth & Permissions. Copy the Bot User OAuth Token, which starts with xoxb-.

2. Generate the App-Level Token (xapp-)​

This token doesn't exist until you create it.

  1. Go back to Basic Information and scroll to App-Level Tokens.
  2. Click Generate Token and Scopes.
  3. Name the token (for example, socket-mode).
  4. Click Add Scope and select connections:write.
  5. Click Generate, then copy the token, which starts with xapp-.

3. Enter the tokens in HG Insights​

You need to be an organization admin to configure the Slack integration.

  1. Open your organization's Integrations page: click Integrations in the left sidebar, or go to https://phoenix.hginsights.com/organizations/<your-organization>/integrations.
  2. Scroll down to the Slack card and click Configure.
  3. Paste the xoxb- token into Bot User OAuth Token and the xapp- token into App-Level Token.
  4. Click Configure Integration to save. Both tokens are stored encrypted and are never shown back to you.

4. Add OttoBot to your channels​

In Slack, invite OttoBot to each channel where you want it to respond: type /invite @OttoBot in the channel. You can DM OttoBot without inviting it anywhere.

If OttoBot doesn't respond​

If both tokens are correct and OttoBot still doesn't respond, OttoBot access may not be enabled for your organization yet. Contact HG Insights to have it turned on.

Keeping this copy current​

HG Insights keeps this page functionally identical to OttoBot's manifest: the same scopes, events and settings. Only the explanatory comments differ. If you created your app from an earlier version, see "no status line" under If something goes wrong for how to update it.

Next steps​