Logan's Analytics Bootcamp
Dashboard β€Ί Phase 3: Power Automate
M3.1

Power Automate Fundamentals

⏱ 5 hoursπŸ“… Week 15❓ 4 quiz questions
Phase 3 goal

Replace manual chasing, copying, and emailing with flows that move data between Excel, SharePoint, Teams/Outlook, and Power BI, and that alert people when program metrics cross thresholds.

Licensing note: Standard connectors (SharePoint, Excel Online (Business), Outlook, Teams, Approvals, Power BI) come with most Microsoft 365 licenses. Premium connectors (e.g., HTTP, SQL, Dataverse in some cases) need extra licensing. Your environment may also have DLP policies that block some connector combinations. Check your tenant before you design.

🎯 Learning objectives

Tick each one when you can actually do it.

πŸ’‘ Key concepts

  • Flow types: Automated (event-triggered), Instant (manual button), Scheduled (recurrence), Desktop flows (RPA for legacy apps; Power Automate Desktop).
  • Building blocks: Trigger β†’ Actions. Condition, Switch, Apply to each, Do until, Scope.
  • Dynamic content vs. expressions. Common expressions:
    • utcNow(), convertFromUtc(utcNow(), 'Eastern Standard Time', 'yyyy-MM-dd')
    • formatDateTime(triggerOutputs()?['body/Modified'], 'MMM d, yyyy')
    • addDays(utcNow(), 30), dayOfWeek(utcNow())
    • if(greater(variables('slip'), 30), 'At Risk', 'On Track')
    • length(body('Filter_array')), empty(), coalesce()
    • float(), int(), string(), concat()
  • Data operations: Compose, Select (reshape arrays), Filter array, Create HTML table, Create CSV table, Parse JSON.
  • Debugging: Run history β†’ inspect the inputs and outputs of each action. "Peek code" shows the underlying JSON definition.
  • Naming conventions: Rename every action ("Get late milestones", not "List rows present in a table 2"). Expressions reference action names.

πŸ›  Hands-on exercise: Weekly Reminder Flow

Data: none (warm-up).

  1. Scheduled flow: every Monday 7:00 AM ET.
  2. Compose a message with the current fiscal year and FY week. FY expression idea: if(greaterOrEquals(int(formatDateTime(utcNow(),'MM')),10), add(int(formatDateTime(utcNow(),'yyyy')),1), int(formatDateTime(utcNow(),'yyyy'))).
  3. Post it to yourself in Teams (Flow bot) or send an email.
  4. Break it on purpose (bad expression), then read the run history error.

πŸ“¦ Mini-project: Status Input Reminder

A scheduled flow on business day 3 of each month (use a daily recurrence + condition) that emails each program's IPT lead (from a small Excel table: ProgramID, LeadName, LeadEmail) a reminder to submit their status drop, with a link to the SharePoint folder.

🧠 Self-check quiz

Answer in your own words, then check. Grade yourself honestly; your score is saved.

Q3.1.1
What's the difference between a trigger and an action?
Write at least a few words to unlock.
Q3.1.2
Why rename actions?
Write at least a few words to unlock.
Q3.1.3
Where do you look first when a flow fails?
Write at least a few words to unlock.
Q3.1.4
What does the Select action do?
Write at least a few words to unlock.