Automatisation de l'intégration des nouveaux développeurs
Ceci est unHR, AI Chatbotworkflow d'automatisation du domainecontenant 21 nœuds.Utilise principalement des nœuds comme If, Set, Code, Gmail, Merge. Automatisation de l'onboarding des employés avec GPT-4o : intégration de Jira, Notion et Gmail
- •Compte Google et informations d'identification Gmail API
- •Clé API Notion
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
Nœuds utilisés (21)
Catégorie
{
"id": "4CTZmDghFqoIOP2v",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Onboarding Automation for New Developers:",
"tags": [],
"nodes": [
{
"id": "b7966c54-38b1-4a82-9477-8cd7e9384d81",
"name": "Lors du clic sur 'Exécuter le workflow'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-752,
-192
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0e1b2b00-40a3-410c-8eff-1b90c3cddb0d",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-32
],
"parameters": {
"width": 368,
"height": 416,
"content": "## 📋 Generate Notion Onboarding Checklist\n**Action:** \n- Creates personalized onboarding checklist page in Notion. \n**Description:** \n- Dynamic page title: \"{Name} - Onboarding Checklist\" \n- Structured checklist content: \n - Welcome header with team and emojis \n - Access links (Slack, GitHub, Jira, Notion) \n - Assigned buddy info for mentorship \n - Start date and onboarding status tracker \n- Uses Notion Blocks API for rich formatting. \n- Returns page URL for welcome email. \n- Central hub for new hire onboarding tasks and resources.\n"
},
"typeVersion": 1
},
{
"id": "30f2733c-43d1-48cc-aa69-e4ba2bda1a89",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-432,
0
],
"parameters": {
"width": 272,
"height": 528,
"content": "## 👤 Define New Hire Profile Data\n**Action:** \n- Structures new employee information for multi-platform onboarding. \n**Description:** \n- Consolidates data into a standardized format: \n - Personal Info: Name, email, username \n - Company Details: Organization, start date, assigned buddy \n - Access Links: Slack, GitHub, Jira, Notion invitations \n - Custom Messages: Welcome message template, checklist name \n- Acts as single source of truth for downstream nodes. \n- Ensures consistent format across Notion, Jira, email, and AI.\n"
},
"typeVersion": 1
},
{
"id": "7021de1e-54d6-42cc-9e2f-898ac9cccbb6",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
672,
-1088
],
"parameters": {
"height": 480,
"content": "## 📊 Log Jira Provisioning Failures to Error Sheet\n**Action:** \n- Records Jira account creation errors in a Google Sheet. \n**Description:** \n- Captures failures like duplicate email, API auth errors, or invalid access. \n- Maintains queryable database for HR/IT troubleshooting. \n- Ensures onboarding failures don’t go unnoticed. \n- Critical for SLA compliance and smooth new hire experience.\n"
},
"typeVersion": 1
},
{
"id": "c2fd3b41-2f64-4b56-86cb-8f0bb5d24810",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
-1088
],
"parameters": {
"height": 464,
"content": "## 🎫 Create Jira User Account\n**Action:** \n- Automatically provisions new Jira user account via API. \n**Description:** \n- Calls Jira REST API (`/rest/api/3/user`) with POST method. \n- Creates user with email, display name, username, and product access. \n- Eliminates manual admin account creation. \n- Returns account ID for validation and error handling. \n- Requires Jira admin API credentials. \n- Ensures immediate access to Jira boards and issue tracking.\n"
},
"typeVersion": 1
},
{
"id": "f42a8d38-4e5d-4891-9448-4e29340a4fc7",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
288,
-1136
],
"parameters": {
"height": 496,
"content": "## ✅ Validate Jira Account Creation Success\n**Action:** \n- Confirms Jira user account creation was successful. \n**Description:** \n- Checks for valid `accountId` in API response. \n- **True Path:** Routes to Merge node to continue onboarding. \n- **False Path:** Routes to error logging for troubleshooting. \n- Catches duplicate emails, invalid credentials, permission issues, or rate limits. \n- Prevents incomplete onboarding propagation downstream.\n"
},
"typeVersion": 1
},
{
"id": "a93fe17d-57ff-46a3-88da-6bc25f75e1b4",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
640
],
"parameters": {
"width": 368,
"height": 384,
"content": "## 🤖 AI-Generated Welcome Message Creator\n**Action:** \n- Generates personalized, warm onboarding message via GPT-4o. \n**Description:** \n- Leverages Azure OpenAI to craft messages using new hire info, buddy, role, and access links. \n- Maintains professional, motivational, and emoji-inclusive tone. \n- Message under 200 words for email compatibility. \n- Output used in emails and Slack messages. \n- Customizable per department or seniority via prompt adjustments.\n"
},
"typeVersion": 1
},
{
"id": "79f38e52-ec40-4e4d-b8bf-26e7b1368cc4",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1072,
0
],
"parameters": {
"width": 288,
"height": 448,
"content": "## 🧾 Format Comprehensive Welcome Email\n**Action:** \n- Builds full HTML email with all onboarding resources and AI message. \n**Description:** \n- Personalized greeting and warm AI message. \n- Clickable links: Notion checklist, Jira board, Slack, GitHub. \n- Buddy assignment and start date included. \n- Mobile-responsive and professional template. \n- Output JSON formatted for Gmail node (to, subject, body).\n"
},
"typeVersion": 1
},
{
"id": "63413c56-62dd-41af-a286-ca069d339f3a",
"name": "Note adhésive7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1440,
0
],
"parameters": {
"height": 432,
"content": "## 📧 Send Welcome Email to New Hire\n**Action:** \n- Delivers comprehensive onboarding email to new hire inbox. \n**Description:** \n- Sends HTML email including AI message, access links, buddy info, and start date. \n- Subject: \"Welcome to Techdome, {Name}! 🎉\" \n- Optionally CC HR/manager for tracking. \n- Ensures new hire receives all onboarding info in one organized email.\n"
},
"typeVersion": 1
},
{
"id": "df323705-b891-4892-a7c4-206937c53b4d",
"name": "Note adhésive8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
800
],
"parameters": {
"height": 432,
"content": "## 🧠 GPT-4o Language Model Configuration\n**Action:** \n- Configures GPT-4o model for generating onboarding messages. \n**Description:** \n- Sets system prompt defining onboarding assistant persona. \n- Ensures consistent tone and style across all messages. \n- Handles edge cases like missing buddy or delayed start dates. \n- Optimized for friendly, professional output.\n"
},
"typeVersion": 1
},
{
"id": "1bb5da54-d2f4-48a3-b8ad-868c68ff41ee",
"name": "Définir les données du profil du nouveau recruté",
"type": "n8n-nodes-base.set",
"position": [
-352,
-192
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8513651a-27c6-4bd3-8c6e-cc97ed899eed",
"name": "name",
"type": "string",
"value": "John Doe"
},
{
"id": "1e3fd393-81ca-4a12-83c0-f4ccd85efd85",
"name": "email",
"type": "string",
"value": "john.doe@example.com"
},
{
"id": "0360d8ac-7b76-4da2-8d63-c9ee0f8f1264",
"name": "username",
"type": "string",
"value": "johndoe"
},
{
"id": "b79a4c3b-e334-4087-bbe8-3d227cd8c0aa",
"name": "organization",
"type": "string",
"value": "saurabh organization"
},
{
"id": "cd2f48e9-897e-4fde-8c4b-d1727b477a50",
"name": "start_date",
"type": "string",
"value": "12/02/2025"
},
{
"id": "c230c4bf-fe47-48f6-a7f2-f8c8cb374c18",
"name": "buddy",
"type": "string",
"value": "depak sen "
},
{
"id": "a9c3ce7b-d717-48bb-a7e8-34549d3f4167",
"name": "welcome_message",
"type": "string",
"value": "Welcome newscctv to Techdome’s Developer Team 🎉"
},
{
"id": "bd3bc9f1-dadf-47b2-be3e-2750d80e8047",
"name": "slack_invite_link",
"type": "string",
"value": "https://join.slack.com/t/techdome/invite/your-link"
},
{
"id": "441dcb27-f0c2-445f-8d4e-77c57774c107",
"name": "github_invite_link",
"type": "string",
"value": "https://github.com/orgs/techdome/invitation"
},
{
"id": "22509df0-86fc-4143-95d6-633b3f1d008b",
"name": "jira_project_link",
"type": "string",
"value": "https://newscctv22.atlassian.net/jira/software/c/projects/SCRUM/boards/1"
},
{
"id": "11e48083-8fdd-424e-8c42-8fc2ff667cbf",
"name": "notion_checklist_name",
"type": "string",
"value": "Developer Onboarding Checklist"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "aeef0657-f3b6-480c-b120-578329f22e32",
"name": "Créer un compte utilisateur Jira",
"type": "n8n-nodes-base.httpRequest",
"position": [
64,
-576
],
"parameters": {
"url": "={{$node[\"Define New Hire Profile Data\"].json[\"jira_domain\"]}}/rest/api/3/user",
"method": "POST",
"options": {},
"jsonBody": "={\n \"emailAddress\": \"{{$json[\"email\"]}}\",\n \"displayName\": \"{{$json[\"name\"]}}\",\n \"name\": \"{{$json[\"username\"]}}\",\n \"products\": [\"jira-software\"]\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "aed4e501-ddbf-41f6-a5e2-08b7d7e970ce",
"name": "Valider la réussite de la création du compte Jira",
"type": "n8n-nodes-base.if",
"position": [
352,
-576
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e2adb005-2b3c-4d1e-8445-442df1fe925a",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json[\"accountId\"] }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2c67259a-cdd1-43ee-a4af-6bd780d56eda",
"name": "Journaliser les échecs de provisionnement Jira dans la feuille d'erreurs",
"type": "n8n-nodes-base.googleSheets",
"position": [
752,
-560
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "error_id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "error_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "error",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "error",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"error_id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1338537721,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit#gid=1338537721",
"cachedResultName": "error log sheet"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit?usp=drivesdk",
"cachedResultName": "Interviewer Brief Pack "
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "kpPEOLCGn963qpoh",
"name": "automations@techdome.ai"
}
},
"typeVersion": 4.6
},
{
"id": "79686adb-3cad-4af2-81d9-af44b4306352",
"name": "Générer la checklist d'intégration Notion",
"type": "n8n-nodes-base.notion",
"position": [
224,
-192
],
"parameters": {
"title": "={{$json[\"name\"]}} - Onboarding Checklist",
"pageId": {
"__rl": true,
"mode": "id",
"value": "265802b91fa080f69fffd0fc1daffe3d"
},
"simple": false,
"blockUi": {
"blockValues": [
{
"type": "heading_1",
"textContent": "={{ $json.notion_checklist_name }}"
},
{
"textContent": "=👋 Welcome {{$json[\"name\"]}} to Techdome’s Developer Team 🎉 Your onboarding journey starts today! Here’s everything you’ll need to get started: - 💬 **Slack Access:** [Join Workspace]({{$json[\"slack_invite_link\"]}}) - 💻 **GitHub Access:** [Join Organization]({{$json[\"github_invite_link\"]}}) - 🧾 **Jira Project Board:** [View Tasks]({{$json[\"jira_project_link\"]}}) - 🗒️ You’ll be guided by your buddy **{{$json[\"buddy\"]}}**, who will help you with setup and initial tasks. Let’s make your first week a great start 🚀 Status: *Invited* | Start Date: {{$json[\"start_date\"]}}"
}
]
},
"options": {}
},
"credentials": {
"notionApi": {
"id": "iDjtgSTYG9ECVBtT",
"name": "Notion account 2"
}
},
"typeVersion": 2.2
},
{
"id": "00068c67-c7a8-42ba-8d53-ee634de6e10f",
"name": "Créateur de message de bienvenue généré par IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
208,
432
],
"parameters": {
"text": "=You are Techdome’s onboarding assistant. \nCompose a warm, friendly onboarding message for a new developer.\n\nHere’s the new hire data in JSON:\n{{ JSON.stringify($json) }}\n\nUse the details to:\n- Welcome the developer by name\n- Mention their buddy\n- Share joining links (Slack, GitHub, Jira, Notion)\n- Add a short motivational line at the end\n\nKeep the tone conversational and include emojis (🎉 🚀 💬 💻 🧾).\nFormat the message as text for email or Slack.\n",
"options": {
"systemMessage": "=You are an assistant that specializes in generating onboarding messages for new employees.\nMake the message sound welcoming, professional, and motivating. Keep it under 200 words.\n"
},
"promptType": "define"
},
"typeVersion": 2.1
},
{
"id": "f1cad5d9-1870-4e1a-b6ad-551d7afb5f20",
"name": "Configuration du modèle de langage GPT-4o",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
128,
640
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "8343b46b-d2c3-45d2-b0f7-0921d8ca56f8",
"name": "Note adhésive9",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
32
],
"parameters": {
"width": 272,
"height": 416,
"content": "## 🔗 Consolidate Onboarding Data Streams\n**Action:** \n- Merges data from Jira, Notion, and AI-generated message for unified email payload. \n**Description:** \n- Combines: \n 1. Jira account info \n 2. Notion checklist URL \n 3. AI-generated welcome text \n- Prevents premature email sending with “Wait for All Input” mode. \n- Critical integration point ensuring new hire receives complete information.\n"
},
"typeVersion": 1
},
{
"id": "fe3a7d1f-2722-4451-8bc4-131e8a0e1dbe",
"name": "Consolider les flux de données d'intégration",
"type": "n8n-nodes-base.merge",
"position": [
816,
-208
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "8988e72b-a0ae-489e-ae9a-b60e66288738",
"name": "Formater l'email de bienvenue complet",
"type": "n8n-nodes-base.code",
"position": [
1184,
-192
],
"parameters": {
"jsCode": "// Get merged data\nconst data = $json;\n\n// Handle possible nested AI output\nlet aiOutput =\n data.output?.text ||\n data.output ||\n \"Welcome to Techdome! We’re excited to have you join the team 🚀\";\n\n// Links\nconst notionLink = data.url || \"https://www.notion.so/\";\nconst jiraLink =\n \"https://newscctv22.atlassian.net/jira/software/c/projects/SCRUM/boards/1\";\n\n// Employee info\nconst employee = {\n name: \"Saurabh Garg\",\n email: \"gargsaurabh18042001@gmail.com\",\n buddy: \"Depak Sen\",\n start_date: \"12/02/2025\",\n slack_invite_link: \"https://join.slack.com/t/techdome/invite/your-link\",\n github_invite_link: \"https://github.com/orgs/techdome/invitation\",\n};\n\n// Use AI node tone if exists, else wrap into a neat template\nconst emailBodyHTML = `\n<html>\n<body style=\"font-family:Arial, sans-serif; color:#333;\">\n <p>Hi <b>${employee.name}</b>,</p>\n \n <p>${aiOutput}</p>\n\n <p>Here are some useful links to get started:</p>\n <ul>\n <li>📋 <a href=\"${notionLink}\" target=\"_blank\">Notion Onboarding Checklist</a></li>\n <li>📊 <a href=\"${jiraLink}\" target=\"_blank\">Jira Project Board</a></li>\n <li>💬 <a href=\"${employee.slack_invite_link}\" target=\"_blank\">Slack Workspace</a></li>\n <li>💻 <a href=\"${employee.github_invite_link}\" target=\"_blank\">GitHub Organization</a></li>\n </ul>\n\n <p>👥 Your onboarding buddy: <b>${employee.buddy}</b><br>\n 🗓️ Start Date: <b>${employee.start_date}</b></p>\n\n <p>We’re thrilled to have you onboard and can’t wait to see your impact at <b>Techdome</b>! 🎉</p>\n \n <p>Best regards,<br>\n The Techdome Team</p>\n</body>\n</html>\n`;\n\n// Final output for Gmail\nreturn [\n {\n json: {\n to: employee.email,\n subject: `Welcome to Techdome, ${employee.name}! 🎉`,\n body: emailBodyHTML,\n },\n },\n];\n"
},
"typeVersion": 2
},
{
"id": "5360177e-34f4-4623-a9df-1d7a99d4eec6",
"name": "Envoyer l'email de bienvenue au nouveau recruté",
"type": "n8n-nodes-base.gmail",
"position": [
1488,
-192
],
"webhookId": "0c82c299-6938-42ed-bda6-5007d79af34f",
"parameters": {
"sendTo": "={{ $json.to }}",
"message": "={{ $json.body }}",
"options": {},
"subject": "={{ $json.subject }}"
},
"credentials": {
"gmailOAuth2": {
"id": "RchiXdmY8WaQhOSJ",
"name": "Gmail account"
}
},
"typeVersion": 2.1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "48b8eb87-3227-4183-950b-3065212fbae9",
"connections": {
"aeef0657-f3b6-480c-b120-578329f22e32": {
"main": [
[
{
"node": "aed4e501-ddbf-41f6-a5e2-08b7d7e970ce",
"type": "main",
"index": 0
}
]
]
},
"1bb5da54-d2f4-48a3-b8ad-868c68ff41ee": {
"main": [
[
{
"node": "00068c67-c7a8-42ba-8d53-ee634de6e10f",
"type": "main",
"index": 0
},
{
"node": "79686adb-3cad-4af2-81d9-af44b4306352",
"type": "main",
"index": 0
},
{
"node": "aeef0657-f3b6-480c-b120-578329f22e32",
"type": "main",
"index": 0
}
]
]
},
"8988e72b-a0ae-489e-ae9a-b60e66288738": {
"main": [
[
{
"node": "5360177e-34f4-4623-a9df-1d7a99d4eec6",
"type": "main",
"index": 0
}
]
]
},
"fe3a7d1f-2722-4451-8bc4-131e8a0e1dbe": {
"main": [
[
{
"node": "8988e72b-a0ae-489e-ae9a-b60e66288738",
"type": "main",
"index": 0
}
]
]
},
"f1cad5d9-1870-4e1a-b6ad-551d7afb5f20": {
"ai_languageModel": [
[
{
"node": "00068c67-c7a8-42ba-8d53-ee634de6e10f",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"00068c67-c7a8-42ba-8d53-ee634de6e10f": {
"main": [
[
{
"node": "fe3a7d1f-2722-4451-8bc4-131e8a0e1dbe",
"type": "main",
"index": 2
}
]
]
},
"b7966c54-38b1-4a82-9477-8cd7e9384d81": {
"main": [
[
{
"node": "1bb5da54-d2f4-48a3-b8ad-868c68ff41ee",
"type": "main",
"index": 0
}
]
]
},
"79686adb-3cad-4af2-81d9-af44b4306352": {
"main": [
[
{
"node": "fe3a7d1f-2722-4451-8bc4-131e8a0e1dbe",
"type": "main",
"index": 1
}
]
]
},
"aed4e501-ddbf-41f6-a5e2-08b7d7e970ce": {
"main": [
[
{
"node": "fe3a7d1f-2722-4451-8bc4-131e8a0e1dbe",
"type": "main",
"index": 0
}
],
[
{
"node": "2c67259a-cdd1-43ee-a4af-6bd780d56eda",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Ressources Humaines, Chatbot IA
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
Partager ce workflow