Templates
Templates in smenso provide reusable structures and predefined content for projects, tasks, and status reports. They help reduce repetitive setup work, standardize recurring processes, and ensure that important configuration is applied consistently.
smenso supports three main template types:
- Project templates
- Task templates
- Status report templates
Template Types
Project Templates
Project templates define a reusable baseline for projects. Depending on their configuration, they can contain:
- master data such as dates, status, and classifications
- default flavors and metadata
- structural elements such as tasks, phases, and folders
- standard configurations such as permissions or access settings
Project templates can be used to:
- create new projects with a predefined structure
- apply selected template master data to existing projects
For detailed information about creating and updating projects with templates, see the Projects guide.
This section will be extended with a dedicated API walkthrough, similar to the Task Templates section below.
Task Templates
Task templates provide a reusable baseline for recurring tasks and task structures.
Depending on the template configuration, a task template can contain information such as:
- start and due dates
- status and workflow
- files
- labels
- flavors
- participants
- observers
- subtasks
- description
- priority
- time recording settings
- automatic effort and cost update settings
Task templates are useful when the same type of work occurs repeatedly across projects and should follow a consistent structure. They can be applied manually in the smenso UI or programmatically through the Integration API - see Applying a Task Template to an Existing Task below.
Status Report Templates
Status report templates define a reusable structure for reports. Depending on their configuration, they can contain:
- report sections and structure
- default values for supported fields
- predefined RichText content such as headings, placeholders, or standard text
- optional default flavors or metadata
They can be used to create reports with a consistent structure, for example:
- weekly status reports
- monthly steering committee reports
- customer status reports
This section will be extended with a dedicated API walkthrough, similar to the Task Templates section below.
Applying a Task Template to an Existing Task
The Integration API can apply an existing task template to an existing task.
Endpoint
PUT /api/integration/task/json/{taskId}/{templateId}
Content-Type: application/json
Authorization: Basic {YOUR_TOKEN}The complete endpoint reference, including all request and response fields, is available here:
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string | ✅ | ID of the existing task to which the template should be applied. |
templateId | string | ✅ | ID of the task template that should be applied. |
Both IDs are GUIDs identifying existing objects in smenso.
UI and API Behave Differently
Template options are opt-in when using the APIApplying a task template through the API does not use the same defaults as applying it through the smenso UI. When a task template is applied in the smenso UI, the available options are selected by default; a user can deselect individual options before confirming. The API works differently: every option in the request body defaults to
false. An option that is omitted from the request is therefore not automatically taken from the template - the integration must explicitly set each option it wants applied totrue.
| Behavior | smenso UI | Integration API |
|---|---|---|
| Template options selected by default | ✅ Yes | ❌ No |
| Omitted option is automatically applied | ✅ Usually selected in the UI | ❌ No |
| Explicit selection required | Only when changing the default selection | ✅ Set the property to true |
| Default for boolean options | - | false |
This difference matters most when an integration is meant to reproduce the behavior a user sees when applying a template manually - see Apply All Available Template Sections below.
Available Task Template Options
The API provides the following options when applying a task template.
| Field | Type | Default | Description |
|---|---|---|---|
overwriteValues | boolean | false | Allows the template to overwrite fields that already have a value. Fields that are empty on the task are always filled from the template when the corresponding section is enabled, regardless of this setting. |
startDate | boolean | false | Include the start date from the template. |
dueDate | boolean | false | Include the due date from the template. |
statusAndWorkflow | boolean | false | Include status and workflow configuration. |
files | boolean | false | Include files from the template. |
labels | boolean | false | Include labels. |
flavors | boolean | false | Include flavors. |
participants | boolean | false | Include participants. |
observers | boolean | false | Include observers. |
subTasks | boolean | false | Include subtasks. |
description | boolean | false | Include the task description. |
priority | boolean | false | Include priority. |
blockTimeRecording | boolean | false | Include the setting for blocking time recording. |
autoUpdateFields | boolean | false | Include automatic effort / cost update settings. |
Explicit selectionEvery option that should be taken from the task template must explicitly be set to
true. Do not rely on the default selections of the smenso UI when implementing template-based task updates through the API.
Example: Apply Selected Template Values
In many integrations, only specific parts of a template should be applied. The following request applies the start date, due date, status and workflow, labels, description, and priority:
PUT /api/integration/task/json/{taskId}/{templateId}
Content-Type: application/json
Authorization: Basic {YOUR_TOKEN}{
"startDate": true,
"dueDate": true,
"statusAndWorkflow": true,
"labels": true,
"description": true,
"priority": true
}All other options remain disabled because they were not explicitly set to true. For example, a request body of:
{
"labels": true,
"flavors": true
}only enables labels and flavors. It does not implicitly enable dates, workflow, description, priority, subtasks, or any other option.
Example: Apply All Available Template Sections
If an integration should reproduce the default selection users typically see when opening the template dialog in the smenso UI, all relevant options need to be explicitly enabled:
{
"overwriteValues": true,
"startDate": true,
"dueDate": true,
"statusAndWorkflow": true,
"files": true,
"labels": true,
"flavors": true,
"participants": true,
"observers": true,
"subTasks": true,
"description": true,
"priority": true,
"blockTimeRecording": true,
"autoUpdateFields": true
}
ReviewoverwriteValuesbefore enabling itEnabling all options also allows existing task information to be overwritten. Only set
overwriteValuestotruewhen replacing existing values is intended. In production integrations, it is usually preferable to explicitly enable only the sections the integration is responsible for, rather than applying the full template.
Example: Empty Request Body
An empty request body does not mean "apply everything from the template":
{}Since every option defaults to false, no template section has been enabled - this call has no effect on the task. If the integration expects template data to be transferred, the required options must be included explicitly:
{
"statusAndWorkflow": true,
"labels": true,
"flavors": true,
"description": true
}This is the most common source of confusion when migrating template logic from the UI to the API: a request that "just calls the endpoint" without setting any options will silently apply nothing, rather than falling back to the UI's default selection.
Important Notes
Template IDs
Template operations require the ID/GUID of the template that should be used. Do not confuse a templateId with temporary or external identifiers used by other API operations.
Template Behavior Depends on the Endpoint
Template-related endpoints do not necessarily use the same request options or defaults. Always check the API reference of the specific operation before assuming that omitted properties are automatically applied.
In particular, the false-by-default behavior described above applies to:
Apply template to task - PUT /api/integration/task/json/{taskId}/{templateId}
Do not automatically apply the same assumptions to project-template or status-report-template endpoints; check their respective references once available.
FAQ
Does an omitted property use the template value?
No. For the task-template update endpoint, an omitted boolean option remains false. For example, { "priority": true } enables priority but does not automatically enable status, workflow, labels, description, or any other section.
How can I reproduce the default UI selection through the API?
Explicitly enable all template sections that would be selected in the UI (see Apply All Available Template Sections). Calling the endpoint without body parameters does not apply the entire template.
Do I have to apply the complete task template?
No - one advantage of the API is that individual sections can be selected independently, for example:
{
"statusAndWorkflow": true,
"labels": true,
"priority": true
}Does the false default also apply to project templates?
false default also apply to project templates?Not necessarily. Project-template and status-report-template operations can expose different options and defaults. Check the corresponding API reference for the operation you are using once it is documented.
Summary
Templates standardize recurring structures and configuration across projects, tasks, and status reports. Project templates provide reusable project structures, task templates standardize recurring task configuration, and status report templates provide consistent report layouts and content.
When applying a task template through the Integration API, remember the main difference compared with the smenso UI:
The UI selects the available template options by default. The API defaults all task-template options to
false.
Every task-template section that should be applied must therefore explicitly be enabled by setting the corresponding property to true. This explicit behavior allows integrations to control precisely which parts of a task are updated when a template is applied.
Updated 18 days ago
