Daily birthday and work anniversary shoutouts in Slack from CharlieHR
Every morning at 9am, post a warm, personalized shoutout in your celebrations channel for anyone with a birthday or work anniversary today, pulled straight from CharlieHR.
Build me an agent workflow that posts warm, personalized birthday and work anniversary shoutouts to a Slack channel every morning, sourced from CharlieHR so HR doesn't have to maintain a separate list.
Trigger: cron, every day at 9:00am in our local timezone.
What the agent should do each run:
1. Walk the full CharlieHR team directory using List Team Members (paginate until done), then use Get Team Member for each person to pull their date of birth and start date. Skip anyone who is archived or no longer active.
2. Build today's celebration list. Match on month-and-day, not the full year. Include anyone whose date of birth falls on today's month and day. Also include anyone whose start date hits a full-year milestone today: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 years, and any further full-year mark beyond that. Do not include partial-year anniversaries like 6 months.
3. For each person on the list, draft a unique celebratory message. Never use a copy-paste template. Reference the specific milestone in plain English (for example, "celebrating 3 years at the company today" or "happy birthday"), tag the person, and keep the tone warm, short, and genuine. If both their birthday and a work anniversary land on the same day, combine them into one post for that person.
4. Post each shoutout as its own separate message in the configured Slack channel (default #celebrations) using the Slack Bot Send a Message action. One person per message, so reactions land on the right post.
5. If nobody qualifies today, do nothing. Do not post a "no celebrations today" message and do not send anything to Slack at all.
Inputs I want to be able to tweak without rebuilding: the Slack channel name, the run time, which weekdays it runs, and the set of anniversary milestones to celebrate. Default to every full year.
The agent's main job is writing quality. Each post should feel like a thoughtful human wrote it that morning, not boilerplate. Vary the openings, the emoji, and the phrasing across people.
Additional information
What does this prompt do?
- Checks your CharlieHR directory every morning and finds anyone whose birthday lands today.
- Also flags milestone work anniversaries today, like a 1, 2, 5, or 10 year mark since someone's start date.
- Writes a unique, warm shoutout for each person and posts it as its own message in your celebrations channel, with the person tagged.
- Stays quiet on days when nobody qualifies, so the channel never fills with empty no-news posts.
What do I need to use this?
- A CharlieHR account where you can generate API credentials (you need to be a Super Admin to create them).
- A Slack workspace and the channel you want the shoutouts to land in, for example #celebrations.
- A short note on your tone preferences, like emoji style, formality, or any inside jokes the bot should lean into.
How can I customize it?
- Change the time of day or the days of the week it runs, for example 8:30am weekdays only.
- Pick which channel the shoutouts post to, or split birthdays and anniversaries into two channels.
- Decide which anniversary milestones to celebrate, like every year, or only 1, 3, 5, and 10.
- Adjust the tone and length, from a single warm sentence to a longer note with a fun question for the team.
Frequently asked questions
Will this post a message on days when nobody has a birthday or anniversary?
How do I change which Slack channel it posts to?
Which work anniversaries does it celebrate?
Are the messages templated or actually personalized?
Does HR have to maintain a separate list of birthdays?
Related templates
Never forget a birthday or work anniversary again.
Connect CharlieHR and Slack once, and a warm, personal shoutout goes out every morning without HR lifting a finger.