Add new BambooHR hires to the right Google Groups on Day 1

Each weekday at 8am ET, find employees starting today in BambooHR, add them to the right Google Groups for their team and office, then post a recap in Slack.

Agentic Task
BambooHRGoogle GroupsSlackHR & PeopleOperationsOnboarding AutomationData SyncNotifications & Alerts

Every weekday at 8am ET, run an agent that adds today's new hires to the right Google Groups for their department, title, and office, then posts one recap message in Slack so the IT team can review.

Step 1. Find new hires in BambooHR. Use Get Changed Employees with a since timestamp covering the last ~36 hours so an 8am Monday run still catches Friday-late changes and weekend updates. From the change feed, keep only employees whose start date (hireDate) is today or yesterday in ET. If the change feed entry is missing department, job title, or office/location, call Get Employee for that employee with the specific fields needed (firstName, lastName, workEmail, department, jobTitle, location, hireDate) to fill in the gaps. If workEmail is still missing, skip that person and flag them in the Slack recap as needing review.

Step 2. Load the real Google Groups inventory. Call Google Groups List Groups for the workspace and build a map of group email to a short description (department groups like engineering@, sales@; office groups like nyc-office@, sf-office@, remote@; all-hands groups like all-staff@; function groups like managers@, on-call@). Only pick from groups returned by this call. Never invent a group address.

Step 3. Decide which groups each new hire should join. Use the new hire's department, job title, and office location to pick the matching subset from the real inventory. Examples: a Senior Backend Engineer in NYC joins engineering@, all-staff@, nyc-office@; a Customer Success Manager in remote joins customer-success@, all-staff@, remote@; a director or VP also joins managers@ if that group exists. Be conservative: it is better to add fewer correct groups and flag uncertainty than to add someone to the wrong list. If a hire's department or location does not have an obvious matching group, add them to all-staff@ only and flag the rest as needs-review.

Step 4. Add the hire to each chosen group with Google Groups Create Membership, using their workEmail as the member key. If a membership already exists, treat it as done and continue. If Create Membership fails for any other reason, capture the error message and include it in the recap. Do not retry indefinitely.

Step 5. After processing the full batch, send a single Slack message to the IT-ops channel via Slack Send a Message. The message should list every new hire on its own line or block with: name, work email, department, job title, office, and the exact groups they were added to. Group anyone with errors or needs-review notes at the bottom so they are easy to spot. If there are no new hires for the day, send a one-line message saying so.

Ask me at setup which Slack channel to post to, my rough mapping of departments and offices to groups, and whether contractors or interns should be excluded. Use that to inform the matching logic on each run.

Additional information

What does this prompt do?
  • Pulls anyone whose record changed in BambooHR overnight and keeps only the people whose start date is today or yesterday.
  • Looks at each new hire's department, job title, and office, then picks the matching Google Groups from the ones that actually exist in your workspace.
  • Adds each person to their groups so they have inbox access on Day 1 without IT chasing tickets.
  • Sends one tidy Slack message to your IT channel with every new hire and the exact groups they joined, so the team can spot-check or override.
What do I need to use this?
  • A BambooHR login with permission to read the employee directory and start dates.
  • A Google Workspace admin account that can manage Google Groups membership.
  • A Slack workspace and the channel where your IT team wants the daily recap to land.
How can I customize it?
  • Change the run time or move it off weekdays, for example to run on Sunday evening before a Monday cohort.
  • Tell the agent how your groups map to departments, titles, and offices (for example which group is all-staff, which is engineering, which is the NYC office).
  • Pick the Slack channel for the recap and the format you want, plain summary or one block per hire.
  • Add exclusions, like skip contractors, skip interns, or skip anyone with a missing department until HR fills it in.

Frequently asked questions

What if a new hire is missing a department or office in BambooHR?
The agent flags them in the Slack recap as needing review instead of guessing. It only adds people to groups when the data is there, so you never end up with a Senior Engineer in the wrong distribution list.
Will it create new Google Groups if one is missing?
No. It only picks from groups that already exist in your workspace. If a group it expected is missing, it calls that out in the Slack recap so you can decide whether to create it.
What stops it from adding someone to the same group twice?
Before adding, the agent treats a person who is already in a group as done. If a hire is already a member, it skips that group and notes it in the recap.
Can the IT team override the choices?
Yes. The daily Slack message lists every hire and the exact groups they were added to, so IT can remove anyone manually or reply in thread with corrections.
Does this work for global offices and remote employees?
Yes. You tell the agent how your office locations map to groups, including a default for remote employees so nobody slips through.

Stop chasing IT to add every new hire to email lists.

Connect BambooHR, Google Groups, and Slack once, and Geni handles Day 1 distribution list access every weekday morning.