✨ Stop losing hours to undocumented processes. Create SOPs in seconds with Glitter AI.

Slack-First Onboarding: When Your Product Lives in Slack

Cover Image for Slack-First Onboarding: When Your Product Lives in Slack

When your product lives inside Slack, the usual onboarding playbook goes out the window. No landing page to optimize. No dashboard to tour. No signup form to streamline. Your onboarding happens through conversations, slash commands, and Slack's quirky interface patterns.

This guide covers how to design onboarding for products that exist primarily within Slack.

The Slack-First Context

What Makes It Different

In traditional SaaS, users visit your website, sign up with email, land in your product, and you control the interface.

In Slack-first, users install from the App Directory or a link, authenticate via OAuth with Slack, live inside Slack, and Slack controls the interface. Big difference.

Slack Product Types

Bots are conversational agents that respond to messages. Think standup bots, support bots, notification bots.

Workflow Apps automate processes within Slack. Approval workflows, form collectors.

Integrations connect external services to Slack. GitHub notifications, Salesforce alerts.

Full Apps pack complex functionality into modals and surfaces. Project management, time tracking.

Unique Constraints

You're working with real limitations here.

On the interface side: no custom UI (mostly), message-based interaction, Block Kit for rich formatting, modals for forms, Home tab for dashboards.

On distribution: Slack App Directory is your main discovery channel, workspace admin approval is often required, and installation happens per-workspace.

On user identification: Slack user ID is your primary identifier, you might not have email access, and team/workspace context matters a lot.

Installation Flow

The Install Journey

Discovery → Install Click → OAuth Consent →
Workspace Selection → Permission Grant → Redirect → First Use

OAuth Permissions

Keep Permissions Minimal:
Request only what you need.

Common Scopes:

ScopePurposeUser Concern
users:readSee workspace usersLow
chat:writeSend messagesMedium
channels:readSee channelsMedium
channels:historyRead messagesHigh

Permission Strategy:

  1. Start with minimum required
  2. Request additional when needed
  3. Explain why you need each

Post-Install Redirect

Options After OAuth:

  1. Back to Slack:
    Redirect to Slack with your app opened.
slack://app?team={team_id}&id={app_id}
  1. Web Setup Page:
    Show additional configuration.
    Brief—users want to get back to Slack.

  2. Confirmation Page:
    Simple success message with next steps.

Best Practice:
Get users back to Slack quickly—that's where they'll use your product.

First-Run Experience

DM Introduction

When App Is Installed:
Send an introductory DM from your bot.

👋 Hey there! I'm [Bot Name], and I'm here to help you [value prop].

Here's what I can do:
• [Capability 1]
• [Capability 2]
• [Capability 3]

Try these commands to get started:
• `/[command] help` - See all commands
• `/[command] setup` - Configure your settings
• `/[command] demo` - See me in action

Questions? Just reply here anytime.

Key Elements:

  • Friendly greeting
  • Clear value proposition
  • Actionable next steps
  • Help access

Home Tab Setup

If Using Home Tab:
Design a useful "home base" for users.

┌─────────────────────────────────────┐
│ [Your App] Home                     │
├─────────────────────────────────────┤
│ 👋 Welcome, [User Name]!            │
│                                     │
│ ┌─────────────────────────────────┐ │
│ │ Quick Actions                   │ │
│ │ [Create Task] [View Dashboard]  │ │
│ └─────────────────────────────────┘ │
│                                     │
│ 📊 Your Stats                       │
│ • Tasks completed: 12              │
│ • Team rank: #3                    │
│                                     │
│ ⚙️ [Settings] [Help] [Feedback]    │
└─────────────────────────────────────┘

Channel Setup

If App Needs Channel:
Guide users to add your app to relevant channels.

To get started, add me to a channel:

1. Go to any channel
2. Type `/invite @[bot-name]`
3. I'll introduce myself there

Or click here to choose a channel:
[Add to Channel]

Conversational Onboarding

Progressive Disclosure

Don't Dump Everything:
Introduce capabilities as users need them.

Conversation Flow:

