Contact Birthday & Anniversary Reminder
Salesforce action: GetContactRecords. Daily morning flow pulls Salesforce contacts with upcoming birthdays or customer anniversaries in the next 7 days, sends reminder emails to the assigned account owners to prompt outreach.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
A beginner-level scheduled flow that runs daily at 8:00 AM (Eastern) to identify Salesforce contacts with upcoming birthdays in the next 7 days and sends a formatted HTML digest email to a configurable recipient. Designed for sales teams and account managers who want proactive outreach reminders.
Use Case
Sales reps and account managers often miss birthday and anniversary milestones for key contacts. This flow automates the reminder process by pulling contact birthday data directly from Salesforce, filtering for upcoming dates, building a professional HTML table, and emailing it to the team — eliminating manual CRM checks and ensuring timely outreach.
Flow Architecture
Recurrence - Daily 8AM
RecurrenceFires once per day at 8:00 AM Eastern Standard Time.
Init_varReminderRecipient
Initialize variableReads recipient email from the flowlibs_BirthdayReminderRecipient environment variable. Runs in parallel with the other four initializers.
Init_varLookAheadDays
Initialize variableSets the look-ahead window to 7 days (configurable). Runs in parallel with the other four initializers.
Init_varTodayMonth
Initialize variableExtracts the current month as an integer from utcNow(). Runs in parallel with the other four initializers.
Init_varTodayDay
Initialize variableExtracts the current day as an integer from utcNow(). Runs in parallel with the other four initializers.
Init_varEmailBody
Initialize variableInitializes an empty string used to accumulate the email body. Runs in parallel with the other four initializers.
Get Contacts With Birthdays
Salesforce - GetItems_table_contactRetrieves all Salesforce contacts that have a birthday on file using $filter=Birthdate ne null, $orderby=Birthdate asc, $top=500.
Filter Upcoming Birthdays
Filter arrayCompares each contact's birthday month/day against the current date and look-ahead window to find contacts with birthdays in the next 7 days.
Check If Any Upcoming Birthdays
If conditionChecks length(body('Filter_Upcoming_Birthdays')) > 0 to decide whether to send a digest email.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_BirthdayReminderRecipient | String | salesteam@contoso.com | Email address that receives the daily birthday digest. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Salesforce | shared_salesforce | GetItems_table_contact (retrieves contacts with birthdays) |
| Office 365 Outlook | shared_office365 | SendEmailV2 (sends the birthday reminder digest email) |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Import the solution
- Import the solution into your target environment.
- Set the recipient env var
- Set the environment variable flowlibs_BirthdayReminderRecipient to your desired recipient email (for example salesteam@yourcompany.com or a distribution list).
- Authorize connections
- Click into the flow and authorize both the Salesforce and Office 365 Outlook connections with appropriate credentials.
- Adjust the look-ahead window
- Edit Init_varLookAheadDays to change the window from 7 days to your preferred number of days.
- Customize the schedule
- Edit the Recurrence trigger to change the time of day or frequency.
- Turn the flow on
- Toggle the flow state from Off to On once configuration and connections are in place.
- Add more contact fields
- Optional — add fields like Phone or Title to the email table by editing the Build_Birthday_Rows Select action.
- Restyle the email
- Optional — change the email styling by editing the Compose_Email_HTML Compose action.
- Add a Teams notification
- Optional — post the digest to a Teams channel alongside the email by inserting a PostMessageToConversation action in the Yes branch.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Birthday month extraction
Pulls the month component of each contact's Birthdate as an integer for comparison against the current month.
EXPR.02Birthday day extraction
Pulls the day-of-month component of each contact's Birthdate as an integer.
EXPR.03Birthday display format
Formats each contact's Birthdate as 'Month dd' (e.g. 'May 11') for the HTML digest.
EXPR.04Email subject with count
Builds the subject line dynamically with the count of upcoming birthdays.
EXPR.05HTML row assembly
Strategy used in Build_Birthday_Rows / Compose_Email_HTML to assemble the table body purely with string operations.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.