cancel
Showing results for 
Search instead for 
Did you mean: 

Join the discussion

Most Recent
wyattdave
Resolver I
Resolver I

With everything moving to solutions I have been finding that sometimes the app user does not have permission to call the flow. This blog explains a workaround to fix it

Read more...

trice602
Super User
Super User

This is a common question I have answered more than once here and it is time to revisit my accepted solution from August of 2023.  In this example, I will show you how you can reference a saved image you want to include as an embedded/inline image and include in a Send an email (V2) action from either OneDrive or SharePoint - the formats are slightly different.  Goes without saying, make sure the permissions on your image allow others to view (if applicable).

 

 

Read more...

wyattdave
Resolver I
Resolver I

Some API's return a 302 redirect url, which Postman and other web clients automatically follow. Unfortunately its not that easy in Power Automate so here's how to fix it

Read more...

VJR
Multi Super User
Multi Super User

📢𝗣𝗼𝘄𝗲𝗿 𝗙𝘅 𝗶𝗻 𝗣𝗼𝘄𝗲𝗿 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗲 𝗗𝗲𝘀𝗸𝘁𝗼𝗽 now supports 𝗶𝗻𝘁𝗲𝗿𝗽𝗼𝗹𝗮𝘁𝗲𝗱 𝘀𝘁𝗿𝗶𝗻𝗴𝘀

𝗪𝗵𝗮𝘁 𝗶𝘀 𝗦𝘁𝗿𝗶𝗻𝗴 𝗜𝗻𝘁𝗲𝗿𝗽𝗼𝗹𝗮𝘁𝗶𝗼𝗻?
It is a powerful feature which allows you to inject variables, expressions directly into a standard string. It makes creating and formatting strings easier and more readable.
Used in programming languages. Also available in Power Apps and now in Power Automate Desktop.

𝗘𝘅𝗮𝗺𝗽𝗹𝗲:
🔷 Power Fx in PAD – 𝗪𝗶𝘁𝗵𝗼𝘂𝘁 String Interpolation
="Welcome, " & vFirstName & " " & vLastName & ", " & "this is a nice update in PAD Version 2.41"

🔷 Power Fx in PAD – 𝗪𝗶𝘁𝗵 String Interpolation
=$"Welcome, {vFirstName} {vLastName}, this is a nice update in PAD Version 2.41"


Key points to note and benefits:
🔹String interpolation strings begin with a $
🔹Use curly braces {} to evaluate and embed the variable or expression
🔹Both, normal text or interpolated strings can be used anywhere within that line of text
🔹No need of any ‘&’ operator, thus easy to read as well as write formatted strings.
🔹This is applicable only for Power Fx enabled desktop flows (in preview). The "=" sign in the beginning is the Power Fx notation.

Below screenshot shows an output in 𝗣𝗔𝗗 using Power Fx – 𝗪𝗶𝘁𝗵 String Interpolation

Check out my post for a sample on how Power Fx in PAD can be used.
https://lnkd.in/dd4cMTcH

 

This feature is released in the February update Version 2.41

https://lnkd.in/dcFCtD5N

VJR
Multi Super User
Multi Super User

Problem Statement:

Power Automate Desktop currently does not have an option to set categories to Outlook emails.

 

These are what categories in Outlook are. They can be default ones like Blue Category, Orange Category, or you can customize your own ones as shown below.

 

VJR_0-1708414321517.png

 

 

Power Automate Desktop Solution:

 

1. Launch Outlook and Configure the desired parameters for retrieving emails as per your specific criteria.

Here the email with the subject as "test email" in Inbox folder is configured.

 

VJR_1-1708414478100.png

 

 

2.  For the sake of this example only 1 email with the subject "test email" will be retrieved.

Hence, we are storing the unique EntryID of that email in a variable.

 

VJR_2-1708414539921.png

 

 

3. Here we are setting a variable with the desired Outlook categories

- Can pass single or as shown we are passing two categories at once.

IMP: Make sure that you have the correct spelling of the category name as per the list of already configured categories in the outlook application. First screenshot of this write-up.

 

VJR_3-1708414633208.png

 

 

4.  Here we are simply passing the above two variables to a Vbscript which will do the rest ie; setting the category to the email having the specified EntryID.

 

VJR_4-1708414738826.png

 

 

VBScript Code:

 

Option Explicit

' Create Outlook Application object
Dim objOutlook
Set objOutlook = CreateObject("Outlook.Application")

' Get the message by its ID
Dim objNamespace, objMessage
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objMessage = objNamespace.GetItemFromID("%EntryID%")

' Check if the message is found
If Not objMessage Is Nothing Then
    ' Set the category
    objMessage.Categories = "%CategoriesToSet%"
    objMessage.Save ' Save changes
    
   ' MsgBox "Category set successfully."
Else
    'MsgBox "Message not found."
End If

' Clean up
Set objMessage = Nothing
Set objNamespace = Nothing
Set objOutlook = Nothing

 

5. The overall PAD flow would look as below.

 

*I have also attached the txt file of the entire flow which you need to copy-paste inside a blank Flow editor.

The flow is built in PAD version 2.41

 

VJR_5-1708414920525.png

6. Thats it. The email output after running the above PAD flow is as follows.

 

VJR_7-1708414990467.png

 

 

7. Attached .txt file of the flow to copy-paste into a blank PAD editor.

When you copy paste the code chances are that Power Automate Desktop adds some slash characters especially in the vbscript and you may see some errors. Single back slashes may become double back slashes. To fix, take the vbscript code snippet posted above and paste it directly into the "Run vbscript" action. 

 

 

Monika001
Helper I
Helper I

User story: 

Create an access team whenever a new row is added to the Accounts table. Add the creator of the new row and their manager to the access team. Automate this process using power automate flow. 

What is an access team?

Access teams are a type of team that can be created in the Microsoft power platform to enable an extra level of security to your application. Access teams empower us to have a record level of security for our dataverse tables. Now, you might be wondering, when we already have some ways to achieve security in dataverse why use access teams?

Consider a scenario where an Azure Active Directory group has already been established for the purpose of restricting user access to a particular application. However, you do not want everyone in that AAD group to access all the records of that application. That is, you want some people to access only some records based on the ownership of the records. This is where the access group can help. With the help of power automate flows, you can automate to create access teams dynamically.

