---
title: "Scheduled tasks"
url: "/scheduled-tasks"
description: "Have an agent reach out proactively — one-off reminders and recurring check-ins delivered to a contact's existing channel."
productArea: scheduled-tasks
audience: ["business-user"]
tags: ["scheduled-tasks"]
lastReviewed: 2026-09-04
---

# Scheduled tasks (/scheduled-tasks)





A scheduled task lets an agent start the conversation rather than only replying. Follow-up
reminders, recurring check-ins, a daily summary — delivered to a contact's existing chat
channel.

Tasks come in two shapes: one aimed at a single contact, and an
[audience message](/scheduled-tasks/audience-messages) aimed at everyone in a data table who
matches your filters.

Manage them from the **Scheduled Tasks** tab on the agent.

## Creating a task [#creating-a-task]

| Field             | What it sets                             |
| ----------------- | ---------------------------------------- |
| **Title**         | A name for you, not shown to the contact |
| **Schedule type** | One-off or recurring                     |
| **Run at**        | Date and time, for a one-off task        |
| **Recurrence**    | The repeat pattern, for a recurring task |
| **Timezone**      | Schedules are evaluated in this zone     |
| **Enabled**       | Pause a task without deleting it         |
| **Action**        | What the task actually does              |
| **Contact**       | Who receives it                          |

One-off tasks must be scheduled in the future. Recurring tasks have a minimum interval of five
minutes.

## What a task can do [#what-a-task-can-do]

| Action               | What happens                                                                                                             |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Agent message**    | Runs the agent with an instruction and delivers its response                                                             |
| **Notification**     | Delivers a fixed message with no model call                                                                              |
| **Audience message** | Messages everyone in a data table who matches your filters — see [audience messages](/scheduled-tasks/audience-messages) |

An **agent message** is billed as [one interaction](/reference/interaction-counting), the same
as a user turn, because the model runs. A plain notification is not. An **audience message**
costs one interaction per recipient.

## Attaching an image [#attaching-an-image]

Any task can carry one image, sent as a **single message** with the message text as its caption
rather than a separate bubble. On an agent message the caption is whatever the agent writes when
it runs.

Only images **shared with all conversations** can be attached — open the file in
[Assets](/knowledge/assets), choose **Share with all conversations**, and give the agent permission to
send it. On WhatsApp the image travels in the template header, so it needs a template Meta
approved **with an Image header**; the Image field appears once you select one, and is then
required. A WhatsApp header accepts **JPEG and PNG only** — a WebP or GIF is refused when you
save the task rather than failing later at send time.

A message with an image counts as **two interactions** instead of one. The same rules apply to
audience messages — see [attaching an
image](/scheduled-tasks/audience-messages#attaching-an-image).

## Choosing the channel [#choosing-the-channel]

A task is delivered to the contact through a channel they already use. If you do not pick one,
KlicForge uses their WhatsApp identity where available, otherwise the first channel it can
reach them on.

<Callout type="warn">
  **Delivering to WhatsApp requires an approved message template.** Meta blocks business-initiated
  messages outside the 24-hour customer service window unless they use one. A WhatsApp task without
  a template selected will not send. See [WhatsApp setup](/channels/whatsapp).
</Callout>

## Managing tasks [#managing-tasks]

Tasks can be paused, resumed and cancelled. Each task keeps a run history so you can see
whether it fired and what happened.

A task aimed at a contact KlicForge cannot reach is refused when you save or re-enable it,
rather than accepted and then failing quietly at run time. If that happens, the contact has
never messaged the agent and has no WhatsApp or Telegram identity on file — see
[contacts](/contacts).

## Troubleshooting [#troubleshooting]

| Symptom                                | Likely cause                                                            |
| -------------------------------------- | ----------------------------------------------------------------------- |
| Task never ran                         | It is disabled, or the agent is not `active`                            |
| Cannot save — no reachable channel     | The contact has never messaged and has no WhatsApp or Telegram identity |
| Task ran but nothing was delivered     | The contact's channel identity stopped working after the task was saved |
| WhatsApp task silently does not send   | No approved template selected                                           |
| Recurring task fires at the wrong time | Timezone is set to something other than the contact's                   |

## Related pages [#related-pages]

* [Audience messages](/scheduled-tasks/audience-messages)
* [WhatsApp setup](/channels/whatsapp)
* [Contacts](/contacts)
* [Interaction counting](/reference/interaction-counting)
