自動候補者ステータス通知器
初級
これはHR分野の自動化ワークフローで、5個のノードを含みます。主にSlack, Webhook, Functionなどのノードを使用。 Slack 通知を使った自動化採用ステータス更新
前提条件
- •Slack Bot Token または Webhook URL
- •HTTP Webhookエンドポイント(n8nが自動生成)
使用ノード (5)
カテゴリー
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "q6IkLPK3fhmaaUBg",
"meta": {
"instanceId": "a287613f1596da776459594685fbf4e2b4a12124f80ab8c8772f5e37bff103ae"
},
"name": "Automated Candidate Status Notifier",
"tags": [],
"nodes": [
{
"id": "ef1fe3c8-04ab-404e-b703-667f21caac0a",
"name": "1. Webhook トリガー(ステータス更新)",
"type": "n8n-nodes-base.webhook",
"position": [
0,
0
],
"webhookId": "5f3424e2-ffb3-4248-9d3d-971e15737c1b",
"parameters": {
"path": "candidate-status-update",
"options": {},
"httpMethod": "POST"
},
"description": "Receives candidate status updates (e.g., from a form, ATS webhook, or custom script). Copy this Webhook URL into your sending system.",
"typeVersion": 1
},
{
"id": "60448125-d750-46ee-9e42-e92267d0407c",
"name": "2. データ抽出・準備",
"type": "n8n-nodes-base.function",
"position": [
260,
0
],
"parameters": {
"functionCode": "const inputData = items[0].json.body;\n\n// --- IMPORTANT: ADJUST THESE FIELD NAMES TO MATCH YOUR INCOMING DATA ---\n// Common assumption: Incoming data contains 'candidateName', 'position', 'newStatus', and optionally 'oldStatus' and 'notes'.\n// Example:\n// If your system sends: { \"applicant_name\": \"John Doe\", \"job_role\": \"Software Engineer\", \"current_stage\": \"Interview Scheduled\" }\n// Adjust the variables below:\n// const candidateName = inputData.applicant_name;\n// const position = inputData.job_role;\n// const newStatus = inputData.current_stage;\n\nconst candidateName = inputData.candidateName || inputData.applicant_name || 'Unknown Candidate';\nconst position = inputData.position || inputData.job_role || 'Unknown Position';\nconst newStatus = inputData.newStatus || inputData.current_status || 'No New Status';\nconst oldStatus = inputData.oldStatus || inputData.previous_status || null;\nconst notes = inputData.notes || inputData.comment || ''; // Optional: for additional notes\n\nif (!candidateName || !newStatus) {\n throw new Error('Candidate data (name or new status) is incomplete. Please check your data sender configuration.');\n}\n\n// Prepare message for Slack/Email\nlet statusMessage;\nif (oldStatus && newStatus !== oldStatus) {\n statusMessage = `Candidate Status Updated: *${candidateName}* for position *${position}* changed from *${oldStatus}* to *${newStatus}*.`;\n} else {\n statusMessage = `New Candidate Status: *${candidateName}* for position *${position}* is now *${newStatus}*.`;\n}\n\nif (notes) {\n statusMessage += `\\nNotes: ${notes}`; // Add notes if available\n}\n\nreturn [{\n json: {\n candidateName: candidateName,\n position: position,\n newStatus: newStatus,\n oldStatus: oldStatus,\n slackMessage: statusMessage, // Message formatted for Slack (supports simple Markdown)\n emailSubject: `Candidate Status Update: ${candidateName} (${position})`,\n emailBody: statusMessage.replace(/\\*/g, '**') // Convert Slack Markdown to bold for email\n }\n}];"
},
"description": "Extracts candidate details and prepares the notification message.",
"typeVersion": 1
},
{
"id": "abe896cc-945f-4d49-be11-a53932b69d3d",
"name": "3. Slack 通知送信",
"type": "n8n-nodes-base.slack",
"position": [
500,
0
],
"parameters": {
"text": "={{ $json.slackMessage }}",
"channel": "YOUR_SLACK_CHANNEL_ID_OR_NAME",
"attachments": [],
"otherOptions": {}
},
"description": "Sends a real-time notification to your Slack channel about the candidate status update.",
"typeVersion": 1
},
{
"id": "63686a52-aec3-4fb2-8bbe-24cdb61e446f",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-60
],
"parameters": {
"color": 3,
"width": 800,
"height": 240,
"content": "## Flow"
},
"typeVersion": 1
},
{
"id": "51a80419-1aaf-41b8-9d4b-bba9f866d10b",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
220
],
"parameters": {
"color": 4,
"width": 800,
"height": 1820,
"content": "# Workflow Documentation: Automated Candidate Status Notifier\n\n## Problem 😩\nIn busy recruitment processes, keeping the entire hiring team updated on candidate status changes is a constant challenge. Manual communication about status updates (e.g., 'Applied' to 'Interview Scheduled' to 'Offered') is inefficient, leads to communication gaps, and slows down the hiring process.\n\n## Solution ✨\nThis n8n workflow automates instant notifications about candidate status changes. It ensures that your recruiting team, hiring managers, or other relevant stakeholders are immediately informed about critical updates, improving transparency and collaboration.\n\n## For Who 🤝\nThis workflow is perfect for:\n* **Recruitment Teams:** To streamline internal communication.\n* **Hiring Managers:** To stay informed without constantly checking systems.\n* **HR Departments:** To ensure all stakeholders are aligned on candidate progress.\n* **Agencies & Freelance Recruiters:** To enhance their internal tracking and client communication.\n\n## Scope 🎯\n* **Input Data:** Candidate details and their new/old status (e.g., from a custom form, ATS webhook, or simple spreadsheet integration).\n* **Trigger:** Webhook (ideal for real-time updates from various sources).\n* **Logic:** Extracts candidate name, position, old status, and new status; constructs a concise notification message.\n* **Output:** Real-time notifications sent to a Slack channel (easily adaptable to email or other communication tools).\n* **Customization:** Flexible for different data input formats and notification channels.\n\n## How It Works ⚙️\n\nThis workflow acts as a communication bridge for your candidate pipeline:\n\n1. **Webhook Trigger (Status Update):** 🚀 The workflow activates when it receives data indicating a candidate's status has changed. This data could come from an internal form, a custom script, or a webhook from a basic Applicant Tracking System (ATS).\n2. **Extract & Prepare Data (Function):** 🧹 This node processes the incoming data. It extracts key information such as the candidate's name, the position they applied for, their previous status (if available), and their new status. It then formats this information into a clear, concise message suitable for a notification.\n3. **Send Slack Notification:** 📢 The prepared message is sent to a designated Slack channel (e.g., `#recruitment-updates`). This provides instant, real-time updates to your team, ensuring everyone is on the same page.\n * **(Alternative: Send Email Notification):** This node can easily be swapped with a Gmail or SendGrid node to send email notifications to a predefined list of recipients instead of Slack.\n\n## How to Set Up 🛠️\n\nFollow these steps carefully to get your \"Automated Candidate Status Notifier\" workflow up and running:\n\n1. **Import Workflow JSON:**\n * Open your n8n instance.\n * Click on 'Workflows' in the left sidebar.\n * Click the '+' button or 'New' to create a new workflow.\n * Click the '...' (More Options) icon in the top right.\n * Select 'Import from JSON' and paste the entire JSON code for this workflow.\n\n2. **Configure Webhook Trigger (Status Update):**\n * Locate the 'Webhook Trigger (Status Update)' node (1. Webhook Trigger).\n * Activate the workflow. n8n will provide a unique 'Webhook URL'.\n * **Crucial Step:** Configure your data-sending system (e.g., a form submission, an ATS's webhook settings, or your custom script) to send candidate status update data (preferably in JSON format via POST request) to this n8n Webhook URL.\n\n3. **Configure Extract & Prepare Data (Function):**\n * Locate the 'Extract & Prepare Data' node (2. Extract & Prepare Data).\n * **Adjust Field Names:** Review the `functionCode` inside this node. **You MUST adjust the variable assignments (e.g., `inputData.candidateName`, `inputData.position`)** to accurately match the exact field names your sending system uses for candidate name, position, new status, old status, and notes. Use the 'Test Workflow' feature after sending a test webhook to inspect the incoming `items[0].json.body` data structure.\n * The node automatically formats messages for Slack and Email.\n\n4. **Configure Send Slack Notification:**\n * Locate the 'Send Slack Notification' node (3. Send Slack Notification).\n * **Credentials:** Select your existing Slack API credential or click 'Create New' to set one up. Replace `YOUR_SLACK_CREDENTIAL_ID` with the actual ID or name of your credential from your n8n credentials.\n * **Channel:** Replace `YOUR_SLACK_CHANNEL_ID_OR_NAME` with the exact ID or name of the Slack channel where you want to receive notifications (e.g., `#recruitment-updates`).\n\n * **OPTIONAL: Switch to Email Notification"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "1ff87f1e-2e7f-4bbb-a796-135989964d30",
"connections": {
"60448125-d750-46ee-9e42-e92267d0407c": {
"main": [
[
{
"node": "abe896cc-945f-4d49-be11-a53932b69d3d",
"type": "main",
"index": 0
}
]
]
},
"ef1fe3c8-04ab-404e-b703-667f21caac0a": {
"main": [
[
{
"node": "60448125-d750-46ee-9e42-e92267d0407c",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
初級 - 人事
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
GPT-4を基盤としたインテリジェント採用・候補者インタラクションシステム
GPT-4を活用したAI採用システムで、履歴書スクリーニングと自動アウトリーチを実現
If
Code
Wait
+
If
Code
Wait
30 ノードMarth
人事
Google Docs、DocuSign、Airtable を使用した契約社員の life cycle 自動化
Google Docs、DocuSign、そして Airtable を使った契約社員ライフサイクル管理の自動化
If
Wait
Slack
+
If
Wait
Slack
16 ノードMarth
人事
ECオペレーションデスクのAIシステム
Slack、Sheets、Gmail を使用した EC 注文、在庫、フィードバックの自動化
If
Gmail
Slack
+
If
Gmail
Slack
16 ノードMarth
顧客管理
不動産観観フォー予約の自動化(不動産業)
Googleカレンダー、Slack、Calendlyを使った不動産物件見学オートメーション
Wait
Gmail
Slack
+
Wait
Gmail
Slack
12 ノードMarth
リードナーチャリング
包括のなリードニルティング&クオリファイケーション
Gmail、Googleスプレッドシート、Slackを使った自動リード育成とクオリファイアーション
Wait
Gmail
Slack
+
Wait
Gmail
Slack
12 ノードMarth
リードナーチャリング
従業員の表彰業務の自動化(Slack、Sheets、Gmailを使用)
Slack、Sheets、Gmailを使用し、必要に応じてGPT-4を活用した従業員賞賛業務の自動化
If
Code
Gmail
+
If
Code
Gmail
16 ノードMarth
人事
ワークフロー情報
難易度
初級
ノード数5
カテゴリー1
ノードタイプ4
作成者
Marth
@marthSimplifying Business with Smart Automation. I create and share user-friendly, highly efficient n8n workflow templates for SMEs, focusing on digital marketing, sales, and operational excellence. Get ready to automate, innovate, and elevate your business. Connect me on Linkedin for custom solutions.
外部リンク
n8n.ioで表示 →
このワークフローを共有