Read more...

wyattdave
Resolver I
Resolver I

Everyone has their own particular style when making flows in Power Automate, and that is part of the beauty of being a developer. But development by its very nature is about sharing and learning from others (its why Stack Overflow is probably most visited developer site).

So after making far too many flows, I've pulled together what I think of as the best approach to Power Automate (and many other RPA tools), and it's called the 'Direct' methodology.

Read more...

Rahman1005
Advocate II
Advocate II

Adaptive Cards are self-contained user interface components that transcend platform boundaries. Crafted in JSON format, these snippets of UI can be seamlessly exchanged between applications.

Upon reaching a particular application, the JSON content is dynamically rendered into native UI elements, seamlessly blending with the app's aesthetic. This approach facilitates the creation and seamless integration of lightweight UI elements across diverse platforms and frameworks.

User Story:

We're preparing to implement a leave approval workflow in Teams utilizing adaptive cards. Employees will submit their leave requests, and line managers will receive notifications within Teams.

Step 1 – Design the Adaptive Card

Prior to establishing the flow, let's initiate the card design process using the designer tool to ensure readiness. Visit https://adaptivecards.io/designer/  to access the designer interface and adjust the 'host app' setting to Microsoft Teams – Light / Dark. Once the card example is updated, we can proceed with development.

Rahman1005_0-1707802998019.png

 

Navigate to https://adaptivecards.io/designer and in Card Payload Editor upload below JSON.

{

    "type": "AdaptiveCard",

    "body": [

        {

            "type": "Container",

            "style": "emphasis",

            "items": [

                {

                    "type": "ColumnSet",

                    "columns": [

                        {

                            "type": "Column",

                            "items": [

                                {

                                    "type": "TextBlock",

                                    "size": "Large",

                                    "weight": "Bolder",

                                    "text": "**New Leave Request**"

                                }

                            ],

                            "width": "stretch"

                        },

                        {

                            "type": "Column",

                            "items": [

                                {

                                    "type": "Image",

                                    "url": "https://adaptivecards.io/content/pending.png",

                                    "altText": "Pending",

                                    "height": "30px"

                                }

                            ],

                            "width": "auto"

                        }

                    ]

                }

            ],

            "bleed": true

        },

        {

            "type": "Container",

            "items": [

                {

                    "type": "ColumnSet",

                    "columns": [

                        {

                            "type": "Column",

                            "items": [

                                {

                                    "type": "TextBlock",

                                    "size": "ExtraLarge",

                                    "text": "@{triggerOutputs()?['body/Title']}",

                                    "wrap": true

                                }

                            ],

                            "width": "stretch"

                        },

                        {

                            "type": "Column",

                            "items": [

                                {

                                    "type": "ActionSet",

                                    "actions": [

                                        {

                                            "type": "Action.OpenUrl",

                                            "title": "View Item",

                                            "url": "@{triggerOutputs()?['body/{Link}']}"

                                        }

                                    ]

                                }

                            ],

                            "width": "auto"

                        }

                    ]

                },

                {

                    "type": "FactSet",

                    "spacing": "Large",

                    "facts": [

                        {

                            "title": "Submitted By",

                            "value": "**@{triggerOutputs()?['body/Author/DisplayName']}** @{triggerOutputs()?['body/Author/Email']}"

                        },

                        {

                            "title": "Employee",

                            "value": "@{triggerOutputs()?['body/Title']}"

                        },

                        {

                            "title": "Start Date",

                            "value": "@{triggerOutputs()?['body/StateDate']}"

                        },

                        {

                            "title": "End Date",

                            "value": "@{triggerOutputs()?['body/EndDate']}"

                        }

                    ]

                }

            ]

        },

        {

            "type": "Container",

            "items": [

                {

                    "type": "ActionSet",

                    "actions": [

                        {

                            "type": "Action.Submit",

                            "title": "Approve",

                            "style": "positive",

                            "data": {

                                "id": "@{triggerOutputs()?['body/ID']}",

                                "action": "approve"

                            }

                        },

                        {

                            "type": "Action.ShowCard",

                            "title": "Reject",

                            "style": "destructive",

                            "card": {

                                "type": "AdaptiveCard",

                                "body": [

                                    {

                                        "type": "Input.Text",

                                        "id": "RejectCommentID",

                                        "placeholder": "Please specify an appropriate reason for rejection.",

                                        "isMultiline": true

                                    }

                                ],

                                "actions": [

                                    {

                                        "type": "Action.Submit",

                                        "title": "Send",

                                        "data": {

                                            "id": "@{triggerOutputs()?['body/ID']}",

                                            "action": "reject"

                                        }

                                    }

                                ],

                                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"

                            }

                        }

                    ]

                }

            ]

        }

    ],

    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",

    "version": "1.2",

    "fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."

}

 

Step 2 – Building The Flow

  • To create the Flow, Go to Power Automate -> Create -> Start from Blank -> Automated Flow.
  • Give an appropriate name for the Flow and select the “When an item is created” trigger and click on Create button.

Rahman1005_1-1707802998021.png

 

  • Add “Post an Adaptive Card to Teams Channel and wait for response” action.

 

  • Team: Select the Team in which you want to post the approval
  • Channel: Select the Channel in which you want to post the approval
  • Message: Copy the json given above and paste it in the message section and ensure the dynamic content is copied properly, or if you have built your own adaptive card then paste your json here and add any dynamic content as required.
  • Update Message: Provide the update message, which will be shown after approver user has provided the decision using the card.
  • Should update card: Select yes here.

Rahman1005_2-1707802998026.png

 

 

  • Add “Condition” action to check whether approver has approved or rejected the request, on left hand side of the condition copy.
  • body(' Postadaptivecardandwaitforaresponse')['submitActionId'] expression (without quotes) and on right hand side provide “Approve” value or whatever your action value is defined in your adaptive card for the buttons.

 

Rahman1005_3-1707802998026.png

 

  • Under the “yes” branch to update the item and send message to the employee once leave request approval or rejected, do following.

Rahman1005_4-1707802998030.png

 

