Data Binding in PowerApps

Let us see how data binding works in PowerApps. In this blog let us see how to fetch data from various data sources in PowerApps. It’s very intuitive and easy to achieve the same.

PowerApps can connect to various data sources, let us take an example of Dynamics 365 CE. It can connect to Dynamics 365 online directly and for on premise, it can connect to SQL server via Gateway.

We want to create an app for the sales executive to create an opportunity on the mobile. Instead of entering whole lot of  information, he can just enter few mandatory fields and  create the opportunity.

We can achieve the requirement by building a PowerApps which connects to Dynamics 365 CE with below easy steps

  • Create data source for Dynamics 365 connectivity
  • Create UI to view the Opportunities, create new Opportunity and edit existing opportunity
  • Publish the PowerApps to make it available for the users to use

In case you already have data in the opportunity entity, you can create entire app just in few minutes.

Go to PowerApps

Build POwerAppS
Select PowerApps from Office Portal
Start from Data
Click on the start from data

You have to select the data source as Opportunity and click on phone layout. PowerApps will create the entire application in few minutes

This App would consist of  the three screens

  • Browse Screen – List screen to view the existing opportunities
  • Detailed Screen – Details of the single opportunity
  • Edit Screen- To edit  the existing opportunity

Once you look at these screens you would realise that how powerful and helpful PowerApps is.


The Browse screen would by default have the search and sorting feature . Along with this , it would have the ability to select any record and go to detailed view of the same. We can click to create new record as well from this screen. Don’t you think it’s really easy to create simple app using PowerApps. We really do not have to worry about the data connectivity, any SQL queries etc 🙂

Edit screen is also used for creating new record and its interesting  to see that PowerApps does everything on its own.

PowerApps decides which fields to be displayed on its own however we can change the fields later. You can just try creating such default app and we can further edit the functionality as we need. We will see in my upcoming blogs.

Thank you very much for reading my blogs and please hit the like button if you think the content is useful and leave comments here. Your commets really mean a lot for me.

Happy making PowerApps which is need of the hour !!!

Continue reading “Data Binding in PowerApps”

Introduction to Microsoft PowerApps

In this blog let us see what is PowerApps, PowerBI and Flow. I will orient you about all these products one by one. All these are excellent products for power users and even for developers, almost no coding is required.

PowerApps is the app development platform, with which we can develop apps compatible with mobile, tab and can also be viewed in desktop or laptop browsers with no additional coding required.

To learn PowerApps like any other technology, you need to understand its UI design, the connectors and its integration capabilities.

Data is the heart of any application and I always prefer to understand the data connectivity first. It’s really easy to do DB operations in PowerApps with readily available connectors. There are two types of connectors used for PowerApps

  • Standard Connectors
  • Custom Connectors

Standard Connectors are the connectors which are supported by PowerApps.  and if you want to connect to your own web service its called custom connector. You have to register your custom connectors before you consume it.  PowerApps can connect to any of existing data you have in the organisation either on premise or on cloud.

The most popular connectors are mentioned below:

  • Common Data Service
  • SharePoint
  • SQL Server
  • Dynamics 365
  • Office 365 Users
  • Office 365 Outlook
  • Excel
  • OneDrive and OneDrive for business
  • DropboxConnectors

In case you need to connect to on premise data sources, PowerApps provides excellent feature of on Premise gateways. We can install on premise gateway and then connect to on premise data base through this gateway. Gateway should be in the same network where your database exists. once you have the gateway ready, you can define the connector to connect to your on premise database using this gateway.

We can go through detailed steps on how to actually create the connectors and connect to data sources in my subsequent blogs


Is it the decline of Scribe Era in Dynamics 365 CE implementations?

Dynamics CRM being online, we do not have access to the database for any operations and in integration scenarios, it’s very common to use the database to database communications. Here Scribe Replication services was the quick help for everyone.

Scribe is very popular in all dynamics developers for integration and replication, however now I think they have to upgrade their skills and learn new way of the integration and replication. Microsoft has come up with Data Export Services which replicates the data from Dynamics CRM to either Azure SQL database or SQL server on the Azure virtual machine.

The Data Export Service, replicates the complete CRM data along with the schema changes. I really liked this feature of  Microsoft.  You can even select the entities which you want to replicate.

I am not going in details of the steps to configure the replication as there are many blogs which provide details of complete procedure step by step.

You can refer to below links for the more details of data export service

While exploring more, came across a limitation as it does not replicate the attachments. Hence you need address this limitation by using some workaround, if you need attachments also to be synced.

