Automate Your Project Tracker

Migrate an Excel tracker to Microsoft Lists with automated email notifications.

Introduction

30 Second Summary

Project trackers are only useful if people actually check them. When deadlines slip and assignments change, a static spreadsheet can't chase down the right person at the right time.

In this project, you will transform your Excel project tracker into an automated notification system using Microsoft Lists and Power Automate. Your team will receive email alerts for approaching deadlines, new assignments, and status changes without anyone needing to open the spreadsheet.

What You'll Build

A fully automated project notification system that monitors your Microsoft Lists tracker and sends targeted Outlook emails based on deadlines, assignments, and status changes.

By the end of this project, you'll have:

  • A Microsoft Lists project tracker imported from your Excel spreadsheet with proper Person columns and department-filtered views.
  • Three working Power Automate flows that send email notifications for approaching deadlines, new assignments, and status changes.
  • A scalable system where new projects added to the list automatically trigger the right notifications to the right people.
  • Secret Mission: Build a weekly Monday morning digest that emails each department head a summary of all overdue and upcoming projects for their team.

Do I need any specific Microsoft licenses?

You need an active Microsoft 365 subscription that includes SharePoint and Power Automate access. This project uses only standard connectors, which are included with your Microsoft 365 license at no additional cost.

Before We Start

Before We Start...

Prepare and Import Your Excel Data to Microsoft Lists

Your Excel project tracker holds all the data your team needs. The problem is that it sits passively in a file with no way to trigger notifications or automate responses when deadlines approach.

In this step, you'll move your project data into Microsoft Lists. This gives you structured column types and integration with your organization's directory, which Power Automate can use to send targeted notifications.

In this step, get ready to:
  • Format your Excel spreadsheet as an importable table with clean column headers.
  • Import your data into a new Microsoft List on your SharePoint site.
  • Verify that date columns and other types were detected correctly.
Prepare your Excel file for import

Microsoft Lists can import data directly from an Excel file, but the file needs to be formatted as a table first. Tables define clear boundaries that Lists can parse automatically during import.

  • Open your project tracker spreadsheet in Microsoft Excel.
  • Select all the data you want to import (up to the first 5,000 rows).
  • Click the Home tab in the ribbon.
  • Click Format as Table and choose any table style.
  • Confirm the data range in the dialog that appears, then click OK.
  • Review your column headers and ensure they match these names: Projectnr., Activity type, Project description, Gates & Activities, Start Date, Deadline Date, Status, Comment, Responsible, Department.
  • Save the file.

Why format as a table?

Microsoft Lists requires your data to be in an Excel table format for import. Tables give your data clear headers and row boundaries that the import wizard can detect automatically.

Without table formatting, the import wizard won't recognize your data structure and will prompt you to create a table before proceeding.

5,000 row import limit

Microsoft Lists supports importing tables with up to 5,000 rows. If your tracker has more rows, import the first 5,000 for now. You can add new projects directly in Lists going forward.

Create a new Microsoft List from Excel

Now that your Excel file is ready, you'll create a new list and import the data. Microsoft Lists is accessible through the Lists app in Microsoft 365, your SharePoint site, or Microsoft Teams.

  • Open your browser and navigate to lists.microsoft.com.
  • Sign in with your Microsoft 365 account if prompted.
  • Click +New list.
  • Select From Excel.
  • Click Upload file and select your prepared Excel file from your device.
  • Select the table you formatted in the previous substep.
  • Review the detected column types in the preview. Ensure Start Date and Deadline Date show as Date columns.
  • Click Next.
  • In the Name field, enter Product Development Projects.
  • Under Save to, select your SharePoint site.
  • Click Create.

After clicking Create, Microsoft Lists opens your new list populated with data from your spreadsheet.

Other ways to access Microsoft Lists

You can also reach Microsoft Lists from your SharePoint site's home page or from within Microsoft Teams. All three entry points create the same type of list stored on your SharePoint site.

Don't see the table during import?

Make sure you saved your Excel file after formatting it as a table. If the upload button is greyed out, you may lack permission to create lists on the target SharePoint site. Contact your site admin for access.

If the file is still open in Excel on your desktop, try closing it before uploading to avoid file-lock issues.

help me troubleshoot my Microsoft Lists import from Excel

Verify the import and fix column types

The import process detects column types automatically based on your data. Date columns sometimes import as text, so you need to verify they were detected correctly.

  • In your new list, scroll through the first few rows to confirm your data appears correctly.
  • Click on a date value in the Start Date column.
  • If a date picker appears, the column is correctly set as Date/Time. Move on to checking Deadline Date.
  • If no date picker appears (the field acts like plain text), click the column header for Start Date.
  • Select Column settings.
  • Select Edit.
  • Change the column type to Date and Time, then click Save.
  • Repeat the same check for the Deadline Date column.
  • Confirm the Department and Status columns are present with your data.
  • Note that the Responsible column has imported as plain text. This is expected.

Why is Responsible imported as text?

Excel doesn't have the concept of a "Person" column. When you import, people's names come in as plain text strings. In the next step, you'll create a dedicated Person column called "Assigned To" that connects to your organization's directory.

This directory integration is what allows Power Automate to automatically resolve email addresses for notifications.

Dates still showing as text after editing?

If your dates contained inconsistent formats in Excel (e.g., some as text strings, others as Excel date values), the column type change may not convert all values. Go back to your Excel file, ensure all date cells are formatted consistently as dates, then re-import.

help me fix date columns that imported as text in Microsoft Lists

You should now see your Microsoft List with all columns populated and dates displaying in a standard date format.

Your project data is now structured in Microsoft Lists with proper date columns. Next up, you'll add a Person column and create department views so each team can filter for their relevant projects.

Add a Person Column and Create Department Views

Your data is now in Microsoft Lists with proper date columns and a clean structure. The next step is making this list work with automation.

Power Automate needs to know who to email when a deadline approaches or status changes. A plain text "Responsible" column can't resolve to an email address. You need a Person column that connects to your organization's directory, and you need filtered views so each department sees only their own projects.

In this step, get ready to:
  • Add a Person column that integrates with your organization's directory.
  • Convert the Status column to a Choice column for consistent filtering.
  • Create department-specific views and a personal "My Projects" view.
Add an "Assigned To" Person column

A Person column links to your organization's directory. When you assign someone, Microsoft Lists stores their email address, display name, and profile. Power Automate can then use this information to send emails directly to the right person.

  • In your "Product Development Projects" list, click + Add column in the column header row (to the right of your existing columns).
  • Select Person from the column type menu.
  • Name the column Assigned To.
  • In the column settings panel, keep it set to single-person selection (the default).
  • Click Save.

What about the original Responsible column?

Your imported "Responsible" text column stays in the list for reference during the transition. It contains the names as plain text from your Excel file. The new "Assigned To" Person column is what Power Automate will use to resolve email addresses.

Now you need to populate the Person column for your active projects so Power Automate knows who to notify.

  • Click Edit in grid view in the command bar at the top of your list. This lets you edit cells directly without opening each item.
  • Click the Assigned To cell for your first active project.
  • Start typing the person's name. A directory picker appears showing matching people from your organization.
  • Select the correct person from the dropdown.
  • Repeat for each active project in your list. Focus on projects that are not marked as Completed or Cancelled.
  • Click Exit grid view when you are done.

Speed up with grid view

Grid view lets you Tab between cells like a spreadsheet. You can move through the Assigned To column quickly without opening each item individually.

Can't find people in the directory picker?

Make sure you are typing the person's display name or email address. The picker searches your organization's directory, so external contacts won't appear. If you see no results at all, your SharePoint admin may need to verify that the People Picker is configured for your site.

Help me troubleshoot the Person column directory picker.

