Socotra
ConfigurationConfigurable UI (Beta)

Landing Page and Dashboard

Two files set what users see before they open a quote or policy. userExperiences/config.json sets the page users land on after they log in, plus defaults for select inputs and the quote timezone. plugins/config.json turns on built-in components, such as the dashboard, and sets them up. Both files sit at the top level of the surface folder, beside products/ (see UI-Specific Folders).

Landing Page

userExperiences/config.json sets a default landing page and, optionally, a landing page per role:

{
	"defaultLanding": "operations",
	"landings": [
		{ "role": "Underwriter", "page": "lastAccessedTenantWorkManagement" },
		{ "role": "Agent", "page": "lastAccessedTenantAccounts" }
	]
}
PropertyTypeDescription
defaultLandingstringThe page users land on when no entry in landings matches.
landingsarrayLanding pages per role, as { role, page }. The first entry whose role matches the user wins.

defaultLanding and each landing's page take one of these values:

ValuePage
operationsThe operations home, where the dashboard shows
lastAccessedTenantWorkManagementWork management, for the tenant the user last accessed
lastAccessedTenantAccountsAccounts, for the tenant the user last accessed

A landing's role matches the same way as an access rule's roles: the exact, case-sensitive role name, and a ! prefix matches every user without that role. For example, { "role": "!Underwriter", "page": "operations" } lands everyone who isn't an underwriter on the operations home. See Roles.

Form Controls and Timezone

userExperiences/config.json also holds two app-wide defaults:

{
	"defaultLanding": "operations",
	"controls": { "select": { "placeholder": "select-value" } },
	"timezoneSource": "account"
}
PropertyTypeDescription
controls.select.placeholderstringThe placeholder in an empty select input: empty (blank), select-value ("Select a value"), or select-display-name (the field's display name).
timezoneSourcestringHow the create-quote dialog sets the quote's timezone: account uses the selected account's timezone, or the tenant's default if the account has none; default uses the tenant's default timezone. Defaults to default.

The resolved timezone is used by the date and time pickers and sent with the create-quote request.

Dashboard

plugins/config.json is keyed by where each built-in component appears: dashboard (the task dashboard on the operations home), accounts (account search), and editor.producerSearch (producer search in the editor). { "dashboard": {} } adds the dashboard with its defaults. To change them, set taskTable and recentEntities:

{
	"dashboard": {
		"taskTable": {
			"availableFilters": [
				"taskType",
				"referenceType",
				"dueDate",
				"taskState",
				"labels",
				"assignedTo"
			],
			"taskSubtextTemplate": "${taskNumber} · ${account.accountNumber} · ${account.displayName}"
		},
		"recentEntities": {
			"maxItems": 15
		}
	}
}

Task Table

PropertyTypeDescription
availableFiltersarrayThe filters to show, in display order: taskType, referenceType, dueDate, taskState, labels, and assignedTo. Omit to show all of them; [] hides every filter.
taskSubtextTemplatestringThe text under each task's type, as a ${…} template. Defaults to ${taskNumber}.
  • The dashboard first shows active tasks assigned to the current user. Hiding a filter doesn't clear an active filter or change that default
  • The labels filter appears only when the tenant's data model sets at least one task label in workManagement.labels

taskSubtextTemplate can use these variables:

VariableValue
${taskNumber}The task number, formatted with its # prefix
${account.accountNumber}The account number, formatted with its # prefix
${account.displayName}, ${account.type}, ${account.locator}The task's account
${account.data.<field>}A field from the account's data, when it's included with the task
${inquiry.from}, ${inquiry.referenceLocator}, ${inquiry.tag}The task's inquiry, when it has one

Missing values become empty text, and a separator (·, |, ,, or ;) left at either end of the line is dropped. Templates are plain text, not JavaScript.

Recent Items

PropertyTypeDescription
recentEntities.maxItemsnumberHow many recent quotes and policies the dashboard shows, combined and ordered by most recently accessed. Defaults to 6; values above 21 are capped at 21.

See Also

On this page