🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Docs to Gmail, approved offer letters sent fast

Lisa Granqvist Partner Workflow Automation Expert

Offer letters feel simple until you’re chasing the “latest version,” fixing a name typo in three places, and realizing you sent the wrong attachment. Then it’s not simple. It’s stressful.

HR managers run into this weekly. Recruiters feel it when they’re trying to move fast and keep candidates warm. And founders handling hiring themselves? Honestly, it’s a time sink. This offer letter automation turns a template into an approved, locked PDF and sends it out without the messy back-and-forth.

You’ll learn what the workflow does, what you need, how approval fits in, and where the real time savings come from.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Google Docs to Gmail, approved offer letters sent fast

Why This Matters: Offer Letters Break When They’re Manual

Manual offer letters create quiet chaos. You start from a Google Doc template, copy it, rename it, fill placeholders, export a PDF, upload it somewhere, then email HR for approval, then email the candidate, then file it again. That’s a lot of tiny steps, and the risky part is that mistakes don’t look “big” until they’re in someone’s inbox. Wrong salary figure, wrong joining date, wrong candidate name in the filename. Even when nothing goes wrong, you’re still burning attention on admin work when you should be closing the hire.

The friction compounds. Here’s where it usually breaks down.

  • Template copies get renamed inconsistently, so searching later turns into a scavenger hunt.
  • Placeholders are easy to miss, especially when you’re moving quickly between roles and candidates.
  • Approvals happen in Slack threads or random emails, which means no clean audit trail.
  • Exporting and attaching the correct PDF is repetitive, and that repetition is where errors sneak in.

What You’ll Build: Template-to-Approved PDF, Sent Automatically

This workflow starts when a form submission captures the details you need for an offer letter, like candidate name, role, salary, joining date, and email address. n8n immediately creates a fresh Google Docs copy from your master template in Google Drive, appending the candidate name so every file is easy to identify later. Then it fills your placeholders inside the document with the candidate-specific data, so the letter is personalized without manual edits. Next, it exports that document as a PDF and stores the PDF back in Google Drive for clean version control. Finally, Gmail emails HR to review and approve or reject, and only approved letters get emailed to the candidate with the PDF attached.

The flow is simple on purpose. Capture details once, generate the letter automatically, lock it as a PDF, then route it through HR approval before anything reaches the candidate.

What You’re Building

Expected Results

Say you send 10 offer letters in a month. Manually, it’s usually 6 steps per letter (copy template, rename, edit, export, upload, email), and each step takes maybe 5 minutes once you factor in checking details. That’s about 5 hours a month, and it’s the kind of work that interrupts everything else. With this workflow, you submit the form in a couple minutes and HR spends about 3 minutes approving. The rest runs on autopilot.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Drive for templates, PDFs, and file storage.
  • Gmail to request approval and email candidates.
  • Google account access with permission to edit Docs and Drive.

Skill level: Beginner. You’ll mostly connect accounts, map fields, and confirm where files should be stored.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A form submission triggers the workflow. The form collects the data you normally paste into an offer letter: candidate name, position, fixed CTC, joining date, “sign by” date, and the candidate’s email.

A new candidate-specific document is created in Google Drive. n8n copies your master Google Docs template and renames it to something consistent like “Appointment Letter – Priya Shah.doc,” so you can find it instantly later.

The template placeholders are filled automatically. The Google Docs update step inserts the values from the form into the right spots, which means you don’t have to worry about forgetting a field or leaving “Candidate Name” in the final version.

The document is exported to PDF and routed for approval. Google Drive creates a PDF, stores it, then Gmail sends HR a message to review and approve or reject. If approved, the workflow retrieves the PDF and emails it to the candidate as an attachment.

You can easily modify the trigger (for example, swap the form for Google Sheets) to match how your team collects candidate details. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the form that collects candidate details and starts the workflow.

  1. Add the Form Submission Trigger node and set Form Title to Generate Appointment Letter.
  2. Under Form Fields, add fields for Candidate Name, Position Name, Fixed CTC, Joining Date, To be signed by Date, and Candidate email.
  3. Save the trigger to generate the form URL and verify it loads correctly.
Use clear field labels that exactly match the placeholders used later, such as Candidate Name and Candidate email.

Step 2: Connect Google Drive & Google Docs for Letter Creation

Copy the appointment letter template and fill it with candidate details.

  1. Configure Generate Candidate Copy with Operation set to copy and Name set to =Appointment Letter - {{ $json['Candidate Name'] }}.
  2. Select the template file in File ID and replace [YOUR_ID] with your Google Docs template ID.
  3. Credential Required: Connect your googleDriveOAuth2Api credentials in Generate Candidate Copy.
  4. Configure Populate Offer Details with Operation set to update and Document URL set to ={{ $json.id }}.
  5. In Populate Offer Details, add Replace All actions for each placeholder, including ={{ $('Form Submission Trigger').item.json['Candidate Name'] }}, ={{ $('Form Submission Trigger').item.json['Position Name'] }}, and ={{ $now.toFormat('MM-dd-yyyy') }}.
  6. Credential Required: Connect your googleDocsOAuth2Api credentials in Populate Offer Details.
⚠️ Common Pitfall: Ensure the placeholders in your Google Docs template exactly match the text in Populate Offer Details, such as [Candidate Name] and [Joining Date].