Create a Choice column for Status

Your Status column likely imported as plain text, which means people can type anything they want. Converting it to a Choice column locks the values to a predefined set. This makes Power Automate conditions reliable because you can match on exact values like "Completed" instead of hoping no one typed "Done" or "Finished" instead.

  • Click the column header for Status.
  • Select Column settings, then Edit.
  • Change the column type to Choice.
  • Add the following values as choices: Not Started, In Progress, On Hold, Completed, Cancelled.
  • Click Save.

After saving, any existing status values that match your choices will map automatically. Values that don't match will remain as text until you manually update them.

Why use a Choice column instead of text?

Choice columns enforce consistency. In Power Automate, you will write conditions like "if Status equals Completed" to filter out finished projects from deadline reminders. If someone types "Complete" or "DONE" instead, that condition fails silently. Choice columns eliminate this problem by restricting input to your defined values.

Create department views

Views let each department see only their relevant projects without scrolling through the entire list. Each view applies a saved filter, so team members can jump straight to what matters to them.

  • Click the view dropdown at the top of your list (it likely says All items).
  • Select Create new view.
  • Name the view by department. For example, type Engineering Projects.
  • Set the visibility to Public view so your whole team can access it.
  • Click Create.

Now add a filter so this view only shows one department's projects.

  • Click the Filter icon in the command bar (funnel icon).
  • Select the Department column.
  • Set the filter to "is equal to" and enter the department name (e.g., Engineering).
  • Click Apply.
  • Save the view by clicking the view name dropdown and selecting Save view as (or the save icon if the view is already named).
  • Repeat these steps for each department in your list (e.g., "Marketing Projects", "Design Projects").

Finally, create a personal view so you can quickly see your own assignments.

  • Click the view dropdown and select Create new view.
  • Name it My Projects.
  • Click Create.
  • Add a filter on the Assigned To column set to "is equal to" [Me]. This built-in token automatically resolves to whoever is viewing the list.
  • Click Apply and save the view.

Switch between your views using the dropdown. You should see each department view showing only projects where the Department column matches the view's filter. The "My Projects" view shows only items assigned to you.

What are views in Microsoft Lists?

Views are saved filter and sort configurations. They do not duplicate or move data. Everyone shares the same underlying list, but each view shows a different slice of it. Public views are visible to all list members. Personal views are visible only to you.

View showing all items instead of filtered results?

Make sure you saved the view after applying the filter. If you navigate away before saving, the filter is lost. Click the view dropdown and check if your view name appears. If it does but shows all items, re-apply the filter and save again.

Help me fix my Microsoft Lists view filter.

Your list now has the right column types and views for automation. Next up, you will build your first Power Automate flow to send deadline reminder emails.

Build the Deadline Reminder Flow

Your Microsoft List is structured, typed, and filtered by department. Now it is time to make it proactive.

Instead of relying on team members to check the list daily, you will build a Power Automate flow that runs every morning and emails anyone whose project deadline is approaching. This is the first of three flows that will turn your static tracker into an active notification system.

In this step, get ready to:
  • Create a scheduled cloud flow that runs daily at 8:00 AM.
  • Filter your list for projects with approaching deadlines using OData and date expressions.
  • Send an Outlook reminder email to each project's assigned person.
Create a scheduled cloud flow

A scheduled flow runs automatically on a recurring basis without any manual trigger. You will set this one to run once every morning so your team gets reminded before their workday starts.

  • Navigate to Power Automate by opening make.powerautomate.com in your browser and signing in with your Microsoft 365 account.
  • In the left navigation menu, select Create.
  • Under Start from blank, select Scheduled cloud flow.
  • In the Flow name field, enter Daily Deadline Reminder.
  • Set the Repeat every field to 1 Day.
  • In the schedule configuration, set the flow to run at 8:00 AM in your time zone.
  • Select Create.