As I mentioned, instead of Scribe replication service we can definitely use data export service, which is free a service from Microsoft. However we need to consider the cost of Azure subscription as it’s not available for on premise database. Further developments would tell us on how this feature would be enhanced and will it be successful to get on the Scribe.


Kaizala – How to integrate with business applications – Dynamics CRM – part4

I am sure that you have understood how we can call the Kaizala APIs from dynamics CRM along with the webhook concept to get the response from Kaizala on real-time.

As we move further, let us see actual usage of webhook in Kaizala and Dynamics CRM integration. Kaizala provides multiple webhook subscriptions such as

postman webhook

As shown in above screenshot, at the moment Kaizala provides three webhooks/ subscription APIs

  • Subscribe to all events at group level
  • Subscribe to all events at action level
  • Subscribe to all events at action level with action package id

We can subscribe to any of the above APis based on the  requirement. Let us see how to use”Subscribe to all events at group level” webhook. Below is the code we can see in the body of this subscription in Postman. If we read this, it is quite intutve.

“callBackContext”:”Any data which is required to be returned in callback. Current webhook data can be seen by refreshing:”

You have to pass the groupID for which you need to get the response. You need to keep the events on which you need a response from Kaizala. If you need response  only  when the survey is responded by anybody, then just keep the “SurveyResponse” event and remove rest of the events. If you keep the unwanted events, you would get the response for each and every event unnecessarily.

You need to replace the callbackUrl with your Url which would be registered in the Kaizala for posting the response. To test the response, you can just register the same Url and try to respond to the survey. This would post the survey response to this url and you can see the output which would get by accessing the Url.

Kaizala would post a Json file containing the data of the response and you need to access this Json file and  get the content as required by your integration.For e,g  you can store these details in Dynamics CRM or create new entity and track the responses etc.

You can view all the webhooks registered for the group by using the API “Get all webhooks” on a group and if required even unsubscribe the registered webhook by using “Unsubscribing a webhook”

we have come to end of the integration series. I am still working on how to create custom actions in Kaizala. I would share my finding about the same in my further posts.

Kindly comment in case you want me to write on something specific on the Kaizala integration, I would definitely try to respond to your comments.

Hit the like button/ follow my blog / share my blog  if you like the content.

Keep reading my blog to know more about latest Microsoft SaaS products. Continue reading “Kaizala – How to integrate with business applications – Dynamics CRM – part4”

Kaizala – How to integrate with business applications – Dynamics CRM – Part-3

In the previous post I have explained the usage of Postman and authentication APIs of Kaizala. Now let us see how to perform some Kaizala action from your business application and get the response back on real-time

We are going to see integration with Dynamics CRM

The above scenario would consist of two interfaces

  • Create an action from CRM in Kaizala
  • Get response back from Kaizala to CRM on real-time

To perform actions from CRM , you might create a group based on the opportunity details etc, You can user Group management KPIs for the same.

You can create a web service which would connect to Kaizala and create a group and then this web service can be called in any of the CRM plugin based on the requirements.

How to create a group

Use the Create group API and enter group details as mentioned below

  • Name of the Group
  • Welcome message
  • Phone numbers to be added in the group

Don’t miss to add access Token in headers which was created in previous step.

Postman -CreateGrp1

Now you can click on Code and copy the C# code which can be added in your web service.

You can use variables and replace the group name and other details dynamically.

Postman -CreateGrp

If you run the same API in Postman, you can see it returns you a JSON file containing the groupId, groupName  etc as mentioned below

“groupId”: “31ddc7bc-b657-49ac-a707-655666c904e3”,
“groupName”: “CRM Kaizala Group”,
“membersAdded”: true

You can either store these details in CRM for further reference.

Once the group is created, you can now  send a survey to this group.

I had tried to call the Kaizala API directly from CRM plugin, however it did not work for me. Some sandbox restriction was not allowing me to do so. You can also try direct calling otherwise use the web service to call the Kaizala API.

Hence the steps to be followed are as mentioned below

  • Develop a web service which can be called by CRM plugin.
  • Add add below code in the web service in the function whcih is from Content creation APIs – send survey on a group

