cancel
Showing results for 
Search instead for 
Did you mean: 
yashag2255

Automate Business Actions with Microsoft Flow, PowerApps and Kaizala

In this article, I will show you how to use Microsoft Flow, PowerApps and Kaizala to automate end-to-end business processes for daily operations. We will look at a logistics management use case wherein we will see how to automate an item pickup and delivery management process.

The scenario is of a logistics company that provides door to door delivery of items. These items are collected/ dropped off at one common warehouse of a region. The details of the item (item ID, destination address, email address of the receiver etc.) are populated to a SharePoint List through a canvas app. Region wise groups are created on Kaizala and the delivery executives are added as members to this group. A custom survey action has been designed to track the delivery item from pickup to delivery. A flow is triggered when a new item is registered on the SharePoint list and a custom action with the item ID is sent to the Kaizala group. Another flow is triggered based on the response received on this custom action. A flow is scheduled to run everyday and get a list of items that were not delivered the previous day and the action is sent to the group for each of these items too. The SharePoint list and the customer are updated with the details received from the delivery executive through the custom action. Once delivered, the customer and the region manager are notified via an email that the item was delivered along with a picture proof. Upon a failed delivery attempt, the delivery executive returns the package to the warehouse and another delivery attempt is made on the next day.

Let's explore the component wise structure of this solution. I have created a SharePoint List named "Item Details" with all the required columns to store the information from the delivery executive and the entries made at the warehouse. 

Canvas App

The canvas app is of a mobile phone layout and is created directly from the SharePoint List (Item Details). It will be used by one of the warehouse managers to track the items in that particular region. The warehouse manager is responsible for creating the new entries for each item that is dropped at the warehouse. Once the item details are filled in and saved on the SharePoint List, a Flow is triggered to post this in the Kaizala group. The available delivery executive checks the details of the item to e delivered and marks that they have received the item on the Kaizala app. This response is saved on SharePoint and the details are updated on the canvas app. This way, the warehouse manager keeps a track of all the items and can search for any particular item at any time and get the latest update on that item. KFPS2.png

The first screen of the app displays all the Items to the warehouse manager based on the data available on the SharePoint List. The warehouse manager can get more details on a particular item by going to the details screen (2) and get the latest updates/ details on that item. The warehouse manager can create new entries by clicking the '+' icon on the home screen (1) and is navigated to the screen (3) where they can enter the item details. The warehouse manager can only create or update the columns shown on screen 3. The rest of the columns are filled by Flow based on the responses on the custom action. 

P.S. the data shown in the app images is sample data.

Kaizala

Download the Kaizala app and sign up from your mobile phone. You can manage the groups, settings for these groups, custom actions, connectors etc on the Kaizala management portal that can be accessed here.

The Kaizala action that I have created is a simple customised survey action with 5 questions and enabled the request location option to get the real-time location of the delivery executive when they respond to the action. 

  1. Item Received: Type: Options- Yes/No.
  2. Current Status: Type: Options- On the way, Delivered, Delivery failed.
  3. Comments: Type: Text.
  4. Delivery Proof: Type: Image.
  5. Order ID: Type: Text.

A new custom action can be created from the Kaizala management portal -> Extensions -> Actions -> Create a new action. There are ready made templates for Forms, Announcements, Surveys, Attendance etc.

Once the custom action is ready, we need to make some small tweaks in the package file and the response summary to make the action editable once a user has responded. For this, download the zip file of the custom action and make the response edit flag to true from the package.json file. A detailed explanation of each of the modules on creating custom actions in Kaizala have been explained here.

Once the action is ready, ensure to upgrade the version number of the package and zip the contents of the previously extracted folder. Now, on the Kaizala Management portal -> Extensions -> Actions -> Create a new action, select import and upload this zip file. You will see that the action file will be uploaded with the version number that you have provided and now you can activate the action and add it to the groups on Kaizala.

On the Kaizala Management portal -> Groups -> Create Group and create a new group. Add members to the newly created group and assign the relevant roles. Now, you can add the custom action to the group and select how users can interact with this action.KFPS6.png

Above, are the screenshots of the custom survey action from the Kaizala Mobile App. The first screen shows the action canvas in the chat window. The second screen is the responses from the user and the third screen again displays the updated action canvas in the chat window. 

Flow

Now let’s look at the Flow part of the solution. We will be using three flows for automating the complete process.

Flow 1: To send an action on the Kaizala group based on the SharePoint item created from the canvas app.KFPS1.PNG

In this flow, I have used the trigger: "When an item is created in SharePoint" and then used the action "Send action on a group in Kaizala". In the body part of the action, add the following:

{
"actionBody": {}
}

Within the "actionBody", copy the entire appmodel.json contents and save the action. Add a description field and select the "Title" option of the newly created item to append along with the description for the custom action. (this will give the user the item ID). 

Flow 2: To keep updating the SharePoint list and the customer with the package status when the delivery executive responds/ updates on the Kaizala action.

Trigger: "When someone respond to a custom action in Kaizala"- Select the group, the newly created action package and set the action to 'All' (Note: Every time a new version of the action is published in Kaizala, the action should be reselected here to point to the updated version as the current flow might point to the previous version)

Action: "Initialize a Variable": This is a string variable to store the image content received as a response from the user for the delivery proof. 