User: /taskbot help
Bot: Here are the basics:
     • `/taskbot create` - Create a task
     • `/taskbot list` - See your tasks

     Want to learn more? Type `/taskbot help advanced`

Teaching Through Use

When User Takes Action:

User: /taskbot create Buy groceries
Bot: ✓ Task created: "Buy groceries"

     💡 Tip: Add a due date with `/taskbot create Buy groceries due:tomorrow`

     [View Task] [Mark Complete]

Handling Unknown Commands

Turn Errors into Learning:

User: /taskbot remove task-123
Bot: I don't recognize "remove" 🤔

     Did you mean:
     • `/taskbot delete task-123` - Delete a task
     • `/taskbot done task-123` - Mark as complete

     Type `/taskbot help` for all commands.

Interactive Onboarding

Using Modals

For Setup Flows:

User: /[app] setup
Bot: Opens modal:

┌─────────────────────────────────────┐
│ Setup Your Preferences              │
├─────────────────────────────────────┤
│ How would you like reminders?       │
│ [Dropdown: DM / Channel / None]     │
│                                     │
│ Default channel for updates:        │
│ [Channel selector]                  │
│                                     │
│ Time zone:                          │
│ [Time zone picker]                  │
│                                     │
│        [Cancel] [Save Settings]     │
└─────────────────────────────────────┘

Using Buttons

Guide Actions:

Welcome to [App]! Let's get you set up.

What would you like to do first?
[📋 Create First Task]
[⚙️ Configure Settings]
[📚 Watch Tutorial]
[💬 Explore Commands]

Using Workflows

For Multi-Step Onboarding:
Slack Workflow Builder can create structured onboarding:

Step 1: Welcome message
Step 2: Setup form
Step 3: Channel selection
Step 4: First action prompt
Step 5: Success confirmation

Permission Patterns

Just-in-Time Permissions

Don't Ask for Everything Upfront:

User: /app analyze #marketing
Bot: To analyze channel activity, I need permission
     to read messages in #marketing.

     [Grant Permission] [Learn More]

Explaining Permissions

When Sensitive:

You're about to enable message monitoring.

What this means:
• I'll read messages in selected channels
• Used to: Track project mentions
• I won't: Store message content permanently

Your data is: Encrypted and never shared

[Enable] [Cancel] [Privacy Policy]

Channel vs DM

When to Use DM

Personal Information:

  • Settings and preferences
  • Private notifications
  • Sensitive data

Individual Actions:

  • Personal tasks
  • One-on-one interactions
  • Account management

When to Use Channel

Team Information:

  • Team notifications
  • Shared data
  • Collaborative features

Visibility:

  • Status updates everyone should see
  • Team achievements
  • Shared workflows

Guiding Users

Help Users Choose:

Where should I post daily standups?

💬 DM - Just you
📢 Channel - Your team

[Choose DM] [Choose Channel]

Slash Command Design

Command Structure

Discoverable Commands:

/app                    → Quick actions menu
/app help               → All commands
/app [action]           → Specific action
/app [action] [params]  → Action with parameters

Help Command

Essential for Onboarding:

User: /taskbot help

[TaskBot] Here's what I can do:

📋 Tasks
• `/taskbot create [task]` - Create a task
• `/taskbot list` - See all tasks
• `/taskbot done [id]` - Complete a task

⚙️ Settings
• `/taskbot settings` - Your preferences
• `/taskbot notify [on/off]` - Toggle notifications

📊 Reports
• `/taskbot summary` - Weekly summary
• `/taskbot stats` - Your stats

Need more help? Try `/taskbot help [command]` or DM me!

Smart Defaults

Reduce Required Input:

