Articles tagged with 'ux'

TrialGrid Version 89 - Broader Veeva Support and Improved AI Agents

Version 89 is a large release with significantly expanded support for Veeva studies. Our AI Agents have moved from answering one question at a time to authoring at scale and the machinery that runs Automated tests has become more resilient to interruption.

For more information see the release notes for Version 89.

Veeva: More of the Rule Language

The Veeva Test Case Advisor works by reading a rule and generating the test cases that exercise it, and its reach grows with the amount of Veeva's expression language it covers. Each release widens that coverage; this one widens it considerably.

The Advisor now understands the system attributes that real rules lean on: item-level values and units, the value an item held at the previous submit, a form's submit counter, change reason and status, and the Casebook, Study Country and Site attributes that describe the context a rule is running in. Site attributes were a particularly interesting problem, because a site is not known until the test is actually run - so a derivation that builds a value from the site name now embeds the real run-time value, looked up from Veeva and substituted automatically, while a rule that compares against a fixed site generates a scenario telling you which site the test must run on.

The Advisor also now handles rules that reach across linked forms - both counting links and reading data on the linked form - which it can do because the test language itself learned to link and unlink forms. That is the pattern for this release: the generator got smarter because the steps underneath it got richer.

A Fuller Vocabulary for Veeva Tests

A generated test case is built from the steps available to it, so the vocabulary of steps matters as much as the generator. Veeva tests can now add an Event Group to a subject, link and unlink forms, mark a form as intentionally left blank, and re-open a submitted form for edit - including re-opening automatically when a submitted form needs to be marked blank. These are everyday operations of running a Veeva study, and each one added is another part of the study your tests can speak to directly.

The editor around those steps has grown alongside them. Repeating event groups, forms and item groups each have a repeat input with validation of sequence numbers. The "has value" helpers suggest a field's codelist and dictionary values, in Rave as well as Veeva. Date fields keep what you type as you type it, so what you enter is what gets validated against the study's date format. And the editor now warns you when a step enters data into an item that is hidden by default, naming the item and value that would make it visible - so you can spot that at authoring time rather than at run time.

Agents That Author, and Agents That Tell You Where They Stop

Our Agents' work so far has been conversational: ask for an edit check, get an edit check. This release takes two steps beyond that.

The first is scale. The new bulk Edit Check Creator agent builds checks from specifications across a whole draft - it can fill in existing empty checks from the specification attached to them, or create new checks from custom specification objects. Every specification is classified by outcome - built with high confidence, built but needs review, needs a custom function, or failed - and those outcomes drive configurable action hooks, so the result of a bulk run feeds straight into your workflow. Results appear in the chat as they are built, so you can watch it work.

The second is judgment. Some specifications describe behavior that Rave's edit check steps do not express - regular expressions, extracting a component of a date, aggregating across records, conditions on form status. The Edit Check and Test Case agents now recognize those cases and tell you, so the boundary between what the agent can build and what needs a human is drawn explicitly, up front.

The same instinct shows up after the work is done. Having generated a check, the agent verifies that the logic it produced matches the specification it was given, and tells you if it does not. And when a specification names a custom function as handling the behavior, the agents build the check that calls it - noting if that function is not in the draft yet.

Runs That Look After Themselves

A test run depends on more than the test: the automated browser, the worker it runs on, and the environment around both. Those are the moving parts you have least control over, and the ones most exposed to interruption from outside. This release extends the runner's fault tolerance to cover them - if Chrome stops mid-run the runner restarts it and the run carries on, and a run whose browser is lost entirely is paused and picked up automatically on another worker. That is another class of interruption a run absorbs on its own, without anyone needing to watch for it.

Test running is smoother in other ways too. On the new Rave EDC, a step against a Folder that does not exist in the subject now names the Folder as the missing piece. Running a test set directly carries over the screenshot and continue-on-failure settings you chose last time in the wizard. Test Cases can now assert that an email is not received - matching on subject alone, subject with exact body, or subject with partial body.

In Summary

Veeva is where most of this release went: the Test Case Advisor now reads the bulk of the rule language you write day to day, and the test steps underneath it reach more of the operations a Veeva study performs. The test runner tolerates more of what goes on around it. And our Agents are being built to be clear about the boundaries of their work, because an agent that is open about where its work ends is one you can trust with the work it does.

This post was auto-generated by a LLM.

TrialGrid Version 88 - Project Roles and Rave EDC 2026.2.0 Support

Version 88 is a more focused release than usual, and deliberately so. We brought this release forward to the 21st of June to coincide with the rollout of Medidata's new Rave EDC release, 2026.2.0. That shortened timeframe, combined with a substantial body of behind-the-scenes work to update our automated testing framework for the EDC changes, means there are fewer headline features this time - but the ones that are here matter. Chief among them is an important change to how project access is managed: the Project Owner concept has been replaced by the more flexible Project Roles.

For more information see the release notes for Version 88.

Rave EDC 2026.2.0 Support

Medidata's Rave EDC 2026.2.0 release brings a range of changes, and much of our work this cycle went into making sure TrialGrid's automated testing framework runs cleanly against it. Automated Tests now fully support Rave EDC 2026.2.0, so your test execution stays in step with the latest EDC release from day one of its rollout - which is exactly why we aligned this release with Medidata's.

Project Roles Replace Project Owner

The single Project Owner has been removed in favor of managing users by Project Role. When creating a project you can now optionally assign a user to a Project Role directly from the Add Project page - the creator can assign the role to themselves or to any other URL user, without needing a separate "Manage Users" permission on the URL. Once created, any user with a Project Role that grants the "Assign Users" permission in that Project can add and remove members from the Project Team page, replacing the old shortcut that let owners manage their team without an explicit URL-level permission.

This is a migration as well as a feature: all existing Project Owner users have been moved to a Project Owner Role within their project, so nothing is lost in the transition. Because this is a significant change for some users, we have a dedicated post that walks through what it means for your projects. You can read it here: Retiring the Project Owner Role.

More Ways to Generate Test Cases

The Test Case generator has gained several new options that make it easier to broaden coverage without hand-writing extra scenarios. You can now repeat all scenarios across a range of folders, repeat them for record positions 1 and 2, add scenarios that specifically test blank values, and add scenarios that verify queries are closed after being opened. Together these let you exercise more of a study's behaviour - repeating data, log records, missing data and query lifecycle - from a single generation run.

Filtering and Custom Property Values

Object lists are easier to work through by assignment. You can now filter a list to show only Unassigned objects, and a new "Assigned to" dropdown lets you narrow the list to one or more specific users or roles - handy for seeing exactly what is on your plate or someone else's. And on a text Custom Property's value management page, you can now delete a value, which clears it on every record that uses it.

This post was auto-generated by a LLM.

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.