API · v1 · stabil
CODEMETA OSDeveloper Center
Konsole öffnen
Entity · task_templates

Task Template Schema

Schema-ID
task_template
Collection
task_templates
Permissions
  • Lesentask_template_view
  • Anlegentask_template_create
  • Änderntask_template_edit
  • Löschentask_template_delete

Felder

Task Template Schema

task_templates4 Permissions

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.

namestringerforderlich
1–120 Zeichen
slugstringoptional

Stable URL slug, unique per tenant

1–80 ZeichenPatternnullable
descriptionstringoptional
max 4000 Zeichennullable
categorystringerforderlich
onboardingrolloutwartungincidentcomplianceoffboardingallgemein
tagsstring[]optional
Default: []
ownerOrgUnitIduuidoptional
nullable
visibilitystringerforderlich
tenantorg_unitprivate
defaultAssigneeIdsuuid[]optional

Internal user ids pre-assigned to the task created from this template

Default: []
defaultOrgUnitIduuidoptional

Team the task created from this template is pinned to

nullable
versionstringerforderlich
PatternDefault: "1.0.0"read-only
statusstringerforderlich
draftactivedeprecated
Default: "draft"read-only
replacedByIduuidoptional
read-onlynullable
changelogNotestringoptional
max 500 Zeichennullable
versionFamilyIduuidoptional

Groups all versions of the same template. First version sets its own _id as familyId.

read-onlynullable
estimateModestringerforderlich
fixedpert
Default: "fixed"
estimateMinutesintegeroptional
≥ 0nullable
pertOptimisticintegeroptional
≥ 0nullable
pertLikelyintegeroptional
≥ 0nullable
pertPessimisticintegeroptional
≥ 0nullable
bufferPercentintegeroptional
0 – 200Default: 0
requiredSkillsobject[]optional
Default: []
skillIduuiderforderlich
minLevelstringerforderlich
BEGINNERINTERMEDIATEADVANCEDEXPERT
mandatorybooleanoptional
Default: true
helpfulSkillsobject[]optional
Default: []
skillIduuiderforderlich
minLevelstringerforderlich
BEGINNERINTERMEDIATEADVANCEDEXPERT
checklistTemplateIduuidoptional
nullable
inlineChecklistobject[]optional
Default: []
iduuiderforderlich
textstringerforderlich
1–300 Zeichen
requiredbooleanoptional
Default: false
orderintegeroptional
≥ 0
defaultAssigneeIduuidoptional
nullable
knowledgeRefsobject[]optional
Default: []
typestringerforderlich
kb_articlefileurlvideo
refIdstringerforderlich
max 1000 Zeichen
labelstringerforderlich
max 200 Zeichen
rolestringoptional
guidereferencetraining
Default: "reference"
inlineTasksobject[]optional
Default: []
iduuiderforderlich
titlestringerforderlich
1–200 Zeichen
descriptionstringoptional
max 2000 Zeichennullable
orderintegererforderlich
≥ 0
optionalbooleanoptional
Default: false
estimateMinutesintegeroptional
≥ 0nullable
defaultAssigneeIdsuuid[]optional
Default: []
defaultOrgUnitIduuidoptional
nullable
blockedByNodeIdsuuid[]optional
Default: nullnullable
subTemplatesobject[]optional
Default: []
iduuiderforderlich
templateIduuiderforderlich
versionPinstringoptional
Default: "latest"
orderintegererforderlich
≥ 0
optionalbooleanoptional
Default: false
parallelizablebooleanoptional
Default: false
quantitystringoptional
1per_assetper_userper_seat
Default: "1"
defaultAssigneeRolestringoptional
inheritproject_ownercustomer_contactunassigned
Default: "inherit"
defaultAssigneeIdsuuid[]optional
Default: []
defaultOrgUnitIduuidoptional
nullable
conditionobjectoptional
nullable
fieldstringerforderlich
1–100 Zeichen
opstringerforderlich
eqneqinningtlt
valueanyerforderlich
blockedByNodeIdsuuid[]optional
Default: nullnullable
inputsobject[]optional
Default: []
keystringerforderlich
max 40 ZeichenPattern
labelstringerforderlich
1–100 Zeichen
helperTextstringoptional
max 200 Zeichennullable
typestringerforderlich
stringnumberselectasset_refparty_refdate
optionsstring[]optional
nullable
requiredbooleanoptional
Default: false
defaultanyoptional
deliverablesobject[]optional
Default: []
typestringerforderlich
screenshotdocumentconfigsignoffasset_change
labelstringerforderlich
1–200 Zeichen
requiredbooleanoptional
Default: false
billableByDefaultbooleanoptional
Default: true
defaultBillingModestringoptional
tmfixedflat
Default: "tm"
serviceArticleIduuidoptional
nullable
riskLevelstringoptional
lowmediumhigh
Default: "low"
requiresApprovalbooleanoptional
Default: false
approverRolestringoptional
max 60 Zeichennullable
complianceTagsstring[]optional
Default: []
recurringRulestringoptional

DEPRECATED (ADR 0224): legacy iCal RRULE string. Use `recurrence.rrule`. The worker prefers `recurrence` and falls back to this for old templates.

max 200 Zeichennullable
recurrenceobjectoptional

ADR 0224: template-level recurring schedule with fan-out target. Supersedes recurringRule.

Default: nullnullable
rrulestringerforderlich

iCal RRULE string.

1–300 Zeichen
timezonestringoptional

IANA TZ; null = tenant TZ.

