Recently, I was challenged/asked by a partner to build a process using only Microsoft products which would scan a mobile picture of a business card and turn it into a lead in Dynamics 365. This sounded exciting to me, but I knew right away there would be some large gaps between what I knew how to do, and what I needed to know in order to accomplish this. His deadline was a week away and I didn't want to commit without knowing for sure I could do it, so I politely declined.
Still, though, I couldn't get it out of my head and continued to dig into it, even though he had moved on to someone else for the blog article. Since this is where I document my journeys, you get to come along as I discover a way to do it. If I'm successful, you'll read about it on his site. If not, we'll learn a few things together.
First, the easy stuff: I checked for a Flow Template (always see if someone else has done it first) and found these two:
The Sharepoint one caught my eye because it would allow to store the data in fields ("Name", "Company", "Phone Number" and so on) which would be easier to bring into Dynamics 365. When I clicked on that one, it shows a high level process (beginning with a Flow button) and then the necessary connectors:
I had already set up a Sharepoint and Outlook connection, but the Computer Vision API was new to me. Luckily, Microsoft makes it super easy for you to spend money (or not, if you get a trial account), and linked me off to go get that.
Computer Vision is part of Microsoft Azure's Cognitive Services. It includes some fun things like facial recognition (you can upload pics to analyze, try it here) and Computer Vision and Custom Vision. The Flow template was written for Computer Vision, so I went down that rabbit hole. As soon as you sign up, and begin your Computer Vision 7 day free trial, you are given the API endpoints (and keys) which you will need for your Flow.
In my first design, I would use the following steps:
The issue with the OCR aspects of the Computer Vision is that it only recognizes the text as words. It needs something else to identify one string of text as the "Company Name" and another as a "Phone Number" and so on. My hope was that the Natural Language Processing would handle that. Steps 4 and 5 are pretty easy and don't need a ton of documentation, but I'll lay it out when we get to that point.