Setting Up Business Process Automation with Power Automate
Power Automate (formerly Microsoft Flow) is Microsoft's automation platform integrated into the Microsoft 365 ecosystem. Optimal for companies working with SharePoint, Teams, Outlook, Excel, Dynamics 365, and other Microsoft products.
Flow Types
Automated Flow — triggered by an event (new email, new SharePoint row, HTTP request).
Scheduled Flow — runs on schedule (cron tasks).
Instant Flow — triggered manually or by button from Teams/mobile app.
Desktop Flow (RPA) — automates desktop applications (robotization).
Example: Processing Application Forms
[Trigger: Microsoft Forms — new response]
│
[Get response details]
│
[Condition: Request Type == "Urgent"]
│ │
Yes No
│ │
[Send email [Add row to
to manager@] Excel Online]
│ │
[Post message [Send Teams
to Teams #urgent] notification]
│
[Create task in
Planner]
HTTP Request — Integration with External APIs
{
"method": "POST",
"uri": "https://api.example.com/orders",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer @{variables('apiToken')}"
},
"body": {
"orderId": "@{triggerBody()?['id']}",
"customerEmail": "@{triggerBody()?['customer']?['email']}",
"amount": "@{triggerBody()?['total']}",
"createdAt": "@{utcNow()}"
}
}
Expressions — Data Transformation
Power Automate uses an expression language (Power Fx / formula language):
// Current date in dd.MM.yyyy format
formatDateTime(utcNow(), 'dd.MM.yyyy')
// Concatenation
concat(triggerBody()?['firstName'], ' ', triggerBody()?['lastName'])
// Conditional value
if(equals(triggerBody()?['status'], 'vip'), 'Priority', 'Standard')
// Working with arrays
length(body('Get_items')?['value'])
first(body('Get_items')?['value'])
// Format number
formatNumber(triggerBody()?['amount'], 'N2', 'en-US')
Apply to Each (Iteration)
[SharePoint: Get Items from requests list
where Status == 'New']
│
[Apply to Each: item in body('Get_Items')?['value']]
│
├── [Update Item: Status = 'Processing']
├── [Send Email: notification to client]
└── [HTTP: POST to CRM API]
Approvals (Approval Workflows)
Built-in module for document approval:
[Trigger: SharePoint — new document uploaded]
│
[Start and wait for an approval]
Approvers: [email protected], [email protected]
Title: Approve @{triggerBody()?['Name']}
Details: @{triggerBody()?['Description']}
│
[Condition: outcome == 'Approve']
│ │
Yes No
│ │
[Move file [Send email:
to /Approved] rejected]
Integration with SharePoint and Teams
Power Automate is the native platform for SharePoint automations. Webhook for Teams:
// Post adaptive card to Teams channel
{
"type": "message",
"attachments": [{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"body": [
{ "type": "TextBlock", "text": "New request #@{triggerBody()?['id']}", "weight": "Bolder" },
{ "type": "TextBlock", "text": "@{triggerBody()?['description']}" }
],
"actions": [
{ "type": "Action.OpenUrl", "title": "Open", "url": "https://portal/requests/@{triggerBody()?['id']}" }
]
}
}]
}
Timeframe
Simple Flow with 3–5 steps — 1 day. Complex with conditions, iteration, and approvals — 3–5 days.