The designer opens with a Recurrence trigger already in place. This trigger controls when the flow fires.

What is a scheduled cloud flow?

Power Automate offers three flow types: automated (triggered by an event), instant (triggered by a button press), and scheduled (triggered by time). A scheduled flow is perfect for reminders because it runs predictably without anyone needing to start it.

Get items and filter by approaching deadline

The flow needs to pull projects from your list and identify which ones have deadlines coming up. You will use the SharePoint connector's Get items action combined with an OData filter to exclude completed projects. Then a condition inside a loop will check each item's deadline date.

  • Below the Recurrence trigger, select (+) to add an action (or select + New step in the classic designer).
  • Search for Get items and select the Get items action under the SharePoint connector.
  • In the Site Address field, select your SharePoint site.
  • In the List Name field, select Product Development Projects.
  • Expand Show advanced options to reveal the Filter Query field.
  • Enter the following OData filter in the Filter Query field:
Status ne 'Completed'

What does this filter do?

The ne operator means "not equal". This filter tells SharePoint to return only items whose Status column is not set to Completed. Filtering server-side is faster than retrieving all items and filtering them inside the flow.

SharePoint uses internal column names in OData queries. If your Status column has no spaces, the internal name matches the display name. Columns with spaces use x0020 in place of each space (for example, "Deadline Date" becomes Deadline_x0020_Date).

  • Add an Apply to each action after Get items. In the Select an output from previous steps field, select the value dynamic content from the Get items result.
  • Inside the Apply to each loop, add a Condition action.
  • You will configure two conditions combined with AND to check if the deadline is within the next 3 days. On the left side of the first condition row, switch to the expression editor and enter:
formatDateTime(items('Apply_to_each')?['Deadline_x0020_Date'],'yyyy-MM-dd')
  • Set the operator to is less than or equal to.
  • On the right side, switch to the expression editor and enter:
addDays(utcNow(),3,'yyyy-MM-dd')
  • Select + Add to add a second condition row. Set it to AND.
  • On the left side of the second row, switch to the expression editor and enter:
formatDateTime(items('Apply_to_each')?['Deadline_x0020_Date'],'yyyy-MM-dd')
  • Set the operator to is greater than or equal to.
  • On the right side, switch to the expression editor and enter:
formatDateTime(utcNow(),'yyyy-MM-dd')

What do these expressions do?

The condition checks whether each item's Deadline Date falls between today and 3 days from now. The formatDateTime function converts dates into a consistent yyyy-MM-dd format so comparison works reliably.

The addDays(utcNow(),3,'yyyy-MM-dd') expression takes the current date and adds 3 days. Combined with the "greater than or equal to today" check, this ensures you only catch upcoming deadlines and not ones that already passed.

Seeing an expression error?

Make sure you are entering the formula in the Expression tab of the editor, not the Dynamic content tab. The Expression tab lets you type raw formulas.

Double-check your column's internal name. If your list column is called "Deadline Date" with a space, the internal name is Deadline_x0020_Date. You can confirm the internal name by going to your list's column settings and checking the URL when editing the column.

Help me fix my Power Automate expression for date comparison.

Send the reminder email

Now that the condition identifies projects due within 3 days, you need to tell the flow what to do when a match is found. You will send an Outlook email to the person assigned to that project.

  • In the If yes branch of your condition, add a new action.
  • Search for Send an email (V2) and select it under the Office 365 Outlook connector.
  • In the To field, select the dynamic content for the Assigned To column's email. Look for Assigned To Email in the dynamic content panel.
  • In the Subject field, type the following, inserting dynamic content where indicated:
⚠️ Deadline Approaching: [Insert Project description dynamic content here]
  • To insert the project name, place your cursor after the colon and space, then select Project description from the dynamic content panel.
  • In the Body field, compose a message that includes these dynamic content fields: Project description, Deadline Date, and Status. Also include a link back to the list item so the recipient can jump straight to it.

Include a direct link to the list item

