---
title: SOFI on Microsoft Teams
slug: v111/sofi-on-microsoft-teams
icon: {"faIcon":"fa-brands fa-teamspeak"}
docTags: 
createdAt: 2026-03-05T04:34:21.729Z
---

# Overview

SOFI can be connected to your Microsoft Teams tenant so that you and your colleagues can chat with SOFI on a Teams channel instead of on the Servicely Portal. This means that all of the existing conversation flows a user could use in the Self Service Portal (Password Reset, etc.) are all available via Teams.



# Steps to enable connectivity

:::::WorkflowBlock
:::WorkflowBlockItem
Access the Azure portal by going to [https://portal.azure.com/#home](https://portal.azure.com/#home). Ensure you are in the right tenant, by looking at the top right with your username.
:::

:::WorkflowBlockItem
In the top search bar, search for Azure Bot, and select the offering underneath Marketplace

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/RNvLlrds7dC1aANbXv2qe_image.png)
:::

:::WorkflowBlockItem
Configure the Bot as per the below table. Once complete, click ***Review + Create*** to continue.

| **Setting**    | **Description**                                                                                                                                                                                                                                                 |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Bot handle     | A unique handle for the Azure Bot Definition. Used only within the Azure Portal as a name. Will not become the name of the bot in teams (this will be defined elsewhere). <br /><br />A suggestion is the prefix "SOFI" with the name this after your instance. |
| Subscription   | This needs to be a valid Azure Cognitive Services Subscription - select ***Azure Subscription 1***                                                                                                                                                              |
| Resource group | This needs to be a valid Azure Cognitive Services Resource Group - select <br />***Default***                                                                                                                                                                   |
| Data residency | Currently leave as global                                                                                                                                                                                                                                       |
| Pricing        | The pricing tier to use. You can change this to "Free"                                                                                                                                                                                                          |
| Type of app    | Single tenant                                                                                                                                                                                                                                                   |
| Creation type  | Leave as "Create new Microsoft App ID'                                                                                                                                                                                                                          |


:::

:::WorkflowBlockItem
Once complete, click ***Create&#x20;***&#x61;nd wait for the deployment process to finish. You can tell it’s finished when there’s a ***Go To Resource&#x20;***&#x62;utton on the screen, as per the below screenshot. Click ***Go to Resource&#x20;***&#x74;o configure the newly created Bot.

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/RWu9glgeI_DDqP6Lu5F_V_image.png)
:::

:::WorkflowBlockItem
Now, we must configure the bot so it knows how to communicate with Sofi. Do so by clicking  Settings → Configuration in the left hand menu

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/rBgdbIJJipEAQnaYkjHwe_image.png)
:::

:::WorkflowBlockItem
Now, open a new Tab and navigate to your instance. We need to create a ***Conversation Provider&#x20;***&#x63;onfiguration record so the instance and bot can communicate with each other. Do so by searching for Conversation Providers, and clicking **New&#x20;**&#x69;n the list

::Image[]{src="https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/ouG3lnMkToHjUP36i2FNz_image.png" size="82" width="3186" height="1634" position="center" showCaption="false"}
:::

:::WorkflowBlockItem
Configure the Conversation Provider as per the below table. Once complete, hit ***Create&#x20;***&#x74;o save the record

| **Setting**       | **Description**                                                                                                               |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Name              | A memorable name for the Conversation Provder - has no end-user visibility. <br />E.g., ***Demo-Servicely SOFI Integration*** |
| Provider type     | Select **Teams**                                                                                                              |
| Active            | Select **Yes**                                                                                                                |
| Conversation type | Select **Sofi**                                                                                                               |
| App ID            | Leave blank for now                                                                                                           |
| App SecretL       | Leave blank for now                                                                                                           |
| Tenant Id         | This can be entered now if you have it and is specific to your tenant                                                         |


:::

:::WorkflowBlockItem
Once saved, you can click the ***Copy Endpoint URL&#x20;***&#x62;utton at the bottom of the Servicely ***Conversation Provider*** configuration record to copy the value we need to upload into the Azure Bot in the next step
:::

:::WorkflowBlockItem
Back in Azure, we can now paste the Endpoint URL from the previous step into the ***Messaging Endpoint*** URL input in the Azure Bot’s Configuration

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/pRIf4kqsXuUeg_B3HnRQm_image.png)
:::

:::WorkflowBlockItem
While here, copy the **Microsoft App ID***&#x20;and store it safely&#x20;*&#x66;or later use:

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/eLZ4KbziSHf2QfVUH_cRz_image.png)
:::

:::WorkflowBlockItem
Click ***Manage Password&#x20;***&#x69;mmediately above this field so we can create some credentials for Servicely to use to communicate with the Azure Bot.
:::

:::WorkflowBlockItem
Click ***New Client Secret&#x20;***&#x6F;n this page to generate a new Client Secret. Provide a useful description, and leave the expiry at it’s default (6 months). Once complete, click ***Add&#x20;***&#x61;nd copy the **Value** - store it safely for later.

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/IeCJgyXjVGUP-O9WBrOdp_image.png)

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/xtUaHzSOwV2TLj_2UxnG6_image.png)
:::

:::WorkflowBlockItem
Back within your ***Conversation Provider*** in Servicely, populate the fields we’ve copied over as below:

| **Setting** | **Description**                                   |
| ----------- | ------------------------------------------------- |
| App ID      | The copied ***Microsoft App ID*** from Step 10    |
| App Secret  | The copied ***Client Secret Value*** from Step 12 |


