Data Dictionaries

Define custom fields and dynamic data schemas across engagements without database changes. Servantium auto-discovers types and labels for any new property you capture.

Note

For a high-level comparison of how templates and data schemas differ, see the Templates vs. Data Dictionaries overview.

Quickstart

Refine your organization’s custom field definitions in Settings > Data Dictionaries, or add custom properties inline directly on object forms or inside the Notes & Properties popout.

In-Depth

Servantium allows you to capture any piece of data without needing to change the underlying database schema. This is made possible by the Data Dictionary system.

Schema Validation Rules

To keep your organization’s data perfectly normalized, the system enforces strict validation rules on all custom properties whether you create them manually or they are generated by AI. The backend will automatically reject a custom field if it:

  • Duplicates a system field: You cannot create a custom property that matches a built-in, out-of-the-box field (e.g., adding status or startDate).
  • Duplicates parent context: You cannot add a property to a child record that already exists on its parent (e.g., adding an account field to a Quote, because the parent Engagement already manages the Account link).
  • Duplicates a subcollection: You cannot add an aggregate property to a parent record if a subcollection already handles it (e.g., adding a quote_total field to an Engagement, because the nested Quotes subcollection natively manages its own totals).
Caution

Do not use reserved system terms (like id, ref, org, or owner) for your custom property labels. The system strictly reserves these underlying keys for data routing and security validation.

Inline Custom Properties

You don’t have to navigate to Settings to extend your data model. Users can add and remove custom properties on the fly directly from the form of any supported object (like an Account, Contact, Organization, Engagement, Quote Line Item, Project Plan, Generated Document, or Snippet) or via the Properties tab inside the right-hand notes popout.

If no custom properties are defined yet for an object, the dynamic properties section displays helpful guidance text to help you get started.

  1. Scroll to the bottom of the object’s form (or expand a quote line item, or switch to the Properties tab in a notes popout) and locate the dynamic properties section.
  2. Click the Add Property (plus) icon inside the field input.
  3. In the dialog, enter a Property Label (e.g., “Technical Debt Score”).
  4. Select the Property Type (Text, Number, Date, Boolean, or List).
  5. Optionally check Required for all documents to enforce this field globally.
  6. Click Add.

If you created a List property, you can configure sub-columns (Text, Number, Date, or Boolean) to define its structure. On the record’s form, this property will render as an interactive, Excel-like spreadsheet grid where users can add, duplicate, and remove rows of data. You can also dynamically add, rename, and delete columns, adjust column text alignment (left, center, or right), copy table data as Excel-compatible TSV to your clipboard, or paste spreadsheet tables directly into the grid.

If a centralized Formula property exists on the record, it renders inline as a read-only input with a primary-colored calculate icon, displaying the calculated value and formula helper text. Because formulas require structured dependencies, they cannot be created via the inline quick-add dialog and must be configured centrally.

If required properties are missing, the Properties tab displays a red warning dot in the header alongside an inline alert banner. Updating custom properties on a quote section inside the popout syncs the quote table immediately.

The system instantly updates the underlying Data Dictionary and adds the field to your current view. If a custom property is no longer needed, you can remove it directly from the form using the delete icon next to the field. You will be prompted to confirm the removal to prevent accidental data loss.

Centralized Management

While you can manage properties inline, administrators can also use the Data Dictionary screen in Settings to review the complete schema across the organization. If a dictionary does not exist for an entity yet, you can create one by clicking the Add (plus) icon or by selecting New Custom Property from the top Global Create Menu. In the dialog, choose a standard target entity (like Accounts or Engagements), select from dynamically discovered collections existing in your schema, or define a custom collection name. Initial selections automatically skip collections that already have a configured dictionary to prevent accidental schema collisions.

From the dictionary workspace, you can:

  • Validate Data: Mark specific fields as “Required.”
  • Dynamic Formulas: Define Python expressions for Formula properties. You can link a Data Specification to your dictionary to pull cross-collection variables into your expressions. The backend automatically detects variables while filtering out string literals, standard math functions, method invocations, and Python keywords to prevent dependency errors. Formulas are evaluated automatically in the background whenever a record is created or updated. The system intelligently sorts inter-formula dependencies, so if one formula relies on another, they evaluate in the correct sequence. To prevent performance impacts, evaluations use in-memory caching and only write to the database when calculated values actually change.
  • Default Value Formulas: Configure Python expressions to calculate default values for non-formula field types (Text, Number, Date, Boolean) and List columns when empty. When opening or creating a record with an unpopulated field, the form temporarily locks the input with a “Calculating default value…” indicator while evaluating the expression asynchronously against record context. Date expressions like NOW(), TODAY(), or date offsets (e.g., TODAY() + 7) evaluate instantly on the client. Once computed, the field unlocks so users can review or override the calculated default. If formula evaluation fails, the field gracefully unlocks for manual entry. In the Data Dictionary editor, default value formula sections feature live variable dependency chip previews.
  • Data Specifications: Link a specification directly from the dictionary creation dialog or the configuration bar. The dropdown intelligently filters available specs to match your dictionary’s target collection.
  • Refine Labels: Update the display names to match internal terminology.
  • Configure Lists: Add, edit, and drag-and-drop to reorder sub-columns for List properties, including default value formulas per column.
  • Control Visibility: Hide fields that are no longer in use.
  • Merge vs. Overwrite: When uploading schemas via AI generators or backend operations, the system supports an overwrite flag to safely merge new fields into the existing dictionary without replacing previously established properties. For List properties, the AI automatically analyzes any attached example documents to extract the exact column names, headers, and data types directly from your source tables to ensure parity with your real-world formats.
Tip

Consistent data dictionaries are the key to powerful reporting. By standardizing your custom fields, you ensure that AI insights and search filters work accurately across all your engagements.

Need more help?

Our support team is available to assist you.

Contact Support