Step 3: Export and Store the PDF in Drive

Convert the filled letter into a PDF and store it in the designated folder.

  1. Configure Export Letter as PDF with Operation set to download and File ID set to ={{ $json.documentId }}.
  2. Set Google File Conversion to application/pdf and keep Binary Property Name as data.
  3. Credential Required: Connect your googleDriveOAuth2Api credentials in Export Letter as PDF.
  4. Configure Store PDF in Drive with Name set to ={{ $('Generate Candidate Copy').item.json.name }}.
  5. Choose the destination folder in Folder ID and replace [YOUR_ID] with your Drive folder ID.
  6. Credential Required: Connect your googleDriveOAuth2Api credentials in Store PDF in Drive.

Step 4: Configure HR Approval and Candidate Emailing

Send the approval request to HR, validate approval, and email the candidate the final letter.

  1. In Request HR Approval, set Operation to sendAndWait, Send To to [YOUR_EMAIL], and Subject to =Approval required - {{ $json.name }}.
  2. Set the Message body to =Hi HR,\n\nPlease review and approve the appointment letter for {{ $('Form Submission Trigger').item.json['Candidate Name'] }}\n\nThank You.\n .
  3. Credential Required: Connect your gmailOAuth2 credentials in Request HR Approval.
  4. In Approval Decision, confirm the condition checks ={{ $json.data.approved }} equals true.
  5. Configure Retrieve Approved PDF with Operation set to download and File ID set to ={{ $('Store PDF in Drive').item.json.id }}.
  6. Credential Required: Connect your googleDriveOAuth2Api credentials in Retrieve Approved PDF.
  7. Configure Email Candidate Letter with Send To set to ={{ $('Form Submission Trigger').item.json['Candidate email'] }}, Subject to Appointment Letter, and Message to =Congratulations {{ $('Form Submission Trigger').item.json['Candidate Name'] }}\n\nPlease email before {{ $('Form Submission Trigger').item.json['To be signed by Date'] }}.
  8. Credential Required: Connect your gmailOAuth2 credentials in Email Candidate Letter and ensure the PDF binary data from Retrieve Approved PDF is attached.
⚠️ Common Pitfall: Replace [YOUR_EMAIL] with the HR approver’s inbox and ensure Gmail permissions allow send-and-wait approvals.

Step 5: Test and Activate Your Workflow

Run a full test to verify document creation, approval flow, and candidate email delivery.

  1. Click Execute Workflow and submit the Form Submission Trigger form with test candidate data.
  2. Confirm Generate Candidate Copy creates a new document and Populate Offer Details replaces placeholders correctly.
  3. Verify Export Letter as PDF generates a PDF and Store PDF in Drive saves it in the intended folder.
  4. Approve the email from Request HR Approval and ensure Approval Decision routes to Retrieve Approved PDF.
  5. Check that Email Candidate Letter sends to the candidate with the PDF attached.
  6. Turn the workflow Active to enable live form submissions.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Google Drive credentials can expire or need specific permissions. If things break, check the connected Google account in n8n’s Credentials page first.
  • If you’re exporting to PDF and the next step can’t find the file, it’s usually timing. Add a short wait or re-check that the “Store PDF in Drive” step writes to the same folder your download step reads from.
  • Gmail approval emails can land in Promotions or get threaded oddly. Use a clear subject line like “Offer letter approval needed: {{Candidate Name}}” and confirm HR can reliably reply or click your intended approval option.

Quick Answers

What’s the setup time for this offer letter automation?

About 30 minutes if your Google accounts and template are ready.

Is coding required for this offer letter automation?

No. You’ll map form fields to placeholders and connect Google Drive and Gmail.

Is n8n free to use for this offer letter automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also want to consider Google Workspace costs if you’re using a company domain for Gmail and Drive.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I modify this offer letter automation workflow for different use cases?

Yes, and it’s common. You can replace the Form Submission Trigger with Google Sheets by swapping the trigger node and mapping the same fields into “Populate Offer Details.” People also customize the approval step (send to a hiring manager instead of HR), change the Drive folder per department, or add a second email that sends a copy to finance after approval.

Why is my Google Drive connection failing in this workflow?

Usually it’s permissions. The connected Google account needs access to the template file and the destination folder, plus permission to export and upload. Reconnect the Google Drive credential in n8n, then verify the template’s sharing settings and that you didn’t move the folder after configuring the workflow.

What volume can this offer letter automation workflow process?

A typical small team can run dozens of letters a month without thinking about it. On n8n Cloud, your limit depends on your plan’s monthly executions; self-hosting has no fixed execution cap, but your server and Google API quotas still matter. Each offer letter usually counts as one run with several internal actions, so if you’re doing high-volume seasonal hiring, monitor executions and Gmail sending limits.

Is this offer letter automation better than using Zapier or Make?

Often, yes. The big win is control: branching approvals with an If decision, multi-step Google Drive file handling, and room to extend the workflow without paying more for “paths.” n8n is also easier to keep consistent when you want a human approval gate before anything is sent. Zapier or Make can be fine for a very simple “fill template then email” use case, but approvals and file versioning get fiddly fast. Talk to an automation expert if you want help picking the right approach.

Once this is running, offer letters stop being a mini-project. HR gets a clean approval step, candidates get the right PDF, and you get your time back for the work that actually closes hires.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal