# Daily birthday and work anniversary shout-outs in Slack

> Every weekday at 9am, pull your Rippling roster and post warm, personalized birthday and work anniversary shout-outs in your Slack celebrations channel.

- Workflow type: agent
- Services: Rippling, Slack Bot
- Categories: HR & People, Operations
- Published: 2026-07-11

## What it does

- Checks your Rippling roster each morning and finds anyone whose birthday or work anniversary lands today.
- Highlights milestone years like 1, 3, 5, and 10 so those anniversaries feel extra special.
- Drafts a warm, human-sounding Slack message for each person that names their team and the reason to celebrate.
- Posts one message per person in your chosen Slack channel and tags them so the whole team can pile on.

## What you'll need

- A Rippling admin account so we can read your active employee roster and start dates.
- A Slack workspace with a bot installed in the channel where you want the shout-outs posted.
- The name of the Slack channel you want to use, for example celebrations or team-fun.
- Optional: a birthday field set up in Rippling. If your org does not track birthdays, the workflow will celebrate anniversaries only.

## Prompt

Build me an agent-based workflow that celebrates birthdays and work anniversaries every weekday morning at 9am company time by posting shout-outs in a Slack channel.

Trigger: a cron schedule that runs Monday through Friday at 9am in the org's local time zone.

Step 1: Pull the active roster from Rippling using the List Workers operation. Pass expand=user,department so the response inlines each person's user profile (name, work email) and department. Filter to active workers only by passing filter=employment_status eq 'ACTIVE'. Page through results until there is no next cursor so no one gets missed at larger companies.

Step 2: For each worker, look at two dates. First, the birthday: check whether Rippling exposes a birthday field on the user or as a custom HR field. If a birthday exists and the month/day matches today's month/day (ignoring year), it's a birthday match. Second, the hire-date anniversary: check the worker's start date and match on today's month/day. Compute the tenure year (today's year minus start year) and flag it as a milestone if it is 1, 3, 5, 10, 15, 20, or 25.

Step 3: If Rippling does not expose a birthday field for this org at all, gracefully fall back to anniversaries only. Do not error, just skip the birthday branch. Also skip anyone whose employment status is not ACTIVE, even if they slipped through the filter.

Step 4: For each matched person, resolve their Slack user ID by calling Slack Bot's Look Up User by Email operation with the work email from Rippling. If the lookup fails (person not in Slack), post the message using their name in plain text instead of an @-mention rather than skipping them.

Step 5: Draft one warm, concise message per person. Name the person, their team (department from Rippling), and the reason for the shout-out. For birthdays, be celebratory. For anniversaries, mention the year count and call out milestone years with extra fanfare. If someone has both a birthday and a work anniversary on the same day, combine them into a single message. Exactly one message per person per day, never duplicates.

Step 6: Post each message to a configured Slack channel (default suggestion: #celebrations, but let me set it during setup) using Slack Bot's Send a Message operation. Tag the person using their resolved Slack user ID so the mention pings them.

Setup notes to document clearly: (a) birthday sourcing depends on whether the org uses Rippling's built-in birthday field or a custom HR object, so the setup guide should explain how to check and how to point the workflow at the right field; (b) the Slack channel name is a configurable input; (c) the bot must be a member of the target channel, or have chat:write.public, before it can post.

Keep the tone warm but concise, avoid corporate cliches, and vary the phrasing across people so it does not read like a template.

## How to customize

- Change the schedule from weekday mornings to daily, weekly, or a different time zone.
- Point the messages at a different channel, or route them to a private HR channel first for review.
- Adjust the tone from warm and casual to formal, add emojis, or include a fun fact prompt.
- Pick which milestone anniversary years get extra fanfare, for example only celebrate 1, 5, and 10.

## FAQ

### What if my company does not store birthdays in Rippling?

The workflow checks first. If no birthday data is available, it quietly falls back to celebrating work anniversaries only, so you still get a daily moment without any errors.

### Will it double-post if someone has a birthday and an anniversary on the same day?

No. The workflow combines both reasons into a single message so each person gets exactly one shout-out per day.

### Does it post about people who have left the company?

No. It only looks at workers whose employment status in Rippling is active, so former employees and people on non-active statuses are skipped.

### How does it know who to tag in Slack?

It looks up each person in Slack using the work email stored in Rippling, then tags them by their Slack user ID so the mention actually pings them.

### Can I change which channel it posts in?

Yes. The channel is set once during setup and you can update it any time. You can also point it at a private HR channel if you want to preview messages before they go public.

Use this prompt in General Input: https://www.generalinput.com/prompts/daily-birthday-and-work-anniversary-shout-outs-in-slack