Action: "Get Items from SharePoint": This is to get the item from the "Items List" SharePoint List and the particular item is identified by the ID that is input by the user in the custom action. I am using the ODATA Filter query to get the item that only matches with this answer. The outcome of this action is of a "List" type but in this case, the list will have only one element. 

Control: "Switch": Here I am using a switch control over the delivery status input received from the delivery executive. Based on this, if the item is delivered, the SharePoint list is updated, the delivery proof is attached to the item and an email with these details is sent to the customer and the warehouse manager. Similarly, if the item is undelivered or on the way to be delivered, the SharePoint List is updated and an email is sent to the customer and the warehouse manager. 

KFPS3.PNG

For the case as Delivered: 

Action: "Parse JSON": This is to parse the action answers for the image question on the custom action. The image content URL is extracted from this action. 

Action: "Send and HTTP Request": A GET request is sent to the URL retrieved from the Parse JSON action to get the image content. 

Action: "Set Variable": the content extracted from the above action is now stored into the variable. 

Action: "Update Item in SharePoint": Here, I am updating all the columns of the item on SharePoint with the relevant responses from the custom action. 

Action: "Add an Attachment to a SharePoint list item": Here, I am adding the image (applying a base64 to binary conversion on the content retrieved) as an attachment to the SharePoint item for the proof of delivery.

Action: "Send an Email": Through this action, an email is sent to the customer and the warehouse manager that the item is delivered and the delivery proof is added as an attachment. 

KFPS4.png

Flow 3: To get the items for which the delivery attempt was failed and send that as new action on the next day to the delivery executives’ group.KFPS5.PNG

This Flow runs on a schedule (every morning at 8:45) and gets the items from the SharePoint list. A condition control is set to check the Delivery Status of the item and if it is Delivery Failed, the custom action is sent to the Delivery Executives' group (similar to Flow 1). 

In this article I have shown you how to automate a product delivery management process using PowerApps, Flow and Kaizala. We can use the already available actions in Kaizala for daily processes such as announcements, polls, surveys, job assignments, employee attendance etc. To maximise the efficiency using the OOB available actions in Kaizala, upvote the idea here to include the triggers for these already available actions in the Kaizala - Flow Connector.

I hope you found this interesting and it helped you. Thank you for reading!

Comments

Hi,

 

Its worth to read and the integration between the Microsoft Products are unbelievable. Can I have your contact number please?

I am from Bahrain, John Henry Joseph, Indian.

0097339668313

Hi

 

Thank you, this was an awesome blog, learned a lot. One question though, I downloaded and uploaded the Action Package as per your post, changing the following:  "isResponseEditable": then uploaded it back to Kaizala, and it worked great, I could edit the item, it also added another item to my SharePoint list (which is what we want), but the second completed form / survey does not reflect on Kaizala. It still only shows my response as the original response and not the edited one. Did I miss something?

hi @yashag2255,

 

Am a keen follower and was attempting to send a custom action using the method you showed here, but I keep getting an Invalid Action Scope error, not sure where am getting it wrong. I copied to appmodel.json as you suggested, can you advise please?

 

kaizala send group action.pngkaizala send group action error.png

About the Author
  • Experienced Consultant with a demonstrated history of working in the information technology and services industry. Skilled in Office 365, Azure, SharePoint Online, PowerShell, Nintex, K2, SharePoint Designer workflow automation, PowerApps, Microsoft Flow, PowerShell, Active Directory, Operating Systems, Networking, and JavaScript. Strong consulting professional with a Bachelor of Engineering (B.E.) focused in Information Technology from Mumbai University.
  • I am a Microsoft Business Applications MVP and a Senior Manager at EY. I am a technology enthusiast and problem solver. I work/speak/blog/Vlog on Microsoft technology, including Office 365, Power Apps, Power Automate, SharePoint, and Teams Etc. I am helping global clients on Power Platform adoption and empowering them with Power Platform possibilities, capabilities, and easiness. I am a leader of the Houston Power Platform User Group and Power Automate community superuser. I love traveling , exploring new places, and meeting people from different cultures.
  • Read more about me and my achievements at: https://ganeshsanapblogs.wordpress.com/about MCT | SharePoint, Microsoft 365 and Power Platform Consultant | Contributor on SharePoint StackExchange, MSFT Techcommunity
  • Encodian Owner / Founder - Ex Microsoft Consulting Services - Architect / Developer - 20 years in SharePoint - PowerPlatform Fan
  • Founder of SKILLFUL SARDINE, a company focused on productivity and the Power Platform. You can find me on LinkedIn: https://linkedin.com/in/manueltgomes and twitter http://twitter.com/manueltgomes. I also write at https://www.manueltgomes.com, so if you want some Power Automate, SharePoint or Power Apps content I'm your guy 🙂
  • I am the Owner/Principal Architect at Don't Pa..Panic Consulting. I've been working in the information technology industry for over 30 years, and have played key roles in several enterprise SharePoint architectural design review, Intranet deployment, application development, and migration projects. I've been a Microsoft Most Valuable Professional (MVP) 15 consecutive years and am also a Microsoft Certified SharePoint Masters (MCSM) since 2013.
  • Big fan of Power Platform technologies and implemented many solutions.
  • Passionate #Programmer #SharePoint #SPFx #M365 #Power Platform| Microsoft MVP | SharePoint StackOverflow, Github, PnP contributor
  • Web site – https://kamdaryash.wordpress.com Youtube channel - https://www.youtube.com/channel/UCM149rFkLNgerSvgDVeYTZQ/