In the email body, you can use the Link to item dynamic content field from the Get items output. This gives the recipient a clickable URL that opens the specific list item in their browser.

  • Select Save in the top-left corner of the designer.
  • Select Test in the upper-right corner of the screen.
  • Select Manually, then select Test.
  • Select Run flow.

After the test completes, you should see a green checkmark on each action indicating success. If your list has items with deadlines within the next 3 days and a person assigned, that person will receive the reminder email.

What if no emails are sent during the test?

This is normal if none of your current list items have a Deadline Date within the next 3 days. The flow ran successfully but the condition evaluated to false for all items. To verify it works, temporarily edit a list item's Deadline Date to tomorrow, then re-run the test.

Flow test failed?

Select the failed action in the run history to see the error details. Common issues include an invalid Filter Query (check spelling and single quotes around Completed) or a missing site/list selection in the Get items action.

If the Send an email action fails, confirm that the Assigned To column is populated for at least one item in your list. The flow cannot send an email if no person is assigned.

Help me debug my Daily Deadline Reminder flow test failure.

Your first flow is live. Every morning at 8:00 AM, it will scan your project list and nudge the right people about approaching deadlines. Next up, you will build a flow that notifies people the moment they are assigned to a project.

Build the Assignment Notification Flow

Your deadline reminder flow is handling the scheduled side of notifications. Now you need to solve a different problem: how do team members find out when they have been assigned a new project?

In this step, you will build an automated flow that reacts to changes in your list. When someone is assigned to a project, the flow sends them an email with all the details they need to get started.

In this step, get ready to:
  • Create an automated cloud flow triggered by list changes.
  • Add a trigger condition so the flow only runs when the Assigned To field has a value.
  • Send a notification email to the assigned person with project details.
Create an automated cloud flow

Unlike the Daily Deadline Reminder (which runs on a schedule), this flow needs to react in real time. The "When an item is created or modified" trigger watches your list for any change and kicks off the flow within minutes.

  • Switch back to Power Automate (make.powerautomate.com).
  • Select Create in the left navigation.
  • Select Automated cloud flow.
  • In the Flow name field, enter New Assignment Notification.
  • In the trigger search box, search for When an item is created or modified and select the SharePoint connector version.
  • Select Create.

Why an automated flow instead of scheduled?

A scheduled flow checks on a timer (e.g. once a day). An automated flow reacts to an event the moment it happens.

For assignment notifications, you want the person to know as soon as they are assigned. Waiting for a daily check-in would delay awareness by hours.

  • In the trigger card, select your SharePoint site from the Site Address dropdown.
  • In the List Name dropdown, select Product Development Projects.

How quickly does this trigger fire?

Power Automate periodically polls your list for changes. The flow run may occur within minutes after that change. It is not instant, but fast enough for notifications.

Add a trigger condition for the Assigned To column

Without a trigger condition, this flow would fire on every single edit to any item in your list. That wastes your daily action quota and clutters your flow run history.

A trigger condition tells Power Automate to ignore the event entirely unless the Assigned To field has a value.

  • Select the trigger card (When an item is created or modified).
  • Click the three dots (...) on the trigger card and select Settings.
  • Scroll down to Trigger Conditions.
  • Select + Add.
  • Enter the following expression:
@not(empty(triggerOutputs()?['body/AssignedTo']))
  • Select Done to close the settings panel.

What does this expression do?

Every trigger condition must start with the @ symbol. This expression checks whether the AssignedTo field in the trigger output body is NOT empty.

If AssignedTo is empty (someone edited a different field), the condition evaluates to false and the flow does not run at all. This keeps your Power Platform request consumption low.

Refine this further later

This trigger condition fires whenever an item with a value in Assigned To is created or modified. For simplicity, the flow sends a notification on each qualifying edit. You can refine this later with a "Get changes" action to detect only when the assignment actually changes.

Flow still firing on every edit?

