---
title: "Scheduled tasks"
description: "Beta feature: tasks that run on their own: on a schedule, via webhook or by email. Setup, triggers, results, notifications and limits."
canonical_url: "https://meingpt.com/en/docs/platform/scheduled-tasks"
language: en
---

# Scheduled tasks

With **scheduled tasks**, an assistant (or a model) works on its own without you opening a chat. A task starts on a schedule, when another system calls a webhook URL, or when an email arrives at the task's address. You find them in the sidebar under **Scheduled**.

Scheduled tasks are currently a **beta feature**. The **Scheduled** entry in the sidebar therefore carries a **Beta** label. Support enables the feature per workspace. If the **Scheduled** entry is missing from your sidebar, the feature is not active for your workspace yet. Contact support in that case.

## Create a task

On the **Scheduled** page, click **Create task**. Alternatively, open the **Scheduled tasks** card in the assistant editor and click **Add task**. By default, all members have the **Create automations** permission. Admins can restrict it, see [Permissions](/en/docs/admin-guide/permissions).

| Field | Meaning |
| --- | --- |
| **Name** | Up to 120 characters. |
| **What should set it off?** | **Schedule**, **Webhook** or **Email**. You cannot change the trigger after creating the task. Delete the task and create a new one to switch. |
| **Instructions** | What the task should do on every run, up to 20,000 characters. The placeholder `{{now}}` is replaced with the current time. |
| **Assistant or model** | Either an assistant whose prompt, tools and knowledge the task uses, or a model with the tools you switch on in the selection menu. For an assistant you need edit rights. If your workspace only allows assistants, you have to pick one. |
| **Time zone**, **Frequency**, **Time** | Schedule trigger only. |
| **Allowed senders** | Email trigger only, see below. |

A new task is active right away. It runs as your account: it uses your connections and your model access.

## Triggers

### Schedule

Choose one of the frequencies **Daily**, **Every Monday to Friday**, **Weekly on** (one weekday) or **Monthly on** (one day of the month), plus a time and the time zone. With **Custom…** you set:

- **Weekly** on several weekdays, for example Monday and Thursday.
- **Monthly** on a day from 1 to 28, on the last day of the month, or on a weekday such as the last Friday.

In the interface you set one time per task, so the schedule starts a task at most once a day. **Run now** is exempt from that, and you can use it at any time on top of the schedule. The card shows the next run, for example "Next run: today at 08:00". After an outage, the task catches up on a missed slot once, not on every missed slot. A task never overlaps itself: if the previous run is still going, the next one waits.

### Webhook

The task gets its own **webhook URL** with a secret token. Another system starts it with a POST request and a JSON body. The response `202` with a `runId` confirms that the run is queued. The content of the request reaches the model as a separate message and counts as received data, not as an instruction. Use the `Idempotency-Key` header to detect duplicate calls: a second call with the same key returns the same `runId`.

The URL is the secret: anyone who knows it can start the task. With **Renew address** in the edit dialog you generate a new URL. The old one stops working, so enter the new one everywhere the old one was configured.

### Email

The task gets its own email address on the domain `@agents.meingpt.com`. Every mail to that address starts a run, including BCC and forwarded mail. Sender, subject and body reach the model as a separate message and count as received data, not as an instruction. MeinGPT truncates the body at 64 KB and marks it with `[truncated]`. Up to 10 attachments with a combined 20 MB are passed along. MeinGPT tells the model about files that are too large or cannot be retrieved instead of failing the run. With **Renew address** you generate a new address, and the old one stops working.

You decide who may send mail in the **Allowed senders** field:

- **Everyone in the workspace** (default): only senders whose email address belongs to a member of your workspace start the task.
- **Specific addresses**: only the addresses you enter in the input field start the task, separated by commas (for example `anna@company.com, accounting@company.com`).

The check uses the sender address (From) of the incoming mail. SPF and DKIM are not checked.

**Automatically forwarded mail:** when a mail-server rule forwards messages from third parties, the original author usually stays in the From field. If that sender is not a workspace member and not on the list, the mail is **dropped silently** and starts no run, even though your mail server reports successful delivery. In that case switch the field to **Specific addresses** and enter the original senders.

If a forwarded mail contains a block such as "Forwarded message" or "Weitergeleitete Nachricht", the task shows the model the original author as the sender. The sender check still applies to the actual sender of the mail.

## Runs and results

Every run creates its own hidden chat. Open the task to see the history. A run has one of these states:

- **Queued**: the run is waiting.
- **Running …**: the run is working.
- **Succeeded**: the run finished and reported success.
- **Failed**: the run was aborted or reported an error.
- **Nothing to do**: the model reported that no action was needed.
- **Unverified**: the model delivered no closing report, so the result is not confirmed. This does not count as a failure.

Clicking a run opens its chat. For failed runs, and for other editors, the **Run result** dialog opens instead, with the summary or error and the files the run created. Use **Load older runs** to see earlier runs.

MeinGPT deletes the body of received emails from the run data after 30 days. Sender and subject remain.

### Notifications

- **Bell:** every finished run creates an entry with the task, its state and a summary.
- **Email notification:** when you edit a task, you decide when an email with the result goes to up to 20 recipients: **Never** (default), **After every run**, **Only with a result** (success only, not "Nothing to do") or **Only on failure**. Files up to a combined 15 MB are attached to the mail. Larger files come as a link that is valid for 7 days.

## Manage tasks

The card and the detail page offer these actions:

- **Run now** starts a test run, even for a paused or switched-off task. Use it to check a fix before you switch the task back on. For email and webhook tasks, the model knows that nothing was received.
- **Pause** and **Activate** switch the task off and on.
- **Edit** opens the dialog. Maximum runs per hour and the email notification are set here, not when creating a task.
- **Delete** removes the task. Chats it already created are kept. If you delete an assistant, its tasks are deleted too.

The **Scheduled** page offers a search by name or assistant and a status filter (**All**, **Active**, **Paused**, **Off**). Paused tasks always sort first.

## Limits

- A run ends after **9 minutes** and uses at most **20 tool steps**. Failed runs are not retried automatically.
- Only **one run of a task** runs at a time.
- By default, a task allows **60 runs per hour**, counted across all triggers including **Run now**. For email and webhook tasks you change the value in the edit dialog (1 to 1000).
- A single email sender can start the same task at most **25 times per hour**.

## Credits and automatic pausing

Scheduled tasks use the workspace's credits, see [Credits](/en/docs/platform/credits). MeinGPT pauses a task automatically when

- **5 runs in a row fail**, or
- **the workspace's credits are used up**.

You recognize paused tasks by the yellow dot next to **Scheduled** in the sidebar, the notice on the page and the **Paused** status. After even one failed run, the detail page shows a warning. You usually also receive an email. If the creator is no longer active, the emails go to the workspace admins. Fix the cause and switch the task back on with **Activate**. If credits ran out, an admin has to top up first.

## When nothing happens

Mails and calls that don't start a task often report no error back. Check these points:

- **An email starts no run:** Is the sender allowed? For forwarded mail this is usually the cause, see above. Is the task active and not paused? Has the hourly limit or the limit of 25 mails per sender been reached? Both lead to silent dropping. The mail does not bounce, and the task history shows no entry.
- **A webhook answers with 404:** The URL is unknown, the task is paused or switched off, or the feature is not active for the workspace. **429** means the hourly limit is reached.
- **A run shows "Unverified":** The model did not confirm a result. Open the run's chat and check what happened.
