Skip to content

On a schedule

Post today's absences to Slack

Each weekday morning your team sees who is off, whether on holiday or sick.

Runs
On a schedule
Apps
Personio
AI
Not needed
Access
absences read

Send this to your assistant

Create a ClickRuntime automation: every weekday at 9am, list today's absences in Personio and post each person's name and absence type to #office 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

Anyone who has tried to book a meeting or ask a quick question only to find the person is on vacation knows the cost: a wasted message, a delayed decision, and a customer left waiting. Personio holds all the absences, but checking the calendar means opening another tool, so most people guess who is in and who is away, and are regularly wrong.

On a schedule you choose, usually early in the morning, Personio is queried for absence periods that cover today, and the names are posted in Slack. The team starts the day knowing who is on vacation, off sick or away, without opening Personio or asking HR. It is also a quiet help for managers covering shifts or approving last-minute requests.

It suits teams of twenty to a few hundred people, where nobody can keep track of everyone's leave by memory.

What you get out of it

  • Stop pinging people who are away

    Seeing the list before sending a message saves wasted effort. You redirect your question to someone who is available, and the work moves along rather than waiting for a reply from a person on a beach.

  • Customer issues get routed correctly

    Support and account teams can see who is out and hand issues to the right colleague. Customers get an answer the same day instead of waiting for an absent owner to return.

  • Fewer scheduling mistakes

    Meetings are less likely to be booked on days when key people are absent. That avoids the reshuffling that follows when you realize half the attendees are away. Fewer reschedules mean less wasted time for everyone invited.

  • Less load on HR

    People stop asking HR whether someone is in. The channel answers the question every morning, which gives HR time for work that actually needs a person. Routine availability questions disappear from the HR inbox and chat.

  • Planning for coverage

    Managers see at a glance when too many people are out at once. They can adjust deadlines or ask for cover before it becomes a problem for customers. Early visibility makes it easier to arrange cover calmly rather than in a scramble.

How it works

What happens, step by step

  1. Every weekday at 9am, ClickRuntime asks Personio for the absences that cover today.

  2. It lists each person with the type of absence, such as holiday or sick leave.

  3. The list is posted to your Slack channel.

Before it runs live

  • Connect Personio

What you get

RunsOn a schedule
Post today's absences to Slacktoday, 9:00Succeeded
Slack · #officeAbsent today: • Lena Vogel: Paid vacation • Jonas Weber: Sick leave

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

  • Run it at a different time, more or less often, or only on weekdays
  • 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.
who_s_absent_today.pyexample
from datetime import date
from clickruntime import on_trigger, credentials, http, notify

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):
    today = str(date.today())
    absences = personio("company/time-offs", start_date=today, end_date=today, limit=200)
    lines = []
    for a in absences:
        attrs = a["attributes"]
        emp = attrs["employee"]["attributes"]
        lines.append(f"• {emp['first_name']['value']} {emp['last_name']['value']}: {attrs['time_off_type']['attributes']['name']}")
    notify.slack("Absent today:\n" + "\n".join(lines) if lines else "Nobody is absent today.", channel="#office")
    return {"absent": len(lines)}

FAQ

Common questions

Does it show the reason for the absence?
It can show the absence type, such as vacation, but that is your decision. Many companies list names only, particularly for sick leave, to respect privacy. Tell your AI assistant which you prefer. Approved leave only is shown.
Are half-day absences included?
Personio reports absence periods with their start and end, including partial days. A half-day absence on today's date appears in the list, and the message can mark it as partial if you want that detail.
Can it post to a team channel rather than the company one?
Yes. The channel is one setting, and you can limit the list to a department. Tell your AI assistant to filter by team and approve the revised version before it replaces the present one. It is a simple filter.
What permissions does it need?
absences 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 runs (on a schedule). Checks that find nothing to do 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 “Post today's absences to Slack” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.