This workflow follows the Gmail → 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 →
{
"name": "[HR] \uc628\ubcf4\ub529 \uc790\ub3d9\ud654 - Webhook",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "onboarding",
"responseMode": "lastNode",
"options": {}
},
"id": "webhook-onboarding",
"name": "\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
250,
300
]
},
{
"parameters": {
"sendTo": "={{ $json.email }}",
"subject": "=[\ud658\uc601] {{ $json.name }}\ub2d8, \uc785\uc0ac\ub97c \ucd95\ud558\ud569\ub2c8\ub2e4!",
"message": "=\uc548\ub155\ud558\uc138\uc694, {{ $json.name }}\ub2d8!\n\n{{ $json.department }}\uc5d0 \uc624\uc2e0 \uac83\uc744 \uc9c4\uc2ec\uc73c\ub85c \ud658\uc601\ud569\ub2c8\ub2e4.\n\n\uc785\uc0ac\uc77c: {{ $json.startDate }}\n\ubd80\uc11c: {{ $json.department }}\n\n\uc785\uc0ac \uc804 \uc900\ube44\uc0ac\ud56d\uacfc \uccab\ub0a0 \uc548\ub0b4\ub294 \ubcc4\ub3c4\ub85c \uc804\ub2ec\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.\n\uad81\uae08\ud55c \uc810\uc774 \uc788\uc73c\uc2dc\uba74 \uc5b8\uc81c\ub4e0 HR\ud300\uc5d0 \ubb38\uc758\ud574\uc8fc\uc138\uc694.\n\n\uac10\uc0ac\ud569\ub2c8\ub2e4.\nHR\ud300 \ub4dc\ub9bc",
"options": {}
},
"id": "gmail-welcome",
"name": "\ud658\uc601 \uc774\uba54\uc77c",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
450,
300
],
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"authentication": "oAuth2",
"select": "channel",
"channelId": {
"__rl": true,
"value": "C_TEAM_CHANNEL_ID",
"mode": "id"
},
"text": "=:tada: *\uc2e0\uaddc \uc785\uc0ac\uc790\ub97c \uc18c\uac1c\ud569\ub2c8\ub2e4!*\n\n*\uc774\ub984:* {{ $('\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d').item.json.name }}\n*\ubd80\uc11c:* {{ $('\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d').item.json.department }}\n*\uc785\uc0ac\uc77c:* {{ $('\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d').item.json.startDate }}\n\n\ub530\ub73b\ud558\uac8c \ub9de\uc774\ud574\uc8fc\uc138\uc694!",
"otherOptions": {}
},
"id": "slack-team-notify",
"name": "\ud300 \ucc44\ub110 \uc548\ub0b4",
"type": "n8n-nodes-base.slack",
"typeVersion": 2.2,
"position": [
650,
300
],
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "placeholder-spreadsheet-id",
"mode": "id",
"cachedResultName": "\uc628\ubcf4\ub529 \uccb4\ud06c\ub9ac\uc2a4\ud2b8"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "id",
"cachedResultName": "Sheet1"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"\uc774\ub984": "={{ $('\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d').item.json.name }}",
"\ubd80\uc11c": "={{ $('\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d').item.json.department }}",
"\uc785\uc0ac\uc77c": "={{ $('\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d').item.json.startDate }}",
"\uacc4\uc815\uc0dd\uc131": "\ubbf8\uc644\ub8cc",
"\uc7a5\ube44\uc9c0\uae09": "\ubbf8\uc644\ub8cc",
"\uad50\uc721\uc77c\uc815": "\ubbf8\ubc30\uc815"
},
"matchingColumns": [],
"schema": []
},
"options": {
"cellFormat": "USER_ENTERED",
"useAppend": true
}
},
"id": "sheets-checklist",
"name": "\uccb4\ud06c\ub9ac\uc2a4\ud2b8 \uc0dd\uc131",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.4,
"position": [
850,
300
],
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"authentication": "oAuth2",
"select": "channel",
"channelId": {
"__rl": true,
"value": "C_HR_CHANNEL_ID",
"mode": "id"
},
"text": "=:white_check_mark: *\uc628\ubcf4\ub529 \ud504\ub85c\uc138\uc2a4 \uc2dc\uc791*\n\n{{ $('\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d').item.json.name }}\ub2d8\uc758 \uc628\ubcf4\ub529\uc774 \uc2dc\uc791\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n\n- \ud658\uc601 \uc774\uba54\uc77c \ubc1c\uc1a1 \uc644\ub8cc\n- \ud300 \ucc44\ub110 \uacf5\uc9c0 \uc644\ub8cc\n- \uccb4\ud06c\ub9ac\uc2a4\ud2b8 \uc0dd\uc131 \uc644\ub8cc\n\n\uacc4\uc815 \uc0dd\uc131, \uc7a5\ube44 \uc9c0\uae09, \uad50\uc721 \uc77c\uc815 \ubc30\uc815\uc744 \uc9c4\ud589\ud574\uc8fc\uc138\uc694.",
"otherOptions": {}
},
"id": "slack-hr-notify",
"name": "HR \uc644\ub8cc \uc54c\ub9bc",
"type": "n8n-nodes-base.slack",
"typeVersion": 2.2,
"position": [
1050,
300
],
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"id": "noop-complete",
"name": "\uc644\ub8cc",
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
1250,
300
]
}
],
"connections": {
"\uc2e0\uaddc \uc785\uc0ac\uc790 \ub4f1\ub85d": {
"main": [
[
{
"node": "\ud658\uc601 \uc774\uba54\uc77c",
"type": "main",
"index": 0
}
]
]
},
"\ud658\uc601 \uc774\uba54\uc77c": {
"main": [
[
{
"node": "\ud300 \ucc44\ub110 \uc548\ub0b4",
"type": "main",
"index": 0
}
]
]
},
"\ud300 \ucc44\ub110 \uc548\ub0b4": {
"main": [
[
{
"node": "\uccb4\ud06c\ub9ac\uc2a4\ud2b8 \uc0dd\uc131",
"type": "main",
"index": 0
}
]
]
},
"\uccb4\ud06c\ub9ac\uc2a4\ud2b8 \uc0dd\uc131": {
"main": [
[
{
"node": "HR \uc644\ub8cc \uc54c\ub9bc",
"type": "main",
"index": 0
}
]
]
},
"HR \uc644\ub8cc \uc54c\ub9bc": {
"main": [
[
{
"node": "\uc644\ub8cc",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1",
"saveManualExecutions": true,
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "",
"timezone": "Asia/Seoul",
"saveExecutionProgress": true,
"executionTimeout": 3600,
"saveDataErrorExecution": "all",
"saveDataSuccessExecution": "all"
},
"staticData": null,
"tags": [
{
"createdAt": "2026-03-09T00:00:00.000Z",
"updatedAt": "2026-03-09T00:00:00.000Z",
"id": "hr-automation",
"name": "HR \uc790\ub3d9\ud654"
},
{
"createdAt": "2026-03-09T00:00:00.000Z",
"updatedAt": "2026-03-09T00:00:00.000Z",
"id": "onboarding",
"name": "\uc628\ubcf4\ub529"
}
],
"triggerCount": 1,
"updatedAt": "2026-03-09T00:00:00.000Z",
"versionId": "1"
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2googleSheetsOAuth2ApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
[HR] 온보딩 자동화 - Webhook. Uses gmail, slack, googleSheets. Webhook trigger; 6 nodes.
Source: https://github.com/cskwork/n8n-maker/blob/34120aa8922a96a6a05e9ca710cc0ce1e6c3dfe6/public/workflows/onboarding-automation.json — 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.
Complete Calendly automation that handles confirmations, cancellations and reschedules in a single workflow. WHAT IT DOES:
Who is this for? This template is ideal for event organizers, conference managers, and community teams who need an automated participant management system. Perfect for workshops, conferences, meetups,
Automatically generate, validate, and deliver professional course completion certificates with zero manual work — from webhook request to PDF delivery in seconds.
Streamline and standardize your entire client onboarding process with a single end-to-end automation. 🚀📋 This workflow captures detailed client intake data via webhook, automatically creates a fully s
Human Approval AI Response. Uses httpRequest, slack, gmail, googleSheets. Webhook trigger; 20 nodes.