Rahman1005_5-1707802998032.png

 

  • Finally, the navigate to SharePoint site and create a new leave request.

Rahman1005_6-1707802998035.png

 

  • Manger will receive message in teams chats please refer below screen short.

Rahman1005_7-1707802998039.png

 

  • Adaptive card wait for response.

Rahman1005_8-1707802998040.png

 

 

  • Once manager approve’ s the request employee will receive message in teams that his leave request is approved.

Rahman1005_9-1707802998041.png

 

 

Complete Flow.

Rahman1005_10-1707802998044.png

 

 

Thank you...!

Rahman1005
Advocate II
Advocate II

In this post, we’ll work with a SharePoint List using The SharePoint Send HTTP Request action in Power Automate

we will see the most used methods, such as GET, POST, PATCH, and DELETE.

To access SharePoint resources using REST, construct a RESTful HTTP request by using the OData standard.

Method – Get

URL – https://{site_url}/_api/lists/getbytitle('{list_name}')/items

Accept – "application/json;odata=verbose"

 

  • Log in to the flow portal with your Office 365 credentials.
  • For this article, I have created a SharePoint List. Please find its schema below.

Rahman1005_1-1707380582694.png

 

  • Go to https://make.powerapps.com/, then click on "New Flow," choose "Automated cloud flow," provide a flow name, and select "when an item is created." Please consult the screenshot below for reference.

Rahman1005_2-1707380582696.png

 

 

Rahman1005_3-1707380582701.png

 

 

  • Following Next, we must choose the site address and then select the list.

Rahman1005_4-1707380582702.png

 

  • Click on New Step and choose an operation pane, search for "Send an HTTP Request" under actions and select it.

In this window, please select the options as shown below.

  • Site Address: Choose your SharePoint Site.
  • Method: GET
  • Uri: _api/web/lists/getbytitle('List Name')/items.
  • Headers: As per business requirements.
  • Body: JSON body as per business requirements.

 

Rahman1005_5-1707380582703.png

 

  • Execute a GET request and check for any issues.

Rahman1005_6-1707380582705.png

 

 

Once GET request is executed, we need to do parse the response.

Take the result from preview step and generated JSON schema in Parse JSON.

Rahman1005_7-1707380582706.png

 

 

The response body, which is in JSON format, we need to use apply to each action get a result from the previous step, and then we use Compose Action to get a specific result.

 

Rahman1005_8-1707380582707.png

 

 

When we trigger the flow and see the result. Flow will get each item and display the Full Name, Email, and Employee Id as shown below.

 

Rahman1005_9-1707380582709.png

 

 

Rahman1005_10-1707380582710.png

 

 

Thank you..!

trice602
Super User
Super User

This is an FAQ and I wanted to share the flow so others can find it quickly and make it your own!  In this short walkthrough, we will email Microsoft Form attachments from a single question that allows more than one file upload and email them to someone.  At the end of the walkthrough, you will have the knowledge to do this yourself and most importantly, you will learn about the framework and actions you can use in other flows.  #neverstoplearning #sharingiscaring

Read more...

Bennykil
Regular Visitor

I found this while working with a colleague and was faced with a sticky situation at work. I have this table in my database. However, I would like to send the data from the period date a day late. For example, I would like an email reporting Monday data on a Tuesday morning. So Friday reports Thursday data.

 

Now, here’s the problem. I would like to report Friday data, not Sunday data on Monday. 

 

How did we solve it? Let's find out

Read more...

ThisIsAShame
Regular Visitor

This is an article that outlines how to use Dataverse to reassign an approval on the behalf of someone else. Lots of posts say that you can’t reassign an approval without manually making the user click “Reassign”, but I outline a flow below that lets you reassign any existing approval as long as you have Dataverse access and 1 Premium license. This means that you don’t have to edit your existing flows, or add any workarounds to your processes. This will simply replicate the “Reassign” button users have, but let’s you press it for them.

Read more...

365-Assist
Multi Super User
Multi Super User

Are you tired of scrolling through endless lists of initialized variables in Power Automate? I have created a workaround using parallel branches to streamline the workflow. 

 

I have also created a YouTube video that further explains the steps I used -> Power Automate - Group Initialize Variable actions (youtube.com)

Read more...

jag1976
Employee
Employee

In today's fast-paced business environment, the ability to swiftly and effectively export data stands as a cornerstone for maintaining a competitive edge. For users of Dynamics Customer Insight, a pivotal component in the Microsoft suite, the constraint of a limited data download capability from Dataverse tables has been a notable bottleneck. This limitation not only impedes the expediency of data exports in Customer Insight but also impacts on vital Dynamics Marketing functions such as lead generation and analytics.

Read more...

egregorich
Frequent Visitor

Microsoft has provided some PowerShell that allows admins to check their Power Platform environment for invalid Power Automate Licenses before it becomes an issue. You can run a check using PowerShell to see if you will have any issues.

Read more...

VJR
Multi Super User
Multi Super User

Since there is no direct tutorial that fully goes through each topic of the certification you would have to follow an approach of taking the scope topics and learning each topic and below guide would assist.

 

Here is a document regarding the same that contains:
➡ A direction on how to approach for the preparation
➡ Scope and Topics asked in the exam
➡ Tips and pointers
➡ What type of questions are asked
➡ Reference links to important pages

 

 

VJR
Multi Super User
Multi Super User

𝗨𝘀𝗲 𝗖𝗮𝘀𝗲 𝟱: 𝗣𝗼𝘄𝗲𝗿 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗲 𝗗𝗲𝘀𝗸𝘁𝗼𝗽 + 𝗚𝗣𝗧

𝗧𝗶𝘁𝗹𝗲: Auto-reply based on type of incoming request

 

🔹Use it with the "Create text with GPT" action of Power Automate Desktop

Or

🔹Call GPT OpenAI API from Power Automate Desktop

https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Integrating-ChatGPT-with-Power-Automate-...

 

 


🔷 GPT prompt suffix to be added by RPA to the original text is:
[𝘞𝘳𝘪𝘵𝘦 𝘢𝘯 𝘢𝘶𝘵𝘰-𝘳𝘦𝘱𝘭𝘺 𝘧𝘰𝘳 𝘵𝘩𝘦 𝘢𝘣𝘰𝘷𝘦 𝘵𝘦𝘹𝘵]

