Skip to content

Hourly

Get an email when a project task goes overdue

When a task in your project passes its due date unfinished, you get one email about it.

Runs
Hourly
Apps
Wrike
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every hour check my 'Q3 Launch' project in Wrike and email me when an active task passes its due date, with the task name, owner and link.

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

A task in a Wrike project slips past its due date and nothing happens. There is no red banner for the project lead, the assignee may not have looked at it for days, and the client milestone that depended on it comes and goes. By the time someone spots the overdue marker on the board, the delay has already passed to the next three tasks in the chain.

Every hour, active tasks in the folder you picked with a due date before today are listed. Tasks that were already reported are skipped using stored state, and new ones are emailed to you with their titles and links. You hear about each overdue task once, soon after it falls behind.

Project managers responsible for a single high-stakes project, such as a product launch or an event, usually point this at that folder.

What you get out of it

  • Slippage is caught within the hour

    Hearing about a missed date shortly after it passes gives you time to reassign, renegotiate or warn the client while there is still room to recover. Even a one-day head start can be the difference between a small slip and a missed milestone.

  • Each task is flagged once

    Remembering which tasks were reported keeps your inbox from filling with the same overdue item every hour, so every alert is genuinely new information. A short list of new items is far easier to act on than a repeated alert about old ones.

  • Dependent tasks are protected

    A late design task delays development, which delays testing. Seeing the first domino early lets you adjust the plan before the delay grows. Fixing the first late task protects the dates of everything scheduled behind it.

  • Accountability without nagging

    The project lead sees the overdue item and decides whether to chase, instead of the team receiving automated reminders that feel impersonal and get ignored. Leads choose whether to call, reassign or wait, and the team is spared noisy automated pings.

  • Scoped to the work that matters

    Pointing the check at one folder avoids alerts about old tasks in unrelated spaces, so the signal comes from the project you are actually accountable for. That keeps the signal strong for the project you answer for, without alerts from other spaces.

How it works

What happens, step by step

  1. Every hour, ClickRuntime checks the active tasks in your Wrike project folder for any past their due date.

  2. Tasks it has already told you about are skipped, so each one is reported once.

  3. You get an email listing the newly overdue tasks with who they are assigned to, their due dates and links.

Before it runs live

  • Connect Wrike

What you get

RunsHourly
Get an email when a project task goes overduetoday, 9:00Succeeded
Email · 2 Q3 Launch tasks now overduePress kit final copy | Sam Lee | due 2026-10-18 https://www.wrike.com/open.htm?id=1234567890

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 Wrike 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.
task_became_overdue_alert.pyexample
import json
from datetime import date, timedelta
from clickruntime import on_trigger, report_fetched, state, notify, http, credentials

API = "https://www.wrike.com/api/v4"
FOLDER = "IEAAAAAAI4AAAAAA"  # your 'Q3 Launch' project id

@on_trigger
def run(event):
    headers = {"Authorization": "Bearer " + credentials.connection("wrike", "main")}
    yesterday = (date.today() - timedelta(days=1)).isoformat()
    tasks = http.get(f"{API}/folders/{FOLDER}/tasks", headers=headers, params={
        "status": "Active", "dueDate": json.dumps({"end": yesterday}), "fields": json.dumps(["responsibleIds"]),
    }).json()["data"]
    known = set(state.get("alerted") or [])
    new = [t for t in tasks if t["id"] not in known]
    report_fetched(len(new))
    if not new:
        return {"summary": "No newly overdue tasks"}
    ids = {r for t in new for r in t["responsibleIds"]}
    names = {c["id"]: f"{c['firstName']} {c['lastName']}" for c in http.get(f"{API}/contacts/{','.join(ids)}", headers=headers).json()["data"]} if ids else {}
    lines = [f"{t['title']} | {', '.join(names.get(r, '?') for r in t['responsibleIds']) or 'unassigned'} | due {t['dates']['due'][:10]}\n{t['permalink']}" for t in new]
    notify.email_me(f"{len(new)} Q3 Launch tasks now overdue", "\n\n".join(lines))
    state.set("alerted", list(known | {t["id"] for t in new}))
    return {"alerted": len(new)}

FAQ

Common questions

What counts as overdue?
A task counts when its status is active and its due date is earlier than today. Completed, cancelled and deferred tasks are not included. Tasks without a due date are never overdue, so they do not trigger an alert.
Will I be alerted again if the date passes a second time?
Each task is remembered after it is reported, so a rescheduled task that becomes overdue again will not repeat unless you clear the saved state. If you want repeat alerts after a new due date, tell your AI assistant to track the date too.
Can the alert go to the assignee as well as me?
Yes, if the assignee's email is available or mapped to a Slack user. Many managers prefer to receive the alert themselves first so they can decide how to approach the person, so sending to the assignee is optional.
What permissions does it need?
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 “Get an email when a project task goes overdue” from your assistant

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