Power Apps
AI Builder – Object Detection: walkthrough
Category: AI Builder,Power Apps,Power Platform,PowerApps Author: Jeevarajan Kumar Date: 7 months ago Comments: 0

If you had been watching the live streaming of Microsoft Business Application Summit, 2019 kick off and keynote sessions by James Phillips, Wim Coorevits and others. I’m pretty sure you are stunned as I am. Out of all those astonishing releases, the AI builder is something that fell in love immediately and I wanted to try it out right away, couldn’t believe how the AI modelling is wrapped up and made simple for the Citizen Developers to use it.

Before AI modelling, the same set of features would have taken a considerable amount of time to build the same with PowerApps + Flow + Azure Cognitive Services.

I just tried and I explain here about creating an Object Detection AI Model of the AI Builder to identify my perfume, couldn’t think too much at 3 A.M :). Before jumping into the steps, let’s see a quick overview of what is AI builder and some real-time use cases.

For a quick demo, check out my LinkedIn post: https://www.linkedin.com/feed/update/urn:li:activity:6543947333082673152

AI Builder is a low code artificial intelligence platform that supports the Power Platform. It will be available for consumption on data that already exists in the Common Data Service (CDS), the enterprise-grade datastore included in the Power Platform

Key capabilities of AI builder as of now:

  1. Binary Classification – uses historical data to predict whether new data falls into one of two categories. AI Builder binary classification is an AI model that predicts yes/no business outcomes by learning to associate historical data patterns with historical outcomes. 
  2. Text Classification – one of the fundamental Natural Language Processing (NLP) problems. It allows tagging of text entries with tags or labels which can be used for sentiment analysis, spam detection and routing customer requests, just to name a few examples.
  3. Object Detection – lets you count, locate, and identify selected objects within any image.
  4. Business Card Reader – is a component available in the PowerApps studio that lets you scan business cards. You can use this control to extract contact information from pictures of business cards or your mobile phones camera.
  5. Form Processing – identifies the structure of your documents based on examples you provide to extract text from any matching form. Examples might include tax forms or invoices

Make sure your admin has enabled AI Builder for your environment. Otherwise, you won’t have access to the AI builder functionality. More information: Enable or disable AI Builder feature. 

1. Navigate to Build-> Objection Detection

1 - a

2. Choose the object name [Buid  a Model]

I Builder requires the use of Common Data Service, which is the data platform for PowerApps and allows you to store and manage business data. Common Data Service is the platform on which Dynamics 365 apps are built so if you’re a Dynamics 365 customer, your data is already in Common Data Service.



Choose the record you would like to play with. I wanted to build a model that can identify Versace Eros and Burberry London, so I select them both.1-1

3. Collect images [Train a Model]

Upload at least 15 images to proceed further. Microsoft recommends at least 50 images per product for the training set as a starting point. With fewer images, there’s a strong risk that your model will learn concepts that are in fact noise or irrelevant details. Training your model with more images will generally increase the accuracy of prediction results.



It prevents uploading of duplicate image (hope its not by the name).


Rejects if the image doesn’t solve the minimum requirement


4. Tagging images 

Navigate from image to image, and tag at least 15 images per object name to build a model.


Tagging requirements pane shows the objects being tagged and their tag counts.


5. Train the Model


Status can be tracked  under the Models pane


6. Test & Publish: 

Use the ‘Quick Test’ to test the model’s accuracy and then Publish to consume it in the app.


Publishing the model:


The app will throw below error if the referenced model is unpublished.


Status is changed to ‘Live’ once published


Either you can create an app using ‘Create app’ or can be inserted from the AI Builder (preview control).


7. Using the model in the App

AI Builder controls as shown below


I have added a gallery and used the ObjectDetector.VisionObjects result to bind the Name and Count.


Hope this would be a starting point to explore the AI Builder. 

Source: Jeeva

365 Saturday – Singapore: An incredible experience
Category: Dynamics 365,Power Apps Author: Jeevarajan Kumar Date: 9 months ago Comments: 0

365 Saturday events:

365 Saturday, being one of the top global communities in Microsoft Business Applications has reached a step further this year by making it happen across the world.  Other than Europe, North America and Australia, it’s being planned this time in South America and across Asia as well, the event was a huge success in Sri Lanka, Dubai and recently in Singapore and Mexico and coming soon in few cities in India as well.

