AutomationFlowsEmail & Gmail › HR Onboarding: Welcome Email & Checklist

HR Onboarding: Welcome Email & Checklist

Original n8n title: [hr] 온보딩 자동화 - Webhook

[HR] 온보딩 자동화 - Webhook. Uses gmail, slack, googleSheets. Webhook trigger; 6 nodes.

Webhook trigger★★★★☆ complexity6 nodesGmailSlackGoogle Sheets
Email & Gmail Trigger: Webhook Nodes: 6 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "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.

Pro

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 →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

This workflow automates HR onboarding by capturing new hires via a webhook, saving them to Google Sheets, emailing a Slack invite via Gmail, and notifying managers in Slack, then listening for Slack t

Google Sheets, Gmail, Slack +1
Email & Gmail

Complete Calendly automation that handles confirmations, cancellations and reschedules in a single workflow. WHAT IT DOES:

Google Sheets, Google Calendar, Slack +1
Email & Gmail

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,

Google Sheets, HTTP Request, Gmail +1
Email & Gmail

Automatically generate, validate, and deliver professional course completion certificates with zero manual work — from webhook request to PDF delivery in seconds.

Gmail, Google Sheets, Error Trigger +4
Email & Gmail

This workflow receives Stripe payment webhooks, looks up the customer’s order in Google Sheets, generates personalized HTML content with OpenAI, converts it to a PDF using PDFShift, then queues the re

Google Sheets, HTTP Request, Gmail +1