Task Template Schema
Felder
Task Template Schema
Reusable, versioned blueprint for repeating MSP workflows (ADR 0138). Sub-templates are referenced by id, not duplicated. Executions materialize as a tree of `tasks` carrying templateId/templateVersion.
name
slug
Stable URL slug, unique per tenant
description
category
onboardingrolloutwartungincidentcomplianceoffboardingallgemeintags
ownerOrgUnitId
visibility
tenantorg_unitprivatedefaultAssigneeIds
Internal user ids pre-assigned to the task created from this template
defaultOrgUnitId
Team the task created from this template is pinned to
version
status
draftactivedeprecatedreplacedById
changelogNote
versionFamilyId
Groups all versions of the same template. First version sets its own _id as familyId.
estimateMode
fixedpertestimateMinutes
pertOptimistic
pertLikely
pertPessimistic
bufferPercent
checklistTemplateId
inlineChecklist
inlineTasks
title
description
order
optional
estimateMinutes
defaultAssigneeIds
defaultOrgUnitId
blockedByNodeIds
subTemplates
versionPin
order
optional
parallelizable
quantity
1per_assetper_userper_seatdefaultAssigneeRole
inheritproject_ownercustomer_contactunassigneddefaultAssigneeIds
defaultOrgUnitId
blockedByNodeIds
billableByDefault
defaultBillingMode
tmfixedflatserviceArticleId
riskLevel
lowmediumhighrequiresApproval
approverRole
complianceTags
recurringRule
DEPRECATED (ADR 0224): legacy iCal RRULE string. Use `recurrence.rrule`. The worker prefers `recurrence` and falls back to this for old templates.
recurrence
ADR 0224: template-level recurring schedule with fan-out target. Supersedes recurringRule.
rrule
iCal RRULE string.
timezone
IANA TZ; null = tenant TZ.
target
kind
singularper_assetper_customerassetFilter
per_asset: materialize one task per matching asset (linked via assetIds).
customerFilter
per_customer: materialize one task per matching customer.
tags
contractIds
maintenanceWindow
respectContractSla
earliestHour
latestHour
weekdaysOnly
healthTrigger
Optional asset-health/RMM trigger (Octoja) in addition to the calendar rule.
lastMaterializedOccurrence
Server-managed: YYYY-MM-DD of the last materialized occurrence (idempotency cursor).
assignmentRule
ADR 0224: who gets assigned when a task is materialized from this template.
strategy
rotationai_dispatchai_suggestfixedpool
Candidate pool filter. Empty/absent → whole tenant (rotation) or global dispatch (ai_*).
orgUnitIds
teamIds
roleIds
employmentTypes
apprenticesOnly
requiredSkillIds
explicitUserIds
freeTextInstructions
Free-text rule appended to the LLM prompt. Only used by ai_* strategies (never by rotation).
weightsOverride
Per-template override of the tenant dispatch weights (ai_dispatch only).
skillMatch
availability
workload
customerAffinity
slaUrgency
customerTier
geoProximity
languageMatch
rotation
balanceBy
countminutesavoidConsecutive
teachingPair
Pair a junior shadow with the matched senior. XP to junior, karma to both.
enabled
shadowApprenticesOnly
shadowSkillBelowLevel
BEGINNERINTERMEDIATEADVANCEDEXPERTxpToShadow
autoAssignMode
ai_* only: AI_FULL auto-assigns, AI_SUGGEST leaves unassigned with a suggestion.
AI_FULLAI_SUGGESTfixed
assigneeRole
userId
rewards
ADR 0224: karma + skill-XP granted on completion of tasks from this template.
karmaReward
requireVerifiedCompletion
Anti-gaming: only grant rewards when deliverables/approval are satisfied, not on a bare status click.
prerequisiteTemplateIds
Templates that must have a recent successful execution before instantiating this one (Pre-Flight v2 check).
blockedByTemplateIds
ADR 0218: at instantiation into a project, this template’s root task is blocked by existing same-project root tasks of these templates.
driftBaseline
Frozen baseline for drift detection. Set via /drift/apply-baseline or /drift/acknowledge.
executionCount
avgActualMinutesCache
p50ActualMinutesCache
p90ActualMinutesCache
lastExecutedAt
lastStatsComputedAt
Keine Felder passen zum Filter.
Standard-Endpoints
Diese Resource folgt dem generischen CRUD-Vertrag der Plattform. Lesen Sie die Konventionen für Pagination, Idempotenz, Optimistic Locking und Audit. Die wichtigsten Endpoints:
GET /api/v1/task_templates— Liste, paginiert + filterbarGET /api/v1/task_templates/<id>— Einzelne EntityPOST /api/v1/task_templates— AnlegenPATCH /api/v1/task_templates/<id>— Teil-UpdateDELETE /api/v1/task_templates/<id>— Soft-DeleteGET /api/v1/task_templates/<id>/timeline— Audit + Aktivitäten