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:

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.


Available Task Template Options

The API provides the following options when applying a task template.

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.


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.

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?

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.


Did this page help you?