User: /standup
Bot: Good morning! Let's do your standup.

     (I'll post to #team-standups at 9am as usual)

     What did you do yesterday?
     [Type your response...]

Measuring Slack Onboarding

Key Metrics

Installation:

  • Install rate from App Directory
  • OAuth completion rate
  • Workspace vs. user installs

Activation:

  • First command used
  • First meaningful action
  • Bot interaction rate

Engagement:

  • Commands per user
  • Daily/weekly active users
  • Feature adoption

Tracking in Slack

Events to Track:

// Pseudo-code for event tracking
trackEvent('app_installed', {
  workspace_id,
  installer_user_id,
  install_source
});

trackEvent('first_command', {
  user_id,
  command,
  days_since_install
});

trackEvent('feature_used', {
  user_id,
  feature,
  context
});

Funnel Analysis

Installs: 1,000
First command used: 700 (70%)
Setup completed: 500 (50%)
Weekly active: 300 (30%)
Monthly retained: 200 (20%)

Common Mistakes

Mistake 1: Too Many Messages

Problem: Overwhelming users with DMs.
Fix: Consolidate, use threads, respect attention.

Mistake 2: No Clear Start

Problem: User installs but doesn't know what to do.
Fix: Clear first-run message with specific action.

Mistake 3: Complex Commands

Problem: Hard-to-remember command syntax.
Fix: Simple commands, buttons for common actions.

Mistake 4: Ignoring Context

Problem: Same behavior in DM and channel.
Fix: Adapt to context (private vs. public).

Mistake 5: No Help Access

Problem: Users get stuck with no guidance.
Fix: Always-available help command, DM support.

Advanced Patterns

Onboarding Checklist in Home Tab

┌─────────────────────────────────────┐
│ Getting Started                     │
│ ━━━━━━━━━━━━━━━━ 50%               │
│                                     │
│ ✓ Install app                       │
│ ✓ Configure settings               │
│ ○ Add to a channel                 │
│ ○ Create first [item]              │
│                                     │
│ [Continue Setup]                    │
└─────────────────────────────────────┘

Interactive Tutorial

Bot: Want a quick tour? (takes 2 minutes)
     [Start Tour] [Maybe Later]

User: [clicks Start Tour]

Bot: Great! Let's create your first task.
     Type: `/taskbot create Learn TaskBot`

User: /taskbot create Learn TaskBot

Bot: ✓ Perfect! You created a task.

     Now let's see your tasks:
     Type: `/taskbot list`
...

Workspace Admin Flow

For Apps Requiring Admin Setup:

Hi [Admin]! You installed [App] for your workspace.

Before your team can use it:
1. [Choose default channel] - Required
2. [Set team preferences] - Optional
3. [Invite to channels] - Optional

[Complete Setup]

Once done, your team will get a welcome message.

The Bottom Line

Slack-first onboarding means embracing Slack's conversational nature. The best Slack apps feel native. They teach through interaction, respect Slack's patterns, and meet users where they already are.

What matters:

  1. Clear first-run message with one next action
  2. Teach through use, not docs
  3. Buttons and modals for complex flows
  4. Simple, discoverable commands
  5. Respect the conversational context

Your goal is making your Slack app feel like a natural part of how teams already work. Not some foreign tool they have to learn.


Continue learning: Integration Onboarding and Chrome Extension Onboarding.

Frequently Asked Questions

How do I design onboarding for a Slack app or bot?

Start with a clear DM introduction stating your value prop and actionable commands. Use progressive disclosure to teach through use rather than documentation. Leverage Slack's Home tab for setup checklists, buttons for guided actions, and modals for configuration flows.

What should a Slack bot's first-run experience include?

Send an introductory DM with a friendly greeting, clear value proposition, 2-3 key capabilities, actionable slash commands to try, and help access. Include buttons for common first actions like 'Start Tour' or 'Configure Settings' to guide users toward activation.

How do I handle slash command design for Slack app onboarding?

Keep commands simple and discoverable with a consistent structure: /app for quick actions, /app help for all commands, /app [action] for specific tasks. Include smart defaults, turn errors into learning opportunities with suggestions, and always provide an accessible help command.

What metrics should I track for Slack app onboarding?

Track installation metrics (install rate, OAuth completion), activation metrics (first command used, first meaningful action, days since install), and engagement metrics (commands per user, daily/weekly active users, feature adoption). Analyze your funnel from installs through weekly retention.

What are common mistakes in Slack bot onboarding?

Common mistakes include overwhelming users with too many DMs, providing no clear starting action after install, using complex hard-to-remember command syntax, ignoring context differences between DMs and channels, and not providing accessible help when users get stuck.

Slack-First Onboarding: When Your Product Lives in Slack...