Category Archives: Power Automate
PDF Action in Desktop flows- Part 2
Introduction: In this blog we will explore two PDF Actions from Desktop Flows. (1) Extract PDF file pages to a New PDF Input: Action: Output: (2) Merge PDF Files Input: The files we have seen in previous blog and this blog as used as Input. Action: Output:
Share Story :
PDF Action in Desktop flows- Part 1
Introduction: In this blog we will explore two PDF Actions from Desktop Flows. (1) Extract Images from PDF Input: A PDF file with Images Action: Output: In the mentioned folder, extracted images will be saved (2) Extract text from PDF Just like we extracted Images, we extract text from PDF. Input: Action: Output: the output variable will show the extracted values.
Share Story :
Store Customer Voice Survey Response to Dataverse Custom Entity using Cloud Flow
In this blog, we will learn how to store the Customer Voice survey response to the custom entity as OOB entities which holds that response data is complex and data is stored in multiple related entities. Step 1: Create a Customer Voice Project and Survey Log in to the Customer Voice Portal and Create a new Project. Select a Blank Template and click on Next. After creating a survey you need to select the Environment location in which Customer Voice Data will get stored. To select the location click on See all environment. Select the Environment location and complete the configuration of the Project. Step 2: Add the Survey Form Fields. Now, we will add the fields that need to be filled by the target audience or based on requirements. After creating your Survey form, you can click on the Preview to view in Desktop and Mobile Mode. To share the form, click on the “Send” tab. There are three options by which you can share the survey form — Scan the QR Code, Embed the Form in Website or App, and share using a short link. I will copy the short link and use it to fill the survey form. You can also create Cloud Flow to automate the survey sending process. Comment down below if you want a blog on the same. Let’s see it in action, I have submitted one response in Survey that we have created. Customer Voice Survey CSD Entity: During the configuration of the Customer Voice Project, we have selected the environment location. In that environment, there are some OOB Entities that have been created to store the Customer Voice Survey Data in CDS / Dataverse. We will Open the CRM Environment and we will Advance Find for the “Customer Voice Survey”. After clicking on the result, you will see the survey that we have created from the Customer Voice portal is also visible in Dynamics 365 CRM as shown below screenshot. Open the Customer Voice survey record. Go to Related and select the “Customer Voice survey responses”. You will see the response that we have submitted after the creation of the Survey Form. Open the Customer Voice survey responses record. To see the responses to each question submitted by the Audience, open the Related “Customer Voice survey question responses”. Open any Customer Voice survey question responses record. You have two fields Question — Lookup to Customer Voice Survey Questions Response — String value of responses submitted by the audience. Link to Documentation:Entity Reference for Dynamics 365 Customer Voice Step 3: Create a Custom Entity and Cloud Flow. I have created a Custom Survey response entity that has the same fields to store the response when any audience submits the response. Step 4: Create Cloud Flow to store the responses to Custom Entity. Create a flow and the trigger will be “When a row is added, modified or deleted” Dataverse connector. Configure the Triggering Connect as shown below screenshot: Now, we will list all the records of responses. To do so we need to use the “List rows” Dataverse connector and configure it as mentioned in the screenshot. We will declare the Variable to store all the question responses. These variables will be used to create the new Custom Survey Response. We will add a switch case that will match the Questions and store the responses to the respective Flow variable. After adding all the switch cases, we will create a record in CDS / Dataverse using the “Add a new row” Dataverse connector. Save the Cloud flow and test it. Cloud Flow in action Hope this helps!!!
Share Story :
Nested IF Expression in Cloud Flow
Introduction: We have been using Action-Condition for IF in Cloud flow, while this is easy to use, it ends up making your flow bigger in size. Instead if we just need to validate conditions, we can use expression to do the same checks. Solution: Add a compose action>> Go to Expression>> Add if() Example: If(empty(field),’No Data’, ‘Data found’) Nested IF Example: If(empty(field),’No Data’, if(equals(field,’xyz’),’ XYZ Data’, ‘Data Found’)) Input: Account with Name XYZ is created. Action: Output:
Share Story :
Retrieve Email Recipients(TO, CC, BCC) in Cloud Flow
Introduction: When we trigger a flow on Email Activity or retrieve email activity. However that does not provide us the recipient details of the email. Recipient details are stored as part of Activity Party. In this blog, we will understand how to retrieve the Email Recipients from the activity party of the email. Solution: From Email messages you will get activity party. Reterive Activity Parties of that ID. Use Filter Array Action to get only the type of recipient you need. If you do not know the Partition type mask, you can check the output of List rows and read the formatted value. The Filter array output will you party type and party ID. In my case the party type was Users so I have used Party ID as input to get the User record. Based on your party type and requirements, you can make use of the party id value which basically is your recipients GUID.
Share Story :
Retrieve characters/Substring from string in Cloud Flows
In this blog we will see how to retrieve string or characters from string using substring and take method When we want to retrieve character/string from starting index then will use take() method, else will use substring() Let say we want to retrieve first 5 character from string. Eg. – string is Power Automate We will demonstrate this with both the cases. Using Substring Here we are retrieving first 5 characters from string i.e. Power Expression used – substring(‘Power Automate’,0,5) Output – 2. Using take Expression used to retrieve string – take(‘Power Automate’,5) Output – Hope this helps!
Share Story :
Send an Email to all users in a D365 Team using power automate.
D365 gives us a functionality to assign a record to a group of users which can be archived by using a D365 Team these users then are know as members of that respective team, due to functionality restrictions we cannot send an email to a D365 team, however there are a few workarounds by which we can achieve this functionality. Lets consider a case. Suppose we have a D365 team called as “Accounts Associates” we have added a set of users in this team. Now if an invoice milestone is in the ready state i.e. “Ready For Invoicing” we need to send a reminder email to this “Accounts Associates” team to take an action regarding the ready invoicing. Solution :- The following case can be achieved by using an Out of the box functionality i.e. By using a distribution list Note :- (we must have an Microsoft Exchange License). Lets Begin with the implementation. Step – 1 Creating a Distribution List Login to your admin center (Link –https://admin.microsoft.com/) In the Admin center Section of the Left navigation bar select “Exchange”. Under the “recipients” select “groups”. In the “+ New Microsoft 365 Group” pull down the dropdown and add the distribution list. Add the Display name and the “Alias” and save the Distribution list. Add same users which are present in the teams to this Distribution list. Step – 2 Creating a Queue in D365 Go to “Settings” -> “Service Management” ->” Queues” and click on “+NEW” -> give it a name -> “Save” A mailbox would be created with the same name that of the queue. Open the mailbox. The Email address field will be blank, add the Distribution List’s email address created in Step 1. Step -3 Create a New Team or select an Existing Team. In the Default Queue lookup, select the Queue created in Step 2. Step – 4 Create a Flow which triggers on update of a project contract line milestone i.e. When status is ready for invoicing Flow triggers when Project Contract Line is Updated, Condition Invoice Milestone is Ready for invoicing for which click on the “…” select settings and add the following condition in the trigger sectio Get the Teams ID in this case I have hardcoded the ID as no record was associated with it to retrieve it Get the Teams Details. Get the Default Queue to which the email will be triggered . Send an Email to the Incoming Email of that Queue which is Email ID set on the Distribution list. Note : (We will have to Manually add or remove the users from both the Distribution list and the Teams. i.e. both the team and the distribution list must be sync, if a member is added or removed from the team the same should be done in the distribution list ) Output . Hope this helps.!
Share Story :
Send an Email to all users in a D365 Team using power automate
D365 gives us a functionality to assign a record to a group of users which can be archived by using a D365 Team these users then are know as members of that respective team, due to functionality restrictions we cannot send an email to a D365 team, however there are a few workarounds by which we can achieve this functionality. Lets consider a very case. Suppose we have a D365 team called as “Accounts Associates” we have added a set of users in this team. Now if an invoice milestone is in the ready state i.e. “Ready For Invoicing” we need to send a reminder email to this “Accounts Associates” team to take an action regarding the ready invoicing. Solution :- The following case can be achieved by using an Out of the box functionality i.e. By using a distribution list Note :- (we must have an Microsoft Exchange License). Lets Begin with the implementation. Step – 1 Creating a Distribution List Login to your admin center (Link –https://admin.microsoft.com/) In the Admin center Section of the Left navigation bar select “Exchange”. Under the “recipients” select “groups”. In the “+ New Microsoft 365 Group” pull down the dropdown and add the distribution list. Add the Display name and the “Alias” and save the Distribution list. Add same users which are present in the teams to this Distribution list. Step – 2 Creating a Queue in D365 Go to “Settings” -> “Service Management” ->” Queues” and click on “+NEW” -> give it a name -> “Save” A mailbox would be created with the same name that of the queue. Open the mailbox. The Email address field will be blank, add the Distribution List’s email address created in Step 1. Step -3 Create a New Team or select an Existing Team. In the Default Queue lookup, select the Queue created in Step 2. Step – 4 Create a Flow which triggers on update of a project contract line milestone i.e. When status is ready for invoicing Flow triggers when Project Contract Line is Updated, Condition Invoice Milestone is Ready for invoicing for which click on the “…” select settings and add the following condition in the trigger section. Get the Teams ID in this case I have hardcoded the ID as no record was associated with it to retrieve it Get the Teams Details. Get the Default Queue to which the email will be triggered . Send an Email to the Incoming Email of that Queue which is Email ID set on the Distribution list. Note : (We will have to Manually add or remove the users from both the Distribution list and the Teams. i.e. both the team and the distribution list must be sync, if a member is added or removed from the team the same should be done in the distribution list ) Output . Hope this helps.!
Share Story :
Last and First expression in Cloud Flows – Part I
Let see how we can use last and first expression in Cloud Flows. We can use last and first expression get first and last value in array, strings and also we can use first and last expression to get first and last record from list of records in cloud flows Let get started!!!!! Let say you have string named “A Datum Integration” and we want first character of the string, then use below expression. Syntax – first(<string>) I have initialized a string “A Datum Integration”. Add a compose and use first as below. As a result, will get a first character from the string i.e A Output – 2. Similarly, we can use last expression to get last character from the string. In this case character “n” should be output Syntax – last(<string>) Output – Stay tuned for Part II.
Share Story :
Send an email to users in a D365 Team Individually using power automate (without using a distribution list)
D365 gives us a functionality to assign a record to a group of users which can be archived by using a D365 Team these users then are know as members of that respective team, due to functionality restrictions we cannot send an email to a D365 team, however there are a few workarounds by which we can achieve this functionality. Lets consider a very case.Suppose we have a D365 team called as “Accounts Associates” we have added a set of users in this team. Now if an invoice milestone is in the ready state i.e. “Ready For Invoicing” we need to send a reminder email to this “Accounts Associates” team to take an action regarding the ready invoicing Solution :- The following case can be achieved by Looping through all the users in of a D365 Team.Lets Begin with the Implementation. Step 1 – Create a D365 Team.Go to Security – > Teams -> Create a new team. Step 2 – Create a Flow to send email.1. Flow triggers when Project Contract Line is Updated, Condition Invoice Milestone is Ready for invoicing for which click on the “…” select settings and add the following condition in the trigger section. 2.Get the Teams ID in this case I have hardcoded the ID as no record was associated with it to retrieve it3.Get the Teams Details.4.Get the User Details by using the following fetch XML Query. 5. Query :<fetch version=”1.0″ output-format=”xml-platform” mapping=”logical” distinct=”true”> <entity name=”systemuser”> <attribute name=”fullname” /> <attribute name=”businessunitid” /> <attribute name=”title” /> <attribute name=”address1_telephone1″ /> <attribute name=”positionid” /> <attribute name=”systemuserid” /> <attribute name=”internalemailaddress” /> <order attribute=”fullname” descending=”false” /> <filter type=”and”> <condition attribute=”internalemailaddress” operator=”not-null” /> </filter> <link-entity name=”teammembership” from=”systemuserid” to=”systemuserid” visible=”false” intersect=”true”> <link-entity name=”team” from=”teamid” to=”teamid” alias=”ag”> <filter type=”and”> <condition attribute=”teamid” operator=”eq” uitype=”team” value=”{Your Team ID}” /> </filter> </link-entity> </link-entity> </entity> </fetch> For all the users Send an Email individually to the user OutputUser 1. Which is CRM Admin in my case in the team. User 2 Vidit Gholam system Administrator Hope that helps. !