> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack OAuth 2.0 (Bot Token) connector profile – StackOne setup guide

> Set up the OAuth 2.0 (Bot Token) connector profile for Slack in StackOne. One-time admin setup required before your users can link Slack accounts via Hub.

<Warning>You need Workspace Admin or App Manager permissions in your Slack workspace. Some enterprise workspaces require IT admin approval before apps can be installed.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;slack_list_conversations&#x22;,&#x22;label&#x22;:&#x22;List Conversations&#x22;,&#x22;scopes&#x22;:[&#x22;channels:read&#x22;,&#x22;groups:read&#x22;,&#x22;mpim:read&#x22;,&#x22;im:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_get_conversation&#x22;,&#x22;label&#x22;:&#x22;Get Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;channels:read&#x22;,&#x22;groups:read&#x22;,&#x22;mpim:read&#x22;,&#x22;im:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_create_conversation&#x22;,&#x22;label&#x22;:&#x22;Create Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;channels:write&#x22;,&#x22;groups:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_join_conversation&#x22;,&#x22;label&#x22;:&#x22;Join Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;channels:join&#x22;]},{&#x22;id&#x22;:&#x22;slack_leave_conversation&#x22;,&#x22;label&#x22;:&#x22;Leave Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;channels:write&#x22;,&#x22;groups:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_rename_conversation&#x22;,&#x22;label&#x22;:&#x22;Rename Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;channels:write&#x22;,&#x22;groups:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_invite_users_to_conversation&#x22;,&#x22;label&#x22;:&#x22;Invite Users To Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;channels:write.invites&#x22;,&#x22;groups:write.invites&#x22;]},{&#x22;id&#x22;:&#x22;slack_invite_shared_conversation&#x22;,&#x22;label&#x22;:&#x22;Invite Shared Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;conversations.connect:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_kick_user_from_conversation&#x22;,&#x22;label&#x22;:&#x22;Remove User From Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;channels:write&#x22;,&#x22;groups:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_list_conversation_members&#x22;,&#x22;label&#x22;:&#x22;List Conversation Members&#x22;,&#x22;scopes&#x22;:[&#x22;channels:read&#x22;,&#x22;groups:read&#x22;,&#x22;mpim:read&#x22;,&#x22;im:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_open_conversation&#x22;,&#x22;label&#x22;:&#x22;Open Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;im:write&#x22;,&#x22;mpim:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_list_thread_replies&#x22;,&#x22;label&#x22;:&#x22;List Thread Replies&#x22;,&#x22;scopes&#x22;:[&#x22;channels:history&#x22;,&#x22;groups:history&#x22;,&#x22;mpim:history&#x22;,&#x22;im:history&#x22;]},{&#x22;id&#x22;:&#x22;slack_list_connect_invites&#x22;,&#x22;label&#x22;:&#x22;List Slack Connect Invites&#x22;,&#x22;scopes&#x22;:[&#x22;conversations.connect:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_list_files&#x22;,&#x22;label&#x22;:&#x22;List Files&#x22;,&#x22;scopes&#x22;:[&#x22;files:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_get_file&#x22;,&#x22;label&#x22;:&#x22;Get File&#x22;,&#x22;scopes&#x22;:[&#x22;files:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_delete_file&#x22;,&#x22;label&#x22;:&#x22;Delete File&#x22;,&#x22;scopes&#x22;:[&#x22;files:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_get_upload_url&#x22;,&#x22;label&#x22;:&#x22;Get File Upload URL&#x22;,&#x22;scopes&#x22;:[&#x22;files:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_complete_file_upload&#x22;,&#x22;label&#x22;:&#x22;Complete File Upload&#x22;,&#x22;scopes&#x22;:[&#x22;files:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_share_file_public_url&#x22;,&#x22;label&#x22;:&#x22;Share File Public URL&#x22;,&#x22;scopes&#x22;:[&#x22;files:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_revoke_file_public_url&#x22;,&#x22;label&#x22;:&#x22;Revoke File Public URL&#x22;,&#x22;scopes&#x22;:[&#x22;files:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_unified_list_groups&#x22;,&#x22;label&#x22;:&#x22;List Unified Groups&#x22;,&#x22;scopes&#x22;:[&#x22;usergroups:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_unified_get_group&#x22;,&#x22;label&#x22;:&#x22;Get Unified Group&#x22;,&#x22;scopes&#x22;:[&#x22;usergroups:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_unified_list_organizations&#x22;,&#x22;label&#x22;:&#x22;List Unified Organizations&#x22;,&#x22;scopes&#x22;:[&#x22;team:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_unified_get_organization&#x22;,&#x22;label&#x22;:&#x22;Get Unified Organization&#x22;,&#x22;scopes&#x22;:[&#x22;team:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_unified_list_users&#x22;,&#x22;label&#x22;:&#x22;List Unified Users&#x22;,&#x22;scopes&#x22;:[&#x22;users:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_unified_get_user&#x22;,&#x22;label&#x22;:&#x22;Get Unified User&#x22;,&#x22;scopes&#x22;:[&#x22;users:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_list_messages&#x22;,&#x22;label&#x22;:&#x22;List Messages&#x22;,&#x22;scopes&#x22;:[&#x22;channels:history&#x22;,&#x22;groups:history&#x22;,&#x22;mpim:history&#x22;,&#x22;im:history&#x22;]},{&#x22;id&#x22;:&#x22;slack_send_message&#x22;,&#x22;label&#x22;:&#x22;Send Message&#x22;,&#x22;scopes&#x22;:[&#x22;chat:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_update_message&#x22;,&#x22;label&#x22;:&#x22;Update Message&#x22;,&#x22;scopes&#x22;:[&#x22;chat:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_delete_message&#x22;,&#x22;label&#x22;:&#x22;Delete Message&#x22;,&#x22;scopes&#x22;:[&#x22;chat:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_send_ephemeral_message&#x22;,&#x22;label&#x22;:&#x22;Send Ephemeral Message&#x22;,&#x22;scopes&#x22;:[&#x22;chat:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_schedule_message&#x22;,&#x22;label&#x22;:&#x22;Schedule Message&#x22;,&#x22;scopes&#x22;:[&#x22;chat:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_list_scheduled_messages&#x22;,&#x22;label&#x22;:&#x22;List Scheduled Messages&#x22;,&#x22;scopes&#x22;:[&#x22;chat:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_delete_scheduled_message&#x22;,&#x22;label&#x22;:&#x22;Delete Scheduled Message&#x22;,&#x22;scopes&#x22;:[&#x22;chat:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_get_message_permalink&#x22;,&#x22;label&#x22;:&#x22;Get Message Permalink&#x22;,&#x22;scopes&#x22;:[&#x22;channels:history&#x22;,&#x22;groups:history&#x22;,&#x22;mpim:history&#x22;,&#x22;im:history&#x22;]},{&#x22;id&#x22;:&#x22;slack_list_users&#x22;,&#x22;label&#x22;:&#x22;List Users&#x22;,&#x22;scopes&#x22;:[&#x22;users:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_list_user_conversations&#x22;,&#x22;label&#x22;:&#x22;List User Conversations&#x22;,&#x22;scopes&#x22;:[&#x22;users:read&#x22;,&#x22;channels:read&#x22;,&#x22;groups:read&#x22;,&#x22;mpim:read&#x22;,&#x22;im:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_get_user&#x22;,&#x22;label&#x22;:&#x22;Get User&#x22;,&#x22;scopes&#x22;:[&#x22;users:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_get_user_by_email&#x22;,&#x22;label&#x22;:&#x22;Get User By Email&#x22;,&#x22;scopes&#x22;:[&#x22;users:read.email&#x22;]},{&#x22;id&#x22;:&#x22;slack_lookup_discoverable_contact&#x22;,&#x22;label&#x22;:&#x22;Lookup Discoverable Contact&#x22;,&#x22;scopes&#x22;:[&#x22;users:read&#x22;,&#x22;users:read.email&#x22;]},{&#x22;id&#x22;:&#x22;slack_get_user_profile&#x22;,&#x22;label&#x22;:&#x22;Get User Profile&#x22;,&#x22;scopes&#x22;:[&#x22;users.profile:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_set_user_profile&#x22;,&#x22;label&#x22;:&#x22;Set User Profile&#x22;,&#x22;scopes&#x22;:[&#x22;users.profile:write&#x22;]},{&#x22;id&#x22;:&#x22;slack_get_user_presence&#x22;,&#x22;label&#x22;:&#x22;Get User Presence&#x22;,&#x22;scopes&#x22;:[&#x22;users:read&#x22;]},{&#x22;id&#x22;:&#x22;slack_set_user_presence&#x22;,&#x22;label&#x22;:&#x22;Set User Presence&#x22;,&#x22;scopes&#x22;:[&#x22;users:write&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Create a Slack app</h2>

  <p>Set up a new Slack application to enable bot authentication.</p>

  <Steps>
    <Step title="Sign in to Slack API">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to the <a href="https://api.slack.com/apps" target="_blank" rel="noopener noreferrer">Slack API Apps page</a>.</p>

        <ul>
          <li>Click <strong>Create New App</strong>.</li>
          <li>In the <strong>Create an app</strong> dialog, select <strong>From scratch</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Create new app">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fill in the application details.</p>

        <ul>
          <li>Enter an <strong>App Name</strong> (e.g., "StackOne Bot Integration")</li>
          <li>Select your workspace from the dropdown.</li>
          <li>Click <strong>Create App</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Copy credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>After creating the app, you will be on the <strong>Basic Information</strong> page with the <strong>App Credentials</strong> section already visible.</p>

        <ul>
          <li>Copy the <strong>Client ID</strong>.</li>
          <li>Click <strong>Show</strong> next to <strong>Client Secret</strong> and copy the value.</li>
          <li>Store both securely for use later.</li>
          <li>Note: Regenerating the Client Secret later invalidates all existing refresh tokens — every connected account using this app will need to be reconnected.</li>
        </ul>
      </div>
    </Step>

    <Step title="Enable token rotation">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the left sidebar, under <strong>Features</strong>, click <strong>OAuth & Permissions</strong>. The <strong>Advanced token security via token rotation</strong> section appears at the top of the page — click <strong>Opt In</strong>.</p>

        <ul>
          <li>A confirmation dialog titled <strong>Your app will permanently use token rotation</strong> appears. Click <strong>Opt in</strong> to confirm.</li>
          <li>Required for the refresh flow — without it, no refresh token is issued. No manual install is needed; the app is installed into each end user's workspace when they complete the OAuth flow from StackOne.</li>
        </ul>
      </div>
    </Step>

    <Step title="Add redirect URL">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>On the same <strong>OAuth & Permissions</strong> page, scroll to <strong>Redirect URLs</strong>.</p>

        <ul>
          <li>Click <strong>Add New Redirect URL</strong>.</li>
          <li>Enter: `https://api.stackone.com/connect/oauth2/slack/callback`</li>
          <li>Click <strong>Add</strong>, then <strong>Save URLs</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Add bot token scopes">
      <div data-guide-step data-guide-scopes="app_mentions:read,channels:history,channels:join,channels:manage,channels:read,channels:write.invites,chat:write,conversations.connect:read,conversations.connect:write,dnd:read,emoji:read,files:read,files:write,groups:history,groups:read,groups:write,groups:write.invites,im:history,im:read,im:write,links:read,mpim:history,mpim:read,mpim:write,pins:read,pins:write,reactions:read,reactions:write,usergroups:read,users.profile:read,users:read,users:read.email,users:write,team:read" data-guide-display-scopes-list="app_mentions:read,channels:history,channels:join,channels:manage,channels:read,channels:write.invites,chat:write,conversations.connect:read,conversations.connect:write,dnd:read,emoji:read,files:read,files:write,groups:history,groups:read,groups:write,groups:write.invites,im:history,im:read,im:write,links:read,mpim:history,mpim:read,mpim:write,pins:read,pins:write,reactions:read,reactions:write,usergroups:read,users.profile:read,users:read,users:read.email,users:write,team:read">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="app_mentions:read,channels:history,channels:join,channels:manage,channels:read,channels:write.invites,chat:write,conversations.connect:read,conversations.connect:write,dnd:read,emoji:read,files:read,files:write,groups:history,groups:read,groups:write,groups:write.invites,im:history,im:read,im:write,links:read,mpim:history,mpim:read,mpim:write,pins:read,pins:write,reactions:read,reactions:write,usergroups:read,users.profile:read,users:read,users:read.email,users:write,team:read" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Complete File Upload, Create Conversation, Delete File, Delete Message, Delete Scheduled Message, Get Conversation, Get File, Get File Upload URL, Get Message Permalink, Get Unified Group, Get Unified Organization, Get Unified User, Get User, Get User By Email, Get User Presence, Get User Profile, Invite Shared Conversation, Invite Users To Conversation, Join Conversation, Leave Conversation, List Conversation Members, List Conversations, List Files, List Messages, List Scheduled Messages, List Slack Connect Invites, List Thread Replies, List Unified Groups, List Unified Organizations, List Unified Users, List User Conversations, List Users, Lookup Discoverable Contact, Open Conversation, Remove User From Conversation, Rename Conversation, Revoke File Public URL, Schedule Message, Send Ephemeral Message, Send Message, Set User Presence, Share File Public URL, Update Message</span>
        </div>

        <p>On the same <strong>OAuth & Permissions</strong> page, scroll to <strong>Scopes</strong>. Under <strong>Bot token scopes</strong>, click <strong>Add an OAuth Scope</strong> and add the following scopes. At least one scope is required for the app to work:</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container connector-guide-scopes-container--scrollable">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="app_mentions:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy app_mentions:read" title="Copy scope" data-copy="app_mentions:read">
                  <span className="connector-guide-scope-copy__label">app\_mentions:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="channels:history">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy channels:history" title="Copy scope" data-copy="channels:history">
                  <span className="connector-guide-scope-copy__label">channels:history</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="channels:join">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy channels:join" title="Copy scope" data-copy="channels:join">
                  <span className="connector-guide-scope-copy__label">channels:join</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="channels:manage">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy channels:manage" title="Copy scope" data-copy="channels:manage">
                  <span className="connector-guide-scope-copy__label">channels:manage</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="channels:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy channels:read" title="Copy scope" data-copy="channels:read">
                  <span className="connector-guide-scope-copy__label">channels:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="channels:write.invites">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy channels:write.invites" title="Copy scope" data-copy="channels:write.invites">
                  <span className="connector-guide-scope-copy__label">channels:write.invites</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="chat:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy chat:write" title="Copy scope" data-copy="chat:write">
                  <span className="connector-guide-scope-copy__label">chat:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="conversations.connect:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy conversations.connect:read" title="Copy scope" data-copy="conversations.connect:read">
                  <span className="connector-guide-scope-copy__label">conversations.connect:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="conversations.connect:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy conversations.connect:write" title="Copy scope" data-copy="conversations.connect:write">
                  <span className="connector-guide-scope-copy__label">conversations.connect:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="dnd:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy dnd:read" title="Copy scope" data-copy="dnd:read">
                  <span className="connector-guide-scope-copy__label">dnd:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="emoji:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy emoji:read" title="Copy scope" data-copy="emoji:read">
                  <span className="connector-guide-scope-copy__label">emoji:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="files:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy files:read" title="Copy scope" data-copy="files:read">
                  <span className="connector-guide-scope-copy__label">files:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="files:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy files:write" title="Copy scope" data-copy="files:write">
                  <span className="connector-guide-scope-copy__label">files:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="groups:history">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy groups:history" title="Copy scope" data-copy="groups:history">
                  <span className="connector-guide-scope-copy__label">groups:history</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="groups:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy groups:read" title="Copy scope" data-copy="groups:read">
                  <span className="connector-guide-scope-copy__label">groups:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="groups:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy groups:write" title="Copy scope" data-copy="groups:write">
                  <span className="connector-guide-scope-copy__label">groups:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="groups:write.invites">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy groups:write.invites" title="Copy scope" data-copy="groups:write.invites">
                  <span className="connector-guide-scope-copy__label">groups:write.invites</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="im:history">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy im:history" title="Copy scope" data-copy="im:history">
                  <span className="connector-guide-scope-copy__label">im:history</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="im:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy im:read" title="Copy scope" data-copy="im:read">
                  <span className="connector-guide-scope-copy__label">im:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="im:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy im:write" title="Copy scope" data-copy="im:write">
                  <span className="connector-guide-scope-copy__label">im:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="links:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy links:read" title="Copy scope" data-copy="links:read">
                  <span className="connector-guide-scope-copy__label">links:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="mpim:history">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy mpim:history" title="Copy scope" data-copy="mpim:history">
                  <span className="connector-guide-scope-copy__label">mpim:history</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="mpim:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy mpim:read" title="Copy scope" data-copy="mpim:read">
                  <span className="connector-guide-scope-copy__label">mpim:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="mpim:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy mpim:write" title="Copy scope" data-copy="mpim:write">
                  <span className="connector-guide-scope-copy__label">mpim:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="pins:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy pins:read" title="Copy scope" data-copy="pins:read">
                  <span className="connector-guide-scope-copy__label">pins:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="pins:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy pins:write" title="Copy scope" data-copy="pins:write">
                  <span className="connector-guide-scope-copy__label">pins:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="reactions:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy reactions:read" title="Copy scope" data-copy="reactions:read">
                  <span className="connector-guide-scope-copy__label">reactions:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="reactions:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy reactions:write" title="Copy scope" data-copy="reactions:write">
                  <span className="connector-guide-scope-copy__label">reactions:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="usergroups:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy usergroups:read" title="Copy scope" data-copy="usergroups:read">
                  <span className="connector-guide-scope-copy__label">usergroups:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="users.profile:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy users.profile:read" title="Copy scope" data-copy="users.profile:read">
                  <span className="connector-guide-scope-copy__label">users.profile:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="users:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy users:read" title="Copy scope" data-copy="users:read">
                  <span className="connector-guide-scope-copy__label">users:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="users:read.email">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy users:read.email" title="Copy scope" data-copy="users:read.email">
                  <span className="connector-guide-scope-copy__label">users:read.email</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="users:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy users:write" title="Copy scope" data-copy="users:write">
                  <span className="connector-guide-scope-copy__label">users:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="team:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy team:read" title="Copy scope" data-copy="team:read">
                  <span className="connector-guide-scope-copy__label">team:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Slack</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Slack</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0 (Bot Token)</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>Bot Token Scopes</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Slack</strong>.
