I have started working with AI Builder recently and yesterday I finally took a look at the Business Card scanner. I decided to check how this works in the different apps, both Modal Driven as well as Canvas Apps.
I ran my tests using 4 different types of business cards and wanted to see how well this works. The results overall were pretty good, but not perfect. It is still hard to expect perfect results, as not all Business cards are created equal.
I created a small Canvas App with the AI Builder Business card reader component, and attempted to perform recognition on the business cards that I provided. I had a set of business cards to test and the results of the majority of them were pretty good. First, I need to see what information can be retrieved from the business cards. The list below, shows the fields that can be retrieved from the Business card reader component:
First Name, Last Name, Full Name, Job Title, Department, Company, Street, City, State, Postal Code, Post Office Box, Country, Full Address, Business Phone, Business Fax, Mobile Phone, Email Address, Web Site.
The three images below contain the screenshots of the scan results. I blurred some of the information to provide privacy to the people that I scanned their business cards. Even with the blurs you will see that the results are pretty accurate. My own business card is two sided, where the company name is on the other side, so the scanner thought the company name was Microsoft based on the MVP logo. Overall I was happy with the results.
I did scan some other business cards, where the results were not so great. I am not sure the reason, if it had to do with coloring, text or design, but I am happy with the results.
I also tried to use the Business Card Reader PCF Control that is available with the Sales Enterprise version of Dynamics 365. The results were similar, as this uses the same model that I used for the Canvas app. The difference here is that the Account Name (Company Name) is a Customer field. PCF Controls cannot be bound to lookup fields, so in there lies the problem. Technically we could bind this to a text field and add our own logic to validate if the business name exists (on create), and create an account record and populate the lookup if there is no match, or if there is just populate the business record. You can use Power Automate flow as well to call the AI Builder Read business card information action, which will read an image file and provide the fields to populate your target record (regardless of system).
I will be updating this blog article with a link to the YouTube video that will demonstrate the same.