Skip to content
Developers

Escalating overdue tasks

Tallyfy has no account-wide escalation switch. You build escalation onto one specific step instead, using a pair of steps: the real one, plus a second step that expires a little later. When the second one expires, an automation fires and does whatever you told it to do to the real step.

Because you build it per step, you add escalation only where being late costs you something. In a 40 step process that might be two or three steps, and nobody gets alerts about the other 37.

Tallyfy checks automations at three moments: when a process launches, when the kick-off form is completed after launch, and when a task is completed or reopened. So an automation can react to someone completing, approving, rejecting or acknowledging a step, but there’s no “when a deadline passes, do something” trigger for you to pick. When an automation runs has the detail.

An Expiring step completes itself once its deadline passes, with nobody touching it, and that completion is one of the moments Tallyfy checks automations. Set one to expire shortly after the real work was due, and you’ve built yourself a deadline trigger.

Say your month-end close template has this step:

  • Post month-end journal entries, due 5 days after launch, assigned to Jelena.

You add a second step beside it:

  • Escalate journal entries, step type Expiring, due 6 days after launch. Nobody needs to be assigned to it.

Then one automation: IF “Escalate journal entries” is expired, THEN add Jelena’s manager as an assignee on “Post month-end journal entries”.

On day 6 the expiring step completes itself, the automation fires, and the manager lands on the task. If Jelena posted the entries on day 4, nothing happens at all.

The gap between day 5 and day 6 is your grace period. You set it purely by choosing the expiring step’s date. For three days of slack instead of one, date it day 8.

You’ll need rights to edit the template.

  1. Open your template in the template editor.

  2. Add a new step next to the one you want to watch. Name it so you’ll recognize it later, like “Escalate journal entries”.

  3. Set the new step’s type to Expiring.

  4. On the Basics tab, click the Timings row to expand it, then set its deadline relative to Process Launch, a little later than the real step’s deadline. Don’t pick Another Step. The caution below explains why.

  5. Leave the expiring step unassigned. Nobody has to do anything with it.

  6. Go to the Automations tab and click Add Automation. Give it a plain name like “Escalate journal entries if late”.

  7. For the IF condition, pick your expiring step and choose is expired.

  8. For the THEN action, pick what should happen, then set Apply to to the real step, not the expiring one.

  9. Save the template.

To check your work, launch a test process and deliberately leave the real step alone. Come back after the expiring step’s deadline and you should see the action land on the real task.

Set the expiring step’s deadline from the process launch

Section titled “Set the expiring step’s deadline from the process launch”

We ran two identical processes side by side and left the real work undone in both:

The expiring step was dated fromWhat actually happened
Process LaunchIt expired on time and the manager was added. Escalation worked.
Another StepIt never expired at all, even after a full extra cycle. No escalation.

If you build this pattern and nothing ever happens, check this setting first.

Adding a manager is one option. “Is expired” is an ordinary condition, so every automation action is available to you:

  • Change who’s assigned. Add people to the step, replace everyone on it, or clear the assignees. See assignment actions.
  • Change a deadline. Push the due date out or pull it in. See deadline actions.
  • Show or hide a step. Reveal a normally hidden “Explain the delay” step only when something runs late. See visibility actions.
  • Reopen a completed step. Send finished work back for another pass. A reopen only works on a step that’s already complete, so point it at an earlier step, not the late one. See status actions.
  • Fire a webhook. A webhook (an automatic message Tallyfy sends to another system the instant something happens) hands the event to a tool you already run. The template editor can’t add a webhook action yet, so today it’s only possible through the API. In the editor, turn on the expiring step’s own Emit a webhook when this task is completed? setting instead. See webhooks.

Finish the real step before the expiring step’s deadline and no escalation happens. You don’t have to switch anything off.

That’s because assignment, deadline and visibility actions skip a step that’s already complete. The expiring step still expires and the automation still fires, but the action has nothing left to do.

We tested that with two identical processes. One was left alone, one had the real work completed early. The one left alone got the manager added. The one where the work was done didn’t.

Webhook and reopen actions are the exception. A webhook doesn’t look at the real step, and a reopen only ever acts on a finished step, so both still run when the expiring step expires, even if the work was done on time.

Tallyfy checks for expiring steps every 5 minutes, so escalation arrives within about five minutes of the deadline rather than on the exact second. If you need something to react in seconds, this pattern isn’t the right tool.

A condition that reacts to a deadline passing, with no expiring step involved, has been built and is in review. It hasn’t shipped yet, and we’re not putting a date on it. Until it does ship, the expiring step pattern above is how escalation works in Tallyfy.

Escalation is for the few steps where lateness really hurts. For everything else, two things already help:

  • Digest emails list tasks that are due soon or overdue. They go out at 6 AM in each person’s local timezone, and everyone picks their own days in email notification settings.
  • Overdue filters narrow a list down to just the late work. In the Tasks view, filter on Task State and pick Overdue. The Tracker view does the same thing one level up, showing you which whole processes are behind.

You can also comment on any late task to ask for an update, or watch a process to get notified about every change to it. Watching won’t ping you at the moment a task turns overdue, though.

When you chase late work, ask what’s holding it up rather than why it isn’t done. Say why the date matters, for example “The auditors need this by Friday”, and suggest a next step instead of ordering one.

Keep the conversation in comments on the task, so it stays with the work. If you extend the deadline, pick a new date that can be met.

  • Use expiring steps for FYI items. They complete themselves at the deadline, so announcements and optional reading never turn into overdue clutter.
  • Bundle small work into one step. One step with five form fields beats five separate steps that can each go late.
  • Set deadlines you’ve actually hit before. Base them on how long the work really takes, not on the best case.
  • Drop steps that are always late and never matter. If a step goes overdue every month and nothing bad follows, take it out of the template.

There’s more in the guide on how to avoid task debt.