Learner identity lets a workspace record who took each simulation attempt: a learner identifier (a name, email or ID) and supporting fields you define, such as role or location. It is off until a workspace owner or admin turns it on, and it is available on every plan. While it is off, learner sessions are anonymous.
Before you start
- You need to be an owner or admin of the workspace. In a personal workspace you are the owner. Members see a notice that data and privacy settings are managed by the workspace owner and admins, and in the simulation editor they are told to ask an owner or admin.
- The settings are at Settings → Data & privacy. They apply to the workspace you are currently working in.
- Decide what you want to record. The learner identifier is how devlin.ai recognizes the same learner across attempts. Identity fields are supporting details that describe the learner and never replace the identifier. A simulation can ask for either one, or both.
- Learners type identity fields on a simulation's start screen, so a simulation that asks for them needs its start screen turned on. See the start screen.
Steps
Open Settings → Data & privacy. In the Learner identity card, select Turn on.
Under Where it applies, choose the scope:
- Every simulation: every simulation in the workspace can record a learner identifier from its embed URL and ask for identity on its start screen. A workspace that turns learner identity on for the first time starts on this option.
- Only simulations where it is turned on: each simulation opts in with Collect learner identity in its Publish stage. Switching to this option stops collection for simulations that have not opted in.
The scope saves as soon as you select it.
In an organization workspace, set Learner identity visibility to Owners and admins only or All workspace members, then select Save visibility setting. The section "Who can see collected identity" below explains the two options.
In the Learner identity fields card, select Add field for each supporting detail you want to offer to simulations. For each field:
- Fill in Label (up to 60 characters). This is what learners see above the input.
- Set Type to Text for a free-text answer or Select from a list for a dropdown. For a list, enter the choices in Options (one per line).
- Check Required if learners must fill the field in before they can start.
- Use the arrow buttons to reorder fields, and Remove to delete one.
Set These fields are written in to the language you wrote the labels and options in.
Select Save identity fields.
In each simulation that should ask learners who they are, open the start screen settings and choose what to ask for under Learner identity on this screen. If you chose Only simulations where it is turned on, first check Collect learner identity in that simulation's Publish stage.
Result
Simulations that collect identity store the identifier and the field values with each attempt. The values appear in results and exports for the people allowed to see them.
Where collection applies
A simulation records identity only when learner identity is on for the workspace and either the scope is Every simulation or the simulation's own Collect learner identity setting is on. Every place that records or asks for identity uses this same rule, in text and in voice.
- With Every simulation, the Collect learner identity card is not shown in a simulation's Publish stage, because the simulation's own setting is not consulted.
- With Only simulations where it is turned on, each simulation has Collect learner identity in its Publish stage. It is off on a new simulation. A duplicated simulation starts with it off, whatever the original had.
- While learner identity is off for the workspace, Collect learner identity is disabled and shows a notice. Owners and admins get a link to the settings page; members are told to ask an owner or admin.
Turning learner identity off asks you to confirm in a Turn off learner identity? dialog. Simulations stop recording identifiers and identity fields immediately. Values already stored are kept, and so is each simulation's identity setup, so turning it back on restores collection without reconfiguring each simulation.
In an organization workspace, turning learner identity on or off and changing the scope are recorded in the organization's audit log.
The learner identifier
There are two ways to supply the identifier, and they can be combined:
- From the embed URL: add
&learner=with a URL-encoded value to the simulation's embed URL, for example&learner=Jane%20Doe, filled in from a form field or an LMS template variable. The learner is not asked anything. Values longer than 128 characters are cut to that length. - Typed on the start screen: turn on Ask for the learner identifier in the simulation's start screen settings. The learner types up to 50 characters, and cannot start until something is entered. If the embed URL also carries an identifier, the input starts filled in with it. See the start screen for the prompt text and the other start screen settings.
The identifier is stored when the attempt's conversation is created and does not change afterward. If a simulation does not collect identity, a learner value in its URL is ignored without an error, so the embed keeps working.
Attempt limits can be counted per learner using the identifier. See criteria breakdown and attempt limits.
Identity fields
A workspace can define up to 5 identity fields. Add field is disabled once you have that many. The fields are defined once for the workspace, and each simulation picks which of them its start screen shows under Supporting fields.
- Text fields take a free-text answer of up to 100 characters.
- Select from a list fields need at least one option and can have up to 50. Each option can be up to 80 characters, and options in one field must be unique, ignoring capitalization. Only the listed options are accepted as answers.
- A Required field keeps the start button disabled until the learner fills it in. An optional field can be left blank.
- Required applies on the start screen only. A session that begins without the start screen is never refused for a missing value; the attempt is recorded without it.
- Each field gets a permanent key made from its label when it is first saved, shown next to the field as
key:. Renaming the label later keeps the key, so values already recorded stay attached to the field. - Renaming a list option does not change values already recorded.
- The Learner identity fields card is shown only while learner identity is on for the workspace.
After a save, the card shows "Saved. Simulations pick which of these fields their start screen shows."
Identity fields are for simulations. Coaches do not have identity controls on their start screen.
Translations of field labels
Field labels and list options are written once, in the language set under These fields are written in (English unless you change it). When simulations in the workspace run in other languages, the Translations section of the Learner identity fields card lists each of those languages with a status:
- Translated: the translation matches the current fields.
- Needs update: the labels or options changed after the translation was made, or These fields are written in was changed to a different language.
- Not translated: there is no translation for this language yet.
The list covers every language the workspace's simulations use, either as a simulation's main language or as an added language, other than the one the fields are written in.
- Saving the fields translates any language that is missing or out of date automatically. When a language needs work, a button at the top of the section does the same on demand, and each row has its own Translate or Retranslate action.
- Translating uses credits for each language translated. If the workspace does not have enough credits, the section says which languages could not be translated.
- Each translated language shows a preview of its labels and options next to the originals.
- Learners who open a simulation in one of these languages see the translated labels and options. What is recorded is always the option as you wrote it, so filters and exports match across languages.
- A translation that needs an update is still used wherever it can be. Labels or options it does not cover are shown as you wrote them.
What the learner sees
On a simulation that asks for identity, the start screen shows the identifier input (when turned on) and then the selected identity fields in the order they are listed in the workspace settings, above the start button. Text fields are text inputs and list fields are dropdowns. The start button stays disabled until the identifier and every required field are filled in.
If learner identity is turned off for the workspace, or collection no longer applies to the simulation, learners are not asked for anything, even if the simulation's start screen was set up to ask.
Who can see collected identity
Owners and admins always see learner identifiers and identity field values. In an organization workspace, Learner identity visibility decides whether other members do:
- Owners and admins only is the starting setting. Other members see the same results without identifiers or field values.
- All workspace members shows identifiers and field values to every member.
The card appears only in organization workspaces and only while learner identity is on. The rule is applied on the server, including in exports. For a member who is not allowed to see identity:
- The attempts list shows a shortened anonymous session ID in place of the identifier, and no identity field values.
- The attempts table shows no identity field columns and no identity field filters.
- CSV exports of attempts leave the identifier empty and leave out the identity field columns.
- The Learners button is not shown on the Results page, and opening the Learners page directly shows Learner identity is limited.
Where the values appear
- A simulation's attempts table: the Learner / Session column shows the identifier when there is one, linked to that learner's history, and each identity field has its own column. Each list-type field also adds a filter dropdown to the simulation's metrics. Text fields cannot be filtered.
- The Learners page: open it with Learners on the Results page. It lists learners by identifier with their latest identity field values, and shows every attempt for the learner you select.
- CSV exports: attempt exports include a
learner_identifiercolumn followed by one column per identity field, headed by the field's label.
See criteria breakdown and attempt limits for more on attempt results. For retention and the workspace export, see data privacy and retention.
AI tools over MCP
An AI tool connected through the MCP server can change workspace settings with update_workspace_settings, when the person who connected it is an owner or admin of the workspace. For a member, the call is refused. The settings it can change are:
- Learner identity on or off, the scope, the full list of identity fields, the language the fields are written in, and who can see learner identifiers. The fields and their language can only be set while learner identity is on, or in the same change that turns it on.
- Whether the workspace disallows scored evaluations, so that every evaluation gives feedback only.
- The default daily credit cap for simulations that have no cap of their own.
- Which saved color scheme is the workspace default.
Because these settings affect every simulation and learner in the workspace, they are always treated as a live change. The tool has to confirm the change explicitly, and is told to describe exactly what will change first. If the workspace requires in-app approval for live changes, the change is not applied: it is recorded as a change request for an owner or admin to approve in the app. A tool can also ask for a preview that lists what would change without changing anything.
A tool cannot set a data retention window, and it has no tool for running the field translations. Adding a simulation language through a tool does translate the field labels for that language when learner identity is on. After a tool changes the identity fields, the translations show Needs update until someone translates them in the app. A simulation's own Collect learner identity setting is also not available to AI tools.