Quick Overview
This workflow runs daily, pulls birthdays from Google Contacts, generates personalized birthday copy with OpenAI, sends greetings via Gmail, WhatsApp Business Cloud, and Telegram when available, and posts a per-contact delivery summary to Slack.
How it works
- Runs every day at 8:00 AM on a schedule.
- Fetches all contacts from Google Contacts including names, birthdays, email addresses, phone numbers, and biographies.
- Normalizes contact details, validates email/phone/Telegram chat ID fields, and keeps only contacts whose birthday is today.
- Uses OpenAI to generate a birthday message payload (email subject/body plus a short chat message) and applies fallback text if any fields are missing.
- Sends the birthday greeting through Gmail, WhatsApp Business Cloud, and Telegram only for channels that pass validation, and records a sent or skipped status for each channel.
- Builds a Slack-friendly summary per birthday contact and posts it to the configured Slack channel.
Setup
- Connect your Google Contacts account in n8n so the workflow can read contacts with birthdays, emails, phone numbers, and biographies.
- Add an OpenAI credential and ensure your prompt returns JSON fields named
subject, emailMessage, and shortMessage.
- Add a Gmail OAuth2 credential for sending emails and confirm the workflow is allowed to email your contacts.
- Add WhatsApp Business Cloud credentials and replace
YOUR_WHATSAPP_PHONE_NUMBER_ID with your phone number ID.
- Add a Telegram bot credential and ensure each recipient’s numeric
chatId is available (for example stored in the contact biography field).
- Add a Slack OAuth2 credential and replace
YOUR_SLACK_CHANNEL_ID with the channel where the final summary should be posted.