Double-check that the expression starts with @ and contains no extra spaces before or after the expression text.

Make sure you entered it in the Trigger Conditions field inside Settings, not in a separate Condition action.

Help me troubleshoot my trigger condition in Power Automate.

Send the assignment notification email

Even with the trigger condition, you want an extra safety check inside the flow before sending an email. This protects against edge cases where the trigger fires but the Person field resolves to empty.

  • Below the trigger, select + New step.
  • Search for Condition and select the Condition control.
  • In the left-hand value box, click Expression and enter:
empty(triggerOutputs()?['body/AssignedTo'])
  • Set the operator to is equal to.
  • In the right-hand value box, type false.

What does this condition check?

The expression empty(triggerOutputs()?['body/AssignedTo']) returns true when the Assigned To field is blank and false when it has a person.

By checking "is equal to false", you confirm a person is actually assigned before sending the email.

Now configure the email that fires when the condition passes.

  • In the If yes branch, select Add an action.
  • Search for Send an email (V2) and select the Office 365 Outlook connector version.
  • In the To field, open the dynamic content panel and select Assigned To Email (under the trigger's dynamic content).
  • In the Subject field, type the emoji and text 📋 You've been assigned: followed by a space, then insert the Project description dynamic content.
  • In the Body field, use the rich text editor to include the following dynamic content fields, each on its own line:
  • Project description (what the project is about).
  • Start Date (when work begins).
  • Deadline Date (when the project is due).
  • Department (which team owns the project).
  • Gates & Activities (key milestones).
  • A link to the list item (use the Link to item dynamic content field).
  • Leave the If no branch empty.
  • Select Save in the top left of the designer.

Why use the Person column's email?

The Assigned To column is a Person column, which integrates with your organization's directory. Power Automate exposes properties like Assigned To Email and Assigned To DisplayName from the dynamic content panel.

This is why you created the Person column in an earlier step instead of relying on the plain text Responsible column.

Test the flow to make sure notifications reach the right person.

  • Go to your Product Development Projects list in Microsoft Lists.
  • Edit any item and change or set the Assigned To field to yourself.
  • Wait a few minutes, then check your Outlook inbox for the notification email.
  • Return to Power Automate and select My flows in the left navigation.
  • Open New Assignment Notification and check the Run history to confirm a successful run.

No email received after testing?

The flow may take a few minutes to fire after the edit. Check the Run history on the flow detail page. If no run appears yet, wait 5 minutes and refresh.

If the run shows as failed, click it to see which step errored. A common issue is selecting the wrong dynamic content for the To field. Make sure you selected Assigned To Email (the email property), not Assigned To DisplayName or Assigned To Claims.

Help me debug my Power Automate assignment notification flow.

Your assignment notification is live. Team members will now receive an email the moment they are assigned to a project. Next up, you will build the final flow that notifies people when a project's status changes.

Build the Status Change Notification Flow

Your assignment notification flow ensures people know when they become responsible for a project. But what about when a project's status changes?

Team members need to know when a project moves from "In Progress" to "On Hold" or from "Not Started" to "In Progress". In this step, you will build a flow that detects status changes specifically and notifies the assigned person with the old and new status values.

In this step, get ready to:
  • Create an automated cloud flow that triggers on list item modifications.
  • Configure trigger conditions and change detection to fire only when the Status column changes.
  • Send a status change notification email to the assigned person.
Create the status change flow

This flow uses the same trigger type as your assignment notification, but with different conditions. It needs to detect when someone changes the Status column and ignore all other edits.

  • Switch back to Power Automate (make.powerautomate.com).
  • Click Create in the left navigation panel.
  • Select Automated cloud flow.
  • Name the flow Project Status Changed.
  • In the Choose your flow's trigger search box, search for and select When an item is created or modified (SharePoint connector).
  • Click Create.
  • In the trigger, select your SharePoint site in the Site Address field.
  • Select Product Development Projects in the List Name field.

Why a separate flow instead of combining with the assignment flow?

Each flow has a different purpose and trigger condition. Keeping them separate makes debugging easier. If the status change flow fails, your assignment notifications keep working independently.

Configure trigger conditions to fire only on status changes

The "When an item is created or modified" trigger fires on every edit to any field. Without a filter, this flow would send notifications for every tiny update. You need two layers of filtering: a trigger condition that limits runs to modifications only, and a change-detection action that checks whether the Status column specifically was altered.

  • Click the three dots (...) on the trigger card and select Settings.
  • Scroll down to Trigger Conditions.
  • Click + Add.
  • Enter the following expression:
@contains(triggerOutputs()?['body/{VersionNumber}'],'.')

What does this trigger condition do?

When a list item is first created, its version number is a whole number (like 1). When it is modified, the version number becomes a decimal (like 2.0, 3.0).

By checking that the version number contains a dot, you ensure this flow only fires on modifications, not on newly created items. New items are already handled by your assignment notification flow.

  • Click Done to close the Settings panel.
  • Click + New step below the trigger.
  • Search for Get changes for an item or a file (properties only) and select it (SharePoint connector).
  • In the Site Address field, select your SharePoint site.
  • In the List Name field, select Product Development Projects.
  • In the ID field, select ID from the dynamic content panel (from the trigger outputs).
  • In the Since field, click in the field and switch to the Expression tab.
  • Enter the following expression and click OK:
add(int(triggerOutputs()?['body/{VersionNumber}']),-1)

What does the Since expression do?

This expression takes the current version number and subtracts 1. It tells the Get changes action to compare the current item version against the previous version. The action then returns which columns changed between those two versions.

Your list must have versioning enabled for this to work. SharePoint Online lists have versioning on by default.

  • Click + New step after the Get changes action.
  • Search for and add a Condition control.
  • In the condition, click the left Choose a value field.
  • From the dynamic content panel, under the Get changes section, select Has Column Changed: Status.
  • Set the operator to is equal to.
  • In the right value field, type true.

How does column change detection work?

The "Get changes for an item or a file (properties only)" action returns a Boolean for each column indicating whether it changed since the version you specified in the "Since" field. By checking if "Has Column Changed: Status" equals true, you ensure the flow only proceeds when the Status column specifically was modified.

Don't see Has Column Changed: Status in dynamic content?

Make sure you completed the Get changes action with your site, list, ID, and Since fields all filled in. The dynamic content options only appear after those fields are configured. If you still don't see it, try removing and re-adding the Get changes action.

Also confirm that versioning is enabled on your list. Go to your list's Settings, then Versioning settings, and ensure Create a version each time you edit an item is set to Yes.

Help me troubleshoot the Get changes action in my status change flow.

Send the status change notification email

Now that the flow detects status changes, you need to email the assigned person with details about what changed. The email includes both the project description and the new status value so the recipient knows exactly what happened without opening the list.

  • Inside the If yes branch of your condition, click Add an action.
  • Search for Send an email (V2) and select it (Office 365 Outlook connector).
  • In the To field, use the dynamic content panel to select the Assigned To person's email from the trigger outputs.
  • In the Subject field, build the following subject line using dynamic content:
🔄 Status Update: [Project description] is now [Status]

How do I build this subject line?

Type the static text 🔄 Status Update: first. Then click in the field and select Project description from dynamic content. Type is now after it. Then select Status Value from dynamic content.

  • In the Body field, include the following dynamic content values, each on its own line:
  • Project description (from trigger outputs).
  • New Status (the current Status Value from trigger outputs).
  • Department (from trigger outputs).
  • Modified By (the Modified By DisplayName from trigger outputs, so the recipient knows who made the change).
  • A link to the list item (use the Link to item dynamic content value).

Add labels before each dynamic value

Type descriptive labels like "Project:", "New Status:", "Department:", and "Changed by:" before each dynamic content value. This makes the email scannable for the recipient.

  • Click Save in the top left corner of the flow editor.

Now test the flow by making a real status change in your list.

  • Switch back to your Product Development Projects list in Microsoft Lists.
  • Select any project that has an Assigned To value populated.
  • Change its Status column to a different value (for example, change "In Progress" to "On Hold").
  • Wait a few minutes for the flow to trigger.
  • Return to Power Automate and click on the flow name to see its run history.
  • Verify the run shows as Succeeded.
  • Check your Outlook inbox for the status change email. You should see the subject line showing the project name and its new status.

What about the trigger delay?

The "When an item is created or modified" trigger does not fire instantly. The flow run may occur within minutes of the change. This is normal for SharePoint triggers in Power Automate.

Flow ran but no email arrived?

Open the flow run details and expand each action to see its inputs and outputs. Check that the To field resolved to a valid email address. If it is blank, the Assigned To column may be empty on the item you modified.

Also check the Condition step. If it evaluated to false, the Status column was not detected as changed. Make sure versioning is enabled and that the Since expression is correctly configured.

Help me debug why my status change notification flow ran but did not send an email.

Your notification system is now complete. You have three flows working together: deadline reminders run daily, assignment notifications fire when people are added to projects, and status change alerts keep everyone informed when projects progress.

Next up, you will tackle the Secret Mission and build a weekly digest that summarizes overdue work for each department.

Secret mission

Build a Weekly Project Digest

Your three flows handle day-to-day notifications. But what about the big picture? Build a scheduled Monday morning digest that emails each department head a summary of all overdue and upcoming projects for their team.

Clean Up Your Resources

Clean Up Your Resources

Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project uses standard connectors included with your Microsoft 365 subscription, so there are no ongoing financial costs beyond your existing license.

Resources you used:

  • Power Automate flow: Daily Deadline Reminder.
  • Power Automate flow: New Assignment Notification.
  • Power Automate flow: Project Status Changed.
  • Power Automate flow: Weekly Project Digest (Secret Mission).
  • Microsoft List: Product Development Projects (on your SharePoint site).
  • Microsoft List: Department Contacts (optional, on your SharePoint site).

Keep everything running

No action needed. Choose this if your team is actively using the automated notification system.

  • Your four Power Automate flows will continue running on their schedules and triggers.
  • The Daily Deadline Reminder flow runs once per day. The New Assignment Notification and Project Status Changed flows fire only when list items are modified. The Weekly Project Digest runs once per week.
  • All actions count toward your daily limit of 6,000 actions per user per day, which is more than sufficient for normal list activity.

Pause - I'll come back to this later

Turn off your flows to stop notifications while preserving everything for later. Your lists and data remain untouched.

  • Go to Power Automate (make.powerautomate.com).
  • Select My flows in the left sidebar.
  • For each flow (Daily Deadline Reminder, New Assignment Notification, Project Status Changed, Weekly Project Digest), click the three dots menu and select Turn off.
  • When you want to resume, return to My flows and select Turn on for each flow.

Delete - I don't want to use this again

Remove all project resources permanently. This cannot be undone.

  • Delete the Power Automate flows:
  • Delete the Microsoft Lists:

Nice Work!

Nice Work!

Nice work! You've built a fully automated project notification system that replaces your static Excel tracker with active push notifications powered by Microsoft Lists and Power Automate. Your team no longer needs to manually check the spreadsheet.

You've learned how to:

  • Import an Excel spreadsheet into Microsoft Lists with proper Person columns and department-filtered views.
  • Build three Power Automate flows that send deadline reminders, assignment notifications, and status change alerts via Outlook email.
  • Use scheduled flows and automated flows with trigger conditions, OData filters, and date expressions to target the right people at the right time.
  • Build a weekly project digest that emails each department lead a summary of overdue and upcoming projects for their team.

Ready to quiz yourself?