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

They can be applied manually in the smenso UI or programmatically through the Integration API - see Creating an Object from a Template and Applying a Project Template to an Existing Project below.

For detailed information about creating and updating projects with templates, see the Projects guide.


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 Creating an Object from a Template and Applying a Task Template to an Existing Task below.

📘

Observers from project roles

If a task template has a project role assigned as an observer, the project role itself is added as the observer on the created or updated task - not a snapshot of the individual people currently assigned to it. This means the resulting observer assignment stays in sync automatically if the project role's membership changes later. This applies both to tasks created from a template and to tasks updated via the template-apply endpoint, regardless of the observers option. Project roles are an Enterprise feature. There is currently no dedicated API for managing project roles themselves, and none is planned in the near term - project roles can only be referenced here as observers on a task template, the same way they can be assigned as observers in the smenso UI.

📘

"Observer" vs. "watcher"

The API field is named observers, matching the smenso UI's German term ("Beobachter"). The English Help Center articles use "watcher" for the same concept (e.g. the 🔔 icon's "Add watcher" action). Both terms refer to the identical feature - this article uses "observer" throughout to match the actual API field name.


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
📘

API support is currently limited to creating new reports

Through the Integration API, status report templates can currently only be used to create a new status report - see Create Status Report from a Template below. There is currently no API endpoint to apply a template to an already existing status report draft; this is only possible through the smenso UI.

⚠️

Applying a template always overwrites report content

Unlike task and project templates, status report templates do not offer selectable sections. Applying a status report template in the smenso UI - whether by creating a new report from it or by applying it to an existing draft - always overwrites the Description and Next steps fields with the template's content. There is no overwriteValues-style option for status report templates. A template can only be applied to a report that is still a draft; it cannot be applied to an already published report.


Creating an Object from a Template

The Integration API can create a new task, status report, or project directly from an existing template. This corresponds to the "create new [object] from a template" flow in the smenso UI.

⚠️

Defaults differ per endpoint - do not assume consistency

The three "create from template" endpoints below do not share the same default behavior as each other, and none of them share the same default behavior as the "apply template to an existing task" endpoint documented further down this page. Always check the option defaults of the specific endpoint you are calling. A summary table is provided at the end of this section.

Create Task from a Template

POST /api/integration/task/json/{templateId}
Content-Type: application/json
Authorization: Basic {YOUR_TOKEN}

The complete endpoint reference is available here: Create task from a template

Path Parameters

ParameterTypeRequiredDescription
templateIdstring✅The id of the template to use.

Body Parameters

FieldTypeRequiredDefaultDescription
projectIdstring✅nullId of the project the task should be created in.
titlestring✅nullTitle for the task.
overrideStatusboolean-trueUse the status defined in the template instead of the project's default.
overridePriorityboolean-trueUse the priority defined in the template.
overrideWorkflowboolean-trueUse the workflow defined in the template.
overrideWorkflowStatusboolean-trueUse the workflow status defined in the template.

Unlike the fields on the "apply template to an existing task" endpoint (see below), there are no separate flavors, labels, files, subTasks, participants, or observers options here: creating a task from a template takes over these directly from the template by default, in line with the smenso UI's "create new task from template" behavior, where a new task is populated in full. The four override* fields only let you choose whether specific, potentially project-dependent fields (status, priority, workflow, workflow status) are taken from the template or left at the project's own defaults.

Response

{
  "id": "25f7b780-d7e4-4c99-ad8b-7075f1ef18f8"
}

Create Status Report from a Template

POST /api/integration/statusreport/json/{templateId}
Content-Type: application/json
Authorization: Basic {YOUR_TOKEN}

The complete endpoint reference is available here: Create status report from a template

Path Parameters

ParameterTypeRequiredDescription
templateIdstring✅The id of the template to use.

Body Parameters

FieldTypeRequiredDefaultDescription
projectIdstring✅nullId of the project the status report should be created in.
titlestring✅nullTitle for the status report.
progressManualdouble✅nullManual progress, 0 to 100.

There are no selectable template sections for status reports (see the callout under Status Report Templates above) - the template's Description and Next steps content is always applied.

Response

{
  "id": "08465a20-2d37-472e-bb02-eb7e9836d6c1"
}

Errors: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 500 Internal Server Error


Create Project from a Template

POST /api/integration/project/json/{templateId}
Content-Type: application/json
Authorization: Basic {YOUR_TOKEN}

The complete endpoint reference is available here: Create project from a template

