# Archive HR and legal documents with UploadToURL: n8n workflow

> Started by another system calling it, and works across Airtable, Gmail and Google Drive. 26 steps, 4 branches: large, and worth reading before you trust it...

Source: https://millionrounds.com/workflow/archive-hr-and-legal-documents-with-uploadtourl (Millionrounds; every figure on the page links to its filing or article)

[Automation library](https://millionrounds.com/workflows) · [Documents and files](https://millionrounds.com/workflows?category=Documents+and+files#library)

# Archive HR and legal documents with UploadToURL

Started by another system calling it, and works across Airtable, Gmail and Google Drive. 26 steps, 4 branches: large, and worth reading before you trust it with anything live.

Large

[Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Farchive-hr-and-legal-documents-with-uploadtourl)

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

**4** Branches: places the flow splits

**0** Loops or waits

**3** Services it connects to

## The flow

Starts it 4 Logic 12 Service 10

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

- 1 **Webhook - Receive Contract** Webhook *Starts it*
- 2 **Error Handler** Code *Logic*
- 3 **Validate & Enrich Payload** Code *Logic*
- 4 **Respond with Error** Respond To Webhook *Starts it*
- 5 **Airtable - Duplicate Check** Airtable *Service*
- 6 **IF Duplicate Exists?** If *Logic*
- 7 **Respond - 409 Duplicate** Respond To Webhook *Starts it*
- 8 **Has Remote URL?** If *Logic*
- 9 **Upload to URL - Remote** Upload To Url *Service*
- 10 **Upload to URL - Binary** Upload To Url *Service*
- 11 **Extract CDN URL** Code *Logic*
- 12 **Drive - Find Employee Folder** Google Drive *Service*
- 13 **Resolve Folder ID** Code *Logic*
- 14 **Needs New Folder?** If *Logic*
- 15 **Drive - Create Employee Folder** Google Drive *Service*
- 16 **Merge Folder ID** Code *Logic*
- 17 **Drive - Upload Document** Google Drive *Service*
- 18 **Airtable - Find Employee Record** Airtable *Service*
- 19 **Prepare Airtable Update** Code *Logic*
- 20 **Airtable Record Exists?** If *Logic*
- 21 **Airtable - Update Existing Record** Airtable *Service*
- 22 **Airtable - Create New Record** Airtable *Service*
- 23 **Merge Airtable Result** Code *Logic*
- 24 **Send Confirmation Email** Gmail *Service*
- 25 **Build Final Response** Code *Logic*
- 26 **Respond to Webhook** Respond To Webhook *Starts it*

## How it's built

- **Starts on:** Another system calling it
- **Steps:** 26, with 4 branches
- **Size:** Large: read it before trusting it with anything live
- **Connects to:** Airtable, Gmail, Google Drive
- **Model:** None. This is plumbing, not judgement

## Questions

What does it need to run?

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

What starts it?

It starts on another system calling it.

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 26 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 26 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%2Farchive-hr-and-legal-documents-with-uploadtourl)
- **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)[Google Drive](https://millionrounds.com/workflows?service=Google+Drive#library)

## Workflows like it

Also documents and files, with the same services where possible, closest in size first.

- [**Chat with Ollama and Supabase Vector DB** 26 steps · calls a model · Google Drive, Supabase](https://millionrounds.com/workflow/chat-with-ollama-and-supabase-vector-db)
- [**Crawl documentation sites and build an AI knowledge base** 26 steps · calls a model · Google Docs, Google Drive](https://millionrounds.com/workflow/crawl-documentation-sites-and-build-an-ai-knowledge-base)
- [**Generate AI-powered contracts with OpenAI and Gmail** 26 steps · calls a model · Gmail, Google Sheets](https://millionrounds.com/workflow/generate-ai-powered-contracts-with-openai-and-gmail)
- [**Index Google Drive files into a Supabase vector store** 26 steps · calls a model · Google Drive, Postgres](https://millionrounds.com/workflow/index-google-drive-files-into-a-supabase-vector-store)
- [**Extract text from Google Drive files to Google Sheets** 25 steps · Google Docs, Google Drive](https://millionrounds.com/workflow/extract-text-from-google-drive-files-to-google-sheets)
- [**Nightly n8n backup to Google Drive** 25 steps · Google Drive](https://millionrounds.com/workflow/nightly-n8n-backup-to-google-drive)
