I needed to contact almost 200 people and wanted to give personal touch. I wanted to do it differently and not using mass email. Email is so nineties. I copy-pasted users from Outlook to notepad and the format was Firstname Lastname <[email protected]>

I created solution Contact Machine and added two Power Automate flows there

  • People slingshot
  • Contact Power Platform People CHILD

People slingshot Power Automate flow

People slingshot is the orchestrator that has the string value copied from Outlook. I split emails it into array variable, which I loop with Apply to each control. For each person string I parse the email and then start child flow with the email value.

Challenge #1 tackled by using child flow

I could do all logic inside this flow, but problem is, that I’m using variables and therefore I need to set concurrency for each loop to 1. This means that it would wait first person to reply before sending the messages to next person. And if someone is away (does not respond), the process would wait for the one person and most of the people would not get the message at all or maybe in weeks.

Contact Power Platform People CHILD Power Automate flow will do the functionality for each person

First it will reply to the parent flow so that parent flow will continue to next in it’s each loop. Otherwise we would have the same problem as mentioned in challenge #1 why I split this solution into two flows.

Then I got token for my user, so it is easy to click it and see my details when I introduced me in the message “Hello, this is PPbot made by Karl-Johan Spiik“, then followed by the actual questions (Post a choice of options as the Flow bot to a user -action). If someone commented something, it to sends the comments to myself as teams message.

Then switch for users choice: if Yes, change variable to TRUE, if no do nothing since the variable initial value is FALSE and “Tell me more” choice goes to default path which gives user more info and asks again the same question but offers only Yes or No choices. Then same stuff again with comments delivering to me if there are any.

Check whether add user to team or not.
If no, then tell thank you for your time.
If yes, add user to team, inform me with message that who is added and then post message to the user, that you are added to the team and here is link to a poll, where we decide the next meeting date.

End of story, building this took one hour.