This workflow corresponds to n8n.io template #17605 — we link there as the canonical source.
This workflow follows the Error Trigger → Google Sheets recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "xEmDxC0tGsCZfnih",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "AI Employee Onboarding Compliance & Document Verification System",
"tags": [],
"nodes": [
{
"id": "2421e5b4-00f2-4c5e-8efd-87da745623db",
"name": "\ud83d\udccc Overview \u2013 How This Workflow Works",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
-2496
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "a8fba116-c03d-4f6b-9b54-f04378915690",
"name": "Section \u2013 New Hire Trigger & Checklist Lookup",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
-1504
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "9e2b1742-3387-460a-87e5-170509e4eb70",
"name": "Section \u2013 Document Download & Text Extraction",
"type": "n8n-nodes-base.stickyNote",
"position": [
2208,
-1920
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "bc3349ab-4480-49f0-98a8-fb7b6cea3e8c",
"name": "Section \u2013 AI Document Classification",
"type": "n8n-nodes-base.stickyNote",
"position": [
2880,
-1920
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "4a0478e9-fe83-4e7c-a2bd-9340df8fa9e4",
"name": "Section \u2013 Compliance Reasoning & Outcome Routing",
"type": "n8n-nodes-base.stickyNote",
"position": [
3664,
-1632
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "5e435181-c5c9-4fd4-9e44-3c69e8fcaefd",
"name": "Section \u2013 Daily Reminder & Escalation Loop",
"type": "n8n-nodes-base.stickyNote",
"position": [
1296,
-544
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "46df9823-9954-485d-9586-0b0f495c3134",
"name": "\ud83d\udd11 Credentials & Security",
"type": "n8n-nodes-base.stickyNote",
"position": [
5168,
-832
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "dd1b7362-a772-4f22-a5e9-625a26bb4ee6",
"name": "Daily Reminder Check (Trigger)",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1408,
-320
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "11b64239-5918-41a5-b902-b744c818631f",
"name": "Get Pending Records",
"type": "n8n-nodes-base.googleSheets",
"position": [
1648,
-320
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "789cf395-3bc1-4d69-a9fd-c80c24e4dfb4",
"name": "Filter Due For Reminder",
"type": "n8n-nodes-base.code",
"position": [
1920,
-320
],
"parameters": {},
"typeVersion": 2
},
{
"id": "5b8b588b-a451-4a70-8950-774b416f792d",
"name": "Escalation Threshold Reached?",
"type": "n8n-nodes-base.if",
"position": [
2176,
-320
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "26183d2c-de61-4b50-97bb-f9872c90612b",
"name": "Telegram - Send Reminder",
"type": "n8n-nodes-base.telegram",
"position": [
2432,
-208
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "c93936bf-acb9-4def-be6a-520935308f83",
"name": "Google Sheets - Increment Reminder Count",
"type": "n8n-nodes-base.googleSheets",
"position": [
2688,
-208
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "b78843f3-ab4e-4952-9df3-bb959aa0825a",
"name": "Extract Text - ID Proof",
"type": "n8n-nodes-base.extractFromFile",
"position": [
2576,
-1680
],
"parameters": {},
"typeVersion": 1.1,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "05e38ee9-b4f8-4f4d-8d05-a81e773ebecc",
"name": "Extract Text - Tax Form",
"type": "n8n-nodes-base.extractFromFile",
"position": [
2576,
-1440
],
"parameters": {},
"typeVersion": 1.1,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "260bb1a3-c21f-436b-8b91-9ccfb8e0aeb4",
"name": "Extract Text - Signed Policy",
"type": "n8n-nodes-base.extractFromFile",
"position": [
2576,
-1184
],
"parameters": {},
"typeVersion": 1.1,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "4ae0a595-ef52-44b1-bdb4-cc0e51ddba4a",
"name": "Extract Text - NDA",
"type": "n8n-nodes-base.extractFromFile",
"position": [
2576,
-944
],
"parameters": {},
"typeVersion": 1.1,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "f3a17b84-d2e9-4607-8d34-f51ea92c6873",
"name": "New Hire Added (Trigger)",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
1136,
-1280
],
"parameters": {},
"typeVersion": 1
},
{
"id": "2251fc49-8949-4eb0-b1a8-2e0728f00b28",
"name": "Normalize New Hire Data",
"type": "n8n-nodes-base.set",
"position": [
1392,
-1280
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "eb3a0140-dacb-4e61-b49a-b129ccfea1ad",
"name": "Get Compliance Checklist",
"type": "n8n-nodes-base.googleSheets",
"position": [
1648,
-1280
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "b4233c09-dcc2-4a3e-bb56-ecbcf5248cd3",
"name": "Match Required Docs",
"type": "n8n-nodes-base.code",
"position": [
1840,
-1280
],
"parameters": {},
"typeVersion": 2
},
{
"id": "f0580efb-682d-4db1-9b00-8e93aafa05e4",
"name": "Download ID Proof",
"type": "n8n-nodes-base.googleDrive",
"position": [
2368,
-1680
],
"parameters": {},
"typeVersion": 3,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "c923c0c8-6994-48c8-885a-360967f546c9",
"name": "AI Classify ID Proof",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2928,
-1680
],
"parameters": {},
"typeVersion": 1.8,
"continueOnFail": true
},
{
"id": "257645a4-6616-419d-9ef5-a5a310f3bba2",
"name": "Parse ID Proof Result",
"type": "n8n-nodes-base.code",
"position": [
3280,
-1680
],
"parameters": {},
"typeVersion": 2
},
{
"id": "2dea89c4-cea5-467b-b30f-d7db07a21fcc",
"name": "Download Tax Form",
"type": "n8n-nodes-base.googleDrive",
"position": [
2368,
-1440
],
"parameters": {},
"typeVersion": 3,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "b6e3e48f-b441-4ae0-a621-b0507a2d5157",
"name": "AI Classify Tax Form",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2928,
-1440
],
"parameters": {},
"typeVersion": 1.8,
"continueOnFail": true
},
{
"id": "ea38cc91-90bc-4b9c-aa2a-7cb422bdf817",
"name": "Parse Tax Form Result",
"type": "n8n-nodes-base.code",
"position": [
3280,
-1440
],
"parameters": {},
"typeVersion": 2
},
{
"id": "62efd350-ba6a-4329-9dee-6f45fd461774",
"name": "Download Signed Policy",
"type": "n8n-nodes-base.googleDrive",
"position": [
2368,
-1184
],
"parameters": {},
"typeVersion": 3,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "68467d49-0254-43a7-92cf-05a8026eb3c0",
"name": "AI Classify Signed Policy",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2928,
-1184
],
"parameters": {},
"typeVersion": 1.8,
"continueOnFail": true
},
{
"id": "67cf172a-8a8e-4e77-b187-1c88842ef7ee",
"name": "Parse Signed Policy Result",
"type": "n8n-nodes-base.code",
"position": [
3280,
-1184
],
"parameters": {},
"typeVersion": 2
},
{
"id": "6e810a65-6eaa-4e4d-bfb7-d0d5cb1a25ad",
"name": "Download NDA",
"type": "n8n-nodes-base.googleDrive",
"position": [
2368,
-944
],
"parameters": {},
"typeVersion": 3,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "5705dd3c-5818-4aab-9265-c8c3f8d5e4ab",
"name": "AI Classify NDA",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2928,
-944
],
"parameters": {},
"typeVersion": 1.8,
"continueOnFail": true
},
{
"id": "bfcfdca0-3a5a-4746-8358-e66295efb9a8",
"name": "Parse NDA Result",
"type": "n8n-nodes-base.code",
"position": [
3280,
-944
],
"parameters": {},
"typeVersion": 2
},
{
"id": "1d80f3a6-9abf-4919-a801-0a4cbd6112cf",
"name": "Aggregate All Document Results",
"type": "n8n-nodes-base.code",
"position": [
4000,
-1312
],
"parameters": {},
"typeVersion": 2
},
{
"id": "7fb8f003-ffd6-4d04-bc76-865b1470c92a",
"name": "AI Compliance Reasoning Engine",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
4256,
-1312
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "d40d0d69-9f55-4dcd-b036-4a4866e9cf2c",
"name": "Parse Compliance Report",
"type": "n8n-nodes-base.code",
"position": [
4560,
-1312
],
"parameters": {},
"typeVersion": 2
},
{
"id": "98e17e23-02a2-4cad-8ef1-46038ead2313",
"name": "Gaps Found?",
"type": "n8n-nodes-base.if",
"position": [
4816,
-1312
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "f60f8b5c-220c-468a-9bd7-087e673f2172",
"name": "Telegram - Send HR Alert",
"type": "n8n-nodes-base.telegram",
"position": [
5072,
-1456
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "6b4bc323-e1cf-4863-b4eb-50291570c78b",
"name": "Google Sheets - Mark Pending",
"type": "n8n-nodes-base.googleSheets",
"position": [
5344,
-1456
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "b6667aa9-bfba-4828-8396-771ef247ab25",
"name": "Telegram - Send Confirmation",
"type": "n8n-nodes-base.telegram",
"position": [
5072,
-1168
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "d91c3f82-300f-4ca5-99d2-4a74748a5a58",
"name": "Google Sheets - Mark Compliant",
"type": "n8n-nodes-base.googleSheets",
"position": [
5344,
-1168
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "6ab4c115-b37a-4680-8460-e55850086798",
"name": "Merge Document Results",
"type": "n8n-nodes-base.merge",
"position": [
3744,
-1312
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "8c1e9ba1-f4bd-4391-8dba-4a15d0ed7dbc",
"name": "Section \u2013 Error Handling",
"type": "n8n-nodes-base.stickyNote",
"position": [
704,
192
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2906c211-e4e8-44ef-9258-a3e4f57850f8",
"name": "On Workflow Error",
"type": "n8n-nodes-base.errorTrigger",
"position": [
880,
400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9b1c5846-5cdb-4484-9a79-e9ee20be2fdc",
"name": "Slack \u2013 Post Workflow Error Alert",
"type": "n8n-nodes-base.slack",
"position": [
1152,
400
],
"parameters": {},
"typeVersion": 2.3
}
],
"active": false,
"settings": {
"binaryMode": "separate",
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "4b78ff63-5c53-44d5-a773-b39a4172b0bf",
"nodeGroups": [],
"connections": {
"Gaps Found?": {
"main": [
[
{
"node": "Telegram - Send HR Alert",
"type": "main",
"index": 0
}
],
[
{
"node": "Telegram - Send Confirmation",
"type": "main",
"index": 0
}
]
]
},
"Download NDA": {
"main": [
[
{
"node": "Extract Text - NDA",
"type": "main",
"index": 0
}
]
]
},
"AI Classify NDA": {
"main": [
[
{
"node": "Parse NDA Result",
"type": "main",
"index": 0
}
]
]
},
"Parse NDA Result": {
"main": [
[
{
"node": "Merge Document Results",
"type": "main",
"index": 3
}
]
]
},
"Download ID Proof": {
"main": [
[
{
"node": "Extract Text - ID Proof",
"type": "main",
"index": 0
}
]
]
},
"Download Tax Form": {
"main": [
[
{
"node": "Extract Text - Tax Form",
"type": "main",
"index": 0
}
]
]
},
"On Workflow Error": {
"main": [
[
{
"node": "Slack \u2013 Post Workflow Error Alert",
"type": "main",
"index": 0
}
]
]
},
"Extract Text - NDA": {
"main": [
[
{
"node": "AI Classify NDA",
"type": "main",
"index": 0
}
]
]
},
"Get Pending Records": {
"main": [
[
{
"node": "Filter Due For Reminder",
"type": "main",
"index": 0
}
]
]
},
"Match Required Docs": {
"main": [
[
{
"node": "Download ID Proof",
"type": "main",
"index": 0
},
{
"node": "Download Tax Form",
"type": "main",
"index": 0
},
{
"node": "Download Signed Policy",
"type": "main",
"index": 0
},
{
"node": "Download NDA",
"type": "main",
"index": 0
}
]
]
},
"AI Classify ID Proof": {
"main": [
[
{
"node": "Parse ID Proof Result",
"type": "main",
"index": 0
}
]
]
},
"AI Classify Tax Form": {
"main": [
[
{
"node": "Parse Tax Form Result",
"type": "main",
"index": 0
}
]
]
},
"Parse ID Proof Result": {
"main": [
[
{
"node": "Merge Document Results",
"type": "main",
"index": 0
}
]
]
},
"Parse Tax Form Result": {
"main": [
[
{
"node": "Merge Document Results",
"type": "main",
"index": 1
}
]
]
},
"Download Signed Policy": {
"main": [
[
{
"node": "Extract Text - Signed Policy",
"type": "main",
"index": 0
}
]
]
},
"Merge Document Results": {
"main": [
[
{
"node": "Aggregate All Document Results",
"type": "main",
"index": 0
}
]
]
},
"Extract Text - ID Proof": {
"main": [
[
{
"node": "AI Classify ID Proof",
"type": "main",
"index": 0
}
]
]
},
"Extract Text - Tax Form": {
"main": [
[
{
"node": "AI Classify Tax Form",
"type": "main",
"index": 0
}
]
]
},
"Filter Due For Reminder": {
"main": [
[
{
"node": "Escalation Threshold Reached?",
"type": "main",
"index": 0
}
]
]
},
"Normalize New Hire Data": {
"main": [
[
{
"node": "Get Compliance Checklist",
"type": "main",
"index": 0
}
]
]
},
"Parse Compliance Report": {
"main": [
[
{
"node": "Gaps Found?",
"type": "main",
"index": 0
}
]
]
},
"Get Compliance Checklist": {
"main": [
[
{
"node": "Match Required Docs",
"type": "main",
"index": 0
}
]
]
},
"New Hire Added (Trigger)": {
"main": [
[
{
"node": "Normalize New Hire Data",
"type": "main",
"index": 0
}
]
]
},
"Telegram - Send HR Alert": {
"main": [
[
{
"node": "Google Sheets - Mark Pending",
"type": "main",
"index": 0
}
]
]
},
"Telegram - Send Reminder": {
"main": [
[
{
"node": "Google Sheets - Increment Reminder Count",
"type": "main",
"index": 0
}
]
]
},
"AI Classify Signed Policy": {
"main": [
[
{
"node": "Parse Signed Policy Result",
"type": "main",
"index": 0
}
]
]
},
"Parse Signed Policy Result": {
"main": [
[
{
"node": "Merge Document Results",
"type": "main",
"index": 2
}
]
]
},
"Extract Text - Signed Policy": {
"main": [
[
{
"node": "AI Classify Signed Policy",
"type": "main",
"index": 0
}
]
]
},
"Telegram - Send Confirmation": {
"main": [
[
{
"node": "Google Sheets - Mark Compliant",
"type": "main",
"index": 0
}
]
]
},
"Escalation Threshold Reached?": {
"main": [
[],
[
{
"node": "Telegram - Send Reminder",
"type": "main",
"index": 0
}
]
]
},
"AI Compliance Reasoning Engine": {
"main": [
[
{
"node": "Parse Compliance Report",
"type": "main",
"index": 0
}
]
]
},
"Aggregate All Document Results": {
"main": [
[
{
"node": "AI Compliance Reasoning Engine",
"type": "main",
"index": 0
}
]
]
},
"Daily Reminder Check (Trigger)": {
"main": [
[
{
"node": "Get Pending Records",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow monitors new hires in Google Sheets, downloads onboarding documents from Google Drive, uses OpenAI (gpt-4o-mini) to verify each file and determine overall compliance, then notifies HR via Telegram and updates the sheet, with a daily scheduled reminder loop for…
Source: https://n8n.io/workflows/17605/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow runs daily to audit rows in a Google Sheets ComplianceRecords tab using two OpenAI checks, automatically marking compliant items, fixing safe issues, and escalating unresolved violations
This workflow uses Google Sheets, OpenAI, Telegram, and Slack to send post-therapy check-in messages, analyze patient replies for sentiment and risk, alert therapists to at-risk responses, and log non
This workflow monitors a Google Drive folder for new prescription PDFs, extracts the text, uses OpenAI (GPT-4o-mini) to structure prescription details and draft a SOAP note, checks drugs against Googl
This workflow handles customer order complaints submitted via Telegram by looking up order details in Google Sheets, using OpenAI to classify message sentiment, and routing each case to auto-approval,
This workflow handles COD order confirmation and abandoned-cart recovery by combining webhooks, Google Sheets logging, OpenAI message generation, and Telegram messaging with inline buttons, plus Slack