Skip to content

Component response values

Form answers are stored under data using component keys rather than labels. The value shape depends on the component type and whether options such as multiple or manual address entry are enabled.

Use the Preview tab’s response-data viewer to verify the exact value produced by a particular form. The examples below describe the supported shapes that calculations, conditions, email templates, response-title templates, and integrations can rely on.

ComponentStored valueExample
textfield, textarea, email, url, phoneNumberstringdata.requesterEmail
number, currencynumberdata.totalAmount
checkboxbooleandata.requiresApproval
radioselected option’s valuedata.priority === "high"
Static selectselected option’s valuedata.department === "finance"
datetimedate or date-time stringdata.requiredBy
timetime stringdata.startTime
signatureimage data URI stringdata.requesterSignature
submissionNumberassigned numberdata.submissionNumber

When multiple: true is supported, the value is normally an array of the component’s single-value shape. For example, a multiple static select stores string[], while a multiple User component stores an array of user objects.

The Tags component stores an array when storeas: "array"; otherwise it stores a delimiter-separated string.

A Select Boxes component stores an object keyed by option value:

{
"equipmentChecks": {
"guardsPresent": true,
"labelsVisible": false
}
}

A Survey component stores one selected scale value for each question value:

{
"serviceRatings": {
"responseTime": "good",
"communication": "excellent"
}
}

Use data.equipmentChecks.guardsPresent and data.serviceRatings.responseTime in executable properties. In Handlebars templates, use the same paths inside braces.

The User component stores the selected directory user object, or an array of objects when multiple: true. Common organisation-user fields include:

{
"id": "directory-object-id",
"displayName": "Jane Smith",
"givenName": "Jane",
"surname": "Smith",
"jobTitle": "Solutions Architect",
"mail": "jane@example.com",
"userPrincipalName": "jane@example.com"
}

Team-member records can contain SharePoint-specific properties such as userLookupId. Only fields retained by selectFields are stored. See User component schema.

An spSelect stores the selected projected source row. With multiple: true, it stores an array of projected rows:

{
"site": {
"SiteName": "Perth Office",
"SiteCode": "PER"
}
}

The available fields are controlled by selectFields. See Data-source component schema.

Address fields depend on the configured provider. The Team Forms Google provider commonly stores fields such as formatted_address, place_id, address_components, and geometry.location:

{
"deliveryAddress": {
"formatted_address": "1 Example Street, Perth WA 6000, Australia",
"place_id": "provider-place-id",
"geometry": {
"location": {
"lat": -31.9523,
"lng": 115.8613
}
}
}
}

When enableManualMode: true, the stored value is wrapped as { "mode": "autocomplete" | "manual", "address": { ... } }. Read the address through data.deliveryAddress.address in that mode.

{
"workLocation": {
"latitude": -31.9523,
"longitude": 115.8613,
"zoom": 15,
"mapTypeId": "roadmap"
},
"assetBarcode": {
"value": "ASSET-001",
"format": "qr_code"
}
}

A File component stores an array of file metadata objects, including when it is configured for one file. Available metadata can include id, storage, name, originalName, size, type, url, and thumbnail.

{
"attachments": [
{
"id": "stored-file-id",
"storage": "indexeddb",
"originalName": "receipt.pdf",
"size": 50878,
"type": "application/pdf"
}
]
}

A Sketch Pad stores one object describing the generated image and its edits, with fields such as id, originalName, url, thumbnail, and edits.

ComponentStored value
containerObject containing its child values.
datagrid, editgridArray containing one object per row.
datamapObject whose user-defined keys map to the configured value-component shape.
approvalObject containing approval child fields plus an approval status object.
panel, fieldset, well, tabs, columns, tableLayout only; child values remain at the surrounding data level.

For example, a field named quantity inside a Data Grid named lineItems is stored at data.lineItems[0].quantity. A field named email inside a Container named requester is stored at data.requester.email.

See Nested and repeating component schema for complete schema, calculation, and Handlebars examples.

Fields inside an Approval component are nested under its key. Team Forms also provides an approval object containing values such as status, timestamp, and the user responsible for the latest action:

{
"managerApproval": {
"comments": "Approved within budget",
"approval": {
"status": "approved",
"timestamp": "2026-08-11T08:00:00.000Z",
"lastActionBy": {
"id": "directory-object-id",
"displayName": "Alex Manager",
"mail": "alex.manager@example.com"
}
}
}
}

See Approval component schema for lifecycle and configuration details.