Welcome new BambooHR hires with an AI video in Slack

Every weekday at 8am, draft a personalized 30 to 45 second AI avatar intro for anyone who started in the last day and post it to your company Slack.

Agentic Task
BambooHRHeyGenSlack BotHR & PeopleOnboarding AutomationContent GenerationNotifications & Alerts
PromptCreate

Build me an agent workflow that runs on a cron every weekday at 8am in our company timezone and welcomes any brand-new hires from BambooHR with a personalized AI video posted in Slack.

How each run should work:

1. Find the new hires. Call BambooHR Get Changed Employees with a "since" timestamp set to the previous business day (so Monday's run covers Friday afternoon, the weekend, and any overnight changes). Filter the changed list down to employees whose hireDate (start date) falls within the past 24 hours and is on or before today. If there are zero matches, exit cleanly with a one-line summary.

2. Hydrate each match. For each candidate employee ID, call BambooHR Get Employee asking for at least: firstName, lastName, preferredName, jobTitle, department, hireDate, supervisor (manager name), and workEmail. Use preferredName if present, otherwise firstName.

3. De-dupe against past runs. Keep a small "already greeted" set keyed by BambooHR employee ID (use workflow state / a key-value store). Skip anyone already in the set. Add IDs to the set only after we successfully post their Slack message, so a partial failure can be retried on the next run.

4. Draft a 30 to 45 second welcome script per new hire. Warm, human, one paragraph. It should name the hire (preferred name), say what role they are joining as, what team / department, and who their manager is. If department or manager is missing, gracefully drop that clause instead of saying "undefined" or leaving a placeholder. Open with a configurable company-specific opener (default: "Hey {company}, please give a huge welcome to {name}!").

5. Generate the video with HeyGen. Call HeyGen Generate Avatar Video with the script, a configurable avatar_id and voice_id (let the user pick during setup; default to a friendly stock avatar). Capture the returned video_id.

6. Poll HeyGen Retrieve Video Status / Details every 8 seconds until status is "completed" or "failed", with a hard ceiling of 4 minutes per video. On "completed", call HeyGen Retrieve Shareable Video URL to get a public share link (https://app.heygen.com/share/...). On "failed" or timeout, log the error, skip the Slack post for that hire, and do NOT mark them as greeted (so the next run retries).

7. Post to Slack with Slack Bot Send a Message. Configurable channel, default #welcome. One message per hire that:

  • Pings the new hire by name (use their Slack user if you can find them by email via the bot's user lookup; otherwise just use the plain name).

  • Gives a one line bio: role + team + start date + manager.

  • Embeds the HeyGen share link on its own line so Slack unfurls it and the video plays inline.

8. Same-run posting is important. HeyGen share URLs expire after about 7 days, so the Slack post MUST happen in the same run as the render. Do not split the render and the post across two workflows or persist the URL for later.

Configurable inputs the user should set when installing the workflow:

  • Slack channel (default: #welcome).

  • Company name + one line tone hint for the script opener.

  • HeyGen avatar_id and voice_id.

  • Lookback window in hours (default: 24, but Monday runs should auto-extend to cover the weekend).

  • Timezone for the 8am cron (default: America/New_York).

Edge cases to handle gracefully: BambooHR returns 503 (throttling) — respect Retry-After and back off; HeyGen returns 429 — wait and retry once; new hire has no Slack account yet — still post the intro with their name plain-text; BambooHR record missing supervisor / department — drop that clause from the script, do not abort.

Output at the end of each run: a short summary log listing how many new hires were greeted, how many were skipped as already-greeted, and any render or post failures.

Additional information

What does this prompt do?
  • Checks BambooHR every weekday morning for employees whose first day landed in the past 24 hours.
  • Writes a warm, personalized 30 to 45 second welcome script that names the new hire, their role, their team, and their manager.
  • Renders an AI avatar video of the script in HeyGen and waits for it to finish before posting.
  • Drops a single Slack post in your welcome channel that pings the new hire, gives a one line bio, and embeds the video so the whole company sees the intro on day one.
  • Skips anyone who has already been greeted and quietly degrades if a BambooHR record is missing a manager or department.
What do I need to use this?
  • A BambooHR account with permission to read the employee directory and recent changes.
  • A HeyGen account on a plan that allows API video generation, plus your preferred avatar and voice picked out.
  • A Slack workspace with a channel for company-wide announcements (for example #welcome).
  • A short opener for the welcome script, such as your company name and a one line vibe (warm, playful, formal).
How can I customize it?
  • Change the run time or cadence (for example 9am ET, or only on Mondays).
  • Swap the avatar, voice, language, or background to match your brand.
  • Point the post at a different Slack channel, or send it as a direct message to the new hire's manager instead.
  • Tweak the script tone, length, or what gets mentioned (skip the manager, add a fun fact field, include a calendar link).

Frequently asked questions

What if a new hire starts on a weekend or holiday?
The workflow runs every weekday morning and looks back across the gap, so anyone who started Friday night, over the weekend, or on a holiday gets greeted on the next business day. You can widen or narrow the lookback window when you set it up.
Will the same person get greeted twice if I rerun it?
No. The workflow keeps a small record of every employee it has already welcomed and skips them on subsequent runs, even if BambooHR updates their record later.
Can I use my own avatar instead of a stock HeyGen avatar?
Yes. Any avatar and voice already in your HeyGen account is fair game, including custom-trained avatars of a real person on your team (founder, head of people, etc.).
What happens if BambooHR is missing the manager or department?
The script gracefully drops the missing pieces and still ships a personalized welcome with whatever it does have (name, title, start date). You will not get a broken post or a placeholder like "Manager: undefined".
Why post the video the same day it renders?
HeyGen share links are only valid for about a week, so posting on the same run keeps the link live for the whole window when teammates are most likely to click it. If you want a permanent record, save the file to Drive or your wiki as a follow-up step.
Can I send this as a DM to the new hire instead of posting publicly?
Yes. Point the Slack step at the hire's user ID instead of a channel, or do both (a private welcome DM plus a public team intro). Both are one line changes when you set the workflow up.

Make day one feel like a real welcome, not a calendar invite.

Connect BambooHR, HeyGen, and Slack once, and Geni introduces every new hire to the company with a personalized AI video at 8am.