Skip to content

Import Outlook Contacts to Dynamics 365 with a custom page

The Dynamics 365 App for Outlook works well enough for tracking emails and showing some Dynamics data directly in Outlook, but it really seems like Microsoft has forgotten about bringing your contacts into Dynamics for the last few years – documentation is outdated and the “new Outlook” doesn’t even let you access the contact tracking functionality anymore. Especially if you are implementing Dynamics 365 in a large organization, not having a real option for importing the thousands of contacts your users are handling in Outlook leads to irritations and ruffled feathers.

I thought we chose Dynamics because it’s so integrated in other Microsoft products?!

Far too many stakeholders

With only being able to import up to 25 contacts at once and having to import contacts of different companies one after another if you want to immediately connect them to their parent account in Dataverse, it’s just a pretty bad user experience (if you get even that, Outlook for Web doesn’t give you the possibility of opening this app either).

After not finding a real alternative, I built my own!

Using a custom page available in your Dynamics 365 App navigation, your users will be able to search and sort their contacts saved in Outlook 365, select hundreds of contacts at once,map company names from Outlook to the correct Dynamics 365 accounts and then import them all at once.


The page includes a basic duplicate check using primary email addresses. By default, it hides any Outlook contacts whose email address is already set as the primary email of a contact in Dataverse. After the import, users receive feedback on any errors that occurred during the process.


Since this is my first solution made available as open-source, it hasn’t been tested in all possible environments or projects outside my own work. I would be happy to receive feedback regarding any issues or wishes here in the comments or on the GitHub repository!

Leave a Reply

Your email address will not be published. Required fields are marked *