Automate Daily Birthday Reminders from Google Contacts to Slack

This workflow automates sending daily birthday reminders from Google Contacts directly to a Slack channel. It solves the common problem of missing important birthday notifications by scheduling a daily check and alert, ensuring timely celebrations every day.
googleContacts
slack
scheduleTrigger
+3
Workflow Identifier: 1643
NODES in Use: Schedule Trigger, Google Contacts, Filter, If, Slack, Sticky Note

Press CTRL+F5 if the workflow didn't load.

Learn how to Build this Workflow with AI:

Visit through Desktop for Best experience

Opening Problem Statement

Meet Sarah, a busy team lead at a growing tech startup. Every day she juggles multiple projects, meetings, and deadlines. Amid this chaos, remembering her team’s birthdays becomes an overwhelming challenge — birthdays can easily slip her mind. Missing these important personal milestones not only affects team morale but also reflects poorly on her leadership. Sarah wishes there was an automated way to remind her and the team about birthdays without manually checking calendars or contacts.

Before discovering this workflow, Sarah spent up to 15 minutes daily scanning her Google Contacts for upcoming birthdays, often forgetting or overlooking important dates. This led to missed opportunities for team bonding and negative impacts on workplace culture.

What This Automation Does

This n8n workflow automates the entire process of retrieving birthday info from Google Contacts and sending daily reminders to a Slack channel. Here’s what happens every day when this automation runs:

  • The workflow triggers at 8:00 AM every day automatically.
  • It fetches all contacts from your Google Contacts account, including email, names, nicknames, and birthday info.
  • Contacts without birthdays are filtered out, focusing only on those with birthday data.
  • A conditional check compares each contact’s birthday with the current day to identify whose birthday is today.
  • For contacts with birthdays today, a personalized Slack message is sent to a configured Slack channel to remind the team.

By automating these steps, you save time on manual calendar checks, reduce errors, and boost team engagement with timely birthday shout-outs. Sarah now never misses a birthday, improving team spirit effortlessly.

Prerequisites ⚙️

  • n8n account (free or self-hosted) to build and run the workflow.
  • Google Contacts account with contacts having birthday information.
  • Slack workspace and a channel where birthday reminders will be posted.
  • Configured OAuth2 credentials for Slack to authorize message posting.

Step-by-Step Guide

Step 1: Set Up Schedule Trigger to Run Daily

Navigate to Triggers & Events → Schedule Trigger in n8n. Configure it to trigger at 8:00 AM daily by editing the rule property, setting the hour to 8. This ensures the workflow checks contacts every morning.

You’ll see the trigger details on the node panel. Confirm the trigger is active and correctly scheduled.

Common mistake: Forgetting to set the trigger interval properly can cause the workflow never to run automatically.

Step 2: Add Google Contacts Node to Fetch Contacts

Click Nodes → Google Contacts node, select getAll operation, and include the fields emailAddresses, birthdays, names, and nicknames. Choose returnAll=true to get all contacts.

This node connects to your Google Contacts account and fetches a list of your contacts with their details.

Common mistake: Not configuring the Google OAuth2 credentials properly will result in authentication errors.

Step 3: Filter Contacts That Have Birthdays

Add a Filter Contact node of type Filter. Set a condition to filter contacts where the birthday field is not empty. This removes contacts without birthday data from the flow.

After this filter, only contacts with birthday information proceed.

Common mistake: Incorrect field reference can cause the filter to exclude all or none of the contacts.

Step 4: Check If Today Matches Contact’s Birthday

Add an If node to compare the current date with the birthday date of each contact. Configure the condition to check if the birthday equals today’s date.

To do this, set the left value to the current date (e.g., using an expression {{ $json.today }}) and the right value to the contact’s birthday in the JSON data (e.g., {{ $('Google Contacts').item.json.birthdays }}).

Contacts where birthday matches today go to the “true” path for sending Slack messages.

Common mistake: Date format mismatch can cause the condition to fail. Ensure the date formats align.