:::

:::WorkflowBlockItem
To configure this Azure Bot to be visible within Teams, we must add the Teams Channel. Do so by clicking ‘Home’ (top left corner). Select your Azure Bot under ‘Recent’. Then click the ***Settings → Channels&#x20;***&#x6D;enu item in the Azure Bot Configuration, and selecting the **Microsoft Teams&#x20;**&#x63;hannel from the ***Available Channels&#x20;***&#x6C;ist:

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/KBpMnWM3WJGGbYvESY8O4_image.png)
:::

:::WorkflowBlockItem
Accept the Terms of Service, and use ***Microsoft Teams Commercial&#x20;***&#x66;or the Messaging option. Click Apply and wait for the changes to be saved:

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/OCleUriDVvgCiFgxoihI6_image.png)
:::

::::WorkflowBlockItem
At this point, you can test if the Bot can communicate with your instance by clicking ***Test in Web Chat***. You’re likely going to encounter an error like the below - this is normal for now!

```none
Sorry… But I don’t know how to match up your Teams and Servicely accounts

User not found for id [null] [teams:a253bdda-21b4-46e9-a29a-adfec6f2638z]
```

:::hint{type="danger"}
Note: It can take hours before the Teams Apps are published to the tenant. So, once having completed steps 17 to 25 it might some time before you can complete step 26.
:::


::::

:::WorkflowBlockItem
Now, to publish the bot into the Servicely Test Teams Tenant, we must add the bot into Teams. Open the <u>Teams Developer Portal</u> in a new tab, navigate to ***Apps → New App***, and provide a memorable name for your App - e.g., Your instance name. We’ll override this to something user-facing in a moment.

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/DF8csngZul197Z2XHTWiB_image.png)
:::

:::WorkflowBlockItem
On the Basic Information page, populate the following fields. Hit **Save&#x20;**&#x6F;nce finished

| **Setting**             | **Description**                                                |
| ----------------------- | -------------------------------------------------------------- |
| Short Name              | Memorable Name from Step 17                                    |
| Full Name               | User-facing Name:<br />e.g. SOFI (Demo-Servicely)              |
| Short Description       | User-facing Short Description<br />e.g. SOFI Intelligent Agent |
| Long Description        | User-facing Long Description<br />e.g. SOFI Intelligent Agent  |
| Website                 | Instance URL                                                   |
| Privacy Policy          | Instance URL                                                   |
| Terms of Use            | Instance URL                                                   |
| Application (client) ID | Paste the App ID from the **Conversation Provider**            |
| Developer Name          | Enter the Instance Name for ease of use                        |


:::

:::WorkflowBlockItem
Navigate to ***App Features → Bot&#x20;***&#x74;o configure the specific permissions of the bot

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/crLZ5uvoGw5EF28daGlb5_image.png)
:::

:::WorkflowBlockItem
In the ***Enter a Bot ID&#x20;***&#x66;ield, populate the App ID from the **Conversation Provider** in Servicely, and ensure the following permissions have been selected. Hit Save to continue with the configuration.

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/hfw7nqitgUR2-OZVrSraj_cleanshot-2026-03-31-at-151313-2x.png)
:::

:::WorkflowBlockItem
Navigate to ***App Validation&#x20;***&#x61;nd hit ***Get Started&#x20;***&#x74;o confirm the configuration is correct:

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/bFq5SFp7XvFsJBTLCP4c7_image.png)
:::

:::WorkflowBlockItem
Select all the acknowledgements, and run the validation. This will advise if there are any issues with the bot:

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/8560TZXNQka8bUbN9ojhf_image.png)
:::

:::WorkflowBlockItem
Once validated, you can click **Publish** in the top right of the screen, and select **Publish to your Org** to make the App available in the Teams Admin Center

::Image[]{src="https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/sjM_4IQIOTU0r_E9lpZpM_image.png" size="64" width="2777" height="1431" position="center" showCaption="false"}


:::

:::WorkflowBlockItem
Finally, the app can be approved for installation by navigating to the <u>Teams Admin Center</u> and reviewing the apps that are pending approval. In the ***Teams Apps → Manage Apps&#x20;***&#x64;ialog, search for your App Name and select it:

![](https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/MkRfZJKwtyL9LLr2QLm65_image.png)
:::

:::WorkflowBlockItem
On the next page, hit ***Publish&#x20;***&#x74;o make the app available for installation in the Test Tenant. Once complete, the page should show something that looks like the below:

::Image[]{src="https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/StR7DIGZ7r3-KCUzz14cd_image.png" size="40" width="1649" height="824" position="center" showCaption="false"}
:::

:::WorkflowBlockItem
The app can now be searched for and installed in your organisation Microsoft tenant
:::

:::WorkflowBlockItem
Finally, in order for the Azure App to correlate users in Servicely with their EntraID identity, we need to populate the **Active Directory ID** field of the user records. You can do this by modifying your [SCIM Integration for Users & Groups](docId\:cIopnY1_GVeJTrXuYcvvF) mapping to copy the user's objectid to the Active Directory ID field. Sample mapping below:

::Image[]{src="https://api.archbee.com/api/optimize/RDSPJwtKQ5B5sE-oMCN16/zoxVdxbCvksNGgmHJbopa_image.png" size="60" width="2286" height="1316" position="center" showCaption="false"}


:::

:::WorkflowBlockItem
You can now test your SOFI via Teams integration
:::
:::::

