PeopleHR automation · runs daily
Auto-approve PeopleHR holiday requests
Every holiday request in PeopleHR lands on its approver, and a manager with a dozen reports opens Authorisations several times a week to click approve on requests that all fit the same unwritten rule.
Cotlet does it in your own PeopleHR account with list_holiday_requests, get_employee_planner, approve_holiday_request and decline_holiday_request, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can PeopleHR do this on its own?
PeopleHR's Integration API has Holiday actions to get, add, update and delete holiday records, and its webhooks can announce an approved holiday, but no API action approves or declines a request (checked 22 Oct 2026). The approval itself happens in Feed or in Authorisations, and the Zapier app only has the New Starter and New Leaver triggers.
How you do it in PeopleHR today
- The approver gets an impact insight email when a request arrives, or sees a red dot next to the Access Button, or next to Feed.
- In Feed, the approver clicks the new item and chooses approve or decline. In Authorisations (Access Button > HR Admin > Settings > Authorisations), the Holiday tab has the quick filters Pending, All, Decided and My requests.
- The approver clicks a pending request, reads the impact insight, adds comments and approves or declines it. The employee then gets a Feed notification.
- A decided request cannot be changed: to correct one, the request is deleted and submitted again.
- The same checks repeat for every request, and requests from indirect reports wait in Authorisations until someone opens that page.
How to auto-approve PeopleHR holiday requests
Go through my pending PeopleHR holiday requests. Approve requests of up to 3 days that start at least 14 days from now and leave nothing else for the person to cover. Decline requests that overlap our freeze week with a comment. List everything else for me. - 01
Read the queue you own
Your agent calls list_holiday_requests with filter set to pending, which returns what the Pending quick filter shows: requests assigned to you as approver. It reads the requester comment and the dates of each one.
- 02
Apply your rule
Each request is checked against the rule in your prompt, for example "up to 3 days" and "starts 14 or more days ahead". The agent writes down the number it relied on, so you see why a request passed.
- 03
Look at the requester
For requests that pass, get_employee_planner reads the requester's holidays for the month, so a third holiday week in a row goes to your list instead of being approved by a rule that never saw it.
- 04
Decide
approve_holiday_request runs for the matches and decline_holiday_request for requests inside your blackout dates, each with a short comment the employee sees. Both ask for your OK per call until you switch confirmation off for them.
- 05
Check before each click
Right before a decision the agent reads the pending queue again. A request you or another approver decided meanwhile is no longer pending, so the agent skips it instead of hitting the already-decided error.
What you get back
Pending requests assigned to you: 9
Approved 5 (up to 3 days, 14+ days notice), e.g. Priya Nair, 3 days from 16 Nov
Declined 1 (inside freeze week): Tom Becker, 22 to 24 Dec
Left for you 3:
- Lena Ortiz: 8 days, comment says "family event"
- Sam Okafor: third holiday week in a row Other ways to ask
- Every morning at 8, approve one-day requests and list the rest in this chat.
- Show me the pending requests from my indirect reports, but decide nothing.
- Decline anything that starts within 7 days and tell the employee to talk to me.
- Approve requests from the support team only when no one else on the team is off.
What PeopleHR allows, and what to know first
- PeopleHR routes holiday requests to the approver set by your authorisation rules and multi-authorisation workflows, so the account behind this job must be the approver of the request.
- By default an approver receives requests from direct reports only, while Authorisations in the left-hand menu also shows requests from indirect reports.
- A decided authorisation cannot be changed in PeopleHR. The request has to be deleted and submitted again.
- Approvers get an impact insight email when a request is submitted, and PeopleHR does not let you disable or edit it.
- The employee is notified in Feed after the decision, so a comment on a decline is the only explanation they get.
approve_holiday_request and decline_holiday_request ask for your OK by default. To run it daily without you, switch confirmation off for those tools in your dashboard.
Sources: PeopleHR Help: Authorisations area overview · PeopleHR Help: Access Feed, manage holiday requests · PeopleHR Help: Holiday request insights · Access PeopleHR Integration API v4.0: Employee Holiday
Call approve_holiday_request from a script
curl -X POST https://cotlet.dev/api/v1/peoplehr/requests/hol-48210/holiday-request/approve \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"comment":"Approved, enjoy the break."}' {
"request_id": "hol-48210",
"employee": "Priya Nair",
"start_date": "2026-11-16",
"end_date": "2026-11-18",
"status": "Approved",
"decided_by": "Dana Reyes",
"comment": "Approved, enjoy the break."
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is peoplehr_write → approve_holiday_request. Example data.
Schedule it in n8n, Make, Zapier or cronPeopleHR tools this automation uses
| Tool | Parameters |
|---|---|
| list_holiday_requests | filter, cursor |
| get_employee_planner | employee_id, type, start_date, end_date |
| approve_holiday_request | request_id, comment |
| decline_holiday_request | request_id, comment |
Frequently asked questions
Can my agent change a request after approving it?
No. PeopleHR does not allow a decided authorisation to be changed. The request has to be deleted and submitted again, so the agent leaves unclear cases for you instead of approving them.
Is it safe to connect PeopleHR to Cotlet?
Yes. You sign in to PeopleHR yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get PeopleHR once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to PeopleHR.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with PeopleHR.