Skip to Content
Fields

Fields

Fields are the specific values within a parameter. While parameters define categories like “Temperament” or “Class”, fields define the individual options within those categories — “Confused”, “Happy”, “CS-180”, and so on.

Fields list showing field entries with name, value, and parent parameter

What is a Field?

A field is a single value that belongs to a parameter. Fields are the building blocks that get attached to documents and scenarios, letting you tag simulation content with precise characteristics.

University example: The “Temperament” parameter has four fields:

FieldDescription
ConfusedThe AI student character is uncertain, asks clarifying questions, and struggles to follow along
HappyThe AI student character is positive, engaged, and receptive to instruction
PassiveThe AI student character is quiet, requires prompting, and gives minimal responses
AggressiveThe AI student character is confrontational, challenges authority, and pushes back

Other examples include “CS-180” and “CS-251” as fields under the “Class” parameter, or “Almost Empty (1)” through “Hectic (10)” as fields under the “Crowdedness” parameter.

How It Connects: The 5-Step Workflow

Fields contribute to step 2 of the Glow workflow through their role in organizing documents:

  1. Create Personas — Define AI student characters with temperaments and behaviors.
  2. Assign to Scenarios — Attach personas and documents to scenarios. Documents are tagged with fields to indicate their specific characteristics.
  3. Add to Simulations — Group scenarios into simulations.
  4. Add to Cohorts — Assign profiles and simulations to a cohort.
  5. Run Attempts — Learners launch simulations; the AI uses field-tagged content during the conversation.

Fields connect to parameters (each field belongs to a parameter) and to documents (documents are tagged with fields for categorization and filtering).


Create a field

Via the CLI

Calls below use $GLOW_INSTANCE_URL + $GLOW_TOKEN — see Authentication to export them once.

glow fields create --body '{ "fields": [ { "name": "Confused", "description": "The AI student character is uncertain and struggles to follow along" } ] }'

Via the API

All endpoints use POST and require an Authorization: Bearer header.

curl -X POST $GLOW_INSTANCE_URL/field/create \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "fields": [ { "name": "CS-180", "description": "Introduction to Computer Science course field" } ] }'

Conditional parameters and multiple descriptions

Field detail showing name, description, value, and linked parameter

Conditional Parameters

Fields can have conditional parameters. This means a field can specify that when it is selected, certain additional parameters become relevant. This enables dynamic scenario configuration where selecting one field value unlocks further options.

Example: Selecting the “CS-180” field under the “Class” parameter might conditionally require the “Location” parameter, since CS-180 has specific classroom and lab locations.

The API exposes this through conditional_parameter_ids on the field draft, and the get endpoint returns a conditional_parameters section.

Descriptions

Fields support multiple descriptions. This is useful when a field needs different levels of detail for different contexts — a short label for list views and a longer description for the AI to use during simulation.

The get endpoint accepts a descriptions_search parameter, letting you search through a field’s descriptions when it has many.


Drafts

Fields support the draft workflow. Changes are saved as a draft before being published, with optimistic concurrency via expected_version.

# Save a field draft glow fields draft --body '{ "name": "Happy", "description": "The AI student character is positive, engaged, and receptive to instruction" }'

Via the API, use PATCH /field/draft with fields like input_draft_id, expected_version, name, description, flag_id, department_ids, and conditional_parameter_ids.


Fields support rich search and filtering:

  • Parameter — Find fields belonging to specific parameters (parameter_ids, parameter_search)
  • Persona — Find fields used by specific personas (persona_ids, persona_search)
  • Department — Scope to a department (filter_department_ids, department_search)
# Search fields by parameter curl -X POST $GLOW_INSTANCE_URL/field/search \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "parameter_search": "Temperament", "page_size": 20 }'

Bulk operations

Bulk delete and update follow the canonical all-matching shape — pass either explicit IDs, or all: true with flat filter fields + optional excluded_ids + a patch for updates.

# Delete every field under a retired parameter, except a manual keeplist glow fields delete --body '{ "all": true, "parameter_ids": ["retired-parameter-uuid"], "excluded_ids": ["field-keep-canonical"] }' # Bulk update via patch glow fields update --body '{ "all": true, "filter_department_ids": ["dept-archive"], "patch": { "archived": true } }'

See the Personas guide for the canonical write-up of this pattern.

Common Operations

TaskCLIAPI Endpoint
List all fieldsglow fields listPOST /field/search
Get a fieldglow fields get --body '{...}'POST /field/get
Create fieldsglow fields create --body '{...}'POST /field/create
Update fieldsglow fields update --body '{...}'POST /field/update
Duplicate a fieldPOST /field/duplicate
Delete fieldsglow fields delete --body '{...}'POST /field/delete
Bulk delete (filter)glow fields delete --body '{"all": true, "filter_…": "…"}'POST /field/delete
Export to CSVglow fields exportPOST /field/export
Save a draftglow fields draft --body '{...}'PATCH /field/draft
List draftsPOST /field/drafts
Last updated on