Skip to main content
Workspace settings allow users to configure your app at the workspace level. Settings are displayed in the app’s details page and are automatically saved when users make changes.
Only workspace admins can edit workspace settings. However, all workspace members can view the settings.
Settings live in src/app/settings/ and consist of two files:

Example

First, define your settings schema:
src/app/settings/schema.ts
Then define the settings page. Call Settings.useForm with the schema to get form components pre-typed against it:
src/app/settings/page.tsx

Reading and writing settings

Every setting value is null until it has been set. Beyond the settings page itself, your app can access settings anywhere:

Type safety

The schema provides type safety between your settings definitions and form components. For example:
  • TextInput, AttioUserCombobox, and Combobox can only reference fields defined as Settings.Schema.string()
  • NumberInput can only reference fields defined as Settings.Schema.number()
  • Toggle and Checkbox can only reference fields defined as Settings.Schema.boolean()
TypeScript will show an error if you try to use a component with a mismatched field type.

Migrating from the legacy settings API

Apps created before the folder-based layout define settings with an app.settings.ts schema and a Page registered in app.ts. That API is deprecated. Settings cannot be defined both ways at once (doing so is a build error), so migrate settings in one step, either with attio migrate folder-structure or by hand.