# Monthly policy signature check across your employee roster

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

- Workflow type: agent
- Services: DocuSeal, BambooHR, Slack Bot
- Categories: HR & People, Operations
- Published: 2026-08-14

## What it does

- Checks your active employee list every month against who has actually signed your handbook or annual security policy.
- Sends the document to anyone who has never received it, and re-sends a reminder email to anyone who got it but has not signed, so nobody ends up with two copies.
- Posts a Slack summary with your coverage percentage, everyone still outstanding, and how long each person has been sitting on it.
- Leaves out brand new starters and anyone who has left, so only the people who genuinely owe a signature get chased.

## What you'll need

- A BambooHR account with access to your employee directory
- A DocuSeal account with your handbook or policy acknowledgement already set up as a reusable template
- A Slack workspace and a channel where the monthly summary should land
- Work email addresses filled in for your staff, since that is how people are matched between the two systems

## Prompt

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.

## How to customize

- Change the timing: run it quarterly for an annual policy, or weekly while you are in the middle of an audit push.
- Adjust the grace periods. The 14 day exemption for new starters and the 30 day escalation threshold are both yours to set.
- Point it at a different document, or run it across more than one, for example a code of conduct alongside the security policy.

## FAQ

### Will people get the same document twice?

No. If someone has already been sent the acknowledgement and simply has not signed it yet, we re-send the reminder email on their existing request rather than creating a second one. Only people with nothing on file at all receive a brand new document.

### What about someone who just joined?

Anyone who started in the last 14 days is skipped, so new joiners already working through their onboarding paperwork do not get chased on top of it. You can widen or shorten that window.

### How does it know which signature belongs to which employee?

People are matched on their work email address rather than their name. Names drift between systems through nicknames, married names, and middle initials, and matching on email avoids wrongly telling someone they have not signed.

### Does this work for an annual re-acknowledgement, not just new hires?

Yes, that is the main point. It sweeps your whole active roster on a schedule, which is the evidence auditors usually ask for around SOC 2 and ISO 27001 policy controls.

### What if someone has left the company?

Anyone marked inactive or terminated in your HR system is excluded, so leavers never show up in the outstanding list or receive a reminder.

Use this prompt in General Input: https://www.generalinput.com/prompts/monthly-policy-signature-check-across-your-employee-roster