Hand off Breezy HR new hires to BambooHR and announce them in Slack
When a candidate moves to Hired in Breezy HR, automatically create their employee record in BambooHR and post a welcome message in Slack.
Build a code workflow that hands off new hires from Breezy HR to BambooHR and announces them in Slack, so the recruiting team never has to retype a candidate.
Trigger: a Breezy HR webhook. Use Breezy HR's Create Webhook Endpoint to register the workflow URL against my Breezy company. The webhook should be scoped to candidate events. Each incoming payload must be filtered down to candidate stage-change events where the destination stage is Hired. Match on either the stage label "Hired" (case-insensitive) or the stage id, and ignore every other event type.
Step 1: When a matching stage change arrives, call Breezy HR's Get Candidate using the company id, position id, and candidate id from the webhook payload to pull the full candidate record. Read: first name, last name, work email, phone, the position title from the parent position, and the candidate's start date if Breezy has captured one.
Step 2: Call BambooHR's Create Employee with the candidate mapped onto BambooHR's employee schema: firstName, lastName, workEmail, jobTitle, hireDate (use the Breezy start date if present, otherwise leave hireDate empty and let BambooHR default it). Capture the new employee's id from the Location header BambooHR returns, and build the BambooHR profile URL using the connected instance URL plus /employees/{id}.
Step 3: Post a welcome announcement to a configurable Slack channel using Slack's Send a Message. The message should include the new hire's full name, their role, their start date if known, a link to the candidate in Breezy HR, and a link to their new BambooHR profile. Make the target channel a workflow input so the user can pick #welcome, #people-ops, or any other channel without editing code.
Error handling: if BambooHR rejects the Create Employee call (for example a missing required field, a duplicate work email, or a permission error), do not retry blindly and do not leave a half-created employee. Instead, send a Slack message to the same configured channel that names the candidate, the Breezy candidate link, the BambooHR error message returned in the response header, and a short prompt asking a recruiter to fix the Breezy record. Skip the welcome post in that case.
Other guardrails: only fire on candidate_stage_changed events with the Hired destination; ignore notes, comments, and other stage transitions. Treat duplicate webhook deliveries as idempotent by checking whether a BambooHR employee with the same work email already exists before creating, and if one does, skip the create and just post the Slack welcome with the existing profile link.
Additional information
What does this prompt do?
- Watches Breezy HR for candidates that move into the Hired stage so nothing slips through the cracks.
- Copies the new hire's name, email, job title, and start date into BambooHR as a fresh employee record, no double entry required.
- Posts a friendly welcome announcement in the Slack channel of your choice with the new teammate's role, start date, and a link to their BambooHR profile.
- If BambooHR rejects the record because a required field is missing, sends the error straight to Slack instead of leaving a half-finished employee behind.
What do I need to use this?
- A Breezy HR account that can register a webhook for stage changes.
- A BambooHR account with permission to create new employees.
- A Slack workspace and the channel where you want welcome messages to land.
How can I customize it?
- Pick which Slack channel gets the welcome post, whether that is your company-wide announcements channel or a dedicated #welcome room.
- Adjust which Breezy HR fields flow into BambooHR, for example department, manager, or location, depending on what your HR team tracks.
- Tweak the welcome message wording, emoji, and which links you include so it matches your company voice.
Frequently asked questions
What triggers the workflow?
Will it work with custom pipelines or renamed Hired stages?
What happens if BambooHR is missing a required field?
Can I send the welcome message to more than one Slack channel?
Does this replace our existing onboarding checklist in BambooHR?
Stop retyping new hires into BambooHR.
Connect Breezy HR, BambooHR, and Slack once, and Geni hands every hired candidate over the moment they cross the finish line.