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

Order Intake Profile Schema

Schema-ID
order_intake_profile
Collection
order_intake_profiles
Permissions
  • Lesenorder_intake_profile_view
  • Anlegenorder_intake_profile_create
  • Ändernorder_intake_profile_edit
  • Löschenorder_intake_profile_delete

Felder

Order Intake Profile Schema

order_intake_profiles4 Permissions

ADR 0285 — tenant-configurable rule set that turns a confirmed weclapp sales order into a native project + positions + tasks + checklists.

namestringerforderlich

Profile name.

1–200 Zeichen
isDefaultbooleanoptional

Exactly one active profile per tenant is the default (used when no party override matches).

Default: false
enabledbooleanoptional

Disabled profiles never run (rollout kill-switch).

Default: true
partyIdstringoptional

Optional customer party this profile is pinned to; null = tenant-wide.

PatternDefault: nullnullable
triggerGateobjectoptional

Explicit confirmation flag that must hold before the automation runs, evaluated against sales_order.weclappCustomAttributes. null = status pre-filter only.

Default: nullnullable
projectDefaultsobjectoptional

Defaults applied to the created project.

Default: {}
titleTemplatestringoptional

Handlebars-subset template for the project title.

max 300 ZeichenDefault: "{{orderNumber}} – {{Infotext}}"
descriptionTemplatestringoptional

Handlebars-subset template for the project (and, by default, task) description.

max 20000 Zeichennullable
deadlineKeystringoptional

weclappCustomAttributes key whose (date) value maps to project.endDate / task.dueDate (date-only, ADR 0285 G3).

max 200 ZeichenDefault: nullnullable
contactKeystringoptional

weclappCustomAttributes key holding the customer contact as a weclapp PARTY ID (ITF: "Verantwortlicher_AuftragKunde"). Resolved to the local party so templates can render `{{party.contactName}}`; the raw attribute value is an opaque id and unusable in text. Unset / unresolvable → `{{party.contactName}}` renders empty.

max 200 ZeichenDefault: nullnullable
orgUnitIdstringoptional

Dispo org unit the created project lands in (ADR 0285, Decision 7). Also the fallback when `orgUnitSource: WECLAPP_ATTRIBUTE` finds no mapping for the order.

PatternDefault: nullnullable
orgUnitSourcestringoptional

Where project/task `orgUnitId` comes from. FIXED = always the `orgUnitId` above. WECLAPP_ATTRIBUTE = read the team from the weclapp custom attribute `orgUnitKey` and translate it via `orgUnitMapping`; an unmapped / missing value falls back to `orgUnitId`, so the automation never lands a project nowhere.

FIXEDWECLAPP_ATTRIBUTE
Default: "FIXED"
orgUnitKeystringoptional

weclappCustomAttributes key carrying the team on the order (e.g. "Team"). Only read when orgUnitSource = WECLAPP_ATTRIBUTE.

max 200 ZeichenDefault: nullnullable
orgUnitMappingobject[]optional

weclapp team value → Codemeta org unit. Matching is case-insensitive on the trimmed value; the first matching entry wins. A mapping table rather than an org-unit name comparison on purpose: a renamed org unit would silently stop matching.

Default: []
valuestringerforderlich

Value as it appears in the weclapp attribute (e.g. "Team2").

1–200 Zeichen
orgUnitIduuiderforderlich

Codemeta org unit this value maps to.

descriptionOnTasksbooleanoptional

Whether to also copy the full description onto every task (matches the ITF n8n default).

Default: true
teamCanManagebooleanoptional

ADR 0421 — set task.teamCanManage on materialised tasks so every member of the assigned dispatch team may fully manage (edit/delete) them, not only work them off. Worker-created tasks have no human creator, so without this only the project manager or an admin can touch them.

Default: false
writeBackobjectoptional

Optional narrow write-back to the weclapp sales order after materialisation. null = no write-back.

Default: nullnullable
rulesobject[]optional

Ordered match → outcome rules. The first matching rule wins per order position.

Default: []
matchobjectoptional

Match criteria against the (already-synced) article + order item. All present criteria must hold (AND). Omitted / null on the fallback rule.

Default: nullnullable
positionobjectoptional

Project-position outcome (ADR 0310) for a matched order item.

Default: {}
billingModelstringoptional

Force the position billing model. null = derive from the order item unit (hour-like → time_and_material, fixed amount → flat_rate).

flat_ratetime_and_materialnull
Default: nullnullable
weclappBillingstringoptional

ADR 0634 — wie die weclapp-Auftragsposition am Ende abgerechnet wird. `position` (Default) = heutiges Verhalten: die Position bleibt im Auftrag stehen (DL-Positionen werden in weclapp bebucht, Nicht-DL-Positionen bleiben als verkaufte Position bestehen). `replace` = die Position ist eine Nicht-DL-Platzhalterposition für Aufwand; beim Abrechnungsabschluss wird sie im weclapp-Auftrag durch die gerenderten Buchungspositionen ERSETZT (Auftrag kurz zurück auf „Auftrag wird erfasst"). Der Wert wird beim Materialisieren auf project_position.weclappBillingMode gestempelt und danach dort gepflegt — ein Re-Import überschreibt ihn nicht.

positionreplace
Default: "position"
limitModestringoptional

Hard budget cap on the lead task (ADR 0139). `derive` = take the cap from the order position (hour-like unit → minutes, fixed amount → amount); `minutes` / `amount` = force that dimension; `no_cap` = explicitly no cap. `none` is DEPRECATED — it used to mean `derive` while the UI labelled it "no cap", which made an explicit "no cap" inexpressible; it is still accepted (and read as `derive`) so profiles written before the rename keep working until the migration `scripts/migrations/2026-07-30-rename-intake-limit-mode.mjs` has run.

deriveminutesamountno_capnone
Default: "derive"
taskobjectoptional

Task outcome for a matched order item.

Default: {}
titleTemplatestringoptional

Handlebars-subset template for the task title.

max 300 ZeichenDefault: "{{orderNumber}} – {{Infotext}}"
checklistTemplateIdstringoptional

checklist_template to attach to the position / lead task (ADR 0217).

PatternDefault: nullnullable
assignobjectoptional

Assignment outcome (ADR 0285, Decision 7 / ADR 0224).

Default: {}
modestringoptional

OPEN = unassigned, dispatcher schedules via "Aufgaben planen". FIXED = pin to userId/orgUnitId. DISPATCH_RULE = set task.dispatchPending + dispatchRuleId.

OPENFIXEDDISPATCH_RULE
Default: "OPEN"
userIdstringoptional
PatternDefault: nullnullable
orgUnitIdstringoptional
PatternDefault: nullnullable
dispatchRuleIdstringoptional
PatternDefault: nullnullable
fallbackRuleobjectoptional

Outcome applied to order positions that match no rule (ITF service/consulting default).

Default: nullnullable

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

Suche