Monthly policy signature check across your employee roster

By General Input

Every month we compare your active staff list against completed signatures, send what is missing, and show you exactly who is holding up compliance.

Integrations

  • DocuSeal
  • BambooHR
  • Slack Bot

Type

Agentic Task

Categories

  • HR & People
  • Operations

On the first Monday of every month at 9am, reconcile our active employee roster in BambooHR against completed policy acknowledgements in DocuSeal, so we always know who still owes a signature on the employee handbook or annual security policy.

Start by pulling the active roster using BambooHR's Get Employee Directory. Skip anyone marked inactive or terminated, and skip anyone whose start date falls within the last 14 days, so new joiners and leavers do not get nagged. For everyone who remains, hold on to their work email, full name, job title, department, manager, and start date.

Then work out who has actually signed. Use DocuSeal's List Submissions filtered to our acknowledgement template, and List Submitters to get the individual signing records along with their completion status and the date each request was sent. Both list endpoints return 10 records per page by default with a maximum of 100, so page all the way through using the pagination cursor rather than stopping at the first page. If you do not page, a roster larger than 10 people will be silently truncated and the coverage number will be wrong.

Match people by work email as the primary key, never by display name. BambooHR display names and DocuSeal submitter names drift apart through nicknames, married names, and middle initials, and a false reading of "not signed" produces an annoying duplicate send to someone who already did the work.

For anyone with no acknowledgement on file at all, send the document using Create Submission from the existing acknowledgement template. Creating a submission emails the person by default, which is what we want here. Stamp each new submission with that person's BambooHR employee id as the external id, so next month's run can match on a stable key instead of guessing on name spelling.

For anyone who was already sent the acknowledgement but has not signed it, use Update Submitter to re-send their signing email rather than creating a duplicate submission. Nobody should end up with two copies of the same document, and nobody should receive more than one email from a single run.

Finish by posting a Slack message to our People Ops channel. Include the coverage percentage, meaning how many in-scope active employees have a completed acknowledgement out of the total in scope. Then list everyone still outstanding along with how many days each one has been pending. Add a separate callout of anyone over 30 days, naming their manager, so the chase can happen directly. Close with a one-line count of how many documents were sent fresh this run and how many were re-sent.

If the acknowledgement template cannot be found, or the roster comes back empty, post a Slack message saying exactly that instead of failing quietly. It is much worse to report full coverage from missing data than to report an error.

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