var client = new RestClient(“”);
var request = new RestRequest(Method.POST);
request.AddHeader(“postman-token”, “b6175d67-fe97-9cb2-3454-5b45d5091f9e”);
request.AddHeader(“cache-control”, “no-cache”);
request.AddHeader(“accesstoken”, “eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cm46bWljcm9zb2Z0OmNyZWRlbnRpYWxzIjoie1wicGhvbmVOdW1iZXJcIjpcIis5MTk5MjA5NDcyODlcIixcImNJZFwiOlwiXCIsXCJ0ZXN0U2VuZGVyXCI6XCJmYWxzZVwiLFwiYXBwTmFtZVwiOlwiY29tLm1pY3Jvc29mdC5tb2JpbGUua2FpemFsYWFwaVwiLFwiYXBwbGljYXRpb25JZFwiOlwiRjg4MjAzNjlDMzU2MzcyQkQ1NkI5NzYyOUM3RDlEMUNDRUUwNUQ0N0NDNzlEQzlCM0JGNzFFNTRBOTg2RUQxQlwiLFwicGVybWlzc2lvbnNcIjpcIjIuMzA6My4zMDo2LjIyOjUuNDo5LjI6MTguMjoxNS4zMDoxNC4zMFwiLFwiYXBwbGljYXRpb25UeXBlXCI6MyxcImRhdGFcIjpcIntcXFwiQXBwTmFtZVxcXCI6XFxcIk15S0FpemFsYUNvbm5lY3RvclxcXCJ9XCJ9IiwidWlkIjoiTW9iaWxlQXBwc1NlcnZpY2U6ZWFhM2RhMjItMTlhOS00ZjdkLWFlOGMtODE2N2Y4ODM0OWNjIiwidmVyIjoiMiIsIm5iZiI6MTUxMzEyMTcyNywiZXhwIjoxNTEzMjA4MTI3LCJpYXQiOjE1MTMxMjE3MjcsImlzcyI6InVybjptaWNyb3NvZnQ6d2luZG93cy1henVyZTp6dW1vIiwiYXVkIjoidXJuOm1pY3Jvc29mdDp3aW5kb3dzLWF6dXJlOnp1bW8ifQ.PehPR8vrgzinn6Ny0bo9XFcUZ7c0V1uCREZERGWMBIA”);
request.AddHeader(“content-type”, “application/json”);
request.AddParameter(“application/json”, “{\n actionType: \”Survey\”,\n actionBody: {\n isAnonymous:false,\n isSenderOnly:false,\n acceptMultipleResponses:true,\n dueDate:10,\n title: \”A test survey!!\”,\n questions: [\n \t{\n \t\ttitle: \”a test question written here\”,\n \t\ttype: \”Text\”\n \t},\n \t{\n \t\ttitle: \”Single select question\”,\n \t\ttype: \”SingleOption\”,\n \t\toptions: [{title:\”Opt1\”},{title:\”Opt2\”}]\n \t},\n \t{\n \t\ttitle: \”Multi select question\”,\n \t\ttype: \”MultiOption\”,\n \t\toptions: [{title:\”MOpt1\”},{title:\”MOpt2\”},{title:\”MOpt3\”}]\n \t},\n \t{\n \t\ttitle: \”Numeric question\”,\n \t\ttype: \”Numeric\”\n \t},\n \t{\n \t\ttitle: \”Location question\”,\n \t\ttype: \”Location\”\n \t},\n \t{\n \t\ttitle: \”DateTime question\”,\n \t\ttype: \”DateTime\”\n \t},\n \t{\n \t\ttitle: \”Image question\”,\n \t\ttype: \”Image\”\n \t}\n \t]\n }\n}”, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

This code can be generated using the Postman, very similar to group creation

Postman -Createsurvey

  • In above  code , the request.Addparameter is the important line of code which has the complete survey information and you can modify the same as per your requirement.You can use string concatenation or string builder to build this survey as run time
  • When you call this method from your web service, Kaizala will return a JSON file containing the below information

“referenceId”: “1f8cf8a4-10d9-487f-9277-393b060e0df1”,
“actionId”: “291a91c1-921a-4c26-a463-084dd0806d03”

  • You have to store this actionId and referenceId in CRM for further reference. The action ID is nothing but the surveyId which is created and sent to mentioned group
  • You can test your code in postman if you are getting above result
  • Now this particular web service can be called in any of your CRM plugins based on the requirement

With above steps, we have understood how to send Kaizala survey from CRM, now let us see how to capture the response to the survey by the group members at real-time.

You can also use the methods from content query APIs like Fetching survey responses based on the actionId retrieved in above steps, this would not be real-time. If our requirement is capture the survey response as soon as someone responds to the survey you need to register your url to the subscription APIs which is a web hook concept.

To understand how it works, we need to understand the webhook concept. Webhook concept is quite old, but I found it quite interesting and would like to explain you in details in my next blog.

Hence keep reading my blog. If you find it interesting, please follow and leave your comments. Feel free to ask questions in case you have any specific sceanrios in mind.


Continue reading “Kaizala – How to integrate with business applications – Dynamics CRM – Part-3”

Kaizala – How to integrate with business applications?- Part 2

In Previous post I have explained how to create the ConnectorID, Connection Secrete and the Access Token in Kaizala, which would be required when you need to use Kaizala APIs for integrations. You should have saved these strings in notepad for further reference or need to visit the page again to refer these.

Let us understand what are Kaizala APIs and how to use those.

Please refer the below Microsoft Docs link for more details

Kaizala APIs | Microsoft Docs

In order to understand the Kaizala APIs schemas and play around it you can import postman collection including sample and schemas for all Kaizala APIs. After importing the Kaizala APIs your Postman screen would look like below screenshot. The Kaizaa APIs would listed in the left frame

Postman homepage

As you an see in the above screen shot, it has 52 requests categorised in 5 different groups such as

  1. Authentication
  2. Group Management
  3. Content Creation APIs
  4. Content Query APIs
  5. Subscription APIs (webhooks)

These APIs cover most of the functionality which can be managed in Kaizala portal.

Now let us go through each of the groups in details and see how to use those in integrations.

Before you start any activity, it is important that you get authenticated. APIs under Authentication are used for the same.

Generate PIN : Generate PIN is the API used to generate PIN to connect to your Kaizala instance from your mobile Refer below screenshot.

Postman -Generate pin

{{api-root}}/v1/generatePin –  {{api-root}} should be replaced by

It expects two parameters as

  • Content-Type – application/json
  • postman-token- Enter the access token generated in previous steps of creating the connectors

Under the Body section you can see below string. Mobile number and application ID placeholders should  be filled with actual phone number and connectorID which you have received in earlier step of creating connector

{“mobileNumber”:”{{mobile-number}}”, applicationId:”{{application-id}}”}

Postman -Generate pin2

Once you enter all details and click on send, it would send the 4 digit PIN to the mentioned mobile number.

Postman -Generate pin3

To call this API from .Net code, you can click on the Code link and see c# code . Same code can be used in  any console application or web service.

You can see the  code generated in below screenshot

Postman -Generate pin Code

Now next step is Login with pin and applicationID to get the refreshToken

Login with pin and applicationID to get the refreshToken

In this step you need pass the mobile number, applicationID and pin which is generated in the previous step

Postman -refreshtoken

This would generate the refreshToken

Postman -refreshtoken1

You need to copy the refreshToken and go to next step.


  • AccessToken is valid for 24 hours (Hence you need to get fresh access token before doing any action in Kaizala)
  • RefreshToken is valid for 365 days

You should always import latest KPIs as I have observed Kaizala team keeps enhancing these KPIs and there are chances that you would get better functionality with latest APIs.

As you have seen Postman provides you the code in C# which can be used in the web services and you can consume these web services in your business applications.

Let us look at a simple scenario on how I can connect to Kaizala from Dynamics 356 Customer Engagement.

For example: Whenever I create an opportunity in CRM, I want to send a survey to a group of people in Kaizala and track the responses back in terms of activities against the same opportunity.

The above scenario would consist of two interfaces

  • Create an action from CRM in Kaizala
  • Get response back from Kaizala to CRM on real time

I will explain the technical details in my next blog

Keep reading and happy connecting  🙂

Continue reading “Kaizala – How to integrate with business applications?- Part 2”

Kaizala – How to integrate with business applications?

In the previous post I have explained the basic features of  Kaizala and its configuration. Now let us look at Kaizala on how we can integrate Kaizala with various business applications. Kaizala provides bunch of  APIs for the integration. Before we  jump on usage of APIs, we need to first create a connector which would be passed to these APIs for the connection.

Let us see how to create connector. Steps to follow are as mentioned below

  • Click on Kaizala App in Office 365, and Sign in with office 365 credentials
  • Once you sign in, you would be able to see the Kaizala related menu on the left hand  side. The menu is very similar to Office 365.

Kaizala MGMT Portal-Create Connector

Kaizala MGMT Portal-AddConnector

  • Click on Connectors and add new connectors
  • Enter the details and provide required permissions

Kaizala MGMT Portal-AddConnectorDetails

Kaizala MGMT Portal-Connector Permissions

  • Once the connector is added, this step would give you the connector ID and Connection Secrete which is required in further development while accessing the Kaizala APIs
  • With this ready connector, we can generate access token and start using the Kaizala APIs
  • You need to copy the access token and save it for further reference
  • Steps to generate access token as mentioned in below screen shot

Kaizala MGMT Portal-Generate user token

Kaizala MGMT Portal-Copy user token

In next post I will explain how to use the access token and connect to Kaizala through APIs.

Happy reading and connecting 🙂

Continue reading “Kaizala – How to integrate with business applications?”