Every 15 minutes
Create a Drive folder for each new hire in your roster
New rows in your Onboarding sheet get their own Drive folder from your template, shared with the new hire, with the link written back.
- Runs
- Every 15 minutes
- Apps
- Google Drive, Google Sheets
- AI
- Not needed
- Access
- Sheets read+write; Drive write
Send this to your assistant
Create a ClickRuntime automation: every 15 minutes, for new rows in my Onboarding sheet, create a Drive folder from my template, share it with their email and write the link into the row.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
An operations lead onboards two or three people a month. For each one she creates a folder, copies in the handbook, contract and checklist, shares it, and pastes the link into the onboarding sheet. When she is away, new starters arrive with no folder.
Creating the folder as soon as someone is added to the sheet means every new hire has their documents ready before their first day, however busy the week is.
What you get out of it
Every new starter gets the same pack
Each folder is copied from your template, so nobody misses the handbook or the checklist.
Ready before day one
The folder exists as soon as the row is added, which often means days before the start date.
Anyone can start onboarding
A manager or recruiter only has to add a row, so onboarding does not depend on one person being in the office.
Links kept with each person
The folder link is written into the sheet, so finding a new hire's documents later takes one click.
How it works
What happens, step by step
Every 15 minutes ClickRuntime checks your Onboarding sheet for rows without a folder link.
For each new hire it creates a folder named after them and copies in the files from your template folder.
It shares the folder with the new hire's email address.
The folder link is written into the person's row so the sheet shows it is done.
Before it runs live
- Connect Google Drive
- Connect your Google Sheets account and pick the spreadsheets it may use
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Google Drive and Google Sheets steps into one automation
Under the hood
The code that runs this automation
from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials
from clickruntime import on_trigger, credentials, report_fetched
SHEET_ID, TEMPLATE, PARENT = "your-spreadsheet-id", "template-folder-id", "onboarding-folder-id"
@on_trigger
def run(event):
creds = Credentials(credentials.connection("google", "work"))
values = build("sheets", "v4", credentials=creds, cache_discovery=False).spreadsheets().values()
rows = values.get(spreadsheetId=SHEET_ID, range="Onboarding!A2:C").execute().get("values", [])
new = [(i + 2, r) for i, r in enumerate(rows) if len(r) >= 2 and len(r) < 3]
report_fetched(len(new))
if not new:
return {"summary": "No new hires"}
drive = build("drive", "v3", credentials=creds, cache_discovery=False).files()
perms = build("drive", "v3", credentials=creds, cache_discovery=False).permissions()
templates = drive.list(q=f"'{TEMPLATE}' in parents and trashed=false", fields="files(id,name)").execute()["files"]
for row, (name, email) in new:
folder = drive.create(body={"name": f"Onboarding - {name}", "mimeType": "application/vnd.google-apps.folder",
"parents": [PARENT]}, fields="id,webViewLink").execute()
for t in templates:
drive.copy(fileId=t["id"], body={"name": t["name"], "parents": [folder["id"]]}).execute()
perms.create(fileId=folder["id"], body={"type": "user", "role": "writer", "emailAddress": email}).execute()
values.update(spreadsheetId=SHEET_ID, range=f"Onboarding!C{row}", valueInputOption="RAW",
body={"values": [[folder["webViewLink"]]]}).execute()
return {"created": len(new)}FAQ
Common questions
Which files are copied into the folder?
What access does the new hire get?
What if the email in the row is wrong?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Import new Drive CSV files into Google Sheets
CSV files dropped into a Drive folder are appended to one Google Sheets tab, with the file name on every row.
See how it worksTurn invoices dropped in a Drive folder into expense rows
Any invoice or receipt you drop into a Drive folder becomes a row in your expenses sheet with supplier, date, amount and VAT.
See how it worksScore CVs from a Drive folder into a spreadsheet
Every CV added to your Applicants folder becomes a row in your sheet with contact details, skills, experience and a score against the role.
See how it worksKeep exploring
Set up “Create a Drive folder for each new hire in your roster” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.