An approval workflow is the path a request takes from the person who asks to the person who decides, with the decision recorded and the next step triggered. You can build one for free with tools you may already have: SharePoint list approvals, a Power Automate flow with the Start and wait for an approval action, or a Google Form feeding a shared Sheet. The method is the same everywhere: capture the request, route it, decide, record, act. The free way holds until requests cross several apps or need rules about who approves what.

The Toolkit take
5
approval types in Power Automate's Start and wait for an approval action
5
parts of every approval: request, route, decision, record, action
Any one
SharePoint's default: one approver's yes grants the request
Enterprise
Google Workspace accounts that get Drive file approvals (plus Education Plus)

What every approval workflow needs

Before opening any tool, write down five things. Who asks, and through what form? Who decides, and is it one person or several? What happens on yes, and what happens on no? Where does the decision live afterward, so you can answer who approved this, and when six months later? Most homemade approvals fail on the last two. The request gets a thumbs-up in chat. Nobody updates the record. The next step depends on someone's memory.

Part Question it answers Free option
Request What is asked, and by whom Microsoft Forms, Google Forms, a SharePoint list item
Route Who decides Assigned approvers, an approver column
Decision Yes, no, or a custom answer Approve and Reject buttons in email, Teams or the file
Record Who approved, and when The list's approval columns, the response sheet
Action What happens next An email, a status update, the next task

Keep the first version boring. One request type, one approver, one outcome on each side. Add a second approver or a spending limit only after the simple path has run for a few weeks without anyone going around it. A process people skip is worse than none, because the record now lies.

💡
Toolkit tip
Name a backup approver

Decide who decides when the approver is away. A request that waits a week teaches people to skip the process.

SharePoint approval workflow: switch it on for any list

If your team already works in Microsoft 365, the fastest route needs no flow at all. Microsoft calls these modern approvals: you enable them on a list or library, and each item gets an approval status and a Request approval command [1]. Two built-in list templates, Content scheduler with approvals and Travel requests with approvals, come with them already set up.

  1. Open the list or library, go to the Integrate dropdown in the command bar and select Configure Approvals.
  2. Turn on Enable Approvals and select Apply. You can also set default approvers and decide whether people with lower permissions may overwrite them.
  3. Select an item or file and choose Request approval from its contextual menu.
  4. Enter one or more approvers and add details. By default, one approver's yes grants the request; a toggle requires a response from all of them.
  5. Approvers select Approve or Reject in the list's Approval details, or in the Approvals app in Microsoft Teams.

Read the limits before you rely on it. Editing an item or file cancels an approval in progress, so files open view-only in the web apps while one runs. An approver who cannot see the item does not get access automatically; you share it by hand. The list columns show only the latest activity, and the full history sits in the Teams Approvals app. Enabling approvals also turns off Lists sync for that list.

A Power Automate approval workflow that acts on the answer

SharePoint's switch records a decision. It does nothing with it. For that you need a flow. The Start and wait for an approval action sends the request, pauses the flow until approvers respond, then continues [2]. Microsoft says any license that includes Power Automate with standard connectors is enough, and lists Office 365 among those licenses. Approvers answer from an Outlook email, a Teams card or the Power Automate action center.

Microsoft's own tutorial starts from a SharePoint list, but any trigger can start the flow [3]:

  1. Create an automated cloud flow with the trigger that starts a request, such as a new item in a SharePoint list or a new Microsoft Forms response.
  2. Add an action, type approval, and under Standard approvals select Start and wait for an approval.
  3. Pick the Approval type, enter a Title, put the approver's email in Assigned to, and describe the request in Details using fields from the trigger.
  4. Below it, add a Condition: the Approval response value, is equal to, Approve.
  5. In the yes branch, email the requester and update the record. In the no branch, send the rejection.

The approval type is your decision rule. Everyone must approve waits for every approver, or stops at the first rejection. First to respond finishes on any one answer. Sequential approval asks approvers one at a time, in order, which covers the classic manager-then-finance chain. Custom Responses lets you define the options yourself, such as Approve, Reject and Needs info, and comes in two types: wait for all responses, or wait for one. Pick the type first. Everything else follows from it.

⚠️
Watch out
The first run needs an admin

In a non-default Power Automate environment, whoever runs the first approval flow needs an administrator role so the approvals database can be set up. In the default environment this happens automatically.

A Google Forms approval workflow with a linked Sheet

Google Forms has no approve button of its own. The free Google way is a form for the request and a shared spreadsheet for the decision. It is a manual approval workflow, but it leaves a clean record. Link the form to a sheet so every request lands as a row:

  1. Open the form in Google Forms, click Responses, then Summary.
  2. At the top right, click More, then Select destination for responses.
  3. Choose Create a new spreadsheet, or select an existing one, and click Create or Select.
  4. In the sheet, add columns to the right of the responses: Status, Approver, Decided on, Note.
  5. Share the sheet with approvers and filter on an empty Status to see what is waiting.

One detail from Google's help matters here. Form collaborators get access to a new response sheet automatically, but later permission changes on the form do not carry over; you update the form and the sheet separately. And nothing in this setup tells an approver that a row arrived, or tells the requester the answer. Someone has to look.

For documents rather than requests, Google Drive has real approvals. Approvers see a banner in Docs, Sheets or Slides with Approve and Reject, the file can be locked during review, and Drive search can list files awaiting your approval [4]. The catch is the account. Google says the feature is only for Enterprise and Google Workspace for Education Plus accounts, not personal Gmail or standard Workspace accounts.

💡
Toolkit tip
Keep requesters out of decisions

Give the Status and Approver columns only to approvers. If everyone can edit the whole sheet, anyone can mark their own request approved.

Example: a purchase request with a spending limit

Picture a ten-person office. Anyone can ask to buy equipment through a form. Requests go to the office manager, and purchases above a set amount also need the owner. In Power Automate this is one flow. The form response triggers it, a Condition checks the amount, small requests go to Start and wait for an approval with the manager assigned, and large ones use a Sequential approval with the manager first and the owner second.

Each branch ends the same way: email the requester and write the outcome back to the list. In the Google version, the owner filters the sheet on the amount and checks every row above the limit by hand. It works. It also depends on two people remembering to open a spreadsheet, which is the habit an approval workflow is meant to replace. That gap is the first sign of the threshold.

Where the free approval workflow stops

The built-in ways hold up while three things stay true: everyone works in one suite, requests are few enough for a person to scan daily, and the action after approval stays inside that suite. They break when the request comes from one app, the approver lives in Slack, and the result must land in an accounting tool or a store. Google's file approvals need Enterprise accounts. SharePoint's columns keep only the latest decision.

At that point an automation platform carries the request across apps, pauses for a person, and continues on the answer. n8n has steps built for this: its Send and Wait nodes pause a workflow until someone responds, and its human approval of AI actions gates risky steps the same way. In Make (Make.com), the review-queue pattern uses one scenario to queue requests and a second to act only on approved ones. Latenode can auto-approve clear cases and send edge cases to a person.

n8n Solves this

Send and Wait nodes pause the workflow until the approver responds, then continue with the decision and a timestamp. Approvals sent through Slack or Telegram can record who approved and restrict who may approve.

  1. Collect the request with a Form Trigger
  2. Send and Wait to the approver in Slack or Telegram
  3. Branch on the answer and run the next step
Where it stops: Slack approvals need the instance reachable over public HTTPS; on Cloud, runs over the plan's monthly execution allowance fail immediately.
Make Partly

Approvals are built from two scenarios: the first writes each request to a review queue (a Google Sheet, Notion or a Slack message), the second acts only on items marked approved. High-risk orders can go to Slack for review first.

Where it stops: Add error handling (retry, rollback, resume) on every step that touches money, orders or customer data.
Latenode Partly

An AI step checks each request against your policy, approves clear-cut cases, routes edge cases to a person, then triggers the next action and notifies the requester.

Where it stops: Auto-approving too broadly rubber-stamps abuse; keep high-value items with a person. Plan: Conditional routing and AI nodes are on Free and Pay as you go.

If approvals are one step of a bigger process, our guide to business process automation shows how to map the whole thing first. For supplier bills, see invoice automation software for the tools that pair approvals with invoice handling.

Frequently asked questions

Can Google Forms run an approval workflow on its own?+

No. Google Forms collects the request and can save it to a linked Sheet, but it has no Approve or Reject step. For files, Drive approvals work on eligible Enterprise and Education Plus accounts; for requests that must trigger an action, add a flow tool.

Is a Power Automate approval workflow included with Microsoft 365?+

The approvals connector is a standard connector, and Microsoft says any license granting Power Automate with standard connectors is enough, including Office 365 licenses. Check your exact plan in Microsoft's Power Automate licensing guide.

What is the difference between a SharePoint approval workflow and a Power Automate one?+

SharePoint's built-in approvals add a Request approval command and status columns to a list. A Power Automate flow can start from any trigger, apply sequential or all-must-approve rules, and act on the answer, such as emailing the requester or updating a record.

How do I set up a multi-level approval workflow?+

Use an approval type that respects order. In Power Automate, Sequential approval asks each approver in turn and continues only after all respond. In a sheet, give each level its own column and pass a row on only when the previous level says approved.

The bottom line

An approval workflow has five parts: request, route, decision, record, action. In Microsoft 365, start with SharePoint's list approvals, then move to a Power Automate flow once the answer must trigger something. On Google, a form plus a shared sheet gives a clean record without automation, and Drive approvals cover documents on Enterprise accounts. Add an automation platform when requests cross apps or need rules nobody should check by hand.

Sources
  1. [1] Microsoft Support (Nov 2026) https://support.microsoft.com/en-us/sharepoint/data-and-lists/approvals-in-lists-document-libraries
  2. [2] Microsoft Learn (Nov 2026) https://learn.microsoft.com/en-us/power-automate/get-started-approvals
  3. [3] Microsoft Learn (Nov 2026) https://learn.microsoft.com/en-us/power-automate/modern-approvals
  4. [4] Google Drive Help (Nov 2026) https://support.google.com/drive/answer/9387535?hl=en&co=GENIE.Platform%3DDesktop