Webcraft Solutions

Fast tracking the Sales Process in PSA with PowerApps and Flows

Problem definition: While creating OpportunityàQuoteà Contract the process is not easy and there are multiple clicks involved in reaching the end goal i.e. to finally create a Contract. We want it somehow to be with less clicks and so does people love the tools when smaller things are taken care of automatically by the system, like creating a basic structure project specific price list, creating the Quote line Details, creating of Milestones, etc. Solution: With the power of new technologies and challenging solution being brought to the table PowerApps combined with Flows have the ability to resolve the above issue to make users life simple by reducing the no of clicks and also by providing robust user interface. Let’s understand at each step of OpportunityàQuoteàContract process what is it that can be done to improvise the process as and when we navigate through the process. Step 1: Create the Opportunity by navigating to Opportunity Entity in Project Service App. Step 2: On the Save of the Opportunity a Flow runs behind the scene that does the following things: Creates the Quote automatically based on the billing Type. Creates the Quote Line record. Creates the Project Specific Price List. (Developed in Power Apps) This is now very easy to edit since the interface becomes very user friendly and it directly updates the Roles Prices in the Pricelist. This too is a lengthy process in the OOB PSA. Creates the Quote Line Detail with 1 line with: (Developed in Power Apps) Developer Selecting the Quantity as 1 hour. Picking up the rate from the default pricelist on the Opportunity. Step 3: Now the Salesperson opens the QuoteLineDetails to add more lines in case needed. Else, I prefer adding one line each role and adjusting the quantities appropriately to reach to the quote amount. Step 4: After the Quote is ready and the negotiations are done with the client, we proceed to win the Quote, which does the following: Marks the Quote as won. Creates the Contract automatically with all the information in Quote (OOB Feature) Automatically marks the related Opportunity Won: This is done via a Flow where it looks for the Opportunity from where the Quote was created and marks it as won. This was a manual process in PSA and also reduces first navigating to Opportunity and second marking it won. Conclusion: So, you can imagine how powerful the Flow that is written is and how much amount of time it saves of the Salesperson. All the above takes lots of clicks and entries to be done and hence is a time taking process when done manually. PowerApps too improvise the UI and enrich the look and feel of the app. It also helps in reducing the navigation between the entities and thus saving lot of time. The above blog is as per the process we have configured for our internal use @CloudFronts. All of the above information is as per the best of my knowledge of PSA, Power Apps and Flows.

First canvas Power app: Learn few easy and important commands

As my thoughts build to initiate writing this blog, similar was the feeling when I first thought about exploring Power Apps. The expression was, “What exactly is Power Apps?”. When the world is talking about it, it brings me more curiosity to understand what is so powerful about it. Let’s first commence with understanding what exactly is Power Apps: PowerApps is an initiative by Microsoft that allows developers and nontechnical users to build mobile applications from selectable templates. The objective of PowerApps is to enable business users to build new capabilities via apps, without requiring that they have code expertise.   Types of Power Apps: Model driven apps: These types of apps directly publish the entity on the mobile/ tablet. These apps can be used from Microsoft Dynamics 365 App from mobile. They are very easy to make and can be ready within 15mins of time. Canvas apps: These apps are blank canvas given to the developers with a free hand to design the app in the way they want. In this blog we shall focus more on how to make a Canvas app. Follow the steps below to make a PowerApps. Step 1: Login to www.portal.office.com Step 2: Click on PowerApps icon as shown in the image below: This will open a new browser tab where we need to select what kind of app do we need to make. Step 3: Click on Canvas app from blank, which opens a pop up. Please name your app and select whether the app is for Phone or for Tablet as shown below and click on Create button. This opens the Canvas app editor as shown below: To take this blog forward, I will use an app that is created by me and explain a few commands used by me and how was the design done in that app. The app captures the Grievances of people in office. There are 5 screens created by me and they are: list_Grievances Screen: This list all the grievances in the system. frm_GrievanceRecord Screen: This opens a grievance record. Frm_NewGrievance Screen: This screen is used to capture a new grievance. Frm_CameraScreen : This is used to capture the image of the grievance using camera control. SuccessScrn: This is used to display the success on the screen. Technical dive Let’s take a dive in each screen and get into understanding of functionalities developed on each screen: List_grievances New Grievance button: This button will navigate to a frm_NewGrievance Record to capture new grievance from the employee. The code written behind that is: Navigate( frm_NewGrievance, ScreenTransition.Fade ); To display the list of Grievance I have inserted a List Screen as shown in the image below:   To display the list of Grievance, we need to add a Data Source. How to add a data source is shown below: There are approximately more than 250 Data sources to which Power apps can connect. Select the data source you wish to connect. In my case, I will connect to Dynamics 365 Data Source. It will ask you to choose your entity and then you can click on connect. Your Data Source “Grievances” will start appearing in Items drop down of Property Window. Post that we can align the attributes that we need to see on the list view: To Display Employee Full Name, below is the code that i wrote: ThisItem.’Employee Full Name’ To get the department value, which is a lookup to another entity below is the code that was written LookUp(Departments,new_departmentid=ThisItem.Department, new_name) To display the image from the SharePoint Library, below is the code: LookUp(GrievanceLibrary, Title = TitleGrievance.Text, Image) Where GrievanceLibrary is the Sharepoint Datasource added in Powerapp and Title and image are the fields created in SharePoint.   To open the Grievance record on frm_Grievance Record, write the below code: Navigate(frm_GrievanceRecord,ScreenTransition.Fade,glryGrievances.Selected)   frm_NewGrievanceRecord: To store the new grievance record, we used the Form Screen. On the update button, write the below code: Patch(     Grievances,     Defaults(Grievances),     {         new_employeefullname: DataCardValue3.Text,         new_description: DataCardValue15.Text,         _new_departmentl_value: DataCardValue10.Selected.new_departmentid,         _new_grievancetypel_value: DataCardValue6.Selected.new_grievancetypeid,         new_signature: PenInput4.Image     } ); Patch(     GrievanceLibrary,     Defaults(GrievanceLibrary),     {         Title: DataCardValue3.Text,         Image: First(Collection1).Url     } ); UpdateContext({resettext: !resettext}); UpdateContext({resetcombobox: !resetcombobox}); Navigate(SuccessScrn,ScreenTransition.Fade); frm_CameraScreen Insert a Camera Media Control on the form as shown in the below screen shot. Insert an image control on the form below the Camera Media control. Capture button code: ClearCollect(Collection1, Camera1.Photo) Collection 1 s described above is the SharePoint collection object which needs to be cleared and then referred with the new Photo from the Camera Control, which in our case is Camera1. Confirm button code: Confirm Button will only Navigate it to New Grievance form and the code is ass per below: Navigate(frm_NewGrievance)  To summarize: We learned how to create a Canvas Power app. Different controls that can be used. How to store image on SharePoint in a Power app. Again I am sharing the code for storing the image on SharePoint herewith: Patch(     GrievanceLibrary,     Defaults(GrievanceLibrary),     {         Title: DataCardValue3.Text,         Image: First(Collection1).Url     } ); To explain the above code, GrievanceLibrary is the SharePoint site of which Data Source is added. Title: This is a field in the Sharepoint library that will store the name of the Grievance. The data type in Sharepoint for Title is Single line Text Image: This will store the image in Sharepoint library in Base64 format. The data type of this field will be Multi lines of Text , but, we need to ensure that the rich text format is set to No. Please refer to the below screen shot.   This blog reflects my personal findings and based solely on my experience of using Power Apps.