> ## 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.

# Microsoft Teams OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Microsoft Teams in StackOne. One-time admin setup required before your users can link Microsoft Teams accounts via Hub.

<Warning>You must have at least Application Developer permissions in your Azure account to register applications in Microsoft Entra ID.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;microsoftteams_list_users&#x22;,&#x22;label&#x22;:&#x22;List Users&#x22;,&#x22;scopes&#x22;:[&#x22;User.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_user&#x22;,&#x22;label&#x22;:&#x22;Get User&#x22;,&#x22;scopes&#x22;:[&#x22;User.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_create_user&#x22;,&#x22;label&#x22;:&#x22;Create User&#x22;,&#x22;scopes&#x22;:[&#x22;User.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_delete_user&#x22;,&#x22;label&#x22;:&#x22;Delete User&#x22;,&#x22;scopes&#x22;:[&#x22;User.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_change_password&#x22;,&#x22;label&#x22;:&#x22;Change Password&#x22;,&#x22;scopes&#x22;:[&#x22;User-PasswordProfile.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_current_user&#x22;,&#x22;label&#x22;:&#x22;Get Current User&#x22;,&#x22;scopes&#x22;:[&#x22;User.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_teams&#x22;,&#x22;label&#x22;:&#x22;List Teams&#x22;,&#x22;scopes&#x22;:[&#x22;Team.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_create_team&#x22;,&#x22;label&#x22;:&#x22;Create Team&#x22;,&#x22;scopes&#x22;:[&#x22;Team.Create&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_team&#x22;,&#x22;label&#x22;:&#x22;Get Team&#x22;,&#x22;scopes&#x22;:[&#x22;Team.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_update_team&#x22;,&#x22;label&#x22;:&#x22;Update Team&#x22;,&#x22;scopes&#x22;:[&#x22;TeamSettings.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_delete_team&#x22;,&#x22;label&#x22;:&#x22;Delete Team&#x22;,&#x22;scopes&#x22;:[&#x22;Group.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_archive_team&#x22;,&#x22;label&#x22;:&#x22;Archive Team&#x22;,&#x22;scopes&#x22;:[&#x22;TeamSettings.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_unarchive_team&#x22;,&#x22;label&#x22;:&#x22;Unarchive Team&#x22;,&#x22;scopes&#x22;:[&#x22;TeamSettings.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_add_team_member&#x22;,&#x22;label&#x22;:&#x22;Add Team Member&#x22;,&#x22;scopes&#x22;:[&#x22;TeamMember.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_add_team_members_bulk&#x22;,&#x22;label&#x22;:&#x22;Add Team Members In Bulk&#x22;,&#x22;scopes&#x22;:[&#x22;TeamMember.ReadWriteNonOwnerRole.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_remove_team_member&#x22;,&#x22;label&#x22;:&#x22;Remove Team Member&#x22;,&#x22;scopes&#x22;:[&#x22;TeamMember.ReadWriteNonOwnerRole.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_remove_team_members_bulk&#x22;,&#x22;label&#x22;:&#x22;Remove Team Members In Bulk&#x22;,&#x22;scopes&#x22;:[&#x22;TeamMember.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_team_members&#x22;,&#x22;label&#x22;:&#x22;List Team Members&#x22;,&#x22;scopes&#x22;:[&#x22;TeamMember.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_team_member&#x22;,&#x22;label&#x22;:&#x22;Get Team Member&#x22;,&#x22;scopes&#x22;:[&#x22;TeamMember.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_clone_team&#x22;,&#x22;label&#x22;:&#x22;Clone Team&#x22;,&#x22;scopes&#x22;:[&#x22;Team.Create&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_channels&#x22;,&#x22;label&#x22;:&#x22;List Channels&#x22;,&#x22;scopes&#x22;:[&#x22;Channel.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_channel&#x22;,&#x22;label&#x22;:&#x22;Get Channel&#x22;,&#x22;scopes&#x22;:[&#x22;Channel.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_all_channels&#x22;,&#x22;label&#x22;:&#x22;List All Channels&#x22;,&#x22;scopes&#x22;:[&#x22;Channel.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_incoming_channels&#x22;,&#x22;label&#x22;:&#x22;List Incoming Channels&#x22;,&#x22;scopes&#x22;:[&#x22;Channel.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_primary_channel&#x22;,&#x22;label&#x22;:&#x22;Get Primary Channel&#x22;,&#x22;scopes&#x22;:[&#x22;Channel.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_create_channel&#x22;,&#x22;label&#x22;:&#x22;Create Channel&#x22;,&#x22;scopes&#x22;:[&#x22;Channel.Create&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_update_channel&#x22;,&#x22;label&#x22;:&#x22;Update Channel&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelSettings.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_delete_channel&#x22;,&#x22;label&#x22;:&#x22;Delete Channel&#x22;,&#x22;scopes&#x22;:[&#x22;Channel.Delete.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_channel_tabs&#x22;,&#x22;label&#x22;:&#x22;List Channel Tabs&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsTab.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_channel_files_folder&#x22;,&#x22;label&#x22;:&#x22;Get Channel Files Folder&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_channel_members&#x22;,&#x22;label&#x22;:&#x22;List Channel Members&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMember.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_all_channel_members&#x22;,&#x22;label&#x22;:&#x22;List All Channel Members&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMember.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_channel_member&#x22;,&#x22;label&#x22;:&#x22;Get Channel Member&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMember.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_archive_channel&#x22;,&#x22;label&#x22;:&#x22;Archive Channel&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelSettings.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_unarchive_channel&#x22;,&#x22;label&#x22;:&#x22;Unarchive Channel&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelSettings.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_add_channel_member&#x22;,&#x22;label&#x22;:&#x22;Add Channel Member&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMember.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_remove_channel_member&#x22;,&#x22;label&#x22;:&#x22;Remove Channel Member&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMember.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_channel_tab&#x22;,&#x22;label&#x22;:&#x22;Get Channel Tab&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsTab.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_delete_channel_tab&#x22;,&#x22;label&#x22;:&#x22;Delete Channel Tab&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsTab.ReadWriteSelfForTeam&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_channel_messages&#x22;,&#x22;label&#x22;:&#x22;List Channel Messages&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMessage.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_all_channel_messages&#x22;,&#x22;label&#x22;:&#x22;List All Channel Messages&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMessage.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_channel_message&#x22;,&#x22;label&#x22;:&#x22;Get Channel Message&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_send_channel_message&#x22;,&#x22;label&#x22;:&#x22;Send Channel Message&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMessage.Send&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_update_channel_message&#x22;,&#x22;label&#x22;:&#x22;Update Channel Message&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMessage.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_soft_delete_channel_message&#x22;,&#x22;label&#x22;:&#x22;Delete Channel Message&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMessage.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_channel_message_replies&#x22;,&#x22;label&#x22;:&#x22;List Message Replies&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMessage.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_send_message_reply&#x22;,&#x22;label&#x22;:&#x22;Send Message Reply&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMessage.Send&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_channel_message_reply&#x22;,&#x22;label&#x22;:&#x22;Get Message Reply&#x22;,&#x22;scopes&#x22;:[&#x22;ChannelMessage.Read.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_chat_messages&#x22;,&#x22;label&#x22;:&#x22;List Chat Messages&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_chat_message&#x22;,&#x22;label&#x22;:&#x22;Get Chat Message&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_send_chat_message&#x22;,&#x22;label&#x22;:&#x22;Send Chat Message&#x22;,&#x22;scopes&#x22;:[&#x22;ChatMessage.Send&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_soft_delete_chat_message&#x22;,&#x22;label&#x22;:&#x22;Delete Chat Message&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_undo_soft_delete_chat_message&#x22;,&#x22;label&#x22;:&#x22;Undo Soft Delete Chat Message&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_chats&#x22;,&#x22;label&#x22;:&#x22;List Chats&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.ReadBasic&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_chat&#x22;,&#x22;label&#x22;:&#x22;Get Chat&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.ReadBasic&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_create_chat&#x22;,&#x22;label&#x22;:&#x22;Create Chat&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.Create&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_update_chat&#x22;,&#x22;label&#x22;:&#x22;Update Chat&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_delete_chat&#x22;,&#x22;label&#x22;:&#x22;Delete Chat&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.ManageDeletion.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_list_chat_members&#x22;,&#x22;label&#x22;:&#x22;List Chat Members&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.ReadBasic&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_add_chat_member&#x22;,&#x22;label&#x22;:&#x22;Add Chat Member&#x22;,&#x22;scopes&#x22;:[&#x22;ChatMember.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_remove_chat_member&#x22;,&#x22;label&#x22;:&#x22;Remove Chat Member&#x22;,&#x22;scopes&#x22;:[&#x22;ChatMember.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_get_chat_member&#x22;,&#x22;label&#x22;:&#x22;Get Chat Member&#x22;,&#x22;scopes&#x22;:[&#x22;Chat.ReadBasic&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_bot_create_conversation&#x22;,&#x22;label&#x22;:&#x22;Bot Create Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsAppInstallation.ReadWriteSelfForUser&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_bot_send_to_conversation&#x22;,&#x22;label&#x22;:&#x22;Bot Send To Conversation&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsAppInstallation.ReadWriteSelfForUser&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_bot_reply_to_activity&#x22;,&#x22;label&#x22;:&#x22;Bot Reply To Activity&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsAppInstallation.ReadWriteSelfForUser&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_bot_update_activity&#x22;,&#x22;label&#x22;:&#x22;Bot Update Activity&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsAppInstallation.ReadWriteSelfForUser&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_bot_delete_activity&#x22;,&#x22;label&#x22;:&#x22;Bot Delete Activity&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsAppInstallation.ReadWriteSelfForUser&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_bot_get_conversation_members&#x22;,&#x22;label&#x22;:&#x22;Bot Get Conversation Members&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsAppInstallation.ReadWriteSelfForUser&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_bot_get_conversation_paged_members&#x22;,&#x22;label&#x22;:&#x22;Bot Get Conversation Paged Members&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsAppInstallation.ReadWriteSelfForUser&#x22;]},{&#x22;id&#x22;:&#x22;microsoftteams_bot_get_conversation_member&#x22;,&#x22;label&#x22;:&#x22;Bot Get Conversation Member&#x22;,&#x22;scopes&#x22;:[&#x22;TeamsAppInstallation.ReadWriteSelfForUser&#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>Register Your Application in Microsoft Entra ID</h2>

  <p>To connect Microsoft Teams with StackOne, you need to register an application in Microsoft Entra ID to obtain OAuth 2.0 credentials.</p>

  <Steps>
    <Step title="Sign in to Microsoft Entra Admin Center">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to the <a href="https://entra.microsoft.com" target="_blank" rel="noopener noreferrer">Microsoft Entra admin center</a> as at least an Application Developer. If you have access to multiple tenants, click the <strong>Settings</strong> (gear) icon in the top-right corner, then select the desired tenant from the list under <strong>Directory + subscription</strong>.</p>
      </div>
    </Step>

    <Step title="Create a New App Registration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Navigate to <strong>App registrations</strong> by searching from the top search bar and click on <strong>New registration</strong>.</p>

        <ul>
          <li>Enter a meaningful <strong>Name</strong> for your app (e.g., StackOne Microsoft Teams Integration).</li>
          <li>Under <strong>Supported account types</strong>, select <strong>Single tenant</strong> if only your organization will use this integration, or <strong>Multitenant</strong> if you need to support users from multiple Azure AD tenants.</li>
          <li>Leave the <strong>Redirect URI</strong> blank for now — you will configure it in the next section.</li>
          <li>Select <strong>Register</strong> to create the app registration.</li>
        </ul>
      </div>
    </Step>

    <Step title="Copy the Application (Client) ID">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>After registration, you'll be directed to the application's <strong>Overview</strong> page. Copy the <strong>Application (client) ID</strong> value and store it securely for use later.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure Redirect URI</h2>

  <p>Set up the OAuth 2.0 callback URL to enable authentication flow between StackOne and Microsoft Teams.</p>

  <Steps>
    <Step title="Navigate to Authentication Settings">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>From your app's Overview page, select <strong>Authentication (Preview)</strong> from the left menu under <strong>Manage</strong>.</p>
      </div>
    </Step>

    <Step title="Add Platform Configuration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Add Redirect URI</strong>, then select <strong>Web</strong>.</p>
      </div>
    </Step>

    <Step title="Set the Redirect URI">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Redirect URIs</strong> field, enter the StackOne OAuth callback URL (`https://api.stackone.com/connect/oauth2/microsoftteams/callback`) and click <strong>Configure</strong>.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure API Permissions</h2>

  <p>Grant your application the necessary Microsoft Graph API permissions to access Microsoft Teams data.</p>

  <Steps>
    <Step title="Open API Permissions">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>From the left menu under <strong>Manage</strong>, select <strong>API permissions</strong>.</p>
      </div>
    </Step>

    <Step title="Add Microsoft Graph Permissions">
      <div data-guide-step data-guide-scopes="Channel.ReadBasic.All,Channel.Create,Channel.Delete.All,ChannelSettings.ReadWrite.All,ChannelMember.Read.All,ChannelMember.ReadWrite.All,ChannelMessage.Read.All,ChannelMessage.Send,ChannelMessage.ReadWrite,Chat.ReadBasic,Chat.Read,Chat.ReadWrite,Chat.Create,Chat.ManageDeletion.All,ChatMember.ReadWrite,ChatMessage.Send,Team.ReadBasic.All,Team.Create,TeamSettings.ReadWrite.All,TeamMember.Read.All,TeamMember.ReadWriteNonOwnerRole.All,TeamMember.ReadWrite.All,Group.ReadWrite.All,TeamsTab.Read.All,TeamsTab.ReadWriteSelfForTeam,Files.Read.All,User.Read,User.ReadBasic.All,User.ReadWrite.All,User-PasswordProfile.ReadWrite.All" data-guide-display-scopes-list="Channel.ReadBasic.All,Channel.Create,Channel.Delete.All,ChannelSettings.ReadWrite.All,ChannelMember.Read.All,ChannelMember.ReadWrite.All,ChannelMessage.Read.All,ChannelMessage.Send,ChannelMessage.ReadWrite,Chat.ReadBasic,Chat.Read,Chat.ReadWrite,Chat.Create,Chat.ManageDeletion.All,ChatMember.ReadWrite,ChatMessage.Send,Team.ReadBasic.All,Team.Create,TeamSettings.ReadWrite.All,TeamMember.Read.All,TeamMember.ReadWriteNonOwnerRole.All,TeamMember.ReadWrite.All,Group.ReadWrite.All,TeamsTab.Read.All,TeamsTab.ReadWriteSelfForTeam,Files.Read.All,User.Read,User.ReadBasic.All,User.ReadWrite.All,User-PasswordProfile.ReadWrite.All">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="Channel.ReadBasic.All,Channel.Create,Channel.Delete.All,ChannelSettings.ReadWrite.All,ChannelMember.Read.All,ChannelMember.ReadWrite.All,ChannelMessage.Read.All,ChannelMessage.Send,ChannelMessage.ReadWrite,Chat.ReadBasic,Chat.Read,Chat.ReadWrite,Chat.Create,Chat.ManageDeletion.All,ChatMember.ReadWrite,ChatMessage.Send,Team.ReadBasic.All,Team.Create,TeamSettings.ReadWrite.All,TeamMember.Read.All,TeamMember.ReadWriteNonOwnerRole.All,TeamMember.ReadWrite.All,Group.ReadWrite.All,TeamsTab.Read.All,TeamsTab.ReadWriteSelfForTeam,Files.Read.All,User.Read,User.ReadBasic.All,User.ReadWrite.All,User-PasswordProfile.ReadWrite.All" 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>Add Channel Member, Add Chat Member, Add Team Member, Add Team Members In Bulk, Archive Channel, Archive Team, Change Password, Clone Team, Create Channel, Create Chat, Create Team, Create User, Delete Channel, Delete Channel Message, Delete Channel Tab, Delete Chat, Delete Chat Message, Delete Team, Delete User, Get Channel, Get Channel Files Folder, Get Channel Member, Get Channel Message, Get Channel Tab, Get Chat, Get Chat Member, Get Chat Message, Get Current User, Get Message Reply, Get Primary Channel, Get Team, Get Team Member, Get User, List All Channel Members, List All Channel Messages, List All Channels, List Channel Members, List Channel Messages, List Channel Tabs, List Channels, List Chat Members, List Chat Messages, List Chats, List Incoming Channels, List Message Replies, List Team Members, List Teams, List Users, Remove Channel Member, Remove Chat Member, Remove Team Member, Remove Team Members In Bulk, Send Channel Message, Send Chat Message, Send Message Reply, Unarchive Channel, Unarchive Team, Undo Soft Delete Chat Message, Update Channel, Update Channel Message, Update Chat, Update Team</span>
        </div>

        <p>Click <strong>Add a permission</strong>, then select <strong>Microsoft Graph</strong>. Select <strong>Delegated permissions</strong> and add the scopes required for your use case, then click <strong>Add permissions</strong> to save.</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="Channel.ReadBasic.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Channel.ReadBasic.All" title="Copy scope" data-copy="Channel.ReadBasic.All">
                  <span className="connector-guide-scope-copy__label">Channel.ReadBasic.All</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="Channel.Create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Channel.Create" title="Copy scope" data-copy="Channel.Create">
                  <span className="connector-guide-scope-copy__label">Channel.Create</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="Channel.Delete.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Channel.Delete.All" title="Copy scope" data-copy="Channel.Delete.All">
                  <span className="connector-guide-scope-copy__label">Channel.Delete.All</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="ChannelSettings.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ChannelSettings.ReadWrite.All" title="Copy scope" data-copy="ChannelSettings.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">ChannelSettings.ReadWrite.All</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="ChannelMember.Read.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ChannelMember.Read.All" title="Copy scope" data-copy="ChannelMember.Read.All">
                  <span className="connector-guide-scope-copy__label">ChannelMember.Read.All</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="ChannelMember.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ChannelMember.ReadWrite.All" title="Copy scope" data-copy="ChannelMember.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">ChannelMember.ReadWrite.All</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="ChannelMessage.Read.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ChannelMessage.Read.All" title="Copy scope" data-copy="ChannelMessage.Read.All">
                  <span className="connector-guide-scope-copy__label">ChannelMessage.Read.All</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="ChannelMessage.Send">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ChannelMessage.Send" title="Copy scope" data-copy="ChannelMessage.Send">
                  <span className="connector-guide-scope-copy__label">ChannelMessage.Send</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="ChannelMessage.ReadWrite">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ChannelMessage.ReadWrite" title="Copy scope" data-copy="ChannelMessage.ReadWrite">
                  <span className="connector-guide-scope-copy__label">ChannelMessage.ReadWrite</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.ReadBasic">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Chat.ReadBasic" title="Copy scope" data-copy="Chat.ReadBasic">
                  <span className="connector-guide-scope-copy__label">Chat.ReadBasic</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.Read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Chat.Read" title="Copy scope" data-copy="Chat.Read">
                  <span className="connector-guide-scope-copy__label">Chat.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="Chat.ReadWrite">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Chat.ReadWrite" title="Copy scope" data-copy="Chat.ReadWrite">
                  <span className="connector-guide-scope-copy__label">Chat.ReadWrite</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.Create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Chat.Create" title="Copy scope" data-copy="Chat.Create">
                  <span className="connector-guide-scope-copy__label">Chat.Create</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.ManageDeletion.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Chat.ManageDeletion.All" title="Copy scope" data-copy="Chat.ManageDeletion.All">
                  <span className="connector-guide-scope-copy__label">Chat.ManageDeletion.All</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="ChatMember.ReadWrite">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ChatMember.ReadWrite" title="Copy scope" data-copy="ChatMember.ReadWrite">
                  <span className="connector-guide-scope-copy__label">ChatMember.ReadWrite</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="ChatMessage.Send">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ChatMessage.Send" title="Copy scope" data-copy="ChatMessage.Send">
                  <span className="connector-guide-scope-copy__label">ChatMessage.Send</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.ReadBasic.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Team.ReadBasic.All" title="Copy scope" data-copy="Team.ReadBasic.All">
                  <span className="connector-guide-scope-copy__label">Team.ReadBasic.All</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.Create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Team.Create" title="Copy scope" data-copy="Team.Create">
                  <span className="connector-guide-scope-copy__label">Team.Create</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="TeamSettings.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy TeamSettings.ReadWrite.All" title="Copy scope" data-copy="TeamSettings.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">TeamSettings.ReadWrite.All</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="TeamMember.Read.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy TeamMember.Read.All" title="Copy scope" data-copy="TeamMember.Read.All">
                  <span className="connector-guide-scope-copy__label">TeamMember.Read.All</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="TeamMember.ReadWriteNonOwnerRole.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy TeamMember.ReadWriteNonOwnerRole.All" title="Copy scope" data-copy="TeamMember.ReadWriteNonOwnerRole.All">
                  <span className="connector-guide-scope-copy__label">TeamMember.ReadWriteNonOwnerRole.All</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="TeamMember.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy TeamMember.ReadWrite.All" title="Copy scope" data-copy="TeamMember.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">TeamMember.ReadWrite.All</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="Group.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Group.ReadWrite.All" title="Copy scope" data-copy="Group.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">Group.ReadWrite.All</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="TeamsTab.Read.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy TeamsTab.Read.All" title="Copy scope" data-copy="TeamsTab.Read.All">
                  <span className="connector-guide-scope-copy__label">TeamsTab.Read.All</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="TeamsTab.ReadWriteSelfForTeam">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy TeamsTab.ReadWriteSelfForTeam" title="Copy scope" data-copy="TeamsTab.ReadWriteSelfForTeam">
                  <span className="connector-guide-scope-copy__label">TeamsTab.ReadWriteSelfForTeam</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.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Files.Read.All" title="Copy scope" data-copy="Files.Read.All">
                  <span className="connector-guide-scope-copy__label">Files.Read.All</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="User.Read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy User.Read" title="Copy scope" data-copy="User.Read">
                  <span className="connector-guide-scope-copy__label">User.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="User.ReadBasic.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy User.ReadBasic.All" title="Copy scope" data-copy="User.ReadBasic.All">
                  <span className="connector-guide-scope-copy__label">User.ReadBasic.All</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="User.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy User.ReadWrite.All" title="Copy scope" data-copy="User.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">User.ReadWrite.All</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="User-PasswordProfile.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy User-PasswordProfile.ReadWrite.All" title="Copy scope" data-copy="User-PasswordProfile.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">User-PasswordProfile.ReadWrite.All</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Grant Admin Consent">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Grant admin consent for \[tenant name]</strong> and select <strong>Yes</strong> to consent on behalf of all users in your tenant. After granting, verify that <strong>Granted for \[tenant name]</strong> appears under the <strong>Status</strong> column.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Generate Client Secret</h2>

  <p>Create a client secret that will be used to authenticate your application with Microsoft Teams.</p>

  <Steps>
    <Step title="Navigate to Certificates & Secrets">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>From the left menu under <strong>Manage</strong>, select <strong>Certificates & secrets</strong>.</p>
      </div>
    </Step>

    <Step title="Create a New Client Secret">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Under the <strong>Client secrets</strong> tab, click <strong>New client secret</strong>.</p>

        <ul>
          <li>Add a <strong>Description</strong> (e.g., StackOne Integration Secret).</li>
          <li>Select an expiration period.</li>
          <li>Click <strong>Add</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Copy the Client Secret Value">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Immediately copy the <strong>Value</strong> of the newly created client secret and store it securely for use later. This value will only be shown once and cannot be retrieved again.</p>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Microsoft Teams</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>Microsoft Teams</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</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>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>Microsoft Teams</strong>.
