How do you approve time off without paper forms?
Instead of filing a paper form, an employee messages the time-off bot in Pachca and fills out a form with their dates and type of leave. The request lands in a chat for managers and HR with Approve, Decline and Ask for details buttons. The manager taps one, and the bot lets the employee know. Walk through the request yourself below.
Bot
Why approve time off in your team chat
A paper form or an email sits around until the manager gets to it, and in the meantime the employee has no idea whether to book tickets. The manager digs for requests across email and DMs, and HR hears about the time off after the dates were approved without them. In a team chat, the request goes straight to the manager and HR, and the employee gets an answer the moment the manager taps a button.
- Requests are filed and approved in Pachca. Employees fill out the form in the same app where they talk through work with teammates, and get the answer there too. Managers and HR review requests in a chat, right next to their other work chats.
- Managers reply with one tap. They tap Approve, and the bot messages the employee with an @mention, so they get a notification and can go ahead and book tickets.
- The chat shows only requests. If a manager needs to clarify something, they @mention the employee in the request’s thread, even if the employee isn’t in the chat. The back-and-forth doesn’t distract anyone else.
- Requests don’t get lost. They all live in one chat. Six months later, you can find any request by searching for the employee’s name or the request number, even if the manager has changed since.
- You can see who’s out when. Before approving time off in October, the manager scrolls through the chat to see who else asked for those dates. That way, half the team won’t be out at once.
- You can adapt the bot to your process. For example, add a second approval step after the manager, or set the employee’s status to “On vacation” while they’re away.
How to set it up
Besides Pachca, you'll need n8n, an automation tool where you build workflows from ready-made blocks without writing code. You can host it on your own server or use the cloud version. If you already have n8n, setup takes about half an hour.
When someone sends the bot /start or clicks a button, Pachca sends that event to n8n. The workflow responds as the bot: it opens a form for the employee, posts the request to the "Time off" group chat and, once the manager decides, replies to the employee. So you set up the bot in Pachca and the workflow in n8n, then connect the two with a webhook URL.
In Pachca
- 1
Create a chat for requests
Click + next to search, choose Chat and name it "Time off". Add managers and HR. Then open the chat in the Pachca web app and copy the number at the end of the page URL. That's the chat ID. You'll need it in n8n. - 2
Create a bot
In the Integrations menu, choose Bots and click Create bot. Name it "Time Off Bot" and make it public so employees can find it in search and message it directly. Then, on the API tab, copy the bot's token and user_id. You'll need them in n8n. - 3
Add the bot to the chat
Open the "Time off" chat settings, click Add members, switch to the Integrations tab and select "Time Off Bot". Without this, the bot can't post requests. Only an admin or the chat's creator can add a bot.
In n8n
The Time Off Bot workflow is already built. You just need to import it and connect it to your Pachca workspace.
- 4
Import the workflow
Download Vacation_Bot_Pachca.json and paste its contents into a new workflow in n8n. The workflow runs on the Pachca node. If your n8n doesn't have it yet, install the node by following the developer guide. - 5
Connect the bot
To let n8n send messages as the bot, create a new Pachca credential in n8n. Paste the bot token into Access token, choose Bot Token under Token type, enter the bot's user_id in User ID and put this address in Base URL:
Then select this credential in every Pachca node in the workflow.https://api.pachca.com/api/shared/v1 - 6
Set the chat and activate the workflow
In the Send to HR Chat node, enter the "Time off" chat ID in Entity ID so requests land in that chat. In the Webhook node, set your own Path, activate the workflow and copy the Production URL.
Connect the bot to n8n and test it
- 7
Paste the n8n URL into the bot settings
Go back to Pachca, open the Time Off Bot settings and switch to the Outgoing webhook tab. Paste the Production URL into Webhook URL. Under event types, check new messages and button clicks. Add /start to the command filter so it's the only message to the bot that gets sent to n8n. - 8
Send a test request
Send the bot /start and it'll reply with a "Time off request" button. Fill out and submit the form. The request should show up in the "Time off" chat. Click "Approve" under it and go back to your chat with the bot: the reply lands in the thread under the message with the button.
With your team
- 9
Decide who handles requests
Usually the employee's manager approves the request and HR checks the dates against the vacation schedule. Once someone clicks a button, the card in the chat doesn't change and the bot doesn't say who responded, so it helps to mark handled requests with a ✅ reaction. If details are missing, click "Ask for details" and @mention the employee in the thread under the request. Threads in Pachca are cross-chat threads, so you can loop in even someone who isn't in the chat.
The bot can't set an "On vacation" status because the "Update user status" API method is only available to the workspace owner and administrators. You can set the status in a separate workflow step using an administrator token. We cover how forms and buttons work in bots in our article about the time-off bot and the help article on buttons.
Troubleshooting
- The bot doesn't respond to /start. Make sure the workflow is active in n8n and the bot's outgoing webhook uses the Production URL, not the Test URL.
- The "Time off request" button doesn't open the form. Most likely, button clicks aren't checked in the bot's outgoing webhook.
- The request doesn't show up in the chat. Make sure the bot is added to the "Time off" chat and the Send to HR Chat node has this chat's ID.
