PlanSlot
Per-slot wrapper. value is a polymorphic payload (string / int /
list / object depending on the slot), carried as the Mixed scalar so
PHP-native values pass through untouched. Every plan type has a
different per-slot value shape, and modeling each as a union member
would create dozens of types for no read-side benefit. The
strongly-typed surface lives in PHP; GraphQL consumers either dispatch
on the parent plan's __typename or treat the value as opaque.
type PlanSlot {
status: String!
value: Mixed
resolved_by_message_id: ID
resolved_by_run_id: ID
pending_question: ChatQuestionPayload
validation_errors: [PlanValidationError!]
updated_at: String
}
Fields
PlanSlot.status ● String! non-null scalar
PlanSlot.value ● Mixed scalar
PlanSlot.resolved_by_message_id ● ID scalar
PlanSlot.resolved_by_run_id ● ID scalar
PlanSlot.pending_question ● ChatQuestionPayload object
Populated when status == BLOCKED_ON_USER. Reuses the same shape as
ChatQuestionPayload so chat clients can render it with the same
component used for live agent questions — be aware that moving
ChatQuestionPayload means touching this too.
PlanSlot.validation_errors ● [PlanValidationError!] list object
Populated when status == INVALID. Lists the per-slot validation errors that rejected the last attempt to write this slot.
PlanSlot.updated_at ● String scalar
Member Of
ActionsPlan object ● SegmentPlan object ● WorkflowPlan object


