The short version: the Approvals app that ships inside Teams covers the simple case, one request, one decision, a record of who said yes, with zero building, and it runs on Power Automate underneath. The moment your process has stages, conditions, automatic follow-on actions or another system in the loop, you've left the app's territory and you're building a flow. Most firms need both, for different processes.
What the built-in app covers
Straight from a chat or channel: pick an approval type, attach the file, choose approvers, send. Approvers get notified, decide, and the record keeps itself. For leave requests, invoice sign-offs under a threshold, one-off purchases and "can I send this to the client" checks, it's the right tool precisely because no one had to build anything, and adoption is free because it lives where the conversation already was.
The Teams Approvals app also handles custom response options beyond approve and reject, useful for a discount ladder or a needs-more-info response, with one wrinkle worth knowing: approval emails in Outlook only surface the first five custom responses as buttons.
The five signs you've outgrown it
| You need | Why the app can't | The flow answer |
|---|---|---|
| Stages | Multi-level chains, second approver only after the first, are exactly what the native app doesn't do | Sequential approvals in a flow, each stage waiting on the last |
| Conditions | The app can't route by amount, type or requester | A condition or switch on the request's fields decides who approves |
| Follow-on actions | Nothing fires automatically after a decision | Approved invoices post to the accounts process; rejections email the requester with the reason |
| Another system | The app starts from a person, not from an event | A flow triggers from the form, the SharePoint item, the email, then runs the approval |
| Deep audit | The app records decisions; regulated processes need the surrounding trail | A flow writes every step where your auditors can query it |
The move up is smaller than it looks, because both run on the same engine: a flow's "Start and wait for an approval" action lands in the same Teams Approvals hub your people already use. You're changing what wraps the decision, and no one has to learn a new place to click approve.
Where the approval records actually live
Every approval the native app creates is stored in your tenant's default Dataverse environment, and the first approval anyone sends provisions the solution there. For a 15-person firm that's trivia. For anyone running environment governance it's the kind of surprise that shows up in an audit, the same family of quiet defaults as the 200 flows nobody owns. Know it's there; it's not a reason to avoid the app.
Licensing, briefly: the app is covered by Power Automate, Microsoft 365 or Dynamics licences most firms already hold, and approval templates need a Forms licence. A custom flow's cost depends on its connectors, and that's the usual premium connector question, not an approvals question.
Where to start
Start with the app. If a process survives three months without anyone wishing it had stages or conditions, it was never a flow problem. The processes that do outgrow it will tell you loudly, and that's the moment to build the flow properly rather than on day one. Where a flow is warranted but the decision itself needs judgement an app can't hold, that's a different conversation again, the one in when a flow beats an agent.
Got a sign-off process that's become a bottleneck?
If requests are dying in chat threads or the wrong person keeps being asked, book a free 30-minute call. Mapping an approval process onto the right tier takes about twenty minutes, and half the time the answer costs nothing because you already own it.
Common questions
Is the Teams Approvals app free?
It's included for Teams users holding a Power Automate, Microsoft 365 or Dynamics 365 licence, so for most firms it costs nothing extra. Setting up approval templates additionally needs a Microsoft Forms licence. The app runs on Power Automate's infrastructure underneath without you building a flow.
When do I need a Power Automate flow instead of the Approvals app?
The native app handles single-step approve-or-reject well. The moment you need sequential stages, several people approving in order, conditions that route by amount or type, actions that fire automatically before or after the decision, or integration with another system, you build an approval flow in Power Automate. Multi-level chains are exactly what the native app doesn't do.
Where do Teams approvals get stored?
In your tenant's default Dataverse environment, all of them, which is a known governance wrinkle. The first approval anyone creates provisions the approvals solution there. It works fine, but if your firm cares about environment hygiene, know that the approvals records live in default, not in a purpose-built environment.