Daily Activity Log Email
Every weekday at 18:20 Rome time it logs the day's Planner activity and drafts the team lead's summary email.
Use case
End-of-day reporting is the first thing that slips when the day runs long. This flow reads what actually changed in Planner, writes it to the SAL Report list for the record, and leaves a ready-to-send Outlook draft so the lead only reviews and clicks send.
Who uses it
Team leads and delivery managers who owe a daily status upward.
Real scenario
At 18:20 on a Thursday the flow lists nine tasks touched that day, writes them to SAL Report, and creates a draft email titled 'Daily activity — 27 Aug'. The lead opens Outlook, skims, sends.
Time saved
Before
~15 min per day assembling and writing the summary
After
~2 min reviewing a prepared draft
Time saved
~15 min per day
How it works
A recurrence trigger runs Monday to Friday at 18:20 in the Europe/Rome timezone. List tasks pulls the plan, a filter keeps items updated today, Apply to each appends HTML rows and creates SAL Report entries, and Create event/Send an email (V2) with 'Save as draft' leaves the summary in the lead's mailbox.
Step-by-step build
- 1
Create a Scheduled cloud flow with a Recurrence trigger: Frequency Day, Interval 1, Time zone (UTC+01:00) Amsterdam/Berlin/Rome, At these hours 18, At these minutes 20, On these days Monday to Friday.
- 2
Add Initialize variable 'ReportHTML' (String) at top level, immediately after the trigger.
- 3
Add Planner → List tasks for the plan you track.
- 4
Add Data Operation → Filter array on the tasks, condition: the task's completedDateTime or lastModifiedDateTime is greater than or equal to startOfDay(utcNow()).
- 5
Add Apply to each over the filtered body. Inside, append an HTML <tr> with title, percent complete and due date to ReportHTML.
- 6
Still inside the loop, add SharePoint → Create item on the 'SAL Report' list with Title, TaskStatus, LogDate = utcNow() and Owner.
- 7
After the loop add Compose 'EmailBody' wrapping ReportHTML in a table with a heading containing formatDateTime(utcNow(),'dd MMM yyyy').
- 8
Add Office 365 Outlook → Send an email (V2), set To to the team lead, Subject to 'Daily activity — [date]', Body to EmailBody, and in Advanced options set Importance Normal. To leave a draft instead, use the Graph-based 'Create draft' pattern via Send an HTTP request with Office 365 Outlook.
- 9
Add a Condition before sending: if the filtered array is empty, terminate as Succeeded instead of emailing an empty report.
Copilot prompt
Paste this into Power Automate Copilot to scaffold the flow.
Create a scheduled cloud flow that runs Monday to Friday at 18:20 in the Rome timezone. Initialize a string variable ReportHTML, list Planner tasks, filter to tasks modified today, loop them appending HTML table rows to ReportHTML and creating an item in the SharePoint list 'SAL Report', then compose an HTML summary and send it by email to the team lead, terminating early if nothing changed today.
Screenshots
Captures are added as each step is published.
Official documentation
Explore more flows
Meeting History Extractor
Captures the meeting transcript and stores it in SharePoint as the shared memory every other flow reads.
View module LivePre-Meeting Agenda Injector
Fifteen minutes before a meeting starts, it writes a full HTML agenda directly into the Outlook invite.
View module LiveTask Extraction from Transcript
Turns pipe-delimited transcript lines into assigned Planner tasks with real Azure AD owners.
View module LiveWeekly Status Report
Builds done / overdue / in-progress tables, posts them to Teams and archives a CSV in SharePoint.
View module LiveDeadline Urgency Monitor
A daily 08:00 Teams digest that colour-codes every approaching deadline — and stays silent at weekends.
View module LiveColumn Name Monitor
Hourly SharePoint schema watchdog that catches renamed columns before they silently break every flow.
View module