🔷 Human can validate the auto-reply suggested by ChatGPT, make necessary modifications like add URLs, attach Receipts, catalogues, ticket number, etc. and reply back to the sender.

🔷 Customise the ChatGPT AI model for specific replies and keywords as per your business

🔷 Use it for an incoming email or wherever relevant during RPA automation.


Screenshots of Live outputs after calling the API from Power Automate Desktop.

 

 

VJR_0-1702549361682.png

 

VJR_1-1702549385327.png

 

VJR_2-1702549408278.png

 

 

 

VJR
Multi Super User
Multi Super User

𝗨𝘀𝗲 𝗖𝗮𝘀𝗲 𝟰: 𝗣𝗼𝘄𝗲𝗿 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗲 𝗗𝗲𝘀𝗸𝘁𝗼𝗽 + 𝗚𝗣𝗧

𝗧𝗶𝘁𝗹𝗲: Language Translation services using GPT

 

🔹Use it with the "Create text with GPT" action of Power Automate Desktop

Or

🔹Call GPT OpenAI API from Power Automate Desktop

https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Integrating-ChatGPT-with-Power-Automate-...

 

 

 

RPA and ChatGPT can work together using language translation in various ways, such as:

1️⃣ 𝗗𝗮𝘁𝗮 𝗰𝗼𝗹𝗹𝗲𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗮𝗻𝗮𝗹𝘆𝘀𝗶𝘀: RPA can collect data from various sources, such as websites, emails, desktop applications, PDFs, databases, in multiple languages, and ChatGPT can process and analyze the data to provide insights and recommendations.

2️⃣ 𝗟𝗮𝗻𝗴𝘂𝗮𝗴𝗲 𝗜𝗱𝗲𝗻𝘁𝗶𝗳𝗶𝗰𝗮𝘁𝗶𝗼𝗻 & 𝗧𝗿𝗮𝗻𝘀𝗹𝗮𝘁𝗶𝗼𝗻: RPA can identify the language of text data and ChatGPT can translate the text into a common language for communication and collaboration.

3️⃣ 𝗧𝗿𝗮𝗻𝘀𝗹𝗮𝘁𝗶𝗼𝗻 𝗶𝗺𝗽𝗿𝗼𝘃𝗲𝗺𝗲𝗻𝘁𝘀: RPA and ChatGPT can provide feedback and suggestions for improving the quality and accuracy of the translation.

4️⃣ 𝗟𝗮𝗻𝗴𝘂𝗮𝗴𝗲 𝗹𝗼𝗰𝗮𝗹𝗶𝘇𝗮𝘁𝗶𝗼𝗻: RPA can help localize content, such as websites, marketing materials, by translating the content into multiple languages, and ChatGPT can provide recommendations for adapting the content to the local culture and context.

5️⃣ 𝗟𝗮𝗻𝗴𝘂𝗮𝗴𝗲 𝘁𝗿𝗮𝗶𝗻𝗶𝗻𝗴: ChatGPT can help train language models and RPA can automate the process of data collection and preparation to improve the efficiency and effectiveness of the training.

...and more.

Overall, RPA and ChatGPT can complement each other in various aspects of 𝗹𝗮𝗻𝗴𝘂𝗮𝗴𝗲 𝘁𝗿𝗮𝗻𝘀𝗹𝗮𝘁𝗶𝗼𝗻 and across 𝘃𝗮𝗿𝗶𝗼𝘂𝘀 𝗱𝗼𝗺𝗮𝗶𝗻𝘀.

🔷 Below screenshots are ChatGPT’s response via API call from Power Automate Desktop.

Just like the other use cases I have shared earlier, a 𝗸𝗲𝘆 𝘁𝗶𝗽 here is to suffix the below text to the original text while calling the API

[“Please translate the above to <Name_Of_Supported_Language>”]

Refer highlighted in screenshots.

🔷 Can be used to translate from any of the 109 supported languages to any other

 

 

VJR_0-1702549101586.png

 

VJR_1-1702549122180.png

 

 

 

 

VJR
Multi Super User
Multi Super User

𝗨𝘀𝗲 𝗖𝗮𝘀𝗲 𝟮: 𝗣𝗼𝘄𝗲𝗿 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗲 𝗗𝗲𝘀𝗸𝘁𝗼𝗽 + 𝗚𝗣𝗧

𝗧𝗶𝘁𝗹𝗲: Extract key value pairs from unstructured data

 

🔹Use it with the "Create text with GPT" action of Power Automate Desktop

Or

🔹Call GPT OpenAI API from Power Automate Desktop

https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Integrating-ChatGPT-with-Power-Automate-...

 

 

𝙒𝙤𝙧𝙠𝙛𝙡𝙤𝙬 𝙤𝙛 𝙍𝙋𝘼 𝙗𝙤𝙩:

𝗘𝘅𝗮𝗺𝗽𝗹𝗲 𝟭: 𝗜𝗧 𝗦𝘂𝗽𝗽𝗼𝗿𝘁

𝟭. 𝗥𝗣𝗔 𝗯𝗼𝘁: Power Automate Desktop (PAD) reads the above sources using API or via UI interaction or OCR.

