TrialGrid Version 87 - Richer Custom Properties, Veeva Diagnostics and Property Sheets

This is one of our largest releases to date. Version 87 rounds out Custom Properties with a full set of data types, brings a wave of new Veeva diagnostics and Test Case generation improvements, makes Property Sheets far more capable, and adds Timeline tracking, finer-grained permissions, and self-service API tokens. There is a great deal here, so let's work through it theme by theme.

For more information see the release notes for Version 87.

Custom Property Data Types

Custom Properties have grown from a handful of value kinds into a complete typing system. This release adds URI properties (validated as web addresses with a scheme), Color properties (hex codes shown as swatches and edited with a color picker), Numeric properties (with optional minimum and maximum bounds and decimal-place constraints), Date and DateTime properties (native pickers, displayed in your preferred date format and stored as ISO values), and Set properties (multi-value selection from a defined list of allowed values). Short text properties under 100 characters now render as a single-line input rather than a text area, making compact values quicker to read and edit.

Working with custom objects is easier too. A new Search columns filter lets you choose exactly which columns the search box matches against, and the Copy-from dialog gains the same control so you can restrict a search to a single column. For teams building tailored layouts, custom object Field nodes now accept an optional renderer that replaces the default input with a specialised widget - a number spinner for numeric properties, radio buttons for choices, or a transfer list for sets.

Property Sheets

Property Sheets see a major round of improvements. You can now create Property Sheets for Forms, and Veeva URLs come with a default set out of the box. Sheets can be made read-only - either the whole sheet or for specific child object definitions - and a new Exclude Blanks filter option hides rows where a column has no value.

Editing in the spreadsheet view is now much smoother. Choice columns use an in-cell dropdown with type-to-filter instead of a popup dialog, and a single click selects a choice or checkbox cell rather than immediately changing it - the dropdown opens only when you click the arrow, and a checkbox toggles only when you click the box. The newer property types are fully supported in spreadsheets too: Color properties show a swatch with the hex code and edit with a color picker, Set properties edit with a multi-select dropdown, and Date and DateTime properties display in your chosen format with a date/time picker.

Veeva Diagnostics

Version 87 brings a substantial expansion of Veeva diagnostics, most with autofixes and configurable exclusion lists. Several focus on form and item presentation - flagging ItemGroups where Header Visible or Visual Group isn't enabled, Items whose Control Type doesn't suit their codelist size, Forms with mixed radio-button orientations, and codelist groups whose Items use inconsistent control types. Others tighten data definitions: Items with overly long names, Date and Date/Time Items missing 'No Future Date', Items whose Length doesn't match their codelist's maximum choice code length, and data Items that aren't marked Required.

A further set targets clinical correctness. New diagnostics check that measurement Items (height, weight, vitals and the like) have an appropriate Unit Codelist and plausible Length, Decimal and value ranges, and that Unit Codelist conversion formulas match the canonical conversion factors. Others flag objects whose External ID doesn't match their Name, classify lot, kit and accession number Items that should be Text, check for inconsistent Form ordering across Events, and catch Concomitant Medications forms that collect Total Daily Dose alongside Dose and Frequency. We've also refined several existing diagnostics to play nicely with TrialGrid's auto-created local-lab objects, excluding them by default so findings stay focused on real issues.

Veeva Data Model

We've made Veeva builds more navigable and less error-prone. The relationship objects behind EventGroup Events, EventForms, Codelist Entries and Unit Codelist Entries are now displayed as custom object definitions, so their per-relationship properties - such as Visit Method, Dynamic, Choice Label and Conversion - appear directly in lists. More significantly, properties that previously held the free-text name of another Veeva object are now reference properties: Codelist and Unit Codelist on Items, and Event Group, Event, Form, Item Group and Item references across Casebook Variables, Rules, Repeating Event Groups, Review Plans and more. This enables dropdown selection and reference validation in place of typo-prone text, with existing URLs converted automatically by migration. When adding a new Veeva Vault, you can now copy roles, labels, custom objects, custom properties, actions and other settings from an existing Vault.

