Portal Community

Built-In Types

Quick-Reference Table

Type Key Payload Contains Response Outcome Values Response Data
Approval "approval" context, fields[] approved, rejected, abstained comment?
Confirmation "confirmation" message, confirmLabel, cancelLabel, severity?, thirdOption? confirmed, cancelled, third
Form "form" formId, initialValues? submitted formData: Record<string,any>
Picker "picker" title, options[], selectionMode, minSelections?, maxSelections? selected selectedIds: string[]
Notification "notification" message, severity?, actionUrl?, actionLabel? acknowledged timestamp
Rating "rating" subject, prompt?, allowComment? rated rating: 1-5, comment?
Custom any string any JSON object any string any JSON object

Type Registration

All built-in types are pre-registered in InteractionContainer and validated by ResponseValidationHook. Custom types must be registered explicitly:

// Register a custom interaction type renderer
interactionContainer.registerInteractionRenderer(
  'my-company/peer-review',
  PeerReviewComponent
);

// Server-side: register a custom response validator for the type
builder.Services.AddInteractionResponseValidator<PeerReviewResponseValidator>();
Type Key Convention Built-in type keys are simple strings like "approval". For custom types, use namespaced keys like "my-company/type-name" to avoid collisions with future built-in types.