Step 5: Send Personalized Birthday Reminder to Slack

Add a Slack node. Configure authentication with your Slack OAuth2 credentials and choose the channel where the reminders should be posted.

Set the messageType as block and customize the message block to say:
Today is {{$json["first_name"]}} {{$json["last_name"]}}'s birthday! 🎉.

This sends a celebratory birthday reminder message to your team every day for the contacts that have birthdays.

Common mistake: Not setting the correct Slack channel or missing OAuth credentials will cause messages to fail.

Step 6: Add Sticky Notes for Workflow Documentation (Optional)

You can add Sticky Note nodes to your workflow for clear documentation or reminders about each node. This helps maintain clarity if you revisit or share the workflow later.

Customizations ✏️

  • Change Reminder Time: In the Schedule Trigger node, modify the triggerAtHour value to your preferred reminder time, for example 9 AM or noon.
  • Customize Slack Message: Edit the Slack node message block to include emojis, team member roles, or additional birthday wishes for a personal touch.
  • Filter by Specific Contact Groups: Extend the Google Contacts node filter to select contacts from specific groups or labels for reminders only about those teams.
  • Add Upcoming Birthday Notifications: Enhance the workflow by adding a node to check birthdays in the next 7 days and send weekly summaries to Slack.
  • Include Nicknames: Modify the Slack message to use the nicknames field from Google Contacts for more casual reminders.

Troubleshooting 🔧

Problem: “Authentication Failed” in Google Contacts Node

Cause: OAuth2 credentials for Google Contacts are missing or incorrectly configured.

Solution: Go to n8n credentials, re-authenticate your Google Contacts account, and ensure the required permissions for accessing contacts are granted.

Problem: Slack messages not posting

Cause: Missing or incorrect Slack OAuth2 credentials or wrong channel ID.

Solution: Double-check OAuth2 credentials in the Slack node and verify channel ID is set correctly. Test with a simple message before full workflow run.

Problem: No birthdays detected today

Cause: Date formatting mismatch between the Google Contacts birthday field and the condition in the If node.

Solution: Verify the date format in Google Contacts and ensure the If node condition uses the same format for comparison.

Pre-Production Checklist ✅

  • Verify Google Contacts credentials by fetching sample contacts manually.
  • Check team birthday data is present and correctly formatted in Google Contacts.
  • Test Slack OAuth2 integration by sending test messages.
  • Run the workflow manually once to observe data flow and outputs.
  • Ensure the Schedule Trigger is active and set to the desired time.
  • Backup your workflow and credentials before production deployment.

Deployment Guide

Activate the workflow in n8n by setting it to “Active” status in your workflow dashboard. Since it uses a Schedule Trigger, it will run every day at the configured hour automatically.

Monitor the workflow execution logs in n8n for any errors or failures. You can set up additional error handling nodes if needed.

This automation requires minimal maintenance once deployed, but regular checks on credentials and contacts data ensure smooth running.

FAQs

Can I use a different messaging platform instead of Slack?
Yes, you can replace the Slack node with other notification nodes supported in n8n such as Microsoft Teams, Discord, or even email nodes. Just adjust authentication and message formatting accordingly.
Does this workflow consume Google API limits?
Since it fetches all contacts and runs daily, it uses some API calls, but generally keeps within free tier limits for typical contact volumes.
Is my contact data safe?
This workflow only accesses your Google Contacts via OAuth2 and sends birthday data to your Slack workspace. Ensure your n8n instance is secured and access controlled.

Conclusion

By implementing this workflow, you have automated the tedious task of tracking birthdays within your team. Sarah and others like her can now focus on work without fearing they’ll miss out on celebrating their colleagues’ special days.

This flow saves around 15 minutes daily previously spent manually checking birthdays and enhances team morale through consistent notifications. Next, consider extending this to send monthly birthday summaries or integrate with calendar apps for even richer reminders.

With this solid automation foundation using n8n, Google Contacts, and Slack, you’re empowered to scale personal and team engagement effortlessly.

Promoted by BULDRR AI

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free