365 Saturday Singapore Sessions Recap:

The event had an extraordinary vibe, it’s a completely community driven event and there were lots of takeaways from the event. The Singapore chapter was a 3 days event planned together with the Azure community and it added more spices to it. There was a whole day DevOps session from the DevOps guru & Biz App MVP, Wael Hamze and a full day PowerApps training from Microsoft RD & MVP, Stefano Tempesta and by Office Development MVP, Fabio Franzini.

Last day was the super packed day where there where the keynote was given by Faisal Mohamood, GM, Customer & Partner Success, Dynamics 365 & Power Platform followed by an incredible session on ‘AI for Sales and Customer’ Service by Darren Liu, Principal PM Manager & Solutions Architect at Microsoft. There were other exciting sessions like ‘Customizing UCI’ with great tips from 5 time MVP and the author of 3 books, Deepesh Somani, ‘Crash Course D365 portals’ from Raz himself, ‘Omni-channel Integration’ by Ed Grant, ‘Click Dimensions’ by Brad Burks PowerBI with F&O’ by the local champ, Kasun and ‘Automatic Field Service with Chatbot & AI’ by myself and few more sessions from other experts as well.

An incredible experience and awesome memories:

This blog is to share my personal experience I had in the event and amazing memories that will carry together with the #365Saturday team and local community leaders. We had great fun together visiting some awesome places in Singapore, we went to Jewel Mall, Gardens By The Bay, Marina Sands Bay, Clarke Quay etc. I’m sharing some pictures to show people how much fun it is outside of it the sequence for you guys to experience how amazing it is to be a part of the community.

I’m really surprised by the way Raz works, he has sooo much energy that he works like a machine and still active after the events where I was literally taking rest at the corner seat. He is also such a humble person to work with. Got amazing support from the Microsoft SG as well and a big thanks to sponsors for making this happen.


Keynote session by Faisal Mohamood:


A.I. for Sales & Customer Services by Darren Liu:

0 (1)

One sweet picture with the speakers (apologies if I missed someone).


A post-session picture with 365 Saturday and Microsoft team.


At the new astonishing Singapore’s Jewel airport. We were lucky enough to present out our podcast’s goodie to the 365 Saturday core team.



Deepesh Somani: UCI pro session in action.20190427_105226

Wael Hamze in is action as usual:


Raz into the Dynamics Portals:


It’s me in action and I’m so glad to the Raz and 365 Saturday team for providing the opportunity.


Kasun rocking in the Power BI with F&O.


A special moment for the #womenintech movement in SG, it was a great speech by Mano, Geetha and Sunny.

WhatsApp Image 2019-05-05 at 11.56.19 PM

Other than the pictures of the sessions,  there were some pictures that are worth to share. #clarkequay, #marinabaysands


Thanks to Mr David Tang and the Azure Community team for offering us the fantabulous dinner, it was an authentic Chinese cuisine I never had here.


Thanks again 365 Saturday, Microsoft, Partners and the local community!

Source: Jeeva

Public availability of ‘PowerApps Component Framework’ – An important milestone for PowerApps and D365
Category: Dynamics 365,Power Apps Author: Jeevarajan Kumar Date: 9 months ago Comments: 0

This is going to be a game changer, think about the rich User Experience this can offer and the components are totally reusable, just like the solutions. Can’t emphasize the importance further.


It is currently only available for Model Driven Apps and availability of Canvas Apps will be coming soon.

This blog is an introduction of ‘PowerApps component framework’ and it’s a consolidation of information that has been collected from a few posts and announcements.  There will be posts coming up on creating custom components.

What is ‘PowerApps component framework’?

It is the foundation for the new Unified Interface released with Dynamics 365 for Customer Engagement apps version 9.0 which uses responsive web design principles to provide an optimal viewing and interaction experience for any screen size, device, or orientation.

Custom components have access to a rich set of framework APIs which expose capabilities like control lifecycle management, contextual data and metadata access, seamless server access, utility and data formatting methods, device features like camera, location and microphone along with easy to invoke UX elements like dialogs, lookups, and full-page rendering, etc.

