Google GeminiとSlackを使用した従業員の誕生日および勤続記念日の自動化
これはHR, Multimodal AI分野の自動化ワークフローで、8個のノードを含みます。主にIf, Slack, Aggregate, GoogleSheets, Agentなどのノードを使用。 Google GeminiとSlackを使用して従業員の誕生日および勤続記念日を自動化
- •Slack Bot Token または Webhook URL
- •Google Sheets API認証情報
- •Google Gemini API Key
{
"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": "付箋ノート",
"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": "毎日9時トリガー",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
368,
416
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.2
},
{
"id": "node-id-4",
"name": "従業員データ取得",
"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": "誕生日・勤続記念日確認",
"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": "本日の祝い事統合",
"type": "n8n-nodes-base.aggregate",
"position": [
1184,
400
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "node-id-7",
"name": "個人向け Slack メッセージ生成",
"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": "Slack チャンネルへの投稿",
"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
}
]
]
}
}
}このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 人事, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
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!
このワークフローを共有