Daily birthday and work anniversary shout-outs in Slack

By General Input

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

Integrations

  • Rippling
  • Slack Bot

Type

Agentic Task

Categories

  • HR & People
  • Operations

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them