Automatisierung von Mitarbeiter-Geburtstagen und -Jubiläen mit Google Gemini und Slack
Dies ist ein HR, Multimodal AI-Bereich Automatisierungsworkflow mit 8 Nodes. Hauptsächlich werden If, Slack, Aggregate, GoogleSheets, Agent und andere Nodes verwendet. Automatisierung von Mitarbeiter-Geburtstagen und -Jubiläen mit Google Gemini und Slack
- •Slack Bot Token oder Webhook URL
- •Google Sheets API-Anmeldedaten
- •Google Gemini API Key
Verwendete Nodes (8)
Kategorie
{
"meta": {
"instanceId": "INSTANCE_ID_PLACEHOLDER",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "node-id-1",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1424,
592
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "GOOGLE_GEMINI_CREDENTIAL_ID",
"name": "Google Gemini API account"
}
},
"typeVersion": 1
},
{
"id": "node-id-2",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
272
],
"parameters": {
"width": 304,
"height": 480,
"content": "## 🎉 Replace BillyBot: Free Slack Employee Birthday & Anniversary Automation\n\n- Runs daily at 9 AM. Fetches employee data from Google Sheets, filters today's birthdays/anniversaries, generates personalized AI messages, and posts to Slack.\n- Sheet format: NO | Name | Email | Date of Birth (YYYY-MM-DD) | Joining Date (YYYY-MM-DD)\n- AI features: 12 rotating message styles, auto-calculates tenure, Slack markdown formatting\n- Cost: $0-20/month vs BillyBot's $1/employee/month ($600-2,400/year for 50-200 employees)"
},
"typeVersion": 1
},
{
"id": "node-id-3",
"name": "Täglicher Trigger um 9 Uhr",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
368,
416
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.2
},
{
"id": "node-id-4",
"name": "Mitarbeiterdaten abrufen",
"type": "n8n-nodes-base.googleSheets",
"position": [
592,
416
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "SHEET_ID_PLACEHOLDER",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/GOOGLE_SHEET_DOCUMENT_ID/edit#gid=SHEET_ID_PLACEHOLDER",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "GOOGLE_SHEET_DOCUMENT_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/GOOGLE_SHEET_DOCUMENT_ID/edit",
"cachedResultName": "employee-data-sheet"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "GOOGLE_SHEETS_CREDENTIAL_ID",
"name": "Google Sheets OAuth account"
}
},
"typeVersion": 4.7
},
{
"id": "node-id-5",
"name": "Geburtstag oder Arbeitsjubiläum prüfen",
"type": "n8n-nodes-base.if",
"position": [
864,
416
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "or",
"conditions": [
{
"id": "condition-id-1",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $now.toFormat('MM-dd') }}",
"rightValue": "={{ DateTime.fromISO($json['Date of Birth']).toFormat('MM-dd') }}"
},
{
"id": "condition-id-2",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $now.toFormat('MM-dd') }}",
"rightValue": "={{ DateTime.fromISO($json['Joining Date']).toFormat('MM-dd') }}"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "node-id-6",
"name": "Heutige Feierlichkeiten zusammenführen",
"type": "n8n-nodes-base.aggregate",
"position": [
1184,
400
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "node-id-7",
"name": "Personalisierte Slack-Nachricht generieren",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1424,
400
],
"parameters": {
"text": "=todays date :- {{ $now }}\n\nemp data :- {{ $json.data.toJsonString() }}",
"options": {
"systemMessage": "=🎉 Slack Celebration Message Generator\nGenerate unique, heartfelt birthday and work anniversary messages for Slack that feel genuinely human-written, never templated.\n🎯 Core Rules\nUniqueness: Never repeat opening phrases, sentence structures, or tones across messages. Each celebration must feel completely different.\nAuthenticity: Write like a caring colleague, not a robot. Messages should be personal, warm, and memorable.\nVariation: Rotate through different styles, emojis, and approaches systematically.\n🎨 Message Styles (Rotate These)\nBirthdays:\n\nJoyful - Pure celebration and excitement\nReflective - New beginnings and fresh chapters\nGrateful - Appreciation for their presence\nPlayful - Lighthearted with gentle humor\nAchievement - Celebrate growth and contributions\nWarm - Team family togetherness\n\nWork Anniversaries:\n\nMilestone - Highlight achievements and impact\nJourney - Their evolution and growth story\nTeam Impact - How they enrich the culture\nFuture-Forward - Excitement for what's ahead\nExcellence - Innovation and expertise\nLegacy - Foundational role (5+ years)\n\n📝 Format Requirements\nStructure:\n*[Unique Opening + Name + Hook]* [Emoji Combo]\n[Specific wishes/appreciation - keep brief]\n_— from the team 💙_\nMarkdown:\n\n*bold* for names and key phrases\n_italic_ for signature only\nProper line breaks for readability\n\nEmojis (rotate):\n\nBirthday: 🎂✨, 🎉🎂, 🎂🌟, 🎈🎉, 🎂🎊, 🌟🎁, 🎉✨, 🎂💫\nAnniversary: 🎊🚀, 🏆🎉, 🎊💪, ⭐🎊, 🚀✨, 🎉🏅, 🎊⚡, 💎🎊\n\n🎲 Variation Rules\n\nOpening: Never repeat within 30 days\nTone: Never use same emotional tone consecutively\nLength: 1-3 lines per person, mobile-friendly\nAnniversary Years: Adapt message to tenure length\n\n💡 Writing Tips\n\nUse first names only\nVary sentence length and rhythm\nKeep culturally inclusive and professional\nMake it screenshot-worthy\nEach person gets distinctly different treatment\n\nOutput: Generate ready-to-post Slack messages that colleagues will genuinely react to and appreciate."
},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "node-id-8",
"name": "Feierlichkeit im Slack-Kanal veröffentlichen",
"type": "n8n-nodes-base.slack",
"position": [
1808,
400
],
"webhookId": "WEBHOOK_ID_PLACEHOLDER",
"parameters": {
"text": "={{ $json.output }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "SLACK_CHANNEL_ID",
"cachedResultName": "your-channel-name"
},
"otherOptions": {
"includeLinkToWorkflow": false
}
},
"credentials": {
"slackApi": {
"id": "SLACK_CREDENTIAL_ID",
"name": "slack-bot-credential"
}
},
"typeVersion": 2.3
}
],
"pinData": {},
"connections": {
"node-id-3": {
"main": [
[
{
"node": "node-id-4",
"type": "main",
"index": 0
}
]
]
},
"node-id-4": {
"main": [
[
{
"node": "node-id-5",
"type": "main",
"index": 0
}
]
]
},
"node-id-1": {
"ai_languageModel": [
[
{
"node": "node-id-7",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"node-id-6": {
"main": [
[
{
"node": "node-id-7",
"type": "main",
"index": 0
}
]
]
},
"node-id-5": {
"main": [
[
{
"node": "node-id-6",
"type": "main",
"index": 0
}
]
]
},
"node-id-7": {
"main": [
[
{
"node": "node-id-8",
"type": "main",
"index": 0
}
]
]
}
}
}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.
Verwandte Workflows
Roshan Ramani
@rawsun007I love building smart n8n automations that actually work reliably. My focus is on making everyday tasks like email, social media, and CRM workflows simpler using AI. I've shared templates in the n8n community, including a WhatsApp Expense Tracker that people really enjoy. What keeps me excited is constantly trying new things - testing fresh nodes, playing with AI tools like LangChain, and discovering creative ways to connect systems!
Diesen Workflow teilen