Vacation Approval Workflow in Power Automate

Automate vacation request approvals using Microsoft Power Automate and SharePoint.

Introduction

30 Second Summary

Requesting time off at work usually means sending an email to your manager and waiting. Sometimes that email gets buried, forgotten, or bounced between people before you get an answer.

In this project, you will build an automated vacation request approval workflow using Microsoft Power Automate. When someone submits a request, the system routes it to a manager, collects their decision, notifies the requester, and updates the records automatically.

What You'll Build

You'll create a complete approval system that connects a SharePoint Online list to Power Automate's flow designer, using triggers, conditions, and email notifications to handle the entire process without manual intervention.

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

  • A SharePoint Online list configured to capture vacation requests with structured columns for dates, comments, and approval status.
  • A working automated cloud flow that triggers on new requests, routes them to a manager for approval or rejection, and handles the response with conditional branching.
  • Hands-on experience with Power Automate's core building blocks: triggers, actions, connectors, dynamic content, and the built-in Approvals connector.
  • Secret Mission: Build a scheduled reminder flow that sends a weekly summary of pending vacation requests to the manager every Monday morning.

Are there any prerequisites?

You'll need a Microsoft account to access Power Automate and SharePoint Online. A work or school email (through Microsoft 365) gives you full access to all the connectors used in this project.

If you only have a personal Microsoft account (@outlook.com), you can sign up for a free trial to get SharePoint access. Step 1 walks you through the full setup.

Before We Start

Before We Start...

Set Up Your Power Automate Environment

Before you can build any automation, you need access to the tools that power it. Power Automate is Microsoft's low-code automation platform, and SharePoint Online is where your vacation requests will live as structured data.

In this step, you will sign in to both services and confirm they are working correctly. This gives you a solid foundation before you start building the actual workflow.

In this step, get ready to:
  • Sign in to Power Automate and confirm your account works.
  • Verify you can access the flow builder from the left navigation panel.
  • Access SharePoint Online and note your site URL for later.
Sign up for Power Automate

Power Automate is included with all Microsoft 365 subscriptions. If you have a work or school account, you already have access.

  • Open your web browser and navigate to make.powerautomate.com.
  • Click Sign in in the upper-right corner of the page.
  • Enter your Microsoft work or school email address and password.

What kind of Microsoft account do I need?

Power Automate requires a Microsoft work or school email address. If you have a Microsoft 365 subscription through your employer or school, Power Automate is already included at no extra cost.

If you do not have a work or school account, you can sign up for a 90-day free trial. On the Power Automate homepage, click Try free and follow the prompts to register.

  • After signing in, you may see a consent dialog asking you to accept the Microsoft Online Subscription Agreement. Accept the terms to continue.

Can't sign in or seeing a signup error?

If you see a message about signup being turned off by your IT department, try clicking Sign in instead of Sign up at the top of the page. This often resolves the issue for users whose organizations already have Power Automate enabled.

If you only have a personal Microsoft account (@outlook.com or @gmail.com), you will need to sign up for a Microsoft 365 trial to get access to SharePoint and the full set of standard connectors. Help me troubleshoot my Power Automate sign-in

Verify your environment

Now that you are signed in, confirm you can see the key areas of the Power Automate portal.

  • Look at the left navigation panel. You should see menu items including Home, Create, My flows, and Templates.
  • Click Create in the left navigation panel to verify you can access the flow builder.
  • Confirm you see options to create different types of flows, including Automated cloud flow, Instant cloud flow, and Scheduled cloud flow.

What are cloud flows?

Cloud flows are automations that run in the cloud without needing your computer to stay on. They respond to events (like a new item appearing in a list) and perform actions automatically.

In this project, you will build an automated cloud flow that triggers whenever someone submits a new vacation request.

Access SharePoint Online

Your vacation requests need a home. SharePoint Online provides the structured list where requests will be stored and tracked.

  • Open a new browser tab and navigate to portal.office.com.
  • Sign in with the same Microsoft account you used for Power Automate.
  • In the Microsoft 365 portal, look for the app launcher (the grid icon in the upper-left corner).
  • Click the app launcher, then click SharePoint to open SharePoint Online.

