PTO Request Form Workflow

Automate your PTO request process end to end.

This workflow touches admin access and employee data, so it's worth setting up carefully. Roughly 30–50 minutes in the Google Cloud console (service account, Domain-Wide Delegation, credentials), and the guide flags every security step, including locking your org back down afterward. Comfortable in that territory? Configure it yourself below. Rather have it set up correctly the first time? Guided Setup does it with you.

Overview

When an employee requests PTO, the request needs manager approval, calendar updates, and a record in your HR sheet. This workflow handles it all automatically, from the initial form submission to the final approval email.

What it does

PTO Request Form Workflow n8n workflow diagram

The complete workflow.

Prerequisites

Pricing

$69 one-time payment. After purchasing on Gumroad, come back here and open Configure to enter your license key and download the workflow files.

What is included

How to set it up

Setup takes 30-50 minutes. Here's what's involved:

  1. 1 Copy the Google Form and Google Sheet

    Visit tl-hr.com and enter your license key to access the configurator. Download your pre-configured workflow and copy the Google Form and Google Sheet templates provided.

    Important: copying does not carry over the connection between the form and sheet. You will need to reconnect them in Google Forms (Responses tab → Link to Sheets → Select the copied sheet).
  2. 2 Create/Setup Google Cloud Project

    Enable the Gmail API and Google Sheets API in your Google Cloud Project. Google's official documentation covers how to enable APIs.

  3. 3 Unenforce organization policies for service account setup

    Before creating your service account key, you must temporarily unenforce three Google Cloud organization policies that block service account and key creation. Go to console.cloud.google.com, search for Organization Policies, and for each of the policies below, click Override parent's policy, set to Not enforced, and save.

    The console only shows 50 policies at a time by default. Scroll past the first 50 or search by name to find each policy. iam.managed.disableServiceAccountCreation iam.disableServiceAccountKeyCreation iam.managed.disableServiceAccountKeyCreation
  4. 4 Create a Service Account and JSON key, and enable Domain-Wide Delegation

    Create a Service Account in Google Cloud, enable Domain-Wide Delegation so the workflow can create events on the shared PTO calendar and read Google Sheets on behalf of an admin, and create a JSON key for the service account.

    Domain-Wide Delegation can take up to 30 minutes to propagate after being enabled. When you enter the Scope field in the Workspace Admin Console's Domain-Wide Delegation panel, include exactly the two scopes this workflow uses and no others: https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/spreadsheets.readonly
  5. 5 Connect your credentials in n8n

    Add three credentials to your n8n instance: Gmail OAuth2, Google Sheets OAuth2, and the Google Service Account. Our setup guides walk you through each one step by step.

  6. 6 Re-enforce organization policies

    Once your service account credential is confirmed working in n8n, re-enforce the three org policies to secure your Google Workspace. Go to console.cloud.google.com, search for Organization Policies, and for each policy below, select Override parent's policy, set to Enforced, and save.

    iam.managed.disableServiceAccountCreation iam.disableServiceAccountKeyCreation iam.managed.disableServiceAccountKeyCreation This ensures your organization is protected against unauthorized service account and key creation going forward. Verify before moving on: all three policies should now read Enforced. If any still reads Not enforced, your Workspace org can still create service accounts and JSON keys without restriction. The workflow above this section will keep running either way, so this step won't fail loudly if you happen to skip it.
  7. 7 Configure and download your workflow

    Enter your company details, webhook URL, calendar ID, spreadsheet ID, and credential IDs into the configurator. Download your pre-configured workflow JSON and Apps Script files.

  8. 8 Import into n8n, add the Apps Script, and create the Error Log sheet

    Import the workflow JSON into n8n. Paste the Apps Script into your Google Sheet's script editor (Extensions → Apps Script), and create a sheet tab named "Error Log" in your Google Sheet. Run the setup() function once to register the form trigger.

    The workflow includes disabled error log nodes. After creating the "Error Log" sheet tab, enable those nodes in the n8n editor.
  9. 9 Test the workflow

    Submit a test PTO request form and confirm the manager notification is sent, the calendar is updated, and the PTO record appears in your Google Sheet.

For the full walkthrough, see the setup guide.

Frequently asked questions