As explained by Microsoft, “today’s business processes often require business groups to collaborate across departments when working on a sales opportunity, marketing campaign, or to solve customer support issues. The average worker is collaborating with more people, more often, and in more dynamic ways. ” This is the main motivation to integrated Dynamics 365 within Microsoft Teams.
Before diving into this integration, let’s explained briefly to Dynamics’s folks what Teams is about.
Part of the Office 365 applications, Microsoft Teams is a cloud-based application build to enhance collaboration in a company. Messaging, phone calls, video meetings, and file sharing are all available from one single workspace. Teams can also be integrated with a variety of add-ons to increase the efficiency of co-workers. Users can access it via a web interface, via a dedicated software application or directly from their smartphones.
In September 2017, Microsoft announced Teams will eventually replace Skype for Business.
Teams is organized around … teams! Within a specific team, users can create different channels to organize communication by topics. The channel can be composed of only a few users, up to much more. Inside a channel, users can directly work together on PowerPoint presentations, Excel spreadsheets, etc… Each channel as a SharePoint repository associated with it.
A calendar is also available. Users can schedule meetings and have them via video chat or simple conference calls.
When a team is created, here's what gets created:
• A new Office 365 group
• A SharePoint Online site and document library to store team files
• An Exchange Online shared mailbox and calendar
• An OneNote notebook
• Ties into other Office 365 apps such as Planner, Power BI and Dynamics 365
In January 2018, Microsoft launched the Microsoft Teams app store, in which users can search for third-party apps and use them in Microsoft Teams to augment their workflows (for example, there is a Zendesk add-on).
The guest-access feature in Microsoft Teams allows users to invite people outside their organizations to join internal channels for messaging, meetings, and file sharing.
Microsoft Teams can also be extended and connected to the Common Data Service (CDS) via canvas.
Integration between Dynamics 365 and Microsoft Teams
As of May 2019, Microsoft announces the general availability of the Microsoft Teams integration with Dynamics 365. This integration enables a business group to efficiently work with Dynamics 365 customer information and share files directly from Teams.
Microsoft markets the integration around four offers:
- Collaboration hub
- A centralized place where all users linked to an offer/service case can collaborate and communicate. All based on the same data.
- Cross-functional collaboration
- Work together with customers and colleagues across functions, including users that do not have a Dynamics 365 user account.
- File integration
- Co-author documents using Office 365 and automatically sync to Dynamics 365 through SharePoint.
- Teams mobile app
- Search from Microsoft Teams mobile app using the Dynamics 365 bot while on the go.
What can we do?
Display an Account
The main capability offered by this integration is to pin a Dynamics 365 form into a Teams tab.
For example, in the below screenshot, there is a team named Contoso. Inside this team, there is a channel named General. And inside this channel, there is a tab for the A. Datum Corporation, an account coming directly from Dynamics 365.
A click on this tab will load the A. Datum Corporation forms of the model-driven app used in Dynamics 365. Thanks to the buttons on the top right of the windows, users can have access to the channel’s chat and consult the account’s data.
Among the other buttons, there is a link to open the account’s form directly in Dynamics 365.
Display a View
Access Dynamics 365 records by adding a Dynamics 365 tab into the Teams channel is one of the possibilities to access data. But we can also collaborate at scale not only on a single Dynamics 365 record but also on multiple records with a Dynamics 365 view.
On a Channel, users can click on the to add a tab. The Dynamics 365 integration offers two possibilities: Entity Selection or View Selection. After selecting an Entity, users can add a specific view to the Teams channel.
Note that it’s not a picture of the view, but the real model-driven app that is displayed. Therefore, users can navigate through the app in the same way as they do in Dynamics 365: records can be created, lookups clicked, data edited, etc…
From Dynamics 365
When building up this integration, a new button will appear in the ribbon in Dynamics 365: Collaborate.
A click on this button will open a pop-up and guide the user through three steps:
- Select or create a Team
- Select or create a Channel
- Add team members to the channel
Once done, a new tab will be available in Teams with the select record.
Select the Files tab in the connected team channel to associate files with a model-driven app record. Files added here will appear in model-driven apps in Dynamics 365 under Documents for the linked record. Likewise, when you add a document to a model-driven app record, that document will appear in Microsoft Teams under the Files tab.
If in Teams, two accounts are associated to the same channel, the files will be available for the two accounts.
When the integration between Dynamics 365 and Microsoft Teams is done, users have access to the Dynamics 365 app in the Teams ribbon. This app contains the My Dashboard tab.
This can enable for example Sales manager to stay up to date with their team performance or Customer Service representative to gain a comprehensive status of service request within visualizations.
Within the same Dynamics 365 app ribbon, there is also the Chat tab. It enables users to talk to the Dynamics 365 app for Microsoft Teams bot!
Also accessible via the chats, under the name Dynamics 365, the chatbot can search for a specific record and display it or it can also display all open opportunities.
The results are displayed in an Adaptive Card, which contains links to either display more data in the chat or open it in Dynamics 365.
You can search any records by chatting to the app or initiate the chat with a simple greeting like "Good Morning". The Dynamics 365 app will return with a message that includes the last record you opened in Dynamics 365 whether it was on desktop, mobile or web.
As Microsoft Teams can also be used from the Mobile App, users can also interact with the bot via their smartphones.
Set up the integration
To enable the integration between Dynamics 365 and Microsoft Teams, system administrators need to perform steps one both environments.
Microsoft Teams integration is not supported on Dynamics 365 Customer Engagement (on-premises).
From Dynamics 365
Inside Dynamics 365 Advanced Settings, Administrators need to go to System -> Administration -> System Settings. From there, in the first tab General, there are two parameters:
- Enable Basic Microsoft Teams Integration
- Requires System Admin permissions
- This integration enables two things:
- The Collaborate button appears on records in the model-driven app.
- From Microsoft Teams, any record or view in the model-driven app can be added to a channel.
- Inside the Documents/Files tab on model-driven app records, the file library from Teams will also appear.
- Enable Enhanced Microsoft Teams Integration
- Requires Office 365 Tenant Admin permissions. The Admin will need to check the Consent on behalf of organization when asked for.
- If you don't enable Basic Microsoft Teams Integration, then the option Enable Enhanced Microsoft Teams Integration is grayed out.
- In addition to the features given by the basic integration, the enhanced integration gives:
- The Collaborate button for View pages in the model-driven app.
- The set-up wizard to add the select record/view to a channel will appear directly in the model-driven app. With the basic integration, users will be redirected to Teams to set-up the connection.
- When pinning a record to a Teams channel, recommended Members will be suggested automatically.
From Microsoft Teams
In Teams, the only set up required is to install the Dynamics 365 app from the store.
Then administrators will select from a pop-up which environment and Dynamics 365 App they want to integrate with.
- Only Common Data Services environments that contain model-driven apps appear in the list. Also, only active environments (those that are not disabled or provisioning) are displayed.
- Only Unified Interface apps are listed.
- Only app modules licensed for the selected environment are listed.
When the integration is enabled, the becomes available for some system entities. By default, approximately 35 entities are enabled, such as Account, Case, Opportunity, etc… You can find the complete list in the Microsoft’s documentation.
For the not enabled entities, the Collaborate button isn’t available from Dynamics 365. But users can still attach those records to a channel’s tab directly from Teams. However, the Files library will also not appear in Dynamics 365.
By default, no custom entity is enabled for the integration. But it can be done programmatically, via the Web API and the msdyn_SetTeamsDocumentStatus action.
It is a simple POST HTTP action with two required parameters:
- Indicates whether to enable or disable Teams Integration
- An array with the list of logical names of all the entities for which the Teams Integration will be enabled or disabled
Below is an example of such call for the entity adobe_agreementtemplate.
- Request from Postman
- Result in Dynamic 365
Documentation regarding this action can be found here.
It’s possible to customize a bit the integration thanks to the power of the Microsoft’s Team connector for:
- Logic Apps
- Power Automate
- Power Apps
As of May 2020, the connector is still in Preview, but the list of actions gives some ideas of possible integration’s customizations.
Inside Dynamics 365, this integration will set up two new entities used to hold configuration parameters about the connection.
In case of troubleshooting, the information below might be useful to ensure the connection is configured as expected.
- Teams Collaboration
- Technical name: msdyn_teamscollaborations
- This entity will keep the association between a specific record and the Teams channel.
- It contains for example the name of the Team’s team, the Channel or the URL to the SharePoint files storage.
- MS Teams Settings V2
- Technical name: msdyn_msteamssettingsv2
- This entity contains more basic information that aren’t very useful for debugging.
Members without Dynamics 365 user access will not be able to view the Dynamics 365 record on the tab but can have conversation and share file.
The file shared by any members (including those without Dynamics 365 access) from Microsoft Teams channel file tab will be accessible from the Dynamics 365 document section for the record.
Microsoft Teams pricing can be found here.