What if I don't see SharePoint in my app launcher?

If SharePoint does not appear in your app launcher, click All apps to see the full list of available Microsoft 365 apps. If it still does not appear, your account may not include SharePoint Online. You can sign up for a Microsoft 365 trial that includes SharePoint access.

  • Once SharePoint opens, you will land on the SharePoint start page showing your recent and followed sites.
  • Look at your browser's address bar. Your SharePoint site URL will follow the pattern yourcompany.sharepoint.com.
  • Copy or write down this URL. You will need it in the next step when configuring your flow's trigger.

Keep both tabs open

Leave your Power Automate tab and your SharePoint tab open side by side. You will switch between them frequently throughout this project.

Your environment is ready. Next up, you will create the SharePoint list that captures vacation requests and feeds data into your automation.

Create the SharePoint Vacation Request List

Your Power Automate environment is ready to go. Now you need a place to capture vacation requests. This is the data source that will trigger your automated workflow.

A SharePoint list acts like a lightweight database for structured business data. Each row is a vacation request, and each column holds a specific detail (dates, comments, approval status). When someone adds a new row, Power Automate detects it and kicks off the approval process.

In this step, get ready to:
  • Create a SharePoint list called "Vacation Requests" with custom columns.
  • Add a sample vacation request to verify the list works.
Create a new list

Your approval workflow needs a structured place to receive requests. A SharePoint list gives you defined columns for each piece of information the approver needs to make a decision.

  • Switch back to your SharePoint site in the browser.
  • Click New in the top navigation bar.
  • Select List from the dropdown menu.
  • Select Blank list.
  • Enter Vacation Requests as the list name.
  • Click Create.

SharePoint creates the list with a default Title column (Single line of text). You'll keep this column and add five more.

  • Click Add column (or the + icon at the end of the column headers).
  • Select Date and Time as the column type.
  • Enter Start Date as the column name.
  • Click Save.
  • Click Add column again.
  • Select Date and Time as the column type.
  • Enter End Date as the column name.
  • Click Save.
  • Click Add column again.
  • Select Single line of text as the column type.
  • Enter Comments as the column name.
  • Click Save.
  • Click Add column again.
  • Select Yes/No as the column type.
  • Enter Approved as the column name.
  • Click Save.
  • Click Add column one more time.
  • Select Single line of text as the column type.
  • Enter Manager Comments as the column name.
  • Click Save.

Your list should now display six columns: Title, Start Date, End Date, Comments, Approved, and Manager Comments.

Why these columns?

Each column maps to a piece of information your approval workflow needs. The Title identifies who's requesting, the dates define the vacation period, and Comments lets the requester add context.

The Approved and Manager Comments columns stay empty when someone submits a request. Your Power Automate flow will fill them in automatically after the manager responds.

Don't see all six columns?

Scroll right in the list view. Some columns may be hidden off-screen. You can also click the column header area and drag to resize columns.

If you accidentally created a column with the wrong name or type, click the column header, select Column settings, then Edit to rename it or Delete to remove it and start over.

Help me fix my SharePoint list columns.

Add a test item

Before building the flow, confirm that your list accepts data correctly by adding a sample vacation request.

  • Click New in the command bar at the top of your list.
  • In the Title field, enter your name (e.g., Alex Smith).
  • Set Start Date to any date next week.
  • Set End Date to a few days after the start date.
  • In the Comments field, type something like Family trip.
  • Leave the Approved and Manager Comments fields empty. Your flow will fill these in later.
  • Click Save.

You should see your new item appear as a row in the list with the title, dates, and comment filled in.

Item not appearing?

Refresh the page. If the item still doesn't show, check that you clicked Save (not just closed the panel). Reopen the form and try again.

Help me add an item to my SharePoint list.

Your data source is ready. Next up, you'll build the automated cloud flow that watches this list and triggers an approval every time a new request lands.

Build the Automated Cloud Flow

