Request Based Chat Setup (Self-Configured) App - Single Tenant Multiple InstanceIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Guide for Request Based Chat Setup (Self-Configured App) – Single Tenant Multiple Instance Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } N/A Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Create an App Registry 1) Login to https://portal.azure.com/ 2) Click on "Microsoft Entra ID" 3) Navigate to App Registrations 4) Click on "New Registration" 5) Fill the details as below: Name: Enter the name of your application Supported account types: Single Tenant Only - MSFT Redirect URI (optional): Web (Note: Multiple instance redirect URIs can be added, allowing the same application registry to be reused across multiple ServiceNow instances) - https://<instance>.service-now.com/oauth_redirect.do - https://<instance>.service-now.com/sn_now_teams_ms_login.do - https://<instance>.service-now.com/sn_now_teams_ms_login_redirect.do 6) Click on Register 7) Navigate to the settings tab and Enable "Access tokens" and "ID tokens" 8) Save the configuration. Configure API Permissions 9) In the Navigation pane -> Select API Permissions 10) Click on Add a Permission -> Microsoft Graph 11) Add the following permissions and Grant the Admin Consent Expose to an API 12) In the Navigation pane -> Expose an API 13) Edit the Application ID URI to api://instance.service-now.com/{Client ID - Auto-populates} 14) Click on Add Scope and fill in the following Info: Scope Name: access_as_user (standard delegated permission name used by web APIs to allow client applications to access the API on behalf of the signed-in user) Fill in other details as below - Reference: https://learn.microsoft.com/en-us/entra/identity-platform/scenario-protected-web-api-expose-scopes 15) Click on Add a Client Application and add these two client ID's 5e3ce6c0-2b1f-4285-8d4b-75ee78787346 1fec8e78-bce4-4aaf-ab1b-5451cc387264 (These allow Microsoft-managed clients to request tokens for this application silently, without triggering user consent prompts.) 16) Save the Configuration. Certificates & secrets 17) In the Navigation pane -> Certificates & secrets 18) Click on "New Client Secret" - Once Generated Copy Secret Value ________________________________________________________________________________________________________________________________________________ Configure the App registry on Servicenow 19) Clean up the table - sn_now_azure_installed_tenant 20) Navigate to ServiceNow for Microsoft 365 -> Properties -> Enable "Set this property to true to use integration hub action for Start Chat / Import chat flows" 21) Navigate to oauth_entity table -> Open Microsoft Teams Chat Single Tenant -> Mark it as "Active" 22) Update the Client ID (Step - 13) and Client Secret (Step - 18) and update the tenant ID in Authorization & Token URL's Configuration Complete!After completing the above steps, your Microsoft Teams Single Tenant integration with ServiceNow should be fully operational. Double-check the tenant ID, redirect URLs, API permissions, and client secret values to ensure seamless authentication and chat functionality.