Skip to content

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.

Paste it into your assistant. It tells you what it will send or change before it runs live.

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

  1. Every hour, ClickRuntime checks Personio for employees who have been given a termination date since its last check.

  2. Each one is posted to your IT Slack channel with their name, department and last day, so access can be removed in time.

  3. Each leaver is posted only once.

Before it runs live

  • Connect Personio

What you get

RunsHourly
Tell IT when someone is leavingtoday, 9:00Succeeded
Slack · #it-requestsLeaver: Jonas Weber (Engineering), last day 2026-11-30

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
leaver_alert.pyexample
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?
It only passes along the name and last day. Reasons and other sensitive fields are not included, which keeps the Slack message appropriate for a channel that several people will read. HR keeps those details inside Personio.
What if the termination date is changed later?
The alert is based on a date being newly set, so a later edit does not post again. If a date moves earlier, you can add a rule that watches for changes so IT hears about it.
Which Personio access does it need?
It reads employment records using API credentials with permission for employee data. The credentials are stored as secrets in ClickRuntime, and only the fields needed for the alert are used. Nothing is written back to Personio.
What permissions does it need?
employments read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

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.