Tasks
Tasks are reusable units of work that define what an assistant should do. A task describes the objective, the expected output type, and optionally which tools the assistant is allowed to use. Tasks can be run manually, automated with schedules, or triggered from external services via the Web Trigger.
Creating a Task
Navigate to Tasks in the sidebar and click New Task.
| Field | Description |
|---|---|
| Name | A descriptive name for the task (e.g., “Weekly Blog Post”, “Competitor Analysis”) |
| Output Type | The type of deliverable the task should produce |
| Description | Detailed instructions for the assistant — what to do, how to do it, and what the output should look like |
| Allowed Tools | Optionally restrict which tools the assistant can use. Leave empty to allow all tools. |
| Active | Whether the task is available for scheduling |
Output Types
The output type tells the assistant what kind of deliverable to create. Available types depend on your installed plugins but typically include:
| Type | Description |
|---|---|
| Freeform | No specific output format required |
| Blog Post | A structured blog article |
| Report | A detailed report or analysis |
| Summary | A concise summary or brief |
| Image | A generated image |
| Proofreading | Text review and editing |
| File | A file output (spreadsheet, document, etc.) |
Tool Restrictions
By default, tasks allow the assistant to use all available tools. You can restrict this by selecting specific tools in the Allowed Tools field. This is useful for:
- Limiting a research task to only use
search_knowledgeandweb_search - Preventing a content task from modifying schedules or project state
- Ensuring a proofreading task only uses
get_deliverableandsave_content
The allowed tools list includes both built-in tools and any plugin tools available on the project.
Task Runs
Each time a task is executed, a task run is created to track the execution. On the task detail page, you can see the history of recent runs with:
- Status — Whether the run is in progress, completed, or failed
- Started / Completed — Timestamps for the execution
- Conversation — A link to the conversation created for the run
- Deliverables — Any content produced during the run
Task runs are created automatically when a schedule triggers a task, when a task is executed manually, or when triggered via the Web Trigger by passing the task’s ID in the task_definition_id field.
Technical Details
How task execution works — When a task runs, the system creates a new conversation with the task description as the initial user message. The assigned assistant then runs through its normal agent loop — assembling a system prompt, calling the LLM, executing tools, iterating — exactly as it would in an interactive chat. The conversation is linked to a TaskRun record for status tracking, and any deliverables produced are associated with both the task run and the conversation.
Tool restriction — The allowed_tools field on a task definition acts as a filter on top of the assistant’s own tool configuration. Only tools that appear in both the assistant’s enabled tools and the task’s allowed tools list are available during execution. If the allowed tools list is left empty, all of the assistant’s enabled tools are available.
Task run lifecycle — A task run progresses through these states: pending (created but not yet started), running (the agent loop is active), completed (the agent finished successfully), awaiting_review (draft content was produced), or failed (an unrecoverable error occurred). Failed task runs are not retried — because the agent loop may have already executed tools with side effects (sent emails, created content, modified project state), retrying could cause duplicate actions.
Notifications — When a task run finishes (regardless of outcome), a notification is sent to the task owner. The notification type depends on the final status: task_completed, task_awaiting_review, or task_failed. Users can configure which delivery channels they receive these on (in-app, email) via their notification preferences. Events are also broadcast to any configured system webhooks.
Active and Inactive Tasks
Toggle the Active checkbox to control whether a task is available for scheduling. Inactive tasks cannot be assigned to new schedules but existing schedules referencing them are preserved.