AlmondTill/G3N API

NewCsCaseInput

input type

Create-input for a CsCase. The tenant is derived SERVER-SIDE; ⚠ the caption IS the case's subject line and is REQUIRED at the boundary (the CPG divergence — an unnamed case is meaningless; omission refuses VALIDATION/INVALID). Refs validate in-tenant + non-doomed; linkedFromCaseId validates CLOSED-only (ruling); assignedTo validates in-tenant + ACTIVE. The optional initialMessage appends in the SAME transaction. The consumer lane is openMyCase — NOT this shape.

Fields

FieldTypeRequiredNotes
captionStringnoOptional: when omitted the per-type default applies — NONE — the CPG divergence: the caption IS the subject line, and an omitted caption refuses VALIDATION/INVALID at the boundary instead of defaulting; when supplied it must be non-blank.
caseTypeString String!yesreturn_request | refund_inquiry | product_issue | complaint | general_inquiry | warranty_claim | shipping_issue | order_change | other — the canned registry validates.
priorityStringnoDefaults 'normal' when omitted.
consumerIdIDnoThe registered Consumer this case is FOR (omit = a guest case). ⚠ IMMUTABLE at birth (ruling) — a consumer-ref’d case mints its write-once CASEBOOK index row in the create transaction.
organizationIdIDnoNo further notes.
orderIdIDnoNo further notes.
appointmentIdIDnoNo further notes.
returnIdIDnoNo further notes.
fulfillmentIdIDnoNo further notes.
paymentIdIDnoNo further notes.
linkedFromCaseIdIDnoThe CLOSED case this one reopens (ruling — a non-closed target refuses CONFLICT/REF_STATE). IMMUTABLE.
assignedToIDnoIn-tenant + ACTIVE User at set.
slaDueAtStringnoISO-8601 instant — manual.
initialMessageCsCaseInitialMessageInputnoOptional opening message — appends in the SAME transaction (the consumer lane REQUIRES its body instead — ruling).

Used by