An ExtraCategory
groups extra fields that can be used to collect additional information about various objects within Pluvo — such as groups, learning journeys, course modules, videos or offers. Each category contains one or more ExtraFields
.
ExtraCategories
are not used on their own, but linked to objects. Examples:
The actual values of these fields are stored in, for example, the extraFields
or extraFieldsProfile
field of the relevant object.
Provides an overview of all extra categories with their fields.
query {
extraCategories {
id
title
extraFields {
key
label
type
}
}
}
query {
extraCategory(id: "uuid-here") {
title
extraFields {
label
type
}
}
}
mutation {
createExtraCategory(
category: {
title: "Personal Information"
}
) {
extraCategory {
id
title
}
}
}
Updates the name of an existing category.
mutation {
updateExtraCategory(
id: "uuid-here"
category: {
title: "New title"
}
) {
extraCategory {
id
title
}
}
}
Archives one or more categories so they are no longer visible.
mutation {
archiveExtraCategories(
archive: true
ids: ["uuid-1", "uuid-2"]
) {
response {
succeededIds
failedIds
}
}
}
Each ExtraField
within a category has a type
, which influences validation and display. Available types are:
TEXT
: Free text fieldNUMBER
: Numeric inputDATE
: Date pickerSELECT
: Choice of one value (drop-down)MULTISELECT
: Multiple choices possibleBOOLEAN
: Yes/No or on/offFor SELECT
and MULTISELECT
, a list of allowed options must be specified for the field.
Extra fields are typically shown:
They are dynamically loaded based on the linked categories. The API only shows the structure; how and where they are displayed depends on the frontend.
When an ExtraField
is filled in, the data type of the stored value depends on the field type. Each type of value has its own GraphQL structure. Below you can see what these look like.
For select fields (SELECT
, MULTISELECT
), options are defined as:
type ExtraCategoryChoiceOption {
id: UUID!
ref: String
stringValue: String!
color: Color
}
These options can contain a visual color and have an external ref
.