File signed onboarding docs in BambooHR and flag what's missing
When a new hire finishes signing, we file the signed copy in their HR record and tell your people channel what is still outstanding.
Build me an agent workflow that files signed onboarding paperwork into our HR records automatically and tells the people team what is still outstanding. Trigger it from a SignWell webhook, fired when a document reaches completed status (the document_completed event), so every finished signature is handled without anyone watching an inbox.
Start the workflow with the required onboarding document checklist as a clearly labelled, easily edited list at the very top. Default it to: offer letter, NDA, handbook acknowledgement, and tax forms. Every company's onboarding packet differs, so this list must be the single obvious place to change what counts as complete. Do not scatter the required document names through the rest of the logic.
When the webhook fires, use SignWell Get Document with the document id from the webhook payload to read the signer email address and the document name. Then use SignWell Get Completed PDF to retrieve the signed copy. Completed PDFs return binary by default, which is the form to use for uploading into BambooHR, so keep the binary for the upload. Call it a second time with url_only=true to get a JSON download URL, and use that link in the Slack message so people can open the document without digging for it.
Next, look the person up with BambooHR Get Employee Directory and match the signer email against both their work email and their personal email. Treat this match as fuzzy on purpose: new hires very often sign onboarding paperwork with a personal address, before a work address has been created for them. Compare case-insensitively and trim whitespace before matching.
If the signer email does not match exactly one person in the directory, do not guess and do not file the document anywhere. Filing paperwork against the wrong employee record is worse than not filing it at all. Instead post to the people channel with Slack Bot Send a Message, saying the signed document could not be matched to an employee, naming the document name, the signer email, and the download link, and asking someone to file it manually. Then stop.
When there is a confident match, file the signed copy against that employee. First call BambooHR List Employee Files for that employee, which returns both their files and their file categories, and check whether a signed documents category already exists. If it does not, create it with BambooHR Create Employee File Category, then upload into it. Upload the signed PDF with BambooHR Upload Employee File under that signed documents category, naming the file after the document so it is recognizable in the record.
After filing, compare what is now on record for that employee against the required checklist from the top of the workflow. Match names loosely rather than exactly: a file called "2026 Offer Letter - Signed.pdf" should satisfy the "offer letter" requirement, and "W-4.pdf" should satisfy "tax forms". Judge each required item as either present or still outstanding.
Finally, post to the people channel with Slack Bot Send a Message. Lead with the hire's name, confirm exactly what was just filed with a link to the signed copy, then list anything still missing from their packet. If the packet is now complete, say so plainly so the people team knows that hire is fully documented and needs no more chasing. Keep the message short and scannable rather than a wall of text.
Example output
What does this prompt do?
- Starts the moment a new hire finishes signing a document, so nobody has to watch an inbox or download a PDF by hand.
- Finds the person in your employee directory by matching the email they signed with, whether that is their work address or a personal one.
- Files the signed copy straight into their HR record under a signed documents folder, creating that folder the first time it is needed.
- Posts a note to your people channel confirming what was just filed and naming anything still outstanding from that hire's packet.
What do I need to use this?
- A SignWell account where your onboarding documents are sent for signature
- A BambooHR account with permission to view the employee directory and add documents to employee records
- A Slack workspace and the channel your people team actually reads
- Your own list of required onboarding documents, such as offer letter, NDA, handbook acknowledgement, and tax forms
How can I customize it?
- Edit the required document checklist at the top of the workflow so it matches your own onboarding packet
- Change which Slack channel gets the update, or send it as a direct message to whoever owns onboarding
- Rename the folder signed paperwork is filed under, or split it into separate folders per document type
FAQs
What happens if the signer's email does not match anyone in our directory?
Do new hires have to sign with their work email address?
Can we change which documents are required?
Will it create the signed documents folder for us?
Does this run for every document or only finished ones?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.
Stop chasing onboarding paperwork.
Let signed documents file themselves into your HR records, and find out what is still missing before the first week is over.