Senden von Feedback-Erinnerungen nach Vorstellungsgesprächen von Google Sheets an Slack (mit E-Mail-Backup)

Fortgeschritten

Dies ist ein HR, Multimodal AI-Bereich Automatisierungsworkflow mit 9 Nodes. Hauptsächlich werden If, Gmail, Slack, GoogleSheets, ScheduleTrigger und andere Nodes verwendet. Automatisierung von Feedback-Erinnerungen nach Vorstellungsgesprächen durch Google Sheets, Slack und Gmail

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • Slack Bot Token oder Webhook URL
  • Google Sheets API-Anmeldedaten
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "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": "Notiz",
      "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": "Notiz1",
      "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": "Täglicher Erinnerungs-Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -120,
        160
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 18
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ee420d16-40b5-4faf-9501-bc9a8228ec04",
      "name": "Interview-Feedback-Daten abrufen",
      "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": "Prüfen, ob Feedback eingereicht wurde",
      "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": "Check for Slack ID",
      "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": "Send Slack Reminder",
      "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": "E-Mail-Erinnerung senden",
      "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": "Erinnerungsstatus aktualisieren",
      "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
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - Personalwesen, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes9
Kategorie2
Node-Typen6
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
WeblineIndia

WeblineIndia

@weblineindia

A Leading Software Engineering, Consulting & Outsourcing Services Company in USA & India serving Clients Globally since 1999.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34