𝟮. 𝗦𝗼𝘂𝗿𝗰𝗲 𝗰𝗼𝗻𝘁𝗮𝗶𝗻𝘀 𝗯𝗲𝗹𝗼𝘄 𝘁𝗲𝘅𝘁:
𝘋𝘦𝘢𝘳 𝘚𝘶𝘱𝘱𝘰𝘳𝘵,
𝘐 𝘢𝘮 𝘩𝘢𝘷𝘪𝘯𝘨 𝘢𝘯 𝘪𝘴𝘴𝘶𝘦 𝘸𝘪𝘵𝘩 𝘮𝘺 𝘤𝘰𝘮𝘱𝘶𝘵𝘦𝘳. 𝘛𝘩𝘦 𝘴𝘤𝘳𝘦𝘦𝘯 𝘬𝘦𝘦𝘱𝘴 𝘧𝘳𝘦𝘦𝘻𝘪𝘯𝘨 𝘢𝘯𝘥 𝘐 𝘤𝘢𝘯'𝘵 𝘴𝘦𝘦𝘮 𝘵𝘰 𝘧𝘪𝘯𝘥 𝘢 𝘴𝘰𝘭𝘶𝘵𝘪𝘰𝘯. 𝘐 𝘩𝘢𝘷𝘦 𝘵𝘳𝘪𝘦𝘥 𝘳𝘦𝘴𝘵𝘢𝘳𝘵𝘪𝘯𝘨 𝘵𝘩𝘦 𝘤𝘰𝘮𝘱𝘶𝘵𝘦𝘳 𝘴𝘦𝘷𝘦𝘳𝘢𝘭 𝘵𝘪𝘮𝘦𝘴 𝘣𝘶𝘵 𝘵𝘩𝘦 𝘱𝘳𝘰𝘣𝘭𝘦𝘮 𝘱𝘦𝘳𝘴𝘪𝘴𝘵𝘴. 𝘔𝘺 𝘤𝘰𝘮𝘱𝘶𝘵𝘦𝘳 𝘮𝘰𝘥𝘦𝘭 𝘪𝘴 𝘋𝘦𝘭𝘭 𝘐𝘯𝘴𝘱𝘪𝘳𝘰𝘯 15 𝘢𝘯𝘥 𝘵𝘩𝘦 𝘰𝘱𝘦𝘳𝘢𝘵𝘪𝘯𝘨 𝘴𝘺𝘴𝘵𝘦𝘮 𝘪𝘴 𝘞𝘪𝘯𝘥𝘰𝘸𝘴 10. 𝘗𝘭𝘦𝘢𝘴𝘦 𝘩𝘦𝘭𝘱 𝘮𝘦 𝘳𝘦𝘴𝘰𝘭𝘷𝘦 𝘵𝘩𝘪𝘴 𝘪𝘴𝘴𝘶𝘦 𝘢𝘴 𝘴𝘰𝘰𝘯 𝘢𝘴 𝘱𝘰𝘴𝘴𝘪𝘣𝘭𝘦.
𝘛𝘩𝘢𝘯𝘬 𝘺𝘰𝘶.
𝘝𝘪𝘫𝘢𝘺

𝟯. 𝗥𝗣𝗔 𝗯𝗼𝘁:
Sends the above text to ChatGPT suffixed as:
[Can you extract the key value pairs of the above text in Json format]

𝟰. 𝗥𝗲𝘀𝗽𝗼𝗻𝘀𝗲 𝗳𝗿𝗼𝗺 𝗖𝗵𝗮𝘁𝗚𝗣𝗧:
The corresponding key value pair of the above text in JSON.

𝟱. 𝗥𝗣𝗔 𝗯𝗼𝘁:
🔹"Convert JSON to Custom Object" - This is an action in Power Automate Desktop.
🔹RPA bot creates a ticket based on the key value pairs using API or UI interaction.

𝟲. 𝗙𝗶𝗻𝗮𝗹 𝗢𝘂𝘁𝗽𝘂𝘁 𝗮𝘀 𝗸𝗲𝘆 𝘃𝗮𝗹𝘂𝗲 𝗽𝗮𝗶𝗿𝘀:

VJR_0-1702548766962.png

 




𝗘𝘅𝗮𝗺𝗽𝗹𝗲 𝟮: 𝗥𝗲𝗰𝗲𝗶𝗽𝘁 𝗽𝗿𝗼𝗰𝗲𝘀𝘀𝗶𝗻𝗴
𝗜𝗻𝗽𝘂𝘁 𝘀𝗲𝗻𝘁 𝗯𝘆 𝗥𝗣𝗔:
"ABC Supermarket
1234 Main Street
Anytown, USA 12345

Date: 01/20/2023
Time: 11:45 AM
Receipt No.: 123456789

Item Quantity Price
Product A 1 $10.00
Product B 2 $5.00 each
Product C 3 $3.00 each

Subtotal: $32.00
Tax: $2.56
Total: $34.56

Payment Method: Visa
Card Number: **** **** **** 1234
Authorization Code: 123456

Thank you for shopping at ABC Supermarket!

Visit us again soon."
[Can you extract the key value pairs of the above text in Json format]

𝗙𝗶𝗻𝗮𝗹 𝗢𝘂𝘁𝗽𝘂𝘁 𝗮𝘀 𝗸𝗲𝘆 𝘃𝗮𝗹𝘂𝗲 𝗽𝗮𝗶𝗿𝘀:

VJR_1-1702548804196.png

 



𝗘𝘅𝗮𝗺𝗽𝗹𝗲 𝟯: 𝗦𝗮𝗹𝗲𝘀/𝗢𝗿𝗱𝗲𝗿 𝗣𝗿𝗼𝗰𝗲𝘀𝘀𝗶𝗻𝗴
𝗜𝗻𝗽𝘂𝘁 𝘀𝗲𝗻𝘁 𝗯𝘆 𝗥𝗣𝗔:
𝘋𝘦𝘢𝘳 𝘚𝘢𝘭𝘦𝘴,
𝘐 𝘸𝘰𝘶𝘭𝘥 𝘭𝘪𝘬𝘦 𝘵𝘰 𝘱𝘭𝘢𝘤𝘦 𝘢𝘯 𝘰𝘳𝘥𝘦𝘳 𝘧𝘰𝘳 𝘵𝘩𝘦 𝘧𝘰𝘭𝘭𝘰𝘸𝘪𝘯𝘨 𝘪𝘵𝘦𝘮𝘴: 10 𝘶𝘯𝘪𝘵𝘴 𝘰𝘧 𝘗𝘳𝘰𝘥𝘶𝘤𝘵 𝘈 (𝘚𝘒𝘜: 𝘈123) 5 𝘶𝘯𝘪𝘵𝘴 𝘰𝘧 𝘗𝘳𝘰𝘥𝘶𝘤𝘵 𝘉 (𝘚𝘒𝘜: 𝘉456) 20 𝘶𝘯𝘪𝘵𝘴 𝘰𝘧 𝘗𝘳𝘰𝘥𝘶𝘤𝘵 𝘊 (𝘚𝘒𝘜: 𝘊789) 𝘗𝘭𝘦𝘢𝘴𝘦 𝘭𝘦𝘵 𝘮𝘦 𝘬𝘯𝘰𝘸 𝘵𝘩𝘦 𝘵𝘰𝘵𝘢𝘭 𝘤𝘰𝘴𝘵 𝘰𝘧 𝘵𝘩𝘦 𝘰𝘳𝘥𝘦𝘳 𝘢𝘯𝘥 𝘵𝘩𝘦 𝘦𝘴𝘵𝘪𝘮𝘢𝘵𝘦𝘥 𝘥𝘦𝘭𝘪𝘷𝘦𝘳𝘺 𝘵𝘪𝘮𝘦.
𝘝𝘪𝘫𝘢𝘺
[Can you extract the key value pairs of the above text in Json format]

