Envoi de rappels de feedback post-entretien depuis Google Sheets vers Slack (avec solution de secours par e-mail)
Ceci est unHR, Multimodal AIworkflow d'automatisation du domainecontenant 9 nœuds.Utilise principalement des nœuds comme If, Gmail, Slack, GoogleSheets, ScheduleTrigger. Utiliser Google Sheets, Slack et Gmail pour automatiser les rappels de feedback post-entretien
- •Compte Google et informations d'identification Gmail API
- •Token Bot Slack ou URL Webhook
- •Informations d'identification Google Sheets API
Nœuds utilisés (9)
Catégorie
{
"id": "kLHXGgGMQNnfjVW8",
"meta": {
"instanceId": "14e4c77104722ab186539dfea5182e419aecc83d85963fe13f6de862c875ebfa",
"templateCredsSetupCompleted": true
},
"name": "Send Post‑Interview Feedback Nudges from Google Sheets to Slack (with Email Fallback)",
"tags": [],
"nodes": [
{
"id": "3c94fc35-7f70-44f8-8084-74ef9e86305e",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-180,
-20
],
"parameters": {
"width": 1620,
"height": 560,
"content": "## Send Post‑Interview Feedback Nudges from Google Sheets to Slack (with Email Fallback)"
},
"typeVersion": 1
},
{
"id": "7915c9b3-beea-41c6-a1d8-34dd1a5b52c1",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-180,
580
],
"parameters": {
"width": 1620,
"height": 380,
"content": "## Description:\n- The workflow starts with a Schedule Trigger node named \"Daily Reminder Trigger\", which runs every day at 6:00 PM to initiate the process.\n\n- The next node, named \"Fetch Interview Feedback Data\", is a Google Sheets (Read Sheet) node that pulls all the interview entries from a spreadsheet.\n\n- An IF node named \"Check If Feedback Is Submitted\" filters the entries, allowing only those where the Feedback Submitted field is not marked as \"Yes\" to move forward.\n\n- The next IF node named \"Check for Slack ID\" evaluates whether a valid Slack ID exists for each pending feedback row.\n\n- If Slack ID exists, the workflow proceeds to the \"Send Slack Reminder\" node, which is a Slack (Post Message) node sending a personalized DM reminder to the interviewer.\n\n- If Slack ID is missing, the workflow uses the \"Send Email Reminder\" node, a Gmail (Send Message) node, to send an email notification to the interviewer.\n\n- Regardless of whether the reminder was sent via Slack or Email, the final step is handled by a Google Sheets (Append or Update) node named \"Update Reminder Status\".\n\n- This node updates the sheet and marks the Reminder Sent or Feedback Submitted column as \"Yes\" to prevent further reminders for the same entry in future workflow executions."
},
"typeVersion": 1
},
{
"id": "38bcc7d4-df73-4ccb-a7a0-618540a48310",
"name": "Déclencheur de rappel quotidien",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-120,
160
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 18
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ee420d16-40b5-4faf-9501-bc9a8228ec04",
"name": "Récupérer les données de feedback d'entretien",
"type": "n8n-nodes-base.googleSheets",
"position": [
120,
160
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1780789038,
"cachedResultUrl": "",
"cachedResultName": "Interview_Feedback"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1cQ-TBf3-dqo7njDYzYpxpASYFvEp8lIzH7vpIqTLcwc",
"cachedResultUrl": "",
"cachedResultName": "N8N_Email_Attachment"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "zkQXt1viHat7vaB3",
"name": "Google Sheets account 6"
}
},
"typeVersion": 4.6
},
{
"id": "3440d46a-fd6b-428c-a77b-06b03b522847",
"name": "Vérifier si le feedback est soumis",
"type": "n8n-nodes-base.if",
"position": [
360,
160
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "28cdc419-2495-4936-bdee-f871ba07cc2d",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json[\"Feedback Submitted (Y/N)\"] }}",
"rightValue": "Y"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "c9fff58b-e8f0-40b7-90b1-c6fb63416ef0",
"name": "Vérifier l'ID Slack",
"type": "n8n-nodes-base.if",
"position": [
640,
180
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "42475361-d80f-44c0-b7b6-b3bd15a6281e",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json[\"Candidate Slack Id\"] }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f2ac87d5-06d8-417c-aeed-f41fb49085e1",
"name": "Envoyer un rappel Slack",
"type": "n8n-nodes-base.slack",
"position": [
940,
300
],
"webhookId": "6d603894-f9e9-4cf8-8f53-f69810fa4e78",
"parameters": {
"text": "={{ $json[\"Areas of Improvement\"] }}",
"user": {
"__rl": true,
"mode": "id",
"value": "={{ $json[\"Candidate Slack Id\"] }}"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "HlObxWRUmnuebuJP",
"name": "Interview_feedback_Slack"
}
},
"typeVersion": 2.3
},
{
"id": "3564776b-8617-4857-95b7-c12ba50a3268",
"name": "Envoyer un rappel par e-mail",
"type": "n8n-nodes-base.gmail",
"position": [
940,
60
],
"webhookId": "9ec6e88c-d28e-460f-bc29-ff97b4024526",
"parameters": {
"sendTo": "={{ $json[\"Candidate Email\"] }}",
"message": "={{ $json[\"Areas of Improvement\"] }}",
"options": {
"appendAttribution": false
},
"subject": "={{ $json.Recommendation }}",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "YqeBbKp4FvFiADc0",
"name": "Gmail account 7"
}
},
"typeVersion": 2.1
},
{
"id": "c6513c53-c950-4eb8-bb75-d21167549b3a",
"name": "Mettre à jour le statut du rappel",
"type": "n8n-nodes-base.googleSheets",
"position": [
1200,
180
],
"parameters": {
"columns": {
"value": {
"Position": "={{ $('Check for Slack ID').item.json.Position }}",
"Strengths": "={{ $('Check for Slack ID').item.json.Strengths }}",
"Interview ID": "={{ $('Check for Slack ID').item.json[\"Interview ID\"] }}",
"Candidate Name": "={{ $('Check for Slack ID').item.json[\"Candidate Name\"] }}",
"Interview Date": "={{ $('Check for Slack ID').item.json[\"Interview Date\"] }}",
"Rating (1–5)": "={{ $('Check for Slack ID').item.json[\"Rating (1–5)\"] }}",
"Recommendation": "={{ $('Check for Slack ID').item.json.Recommendation }}",
"Candidate Email": "={{ $('Check for Slack ID').item.json[\"Candidate Email\"] }}",
"Interview Stage": "={{ $('Check for Slack ID').item.json[\"Interview Stage\"] }}",
"Interviewer Name": "={{ $('Check for Slack ID').item.json[\"Interviewer Name\"] }}",
"Skills Evaluated": "={{ $('Check for Slack ID').item.json[\"Skills Evaluated\"] }}",
"Candidate Slack Id": "={{ $('Check for Slack ID').item.json[\"Candidate Slack Id\"] }}",
"Additional Comments": "={{ $('Check for Slack ID').item.json[\"Additional Comments\"] }}",
"Areas of Improvement": "={{ $('Check for Slack ID').item.json[\"Areas of Improvement\"] }}",
"Feedback Submitted (Y/N)": "=Y"
},
"schema": [
{
"id": "Interview ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Interview ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Candidate Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Candidate Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Candidate Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Candidate Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Candidate Slack Id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Candidate Slack Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Interviewer Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Interviewer Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Interview Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Interview Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Interview Stage",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Interview Stage",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Position",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Position",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Skills Evaluated",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Skills Evaluated",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Rating (1–5)",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Rating (1–5)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Strengths",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Strengths",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Areas of Improvement",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Areas of Improvement",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recommendation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recommendation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Additional Comments",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Additional Comments",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Feedback Submitted (Y/N)",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Feedback Submitted (Y/N)",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Feedback Submitted (Y/N)"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1780789038,
"cachedResultUrl": "",
"cachedResultName": "Interview_Feedback"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1cQ-TBf3-dqo7njDYzYpxpASYFvEp8lIzH7vpIqTLcwc",
"cachedResultUrl": "",
"cachedResultName": "N8N_Email_Attachment"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "zkQXt1viHat7vaB3",
"name": "Google Sheets account 6"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "254a0e91-bb2b-4271-8036-a3908acde0ae",
"connections": {
"c9fff58b-e8f0-40b7-90b1-c6fb63416ef0": {
"main": [
[
{
"node": "3564776b-8617-4857-95b7-c12ba50a3268",
"type": "main",
"index": 0
}
],
[
{
"node": "f2ac87d5-06d8-417c-aeed-f41fb49085e1",
"type": "main",
"index": 0
}
]
]
},
"3564776b-8617-4857-95b7-c12ba50a3268": {
"main": [
[
{
"node": "c6513c53-c950-4eb8-bb75-d21167549b3a",
"type": "main",
"index": 0
}
]
]
},
"f2ac87d5-06d8-417c-aeed-f41fb49085e1": {
"main": [
[
{
"node": "c6513c53-c950-4eb8-bb75-d21167549b3a",
"type": "main",
"index": 0
}
]
]
},
"38bcc7d4-df73-4ccb-a7a0-618540a48310": {
"main": [
[
{
"node": "ee420d16-40b5-4faf-9501-bc9a8228ec04",
"type": "main",
"index": 0
}
]
]
},
"c6513c53-c950-4eb8-bb75-d21167549b3a": {
"main": [
[]
]
},
"ee420d16-40b5-4faf-9501-bc9a8228ec04": {
"main": [
[
{
"node": "3440d46a-fd6b-428c-a77b-06b03b522847",
"type": "main",
"index": 0
}
]
]
},
"3440d46a-fd6b-428c-a77b-06b03b522847": {
"main": [
[],
[
{
"node": "c9fff58b-e8f0-40b7-90b1-c6fb63416ef0",
"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é ?
Intermédiaire - Ressources Humaines, IA Multimodale
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
WeblineIndia
@weblineindiaA Leading Software Engineering, Consulting & Outsourcing Services Company in USA & India serving Clients Globally since 1999.
Partager ce workflow