This is a POC for an email classifier built using Azure components and Dynamics 365.
Whenever an email is received, a shared mailbox within the Dynamics 365 instance receives that email, and sends a message to an Azure Service Bus Queue with the body of that email. An Azure Function then procedes to handle the message, and, depending on the output, sends the result back to CRM.
The Azure Function first sanitizes the email body to remove the HTML tags, then sends it off to LUIS. Depending on the output from LUIS, it can call QnAMaker or Text Analysis to perform further analysis.
Afterwards, we apply an ML.NET algorithm to predict which category the email belongs, sending a final message to another Queue for another Azure Function which has the purpose to insert the data into Dynamics 365.
In order to simplify the project, the Dynamics 365 solution will not be present in the repository. We will assume the queue receives messages from Dynamics 365.
Clone the repo to get started! Don't forget to create the local.settings.json
file!
The settings you need are the following:
"ServiceBusConnectionString" - The connection string for the Azure Service Bus
"LUISAPISubscriptionKey" - The LUIS Subscription Key
"LUISAPPID" - The ID of the LUIS instance
First of all, thank you to everyone who contributes!
If you are interested in fixing issues and contributing directly to the code base, be my guest! Just fork the repo and do your magic! :) See the list of contributors who participated in this project.
Please see also the Code of Conduct.
Copyright (c) Tiago Noronha. All rights reserved.
Licensed under the MIT License.