max 64 Zeichennullable
targetobjectoptional
kindstringerforderlich
singularper_assetper_customer
Default: "singular"
assetFilterobjectoptional

per_asset: materialize one task per matching asset (linked via assetIds).

nullable
manufacturersstring[]optional
Default: []
schemaPatternsstring[]optional
Default: []
tagsstring[]optional
Default: []
customerFilterobjectoptional

per_customer: materialize one task per matching customer.

nullable
tagsstring[]optional
Default: []
contractIdsuuid[]optional
Default: []
maintenanceWindowobjectoptional
nullable
respectContractSlabooleanoptional
Default: false
earliestHourintegeroptional
0 – 23nullable
latestHourintegeroptional
0 – 23nullable
weekdaysOnlybooleanoptional
Default: false
healthTriggerobjectoptional

Optional asset-health/RMM trigger (Octoja) in addition to the calendar rule.

nullable
enabledbooleanoptional
Default: false
alertTypestringoptional
max 80 Zeichennullable
assetMetricstringoptional
max 80 Zeichennullable
lastMaterializedOccurrencedateoptional

Server-managed: YYYY-MM-DD of the last materialized occurrence (idempotency cursor).

nullable
assignmentRuleobjectoptional

ADR 0224: who gets assigned when a task is materialized from this template.

Default: nullnullable
strategystringerforderlich
rotationai_dispatchai_suggestfixed
poolobjectoptional

Candidate pool filter. Empty/absent → whole tenant (rotation) or global dispatch (ai_*).

nullable
orgUnitIdsuuid[]optional
Default: []
teamIdsuuid[]optional
Default: []
roleIdsuuid[]optional
Default: []
employmentTypesstring[]optional
Default: []
apprenticesOnlybooleanoptional
Default: false
requiredSkillIdsuuid[]optional
Default: []
explicitUserIdsuuid[]optional
Default: []
freeTextInstructionsstringoptional

Free-text rule appended to the LLM prompt. Only used by ai_* strategies (never by rotation).

max 4000 Zeichennullable
weightsOverrideobjectoptional

Per-template override of the tenant dispatch weights (ai_dispatch only).

nullable
skillMatchnumberoptional
0 – 100
availabilitynumberoptional
0 – 100
workloadnumberoptional
0 – 100
customerAffinitynumberoptional
0 – 100
slaUrgencynumberoptional
0 – 100
customerTiernumberoptional
0 – 100
geoProximitynumberoptional
0 – 100
languageMatchnumberoptional
0 – 100
rotationobjectoptional
nullable
balanceBystringoptional
countminutes
Default: "count"
avoidConsecutivebooleanoptional
Default: true
onUnavailablestringoptional
skipqueue
Default: "skip"
teachingPairobjectoptional

Pair a junior shadow with the matched senior. XP to junior, karma to both.

nullable
enabledbooleanoptional
Default: false
shadowApprenticesOnlybooleanoptional
Default: true
shadowSkillBelowLevelstringoptional
BEGINNERINTERMEDIATEADVANCEDEXPERT
nullable
xpToShadowbooleanoptional
Default: true
autoAssignModestringoptional

ai_* only: AI_FULL auto-assigns, AI_SUGGEST leaves unassigned with a suggestion.

AI_FULLAI_SUGGEST
nullable
fixedobjectoptional
nullable
assigneeRolestringoptional
max 60 Zeichennullable
userIduuidoptional
nullable
rewardsobjectoptional

ADR 0224: karma + skill-XP granted on completion of tasks from this template.

Default: nullnullable
karmaRewardintegeroptional
0 – 100000Default: 0
xpRewardsobject[]optional

Explicit per-skill XP override. Empty → fall back to the requiredSkills-derived XP.

Default: []
skillIduuiderforderlich
xpintegererforderlich
0 – 10000
requireVerifiedCompletionbooleanoptional

Anti-gaming: only grant rewards when deliverables/approval are satisfied, not on a bare status click.

Default: false
prerequisiteTemplateIdsuuid[]optional

Templates that must have a recent successful execution before instantiating this one (Pre-Flight v2 check).

Default: nullnullable
blockedByTemplateIdsuuid[]optional

ADR 0218: at instantiation into a project, this template’s root task is blocked by existing same-project root tasks of these templates.

Default: nullnullable
driftBaselineobjectoptional

Frozen baseline for drift detection. Set via /drift/apply-baseline or /drift/acknowledge.

Default: nullnullable
mediannumbererforderlich
≥ 0
q25numbererforderlich
≥ 0
q75numbererforderlich
≥ 0
computedAtdatetimeerforderlich
markedKnownAtdatetimeoptional
nullable
executionCountintegeroptional
≥ 0Default: 0read-only
avgActualMinutesCachenumberoptional
≥ 0read-onlynullable
p50ActualMinutesCachenumberoptional
≥ 0read-onlynullable
p90ActualMinutesCachenumberoptional
≥ 0read-onlynullable
lastExecutedAtdatetimeoptional
read-onlynullable
lastStatsComputedAtdatetimeoptional
read-onlynullable

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 + filterbar
  • GET /api/v1/task_templates/<id> — Einzelne Entity
  • POST /api/v1/task_templates — Anlegen
  • PATCH /api/v1/task_templates/<id> — Teil-Update
  • DELETE /api/v1/task_templates/<id> — Soft-Delete
  • GET /api/v1/task_templates/<id>/timeline — Audit + Aktivitäten

Suche