Path Parameters

ParameterTypeRequiredDescription
templateIdstring✅The id of the template to use.

Body Parameters

FieldTypeRequiredDefaultDescription
titlestring✅-Title for the project.
folderstring✅-The project folder.
projectTypestring✅-The project type to use.
isPrivateboolean--Whether the project should be created as private.
startDatedate-time--New start date, if not taken from the template.
statusIdint32--The status id.
codestring | null--The project id (code).
optionsobject--See the options object below.

options object

All fields default to true:

FieldTypeDefaultDescription
startDatebooleantrueUse the start date from the template.
adjustTaskDatesbooleantrueAdjust task dates.
tasksbooleantrueImport tasks.
flavorsbooleantrueImport flavors.
labelsbooleantrueImport labels.
managerbooleantrueImport manager.
tasksWorkflowbooleantrueImport tasks workflow.
tasksTemplatebooleantrueImport tasks template.
folderTasksTemplatebooleantrueImport folder tasks template.
viewSettingsbooleantrueImport view settings.
budgetbooleantrueImport budget.
locationbooleantrueImport location.
descriptionbooleantrueImport description.
hourlyRatebooleantrueImport hourly rate.
goalbooleantrueImport goal.
benefitbooleantrueImport benefit.
observersbooleantrueImport observers.
permissionsbooleantrueImport permissions.
blockTimeRecordingbooleantrueImport block time recording.
markedColumnsbooleantrueImport marked columns.
columnDescriptionsbooleantrueImport column descriptions.
⚠️

This endpoint defaults to including everything (opt-out), unlike the task-update endpoint

Every field in the options object defaults to true. If You omit the options object entirely, the project is created with the full template applied - this is the opposite default behavior of the "apply template to an existing task" endpoint below, where omitted fields default to false. Set individual fields to false to exclude specific sections from an otherwise complete template import.

Response

{
  "id": "4c7c7b38-80bf-4d85-8677-43f7227e299f"
}

Errors: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 500 Internal Server Error


Default Behavior Summary

EndpointDefault for optionsBehavior when a field/option is omitted
Create task from a templatetrueTemplate value is applied (opt-out).
Create status report from a template-No optional sections; content is always applied.
Create project from a templatetrue (in options)Template value is applied (opt-out).
Apply template to an existing projectfalseTemplate value is not applied (opt-in).
Apply template to an existing task (below)falseTemplate value is not applied (opt-in).

Applying a Project Template to an Existing Project

The Integration API can also apply an existing project template to an already existing project. Unlike creating a new project from a template, this only updates the project's master data - tasks and other structures from the project template are not applied. This matches the smenso UI behavior for applying a project template to an existing project.

Endpoint

PUT /api/integration/project/json/{templateId}
Content-Type: application/json
Authorization: Basic {YOUR_TOKEN}

The complete endpoint reference, including all request and response fields, is available here:

Update master data of a project

📘

projectId is a body parameter, not a path parameter

Unlike the task-update endpoint below (PUT /api/integration/task/json/{taskId}/{templateId}), this endpoint does not take the target project's id as a path parameter. Instead, only templateId is part of the path, and the target project is identified via the required projectId field in the request body.

Path Parameters

ParameterTypeRequiredDescription
templateIdstring✅The id of the template to use.

Body Parameters

FieldTypeRequiredDefaultDescription
projectIdstring✅-The id of the project.
overwriteValuesboolean-falseOverwrite values.
startDateboolean-falseImport start date.
endDateboolean-falseImport end date.
flavorsboolean-falseImport flavors.
flavorGroupsLockStatusboolean-falseImport flavor groups lock status.
labelsboolean-falseImport labels.
managerboolean-falseImport manager.
budgetboolean-falseImport budget.
locationboolean-falseImport location.
descriptionboolean-falseImport description.
goalboolean-falseImport goal.
benefitboolean-falseImport benefit.
iconboolean-falseImport icon.
filesboolean-falseImport files.
⚠️

This endpoint defaults to false, unlike the two "create" endpoints above

Every optional field on this endpoint defaults to false - the same opt-in behavior as the task-update endpoint below, and the opposite of the "create project from a template" and "create task from a template" endpoints, which default their options to true. See Default Behavior Summary below for a full comparison.

There is no option to import tasks, folders, or other project structures through this endpoint - only the master-data-related fields listed above are available, matching the "master data only" scope of applying a project template to an existing project in the smenso UI.