𝗙𝗶𝗻𝗮𝗹 𝗢𝘂𝘁𝗽𝘂𝘁:

VJR_2-1702548830240.png

 

 

 

 

VJR
Multi Super User
Multi Super User

𝗨𝘀𝗲 𝗖𝗮𝘀𝗲 𝟯: 𝗣𝗼𝘄𝗲𝗿 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗲 𝗗𝗲𝘀𝗸𝘁𝗼𝗽 + 𝗚𝗣𝗧

𝗧𝗶𝘁𝗹𝗲: Find out the category / department name / routing area of service and expedite input queries.

 

🔹Use it with the "Create text with GPT" action of Power Automate Desktop

Or

🔹Call GPT OpenAI API from Power Automate Desktop

https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Integrating-ChatGPT-with-Power-Automate-...



𝗦𝗼𝘂𝗿𝗰𝗲: Incoming email body / Ticket description / Any field on any application that is readable by RPA

𝙒𝙤𝙧𝙠𝙛𝙡𝙤𝙬 𝙤𝙛 𝙍𝙋𝘼 𝙗𝙤𝙩:

𝗘𝘅𝗮𝗺𝗽𝗹𝗲:

𝟭. 𝗥𝗣𝗔 𝗯𝗼𝘁: Power Automate Desktop (PAD) reads the above sources using API or via UI interaction

𝟮. 𝗦𝗼𝘂𝗿𝗰𝗲 𝗰𝗼𝗻𝘁𝗮𝗶𝗻𝘀 𝗯𝗲𝗹𝗼𝘄 𝘁𝗲𝘅𝘁:
"𝘏𝘦𝘭𝘭𝘰, 𝘐 𝘩𝘢𝘷𝘦 𝘳𝘦𝘤𝘦𝘯𝘵𝘭𝘺 𝘳𝘦𝘤𝘦𝘪𝘷𝘦𝘥 𝘮𝘺 𝘮𝘰𝘯𝘵𝘩𝘭𝘺 𝘪𝘯𝘷𝘰𝘪𝘤𝘦 𝘢𝘯𝘥 𝘯𝘰𝘵𝘪𝘤𝘦𝘥 𝘵𝘩𝘢𝘵 𝘵𝘩𝘦 𝘢𝘮𝘰𝘶𝘯𝘵 𝘤𝘩𝘢𝘳𝘨𝘦𝘥 𝘪𝘴 𝘪𝘯𝘤𝘰𝘳𝘳𝘦𝘤𝘵. 𝘐 𝘩𝘢𝘷𝘦 𝘤𝘩𝘦𝘤𝘬𝘦𝘥 𝘮𝘺 𝘶𝘴𝘢𝘨𝘦 𝘢𝘯𝘥 𝘪𝘵 𝘴𝘦𝘦𝘮𝘴 𝘵𝘩𝘢𝘵 𝘐 𝘩𝘢𝘷𝘦 𝘣𝘦𝘦𝘯 𝘤𝘩𝘢𝘳𝘨𝘦𝘥 𝘧𝘰𝘳 𝘴𝘦𝘳𝘷𝘪𝘤𝘦𝘴 𝘵𝘩𝘢𝘵 𝘐 𝘩𝘢𝘷𝘦 𝘯𝘰𝘵 𝘶𝘴𝘦𝘥. 𝘊𝘰𝘶𝘭𝘥 𝘺𝘰𝘶 𝘱𝘭𝘦𝘢𝘴𝘦 𝘵𝘢𝘬𝘦 𝘢 𝘭𝘰𝘰𝘬 𝘢𝘵 𝘮𝘺 𝘢𝘤𝘤𝘰𝘶𝘯𝘵 𝘢𝘯𝘥 𝘳𝘦𝘴𝘰𝘭𝘷𝘦 𝘵𝘩𝘪𝘴 𝘪𝘴𝘴𝘶𝘦? 𝘐 𝘸𝘰𝘶𝘭𝘥 𝘢𝘭𝘴𝘰 𝘭𝘪𝘬𝘦 𝘵𝘰 𝘳𝘦𝘤𝘦𝘪𝘷𝘦 𝘢𝘯 𝘶𝘱𝘥𝘢𝘵𝘦𝘥 𝘪𝘯𝘷𝘰𝘪𝘤𝘦 𝘳𝘦𝘧𝘭𝘦𝘤𝘵𝘪𝘯𝘨 𝘵𝘩𝘦 𝘤𝘰𝘳𝘳𝘦𝘤𝘵 𝘤𝘩𝘢𝘳𝘨𝘦𝘴. 𝘛𝘩𝘢𝘯𝘬 𝘺𝘰𝘶 𝘧𝘰𝘳 𝘺𝘰𝘶𝘳 𝘢𝘴𝘴𝘪𝘴𝘵𝘢𝘯𝘤𝘦."

𝟯. 𝗥𝗣𝗔 𝗯𝗼��:
Sends the above text to ChatGPT suffixed as:
[Give the department name for the above in short]

𝟰. 𝗥𝗲𝘀𝗽𝗼𝗻𝘀𝗲 𝗳𝗿𝗼𝗺 𝗖𝗵𝗮𝘁𝗚𝗣𝗧:
Billing Department (attached screenshot)

𝟱. 𝗥𝗣𝗔 𝗕𝗼𝘁:
Can create a ticket in the ticketing system for the appropriate department
𝗼𝗿 forward the email to the email Id of the respective department
𝗼𝗿 a human can validate this and take the appropriate action
𝗼𝗿 all of the above.


