Likert scale field

A matrix of statements rated on the same scale (e.g. Strongly disagree → Strongly agree). Common in surveys.

The Likert field renders multiple statements as rows, each rated on the same scale across columns (e.g. Strongly disagree, Disagree, Neutral, Agree, Strongly agree). Each row is stored as its own value, joined to the parent item via a configured naming scheme.

Common properties

PropertyDescription
label
string
Visible label shown above the matrix.
description
string
Helper text.
required
boolean
default: false
Marks the field required.
readOnly
boolean
default: false
Disables editing.

Type-specific properties

PropertyDescription
likertRows
string[]
default: ['Question one', 'Question two', 'Question three']
Row labels, one statement per question. Each row becomes its own rated value.
likertScale
string[]
default: ['Strongly disagree', 'Disagree', 'Neutral', 'Agree', 'Strongly agree']
Column labels for the shared rating scale, applied to every row. Edited one label per line in the designer.

JavaScript recipes

Read all row answers

// Each row is stored under its own SP internal name; read the whole form snapshot.
const answers = f365.data();
//   answers['Q_SatisfactionRow1'] === 'Agree', etc.

React to a row changing

f365.events.onChange((e) => {
  if (e.fieldKey === 'Q_RecommendRow') {
    f365.ui.showToast(`You rated: ${String(e.newValue)}`, 'info');
  }
});

Require every row before save

f365.events.onBeforeSave(async () => {
  const rows = ['Q_QualityRow', 'Q_ValueRow', 'Q_SupportRow'];
  const missing = rows.filter((key) => !f365.field(key).value);
  if (missing.length > 0) {
    return await f365.ui.showConfirm('Some rows are unrated. Submit anyway?');
  }
  return true;
});

Related articles

  • Rating field

    Star-rating input, typically 1-5 or 1-10 stars. Stored as a number.

  • Choice field

    Single-select from a fixed list of options, rendered as a dropdown, a radio group, or compact pills.