Response: 200 OK on success. Errors: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 500 Internal Server Error


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:

Apply template to task

Path Parameters

ParameterTypeRequiredDescription
taskIdstring✅ID of the existing task to which the template should be applied.
templateIdstring✅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 API

Applying 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 to true.

Behaviorsmenso UIIntegration API
Template options selected by default✅ Yes❌ No
Omitted option is automatically applied✅ Usually selected in the UI❌ No
Explicit selection requiredOnly 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.

📘

This opt-in default also applies to the project-update endpoint

The false-by-default behavior described in this section is not unique to tasks - the "apply template to an existing project" endpoint documented above follows the same opt-in logic. The "create from template" endpoints (task, status report, project), however, do not - see Default Behavior Summary.


Available Task Template Options

The API provides the following options when applying a task template to an existing task via the PUT endpoint above.

FieldTypeDefaultDescription
overwriteValuesbooleanfalseAllows 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.
startDatebooleanfalseInclude the start date from the template.
dueDatebooleanfalseInclude the due date from the template.
statusAndWorkflowbooleanfalseInclude status and workflow configuration.
filesbooleanfalseInclude files from the template.
labelsbooleanfalseInclude labels.
flavorsbooleanfalseInclude flavors.
participantsbooleanfalseInclude participants.
observersbooleanfalseInclude observers.
subTasksbooleanfalseInclude subtasks.
descriptionbooleanfalseInclude the task description.
prioritybooleanfalseInclude priority.
blockTimeRecordingbooleanfalseInclude the setting for blocking time recording.
autoUpdateFieldsbooleanfalseInclude automatic effort / cost update settings.
📘

Explicit selection

Every 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.

📘

Flavor group behavior matches the UI

When flavors and overwriteValues are both set to true, flavor groups that don't exist in the template are removed, and flavors from removed groups are moved into the first remaining group - the same behavior described for the smenso UI's Overwrite values toggle. See the Help Center article on Applying Task Templates for the full explanation and worked examples of this behavior, including what happens to fields that exist in both the task and the (empty) template.


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
}
⚠️

Review overwriteValues before enabling it

Enabling all options also allows existing task information to be overwritten. Only set overwriteValues to true when 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 - see Default Behavior Summary above for a side-by-side comparison of all four template endpoints documented on this page.

In particular, the false-by-default behavior applies to:

Apply template to task - PUT /api/integration/task/json/{taskId}/{templateId}

Update master data of a project - PUT /api/integration/project/json/{templateId}

The two "create from template" endpoints for tasks and projects, plus the status-report-from-template endpoint, each have their own, different default behavior - do not apply the same assumptions to them.


FAQ

Does an omitted property use the template value?

It depends on the endpoint. For the task-update-from-template endpoint (PUT .../task/json/{taskId}/{templateId}) and the project-update-from-template endpoint (PUT .../project/json/{templateId}), an omitted boolean option remains false - it does not use the template value. For example, { "priority": true } on the task endpoint enables priority but does not automatically enable status, workflow, labels, description, or any other section.

For the task-create-from-template and project-create-from-template endpoints (POST), the opposite is true: omitted options default to true and are applied from the template, unless explicitly set to false.

How can I reproduce the default UI selection through the API?

For the task-update endpoint, explicitly enable all template sections that would be selected in the UI (see Apply All Available Template Sections). Calling that endpoint without body parameters does not apply the entire template. For the create-from-template endpoints, omitting the options already reproduces the "select everything" default.

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?

It depends which project-template endpoint You use. The "create project from a template" endpoint defaults every field in its options object to true - see Create Project from a Template above. The "apply template to an existing project" endpoint, however, defaults every option to false, just like the task-update endpoint - see Applying a Project Template to an Existing Project above.

Does the false default also apply to status report templates?

Not applicable - the "create status report from a template" endpoint has no optional sections at all. The template's content is always applied in full.

Can I apply a status report template to an already existing report through the API?

Not currently. The Integration API only supports creating a new status report from a template - see Create Status Report from a Template. Applying a template to an existing draft report is only available through the smenso UI at this time.


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.

Two different flows exist for each object type: creating a new object from a template, and (for tasks only, via the API) applying a template to an already existing object. These flows use different endpoints with different default behaviors:

Creating a task or project from a template defaults included sections to true. Applying a template to an existing task defaults every option to false.

Always check the specific endpoint reference before assuming a consistent default across smenso's template APIs - see the Default Behavior Summary table for a quick comparison.


Did this page help you?