Your SharePoint list is ready to capture vacation requests. Now you need something that watches that list and takes action the moment a new request appears.

In this step, you'll create an automated cloud flow in Power Automate. This flow listens for new items in your SharePoint list, then sends an approval request to a designated manager.

In this step, get ready to:
  • Create a new automated cloud flow with a SharePoint trigger.
  • Configure the trigger to point at your Vacation Requests list.
  • Add an approval action that routes requests to a manager.
Create the automated cloud flow

A trigger is the event that kicks off your flow. For this project, the trigger fires every time someone adds a new item to your SharePoint list.

  • Switch back to Power Automate at make.powerautomate.com.
  • Click My flows in the left navigation panel.
  • Click New flow at the top of the page.
  • Select Automated cloud flow from the dropdown menu.
  • In the Flow name field, type Vacation Approval Workflow.
  • Under Choose your flow's trigger, search for SharePoint.
  • Select When an item is created from the list of triggers.
  • Click Create.

Power Automate creates your flow and opens the flow designer with the trigger card already visible.

What is an automated cloud flow?

An automated cloud flow runs in the background without you pressing anything. It waits for a specific event (the trigger) to happen, then executes its actions automatically.

This is different from an instant flow, which you start manually by pressing a button.

Don't see Automated cloud flow?

Make sure you clicked New flow (not Create in the left navigation). The New flow button at the top of the My flows page shows the dropdown with flow type options.

help me find the Automated cloud flow option in Power Automate

Configure the trigger

The trigger card needs to know which SharePoint site and list to monitor. You'll point it at the Vacation Requests list you created in the previous step.

  • Click the trigger card (When an item is created) to expand its settings.
  • In the Site Address field, select or enter your SharePoint site URL.
  • In the List Name field, select Vacation Requests.

Enter custom value for Site Address

If your SharePoint site does not appear in the dropdown, select Enter custom value from the Site Address field and paste your full SharePoint site URL manually.

Don't see your list in the dropdown?

Confirm you selected the correct Site Address first. The List Name dropdown only shows lists that belong to the selected site. If you pasted a custom URL, double-check it matches the site where you created your Vacation Requests list.

help me connect my SharePoint list to the Power Automate trigger

Add the approval action

An action is the work your flow performs after the trigger fires. The Approvals connector is a built-in Power Automate feature that sends formal approval requests to a person's email and tracks their response.

  • Click the + button below the trigger card.
  • In the search field, type approval.
  • Under Standard approvals, select Start and wait for an approval.
  • In the Approval type dropdown, select Approve/Reject - First to respond.
  • In the Title field, type Vacation Request: followed by a space.
  • Click the dynamic content icon (the lightning bolt) and select Title from the trigger outputs.
  • In the Assigned to field, enter the email address of the approver (use your own email for testing).
  • In the Details field, compose a message using dynamic content. Type and insert tokens to create something like: [Title] wants to go on vacation from [Start Date] until [End Date]. Comments: [Comments].

How do I insert dynamic content?

Dynamic content lets you pull live data from earlier steps in your flow. When you click inside a text field, look for the lightning bolt icon or a Dynamic content panel that appears.

Select tokens like Title, Start Date, End Date, and Comments from the When an item is created section. These correspond to the columns in your SharePoint list.

Why Approve/Reject - First to respond?

This approval type means the flow continues as soon as any one assigned approver responds. It keeps things moving quickly for a single-approver setup like this one.

If you needed multiple people to all approve before proceeding, you would choose Approve/Reject - Everyone must approve instead.

  • Click Save at the top of the flow designer.

You should see a green success message confirming your flow has been saved.

Seeing a validation error when saving?

Check that the Assigned to field contains a valid email address. Also confirm the Site Address and List Name in the trigger are both filled in. All three are required fields.

help me fix validation errors when saving my Power Automate flow

Your flow now has a trigger watching your SharePoint list and an approval action ready to route requests to a manager. Next up, you'll add conditional logic so the flow handles both approved and rejected outcomes differently.

Add Conditional Logic and Notifications

Your flow can now send an approval request to a manager, but it doesn't know what to do with their response yet.

In this step, you'll add conditional logic that branches the flow into two paths. If the manager approves, the requester gets a confirmation email and the SharePoint list updates to reflect the decision. If the manager rejects, a different email goes out and the list records the rejection instead.

In this step, get ready to:
  • Add a Condition action that checks the approver's response.
  • Configure the approved branch with an email notification and a SharePoint list update.
  • Configure the rejected branch with its own email and list update.
Add a condition to check the approval response

A Condition action splits your flow into two branches: one that runs when the condition is true, and one that runs when it is false. You'll check whether the approver responded with "Approve" to decide which branch to follow.

  • In the flow designer, click the + button below the Start and wait for an approval card.
  • In the search field, type condition.
  • Under Control, select Condition.
  • In the Condition card, select the first Choose a value field on the left, then select the lightning bolt icon to open dynamic content.
  • Select Responses Approver response from the dynamic content list.
  • If you don't see it, click See more in the title bar of the dropdown to display additional values.
  • Confirm the middle dropdown is set to is equal to.
  • In the Choose a value field on the right, type Approve.

Why is "Approve" case-sensitive?

The valid responses from the Approvals connector are exactly Approve and Reject with a capital first letter. If you type approve (lowercase) or Approved (past tense), the condition will never match and every request will fall into the "If no" branch.

Don't see Responses Approver response in the dynamic content list?

Make sure you're looking under the Start and wait for an approval section in the dynamic content panel. Click See more if only a few fields are showing.

If the field still doesn't appear, confirm that the approval action above is fully configured with an Approval type of Approve/Reject - First to respond.

Help me find the Responses Approver response dynamic content

Configure the approved ("If yes") branch

When the condition is true, the flow enters the If yes branch. Here you'll send the requester a confirmation email and update the SharePoint list to record the approval.

  • In the If yes branch, click Add an action.
  • Search for send an email and select Send an email (V2) from Office 365 Outlook.
  • In the To field, enter the requester's email address (use your own email for testing).
  • In the Subject field, type Your vacation request has been approved.
  • In the Body field, type a message like: Your vacation request has been approved by followed by a space.
  • Place your cursor after the space, open the dynamic content panel, and insert Responses Approver name.
  • On a new line in the Body, type Comments: followed by a space, then insert the Responses comments dynamic content.

What is dynamic content?

Dynamic content tokens are placeholders that get replaced with real values at runtime. When you insert Responses Approver name, Power Automate fills that spot with the actual name of whoever approved the request.

Think of them like mail merge fields in a document. You write the template once, and the flow fills in the details for each run.

Now add the SharePoint list update so the approval is recorded.

  • Below the email action in the If yes branch, click Add an action.
  • Search for update item and select Update item from SharePoint.
  • Set the Site Address to your SharePoint site URL.
  • Set the List Name to Vacation Requests.
  • In the Id field, open dynamic content and select ID from the SharePoint trigger.
  • Set the Title field to the Title dynamic content from the trigger.
  • Set the Approved field to Yes.
  • Set Manager Comments to the Responses comments dynamic content.

Why update the SharePoint list?

Updating the list closes the loop. Anyone checking the Vacation Requests list in SharePoint can see at a glance which requests have been approved or rejected, without digging through email.

Configure the rejected ("If no") branch

The If no branch handles rejections. The structure mirrors the approved branch, but with a rejection message and a different Approved value.

  • In the If no branch, click Add an action.
  • Search for send an email and select Send an email (V2) from Office 365 Outlook.
  • In the To field, enter the requester's email (your own email for testing).
  • In the Subject field, type Your vacation request has been rejected.
  • In the Body field, type a message like: Your vacation request has been rejected by followed by a space, then insert the Responses Approver name dynamic content.
  • On a new line in the Body, type Comments: followed by a space, then insert the Responses comments dynamic content.

Now add the SharePoint update for rejections.

  • Below the rejection email, click Add an action.
  • Search for update item and select Update item from SharePoint.
  • Set the Site Address to your SharePoint site URL.
  • Set the List Name to Vacation Requests.
  • In the Id field, select the ID dynamic content from the trigger.
  • Set the Title field to the Title dynamic content from the trigger.
  • Set the Approved field to No.
  • Set Manager Comments to the Responses comments dynamic content.
  • Click Save at the top of the flow designer.

What should the flow look like now?

Your flow should have four levels: the SharePoint trigger at the top, the approval action below it, the Condition card with two branches, and each branch containing an email action followed by an Update item action.

Both branches mirror each other in structure. The only differences are the email subject line and the Approved field value (Yes in the approved branch, No in the rejected branch).

Seeing a validation error when you save?

Check that every Update item action has both a Site Address and Id field filled in. These are required fields. If either is blank, Power Automate shows a red error icon on the card.

Also verify that the Title field is populated in both Update item actions. SharePoint requires it for updates even though you're not changing the title value.

Help me fix a validation error in my Power Automate flow

Your flow now has full decision-making logic built in. Next up, you'll test the entire workflow end-to-end by triggering a real approval and watching every step execute.

Test Your Approval Workflow

Your flow is fully built with a trigger, approval action, conditional branches, and notifications all wired together. Now it's time to see the entire automation work end-to-end.

In this step, you'll put your flow into test mode, fire the trigger by adding a new vacation request, and respond to the approval. Then you'll verify that every piece of the automation completed successfully.

In this step, get ready to:
  • Save and test the flow manually in Power Automate.
  • Trigger the flow by adding a new item to the SharePoint list.
  • Complete the approval and verify the results across email, SharePoint, and run history.
Save and test the flow

Power Automate's manual test mode listens for your trigger to fire in real time. Once you start the test, the flow waits for a new item to appear in your SharePoint list.

  • Switch back to the Power Automate flow designer where your "Vacation Approval Workflow" is open.
  • Click Save at the top of the flow designer to ensure your latest changes are saved.
  • Click Test in the upper-right corner of the designer.
  • Select Manually.
  • Click Test to confirm.

What happens during a manual test?

When you test manually, Power Automate puts the flow into a "listening" state. It actively watches for your trigger condition to be met. The flow stays in this state until a new item is created in your SharePoint list.

You'll see a message on screen telling you to perform the action that triggers the flow. Keep this tab open while you do the next substep.

Trigger the flow with a new vacation request

Adding a new item to your SharePoint list fires the "When an item is created" trigger. This is the real-world action that kicks off the entire approval process.

  • Open your SharePoint "Vacation Requests" list in a new browser tab.
  • Click + New to add a new list item.
  • In the Title field, enter a name (e.g. Test Vacation).
  • Set Start Date to any future date.
  • Set End Date to a date after the start date.
  • In the Comments field, enter something like Family trip.
  • Leave the Approved and Manager Comments fields empty. The flow will fill these in automatically.
  • Click Save.

What just happened?

Saving the new item fires the SharePoint trigger. Power Automate detects the new item and starts running your flow. The approval request is now being routed to the email address you configured in the "Assigned to" field.

Flow not starting?

Make sure you started the manual test BEFORE adding the new item. If the test wasn't running when the item was created, the trigger won't fire. Go back to the flow designer, click Test again, and add another new item.

Also verify that the Site Address and List Name in your trigger card match your SharePoint site and "Vacation Requests" list exactly.

Help me troubleshoot why my Power Automate flow isn't triggering when I add a new SharePoint list item.

Complete the approval and verify the results

The flow has sent an approval request to the email address you specified. Now you'll respond to it and confirm that every downstream action completed successfully.

  • Check your email inbox for the approval request from Power Automate.
  • Click Approve (or Reject) directly in the email.
  • Optionally add a comment (e.g. Enjoy your trip!) and submit your response.

Where can I respond to approvals?

Approvers can respond from their email inbox, the approvals center in Power Automate, or the Power Automate mobile app. For this test, responding via email is the quickest option.

Now verify that all downstream actions completed correctly.

  • Check your inbox for the notification email (approval confirmation or rejection notice).
  • Switch back to your SharePoint "Vacation Requests" list tab and refresh the page.
  • Verify that your test item now shows the Approved field set to Yes (or No if you rejected) and Manager Comments populated with the comment you entered.
  • Switch back to your Power Automate tab with the flow designer.
  • You should see a green checkmark on each action card, confirming every step processed successfully.

What do the green checkmarks mean?

When a test finishes running, a green checkmark appears on each card together with the number of seconds it took to process. This confirms that every action in your flow executed without errors.

  • Click My flows in the left navigation to return to your flows list.
  • Select your "Vacation Approval Workflow" flow.
  • Scroll down to the Run history section. You should see your test run listed with a Succeeded status.

Seeing a failed run?

Click on the failed run to expand it. Each action card shows whether it succeeded or failed. Look for the first red X to identify where the flow broke.

Common causes: the "Update item" action fails if a column name in your flow doesn't match the SharePoint list exactly. Double-check that your Approved column is a Yes/No type and Manager Comments is the correct column name.

Help me debug my failed Power Automate flow run.

Secret mission

Build a Weekly Pending Requests Reminder

Your approval workflow handles one request at a time. But what about requests that pile up while the manager is busy? Build a scheduled flow that sends a weekly summary of all pending vacation requests every Monday morning.

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 only standard connectors included with your Microsoft 365 subscription or free trial, so there are no ongoing costs.

Resources you used:

  • Power Automate flow: "Vacation Approval Workflow" (automated cloud flow).
  • Power Automate flow: "Weekly Pending Vacation Requests Reminder" (scheduled cloud flow, if you completed the Secret Mission).
  • SharePoint Online list: "Vacation Requests" with test items.

Keep everything running

No action needed. Choose this if you're still actively building or want the flows to keep running.

  • Your flows will continue to trigger automatically whenever new items are added to the SharePoint list or on the Monday schedule.
  • The free tier included with Microsoft 365 allows up to 6,000 actions per day, which is more than enough for this project.
  • Your Microsoft account and SharePoint site remain active as part of your Microsoft 365 subscription or trial.

Pause - I'll come back to this later

Turn off your flows to prevent them from running while you're away. Your flow definitions and SharePoint list data are preserved.

  • Go to make.powerautomate.com and select **My flows** in the left navigation.
  • Select your "Vacation Approval Workflow" flow, then click the vertical ellipsis (⋮).
  • Select **Turn off** from the menu that appears.
  • Repeat for the "Weekly Pending Vacation Requests Reminder" flow if you created it.
  • When you're ready to resume, return to **My flows**, select the flow, click the vertical ellipsis (⋮), and select **Turn on**.

Delete - I don't want to use this again

Remove all project resources permanently. Follow each step below to clean up completely.

Delete your Power Automate flows:

  • Go to make.powerautomate.com and select **My flows** in the left navigation.
  • Select your "Vacation Approval Workflow" flow to open its Details page.
  • Select **Delete** on the menu at the top of the Details page, then confirm deletion.
  • Return to **My flows** and repeat for the "Weekly Pending Vacation Requests Reminder" flow if you created it.

Delete your SharePoint list:

  • Navigate to your SharePoint site and open the "Vacation Requests" list.
  • Click the **Settings** gear icon, then select **List settings**.
  • On the Settings page, select **Delete this list**.
  • In the confirmation dialog, select **OK**.

That's a Wrap!

That's a Wrap!

Nice work! You just built a fully automated business approval process from scratch, no code required.

You've learned how to:

  • Built an automated cloud flow in Power Automate that routes vacation requests to a manager for approval using the built-in Approvals connector.
  • Implemented conditional branching to handle approve and reject outcomes with different email notifications and SharePoint list updates.
  • Tested a complete end-to-end workflow from request submission through approval to automatic notification, verifying every step in the flow's run history.
  • Built a scheduled reminder flow that filters pending requests and sends a weekly HTML summary email to the manager.

Ready to quiz yourself?