𝗔 𝗸𝗲𝘆 𝗽𝗼𝗶𝗻𝘁:
It is vital to know how to send the text to ChatGPT.
In the suffix text for the above example, it is important to mention the keywords as "in short" else ChatGPT responds with a long text.
[Give the department name for the above 𝗶𝗻 𝘀𝗵𝗼𝗿𝘁]
Notice the same in the other screenshots attached.

🔹Attached are some examples that I sent to the API through Power Automate Desktop
🔹You can also mention "category name" in place of department.
[Give the department / 𝗰𝗮𝘁𝗲𝗴𝗼𝗿𝘆 𝗻𝗮𝗺𝗲 for the above in short]
One Example attached.

 

 

 

 

 

 

VJR_1-1702548059156.png

 

VJR_2-1702548080985.png

 

 

VJR_3-1702548101389.png

 

 

VJR_4-1702548129026.png

 

 

VJR_5-1702548150902.png

 

 

 

 

 

 

 

 

VJR
Multi Super User
Multi Super User

𝐔𝐬𝐞𝐂𝐚𝐬𝐞 𝟏: 𝐏𝐨𝐰𝐞𝐫 𝐀𝐮𝐭𝐨𝐦𝐚𝐭𝐞 𝐃𝐞𝐬𝐤𝐭𝐨𝐩 + 𝐆𝐏𝐓

𝗧𝗶𝘁𝗹𝗲: 𝖤𝗆𝗈𝗍𝗂𝗈𝗇 𝖺𝗇𝖽 𝖲𝖾𝗇𝗍𝗂𝗆𝖾𝗇𝗍 𝖠𝗇𝖺𝗅𝗒𝗌𝗂𝗌 𝗎𝗌𝗂𝗇𝗀 𝖦𝖯𝖳

 

VJR_1-1702547513591.png

 

 


🔹Use it with the "Create text with GPT" action of Power Automate Desktop

Or

🔹Call GPT OpenAI API from Power Automate Desktop

https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Integrating-ChatGPT-with-Power-Automate-...

 


𝗪𝗼𝗿𝗸𝗳𝗹𝗼𝘄 𝗼𝗳 𝗥𝗣𝗔 𝗯𝗼𝘁: Example 1

𝟭. 𝗦𝗼𝘂𝗿𝗰𝗲: Incoming email body / Ticket description / Any field on any application readable by RPA

𝟮. 𝗥𝗣𝗔 𝗯𝗼𝘁: Power Automate Desktop (PAD) reads the above sources using API or via screen scraping.

𝟯. 𝗠𝗲𝗻𝘁𝗶𝗼𝗻𝗲𝗱 𝗯𝘆 𝗮 𝗵𝘂𝗺𝗮𝗻 𝗶𝗻 𝗮𝗻𝘆 𝗼𝗳 𝘁𝗵𝗲 𝗮𝗯𝗼𝘃𝗲 𝘀𝗼𝘂𝗿𝗰𝗲𝘀:
"𝘛𝘩𝘦 𝘱𝘳𝘰𝘥𝘶𝘤𝘵 𝘐 𝘳𝘦𝘤𝘦𝘪𝘷𝘦𝘥 𝘸𝘢𝘴 𝘥𝘦𝘧𝘦𝘤𝘵𝘪𝘷𝘦 𝘢𝘯𝘥 𝘵𝘩𝘦 𝘤𝘶𝘴𝘵𝘰𝘮𝘦𝘳 𝘴𝘦𝘳𝘷𝘪𝘤𝘦 𝘵𝘦𝘢𝘮 𝘸𝘢𝘴 𝘶𝘯𝘳𝘦𝘴𝘱𝘰𝘯𝘴𝘪𝘷𝘦 𝘢𝘯𝘥 𝘶𝘯𝘩𝘦𝘭𝘱𝘧𝘶𝘭 𝘸𝘩𝘦𝘯 𝘐 𝘳𝘦𝘢𝘤𝘩𝘦𝘥 𝘰𝘶𝘵 𝘧𝘰𝘳 𝘢𝘴𝘴𝘪𝘴𝘵𝘢𝘯𝘤𝘦. 𝘐 𝘢𝘮 𝘦𝘹𝘵𝘳𝘦𝘮𝘦𝘭𝘺 𝘥𝘪𝘴𝘴𝘢𝘵𝘪𝘴𝘧𝘪𝘦𝘥 𝘸𝘪𝘵𝘩 𝘮𝘺 𝘦𝘹𝘱𝘦𝘳𝘪𝘦��𝘤𝘦 𝘢𝘯𝘥 𝘸𝘪𝘭𝘭 𝘯𝘰𝘵 𝘣𝘦 𝘱𝘶𝘳𝘤𝘩𝘢𝘴𝘪𝘯𝘨 𝘧𝘳𝘰𝘮 𝘵𝘩𝘪𝘴 𝘤𝘰𝘮𝘱𝘢𝘯𝘺 𝘢𝘨𝘢𝘪𝘯."

𝟰. 𝗥𝗣𝗔 𝗯𝗼𝘁:
Sends the above text to ChatGPT with a question suffixed as:
[Can you give me the emotion and sentiment analysis of the above text each in one word?]

𝟱. 𝗥𝗲𝘀𝗽𝗼𝗻𝘀𝗲 𝗳𝗿𝗼𝗺 𝗖𝗵𝗮𝘁𝗚𝗣𝗧:
Emotion: Frustration
Sentiment: Negative

𝗛𝘂𝗺𝗮𝗻 𝘁𝗮𝗸𝗲𝘀 𝗽𝗼𝘀𝘀𝗶𝗯𝗹𝗲 𝗙𝗼𝗹𝗹𝗼𝘄-𝘂𝗽 𝗮𝗰𝘁𝗶𝗼𝗻𝘀:
🔹Give a call to the sender
🔹Elevate the customer service
🔹‘Up’ the priority of the ticket (𝗥𝗣𝗔 can do this)
🔹Expedite the resolution of the sender’s issue (𝗥𝗣𝗔 can assist on this)


𝗞𝗲𝘆 𝘁𝗶𝗽:
When you pass this from RPA to ChatGPT, it is 𝘃𝗶𝘁𝗮𝗹 to mention as “𝘦𝘢𝘤𝘩 𝘪𝘯 𝘰𝘯𝘦 𝘸𝘰𝘳𝘥”, else it returns a long answer.
[Can you give me the emotion and sentiment analysis of the above text 𝗲𝗮𝗰𝗵 𝗶𝗻 𝗼𝗻𝗲 𝘄𝗼𝗿𝗱?]


Example 2:
𝗜𝗻𝗽𝘂𝘁 𝘀𝗲𝗻𝘁 𝗯𝘆 𝗥𝗣𝗔:
"𝘐 𝘢𝘮 𝘦𝘹𝘵𝘳𝘦𝘮𝘦𝘭𝘺 𝘴𝘢𝘵𝘪𝘴𝘧𝘪𝘦𝘥 𝘸𝘪𝘵𝘩 𝘵𝘩𝘦 𝘴𝘦𝘳𝘷𝘪𝘤𝘦 𝘐 𝘳𝘦𝘤𝘦𝘪𝘷𝘦𝘥. 𝘛𝘩𝘦 𝘤𝘶𝘴𝘵𝘰𝘮𝘦𝘳 𝘴𝘦𝘳𝘷𝘪𝘤𝘦 𝘳𝘦𝘱𝘳𝘦𝘴𝘦𝘯𝘵𝘢𝘵𝘪��𝘦 𝘸𝘢𝘴 𝘷𝘦𝘳𝘺 𝘩𝘦𝘭𝘱𝘧𝘶𝘭 𝘢𝘯𝘥 𝘳𝘦𝘴𝘰𝘭𝘷𝘦𝘥 𝘮𝘺 𝘪𝘴𝘴𝘶𝘦 𝘦𝘧𝘧𝘪𝘤𝘪𝘦𝘯𝘵𝘭𝘺. 𝘐 𝘸𝘪𝘭𝘭 𝘥𝘦𝘧𝘪𝘯𝘪𝘵𝘦𝘭𝘺 𝘣𝘦 𝘳𝘦𝘵𝘶𝘳𝘯𝘪𝘯𝘨 𝘢𝘴 𝘢 𝘤𝘶𝘴𝘵𝘰𝘮𝘦𝘳."

𝗢𝘂𝘁𝗽𝘂𝘁 𝗳𝗿𝗼𝗺 𝗖𝗵𝗮𝘁𝗚𝗣𝗧:
Emotion: Pleased
Sentiment: Positive


Example 3:
𝗜𝗻𝗽𝘂𝘁 𝘀𝗲𝗻𝘁 𝗯𝘆 𝗥𝗣𝗔:
"𝘛𝘩𝘦 𝘱𝘳𝘰𝘥𝘶𝘤𝘵 𝘮𝘦𝘵 𝘮𝘺 𝘦𝘹𝘱𝘦𝘤𝘵𝘢𝘵𝘪𝘰𝘯𝘴 𝘢𝘯𝘥 𝘵𝘩𝘦 𝘤𝘶𝘴𝘵𝘰𝘮𝘦𝘳 𝘴𝘦𝘳𝘷𝘪𝘤𝘦 𝘵𝘦𝘢𝘮 𝘸𝘢𝘴 𝘳𝘦𝘴𝘱𝘰𝘯𝘴𝘪𝘷𝘦 𝘸𝘩𝘦𝘯 𝘐 𝘳𝘦𝘢𝘤𝘩𝘦𝘥 𝘰𝘶𝘵 𝘧𝘰𝘳 𝘢𝘴𝘴𝘪𝘴𝘵𝘢𝘯𝘤𝘦. 𝘐 𝘢𝘮 𝘺𝘦𝘵 𝘵𝘰 𝘥𝘦𝘵𝘦𝘳𝘮𝘪𝘯𝘦 𝘢𝘯𝘥 𝘯𝘰𝘵 𝘺𝘦𝘵 𝘴𝘶𝘳𝘦 𝘢𝘣𝘰𝘶𝘵 𝘮𝘺 𝘦𝘹𝘱𝘦𝘳𝘪𝘦𝘯𝘤𝘦"

𝗢𝘂𝘁𝗽𝘂𝘁 𝗳𝗿𝗼𝗺 𝗖𝗵𝗮𝘁𝗚𝗣𝗧:
Emotion: Indifferent
Sentiment: Neutral


Final Words:

🔹These are just examples but the real idea is to use it in any industry where you pass a text to evaluate the emotions and sentiments behind it and take the necessary course of action.

PowerAI
New Member

In preparing for the start of a new school year, I sought to improve the workflow efficiency of our current behavior management system. As a science teacher, I was not confident in the use of Power Automate in the beginning, but I later found it to be intuitive to use and very helpful.

Read more...

annetoal
Super User
Super User

Here's how to batch multiple notifications to the same person

Read more...

ManishSolanki
Super User
Super User

How to convert CSV file to array of JSON objects? This tutorial is best suited for large CSV file. Check out here!

Read more...

ManishSolanki
Super User
Super User

How to join arrays efficiently in Power Automate? Check this out!

Read more...

ManishSolanki
Super User
Super User

How to filter the records by single select choice column text in Dataverse? Check this out!

Read more...

Nived_Nambiar
Super User
Super User

Hi all,

 

Here I am sharing how easily we can update an array property values using another array. This approach would help to avoid long way of updating array which involves loops. Here we will see how we will do it with select action itself. Kindly go through this article to get full idea on how we will be doing this !

Read more...

Agnius
Super User
Super User

Most RPA best practice articles and videos suggest using an external config file. And they are definitely right at that. But what I think they got completely wrong is the type of file to use, as they usually suggest using Excel worksheets.

Excel might seem sexy (I honestly never thought I would ever find proper context to say this), as users are used to it and thus it makes it easy to teach entry-level developers to use it.  But I think there is a much better alternative to that and this article describes how and why to use it. 

Read more...

ManishSolanki
Super User
Super User

What do you do when you want to extract data from html table in the email body? Check this out!

Read more...

Helpful resources

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/
Join Blog
Interested in blogging for the community? Let us know.