Hourly
Tell IT when someone is leaving
IT sees each new termination date in Slack, in time to plan removing access.
- Runs
- Hourly
- Apps
- Personio
- AI
- Not needed
- Access
- employments read
Send this to your assistant
Create a ClickRuntime automation: every hour, check Personio for employments that have a termination date set and post the name, department and last day to #it-requests in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
When an employee's last day is set in Personio, a long list of people need to act: IT must disable accounts and collect the laptop, finance must handle final pay, and facilities may need to retrieve a badge. But HR often records the termination date and moves on, and the IT team learns about it from a hallway conversation or after a former employee is still logged into Slack and the CRM weeks later.
Every hour, Personio is checked for employments that have a termination date set since the last run. Each newly flagged leaver triggers a Slack post with their name and last day, so the people responsible for offboarding hear about it at the time the date is entered, not when someone remembers to tell them.
It is most useful for companies where HR and IT sit in different teams and offboarding depends on a handoff.
What you get out of it
Access is removed on time
IT learns of a departure when the date is entered, so accounts can be scheduled for deactivation on the last day. That reduces the window in which a former employee still holds company data.
Fewer security gaps
Lingering access to shared drives, customer data or production systems is a real risk. Quick notice cuts down forgotten accounts, which are among the common causes found in security reviews.
Equipment is collected
Facilities and IT can plan the return of laptops, phones and badges before the last day. That is far easier than chasing a former colleague for hardware weeks later. A planned handover of equipment also reduces the chance of lost or unreturned devices.
No dependence on hallway news
Offboarding no longer relies on someone remembering to email IT. The message arrives whenever HR records the date, whether it is on a busy Friday or during a holiday. The process works the same on weekends, during holidays and when HR is short-staffed.
An auditable offboarding start
The Slack message time shows when the departure became known. If an auditor asks how quickly offboarding began, you can point to the record instead of reconstructing it. That record helps during security reviews and certification audits.
How it works
What happens, step by step
Every hour, ClickRuntime checks Personio for employees who have been given a termination date since its last check.
Each one is posted to your IT Slack channel with their name, department and last day, so access can be removed in time.
Each leaver is posted only once.
Before it runs live
- Connect Personio
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Personio steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched
def personio(path, **params):
auth = http.post("https://api.personio.de/v1/auth", json={
"client_id": credentials.secret("PERSONIO_CLIENT_ID"),
"client_secret": credentials.secret("PERSONIO_CLIENT_SECRET")}).json()["data"]["token"]
resp = http.get(f"https://api.personio.de/v1/{path}", headers={"Authorization": f"Bearer {auth}"}, params=params)
resp.raise_for_status()
return resp.json()["data"]
def val(emp, key):
v = emp["attributes"].get(key, {}).get("value")
return v.get("attributes", {}).get("name") if isinstance(v, dict) else v
@on_trigger
def run(event):
posted = set(state.get("posted") or [])
leavers = [e for e in personio("company/employees", limit=200)
if val(e, "termination_date") and f"{val(e, 'id')}:{val(e, 'termination_date')}" not in posted]
report_fetched(len(leavers))
if not leavers:
return {"summary": "Nothing new"}
for e in leavers:
notify.slack(f"Leaver: {val(e, 'first_name')} {val(e, 'last_name')} ({val(e, 'department')}), "
f"last day {val(e, 'termination_date')[:10]}", channel="#it-requests")
posted.add(f"{val(e, 'id')}:{val(e, 'termination_date')}")
state.set("posted", sorted(posted))
return {"posted": len(leavers)}FAQ
Common questions
Does it include why the person is leaving?
What if the termination date is changed later?
Which Personio access does it need?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get an email when someone is added
You hear about each new person in Personio within the hour, with the details you've whitelisted.
See how it worksPost today's absences to Slack
Each weekday morning your team sees who is off, whether on holiday or sick.
See how it worksSee new job listings as they're posted
Jobs that match your keywords show up in a Slack channel, each one only once.
See how it worksKeep exploring
Set up “Tell IT when someone is leaving” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.