How it Works?

Custom components are a type of solution component, which means they can be included in a solution and installed in different environments.

You add custom components by including them in a solution and then importing it into the system. Once they are in the system, admin and system customizers can configure form fields, sub-grids, views, and dashboard sub-grids to use them in place of default component.

Custom components are comprised of three components:

  1. Manifest
  2. Component implementation library
  3. Resources

We will see the implementation in detail in coming posts.

What is it for Business Users?

Rich amazing UX experience and amazing data visualization. In short, more business! Yaay!

What is it for Developers?

3rd party developers can build compelling visual components in PowerApps and Dynamics 365 using the same framework which the Microsoft team uses! Now, how cool is that?

For example:

  1. Replace a field that displays a numeric text value with a dial or slider component.
  2. Transform a list into an entirely different visual experience bound to the data set like a Calendar or Map.


  1. Reusability – Components are created using the framework are fully configurable and can be reused on multiple surfaces in the app like forms, dashboards, grids, business process etc.
  2. Packaging – Component definition, dependencies, and configurations can all be packaged into a solution and moved across environments and shipped via app source.

 PowerApps component framework is a preview feature.

Custom components are supported only on Unified Interface for model-driven apps version or later.


Support for external libraries
For a public preview, components should bundle all code including external library content into the primary code bundle.

Reference: https://docs.microsoft.com/en-us/powerapps/developer/component-framework/overview

Microsoft PowerApps CLI for a developer:

Command line interface enabling you to build custom components for PowerApps faster and more efficiently.

  1. The CLI will assist you with component creation by guiding you through predefined creation steps.
  2. It provides a harness for quickly testing, debugging and visualizing your custom component.
  3. Each development step has built-in validations which minimize chances for mistakes.
  4. Help menus are available to guide each step of the development process


Upcoming capabilities:

  1. Support for React-based virtual controls
  2. PowerApps component framework support for canvas apps

Do not forget to like and share this post. Happy Learning!

Source: Jeeva

Dynamics 365 – Power Apps for beginners
Category: Power Apps,PowerApps Author: Jeevarajan Kumar Date: 2 years ago Comments: 0

In this mobile era, work happens on our phones, tablets and laptops everywhere we go. Mobile revolution, together with nearly limitless compute and data in the cloud, has transformed our professional experience. Power Apps is an enterprise service for innovators everywhere to connect, create and share business apps with your team on any device in minutes.

This will be the first post of Power Apps series for beginners, in this post we will see how to connect to a Dynamics 365 and create a sample application to retrieve CRM – Accounts and update a record.


  1. Dynamics CRM basics (esp. security roles and permissions).
  2. Dynamics 365 instance with valid user license and privileges.


Login to Office 365 and select the Power Apps in the Apps section as shown in the below figure


Within few minutes the Power Apps home page will be displayed as shown in the below figure


Click on the New Apps to create a new App.

Select the Power Apps Studio for Web as shown in the figure below


There are some predefined App Sources listed as shown in the figure


Predefined Data Source – Here we have different data sources such as “Dynamics 365”, “Sales Force” etc., and we will create a app specifically to a particular entity (Table) inside the data source. For Example : We can create an application only for Accounts entity(table) in MS CRM.

Build Apps from Scratch – Where we can add multiple data sources and work across it.

Example : We can add a Accounts table form Dynamics 365 and also we can add an Excel table and create an App.

Click on the Blank App and select the “Phone Layout”. The Power Apps studio loads as shown in the below image


Select first layout and let’s start building an app for Contacts and Accounts in the Dynamics 365.

    • Select the Text property in the formula bar as shown below or (In the Right pane – switch to “Advanced” tab and scroll down to “Text Property” and enter the Text)

Note: If the text we are entering contains space then please enclose the text within the double quotes.


    • In the body section of the Application window (below the title bar) insert a button from the “Insert -> Controls -> Button” and rename the button with name “Account” and another button with name “Contact”.


    • “OnSelect” Property of the Accounts button – We have to show the list of Accounts. So first create the Data Source for “Accounts” from Dynamics 365.
    • Click outside the canvas and in the Right pane navigate to the “Options” tab select the Data Source section and click on “Add Connection” and select the “Dynamics 365” option. Select the Organisation from the list of Organisation and select the “Accounts” entity from the list of entities.

    • Click on the “Accounts” button and “OnSelect” property of the button we have to navigate to a new page where list of all accounts are displayed. So first create another screen by clicking the (…) which appears near the current screen in the left pane and click on “New Slide”.


    • Rename the new Screen name to “Accounts list”.


    • Select the Second layout for the new screen.


    • Click on the “Title” and rename the text property as “Accounts”. Click on the list displayed and set the “Items” property in the property bar as

SortByColumns(Search(Accounts, TextSearchBox1.Text, “name”), “name”, If(SortDescending1, SortOrder.Descending, SortOrder.Ascending))

Syntax:SortByColumns (Search(“”, Search Box text, “Column to be displayed as list”, “column to be displayed”,””))

    • In the Right panel (Content Pane) you can see the “Accounts” data source mapped if not (Click on the datasource icon and select the data source) as shown in the below figure


    • And in the dropdown select the “name” field which is displayed in the list view of the Application.


    • On the header there are three controls
      • Refresh – Refresh the DataSource
      • Sort – Sorts the Records
      • + (New) – Navigates to the new Screen where we can design and capture Customer data.
    • For Refresh button onSelect function – Write down the formula to Refresh the DataSource for which the page is bounded (here it is Accounts).”Refresh()” here – Refresh(Accounts).
    • On Sort there is a predefined formula UpdateContext({SortDescending1: !SortDescending1}) which sorts the data in descending order.
    • Now let’s navigate to individual record details – On Select property of the Arrow in the right corner of the items In the list to open the details of the particular record using the following formulaNavigate() here Navigate(“Account Detail”) page
    • Create a new Screen name “Account Detail” and click on the first layout and rename the Title as “Account Detail” and click on the below canvas and delete it as shown in the figure


    • And insert the “Display Form” from the Insert menu (Insert -> Forms -> Display).


    • Select the DisplayForm and in the Items Property type the formula below in the formula bar “BrowserGallery1.Selected” to identify the record details for which the arrow is clicked as shown in the figure


    • In the right pane you will be able to see the list of fields to be displayed click on the eye icon which displays the fields value in the display canvas.
      • For Picklist – The value is displayed in integer eg (Status Active – 0 is displayed not the word status active) .
      • In the preview version there is no provision to take the text of the pick list . We can do a work around like below
        • Construct a table and hard code the values and text such as below.

LookUp(Table({ Name: “Open”,StatusCode:”100000000″ }, { Name: “Lost”,StatusCode:”0″ },{ Name: “Won”,StatusCode:”1″ }),StatusCode=hsl_closedas).Name

      • For Lookup values only the “Guid” will be displayed – To display the name we have to construct a Lookup formula as below

Lookup(Contacts,contactid = ThisItem.primarycontactid,name) – Syntax (Lookup(, = ,column_to_be_retrieved_from_the_targetdatasource))

To use the “TargetDataSource” we have to connect to the Target data source first (Here- Contacts) then we will be able to use it.

To connect Go to DataSources -> AddDataSource -> Dynamics365 -> Select the Organization -> Select the Contacts Entity.

    • Place a Edit Icon from (Insert->Icons->Edit) and place in the corner of the display form
      • Place a Edit icon and (Insert->Icons->Edit) and place in the corner of the display form and in the “OnSelect” property we have to navigate to the Edit form (“Edit Accounts” form).
      • Create a new screen (Name: “Edit Screen” ) and select the first layout and edit the “Title” as “Edit Accounts” and delete the Canvas below the title bar . Now insert the “Edit” form from (Insert -> Forms -> Edit) and set the datasource and item same as in the display form.


    • Insert a button control “Update Account” and OnSelect property of the button enter the formula FormSubmit which validated and submits the form.
    • Click on the F5 button to preview the Edit form and change the name of the Account and press Update Account you can see the value is reflected In all the forms and in Dynamics CRM.


By this way you can connect and create an Application for each entity in MS CRM , Share Point etc.,

Will discuss in detail about the Sharing, Security Model, Filtering of Records, Collections and using Microsoft Flows in Power Apps in the following posts.

Source: Jeeva