# Require two-person approvals for change requests with Airtable: n8n workflow

> Started by an event in a connected app, and works across Airtable and Gmail. 24 steps, 4 branches, 1 loop or waits: large, and worth reading before you...

Source: https://millionrounds.com/workflow/require-two-person-approvals-for-change-requests-with-airtab (Millionrounds; every figure on the page links to its filing or article)

[Automation library](https://millionrounds.com/workflows) · [Data collection](https://millionrounds.com/workflows?category=Data+collection#library)

# Require two-person approvals for change requests with Airtable

Started by an event in a connected app, and works across Airtable and Gmail. 24 steps, 4 branches, 1 loop or waits: large, and worth reading before you trust it with anything live.

Large

[Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Frequire-two-person-approvals-for-change-requests-with-airtab)

**24 steps** Large: read it before trusting it with anything live

**4** Branches: places the flow splits

**1** Loop or waits

**2** Services it connects to

## The flow

Starts it 1 Logic 17 Service 6

The steps in the order they run, from what starts it.

- 1 **A New Change Request Appears** Airtable trigger *Starts it*
- 2 **Approval Rules** Set *Logic*
- 3 **Handle Each Request Once** Remove Duplicates *Logic*
- 4 **Read The Change Request** Code *Logic*
- 5 **Still Waiting For A Decision?** If *Logic*
- 6 **Handle One Request At A Time** Split In Batches *Logic*
- 7 **Nothing To Decide** No Op *Logic*
- 8 **All Requests Handled** No Op *Logic*
- 9 **Read The Approver Pool** Airtable *Service*
- 10 **Pick Two Different Approvers** Code *Logic*
- 11 **Enough Approvers Available?** If *Logic*
- 12 **Ask The First Approver** Gmail *Service*
- 13 **Refuse - No Eligible Approvers** Set *Logic*
- 14 **What Did The First Approver Say?** Switch *Logic*
- 15 **Mark The Request Refused** Airtable *Service*
- 16 **Hand Over To The Second Approver** Set *Logic*
- 17 **Refuse - First Approver Said No** Set *Logic*
- 18 **Refuse - First Approver Never Answered** Set *Logic*
- 19 **Tell The Requester The Outcome** Gmail *Service*
- 20 **Ask The Second Approver** Gmail *Service*
- 21 **What Did The Second Approver Say?** Switch *Logic*
- 22 **Mark The Request Approved** Airtable *Service*
- 23 **Refuse - Second Approver Said No** Set *Logic*
- 24 **Refuse - Second Approver Never Answered** Set *Logic*

## How it's built

- **Starts on:** An event in a connected app
- **Steps:** 24, with 4 branches, 1 loop or waits
- **Size:** Large: read it before trusting it with anything live
- **Connects to:** Airtable, Gmail
- **Model:** None. This is plumbing, not judgement

## Questions

What does it need to run?

An n8n account, plus your own Airtable and Gmail accounts. You connect your own accounts after importing it; none are included.

What starts it?

It starts on an event in a connected app.

Does it use AI?

No. Every step is fixed logic or a call to a service, so it does the same thing every time.

How long does it take to set up?

Take your time. At 24 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

**Before you run it**

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 24 steps before you point it at anything that matters.

## Run it in n8n

- **Create your n8n account** Free to start. n8n is where the workflow runs. [Create an n8n account ↗](https://millionrounds.com/n8n)
- **Download the workflow** Free with a Millionrounds account. [Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Frequire-two-person-approvals-for-change-requests-with-airtab)
- **Paste it into n8n** Open a new workflow in n8n and paste. Then connect your own accounts.

Stored with the author's traces removed: canvas notes, instance identifiers, saved credential names and any live document they had left behind.

## Connects to

Each opens the other workflows that use it.

[Airtable](https://millionrounds.com/workflows?service=Airtable#library)[Gmail](https://millionrounds.com/workflows?service=Gmail#library)

## Workflows like it

Also data collection, with the same services where possible, closest in size first.

- [**Automate cryptocurrency funding fee tracking with Binance API** 24 steps · Airtable](https://millionrounds.com/workflow/automate-cryptocurrency-funding-fee-tracking-with-binance-ap)
- [**Analyze commodity portfolio diversification with Sheets** 24 steps · calls a model · Gmail, Google Sheets](https://millionrounds.com/workflow/analyze-commodity-portfolio-diversification-with-sheets)
- [**Email subscription service with Airtable** 24 steps · calls a model · Airtable, Gmail](https://millionrounds.com/workflow/email-subscription-service-with-airtable)
- [**From Google Drive to Instagram, TikTok & YouTube with Airtable** 24 steps · calls a model · Airtable, Google Drive](https://millionrounds.com/workflow/from-google-drive-to-instagram-tiktok-and-youtube-with-airta)
- [**Track and triage ops requests from Gmail with OpenAI** 24 steps · calls a model · Airtable, Discord](https://millionrounds.com/workflow/track-and-triage-ops-requests-from-gmail-with-openai)
- [**Audit forgotten online accounts from Gmail with OpenAI** 25 steps · Gmail, Google Sheets](https://millionrounds.com/workflow/audit-forgotten-online-accounts-from-gmail-with-openai)