Veeva Test Case Generation

The Veeva Test Case generator has become considerably more capable and robust. It now handles a much wider range of rule shapes correctly - InWindow rules over event dates, Max/Min wrappers around wildcard references, IsBlank arguments in Add Event predicates, attributes shared across events, and rules that reference previous or next instances of repeating objects via [-1]/[+1] identifiers. It sequences login-block events and data entry into cascade-driven phases so gating data is entered before the events it enables, switches to a Background section with per-scenario subjects when different events need testing, and combines rules that share query text and an action target into a single scenario instead of one per rule. It also submits unsubmitted forms before checking derived values, skips lab forms, generates the right steps for event change reasons and did-not-occur attributes, and clearly surfaces a 'Subject ID must be set' issue when it cannot choose a unique value.

Alongside the generator, there are new and improved Test Case steps: setting visit method, change reason, planned date override and externally-owned on Events; adding a reason to 'did not occur' steps; and a new step to add an empty repeating form to an existing event. The editor now warns about invalid date, datetime and time values, and 'Has value' results show both the User String and the Coded Data for fields that use a data dictionary, matching what users see in Rave.

AI Agents

Several agents have been migrated to our new orchestrator framework - the Custom Function Review, Test Case Creator, Custom Function creator and Test Case search agents - for a more consistent and maintainable foundation. The Field Visibility Advisor (Medidata) and Progressive Display Advisor (Veeva) have also been updated for a more responsive experience. Note that any in-progress conversations with the updated agents will be cleared when this release is deployed; simply start a fresh chat to continue.

Document Templates

Document Templates gain a powerful new capability: an {% ai %}...{% endai %} tag that transforms the enclosed block content using an AI call, making it easy to summarise or rewrite sections of a template at generation time. The URL Document Templates list can now be filtered by scope, format and active state, and a new REST API lets you discover, generate and download document templates for drafts and projects programmatically.

Permissions and API Tokens

Access control gets finer-grained. A new 'Merge Draft' Project Role permission controls who can use the draft merge flow, and a separate 'Assign Users' permission governs whether users can assign people to objects from lists, draft objects and property sheets. Both default to disabled on existing roles so you can grant them deliberately. Users with the new 'Can Use API Tokens' permission can now create, view and revoke their own API tokens from their profile - token values are shown only once at creation, and existing tokens continue to work and are migrated automatically.

Actions

Action preconditions can now reference more of your build's context. Alongside the existing project-property function, you can reference draft properties with d("draft_property_name"), draft labels with draft_has_label("label_name"), and project labels with project_has_label("label_name"), making preconditions far more expressive.

Study Build, Labels and Timelines

A new Amendment Advisor compares two Drafts in a Project and highlights structural, field and edit-check changes that could cause data loss when a Rave Amendment Manager migration runs. The Draft Fields list gains a 'Copy from' button so fields can be copied from another draft, and Labels can now be applied to Fields, with full support in the Draft Fields list, Form editor and Copy Form modal, plus removal conditions that auto-remove a label when a Field's attributes change. For project tracking, Timeline Templates can be created at URL level and added to Projects so you can track progress against milestones.

Standards, Security and More

URLs can now disable the standards compliance approval workflow: compliance is still calculated for drafts linked to a library, but the Request Approval, Approve and Reject UI is hidden where it isn't wanted. TrialGrid can configure a minimum password length above the system default of 9 characters on a per-organization basis, and staff can export customer-authored diagnostics and document templates and re-apply them between URLs. A number of UX touches round things out - list-view buttons consolidated into 'Add' and 'Actions' groups, instant cloning of drafts that have no user assignments, Select All / Select None on the Project Role edit page, and a spreadsheet-style URL Team list. Finally, our validation documentation now links each issue to the release notes for the version in which it was fixed.

This post was auto-generated by a LLM.