Choose which optional cookies you allow. Essential cookies are always on. Your choice lasts for six months and applies to the Testgrity website and workspace.

Action reference

Back to the guide index

The Action Library groups the most commonly authored steps. The exact input controls shown on the canvas depend on the selected action.

Red action cards and labels indicate a known implementation issue or an execution-mode limitation. Each warning identifies Browser or Background and distinguishes unsupported from known issue. Hover over the library card for details, or read the full warning on an authored or recorded step. Actions remain selectable; warnings do not change how a test executes. An unmarked action has no currently listed issue, but is not a guarantee that it works with every Dynamics control or configuration.

Start

ActionPurpose
Open environmentOpen the active environment URL. Worker-based runners apply the saved session; Browser uses the session in the current browser profile.

Navigation

ActionPurpose
Open appOpen a model-driven app by selecting its metadata GUID or matching its visible app label.
Open areaSelect an area from the app's area switcher.
Open tableOpen a Dataverse table directly using its metadata logical name, or enable Use visible navigation label to click its sitemap label.
Change viewSelect a named saved view from the current table's view selector.
Open recordOpen an existing record by matching visible text.

The older Navigate to grid view action remains executable in saved tests but is hidden from the Action Library because metadata-based Open table already performs the same direct list navigation. Navigate to new form is also retained only for saved-test compatibility; use Open table followed by Click New in new tests so the real user path is exercised.

Form and fields

ActionPurpose
Wait for form readyWait until the D365 form shell finishes loading.
Click tabOpen a form tab such as Summary, Details, or Related.
Set field valueSet one or more form fields.
Clear field valueClear a field on the current form.
Read field valueRead a field value and record it in the report.

Records and grids

ActionPurpose
Wait for grid loadWait until the model-driven grid finishes loading.
Filter grid keywordSearch using the current grid's search box and wait for a grid refresh. Never uses an unrelated global search box.
Filter grid columnApply a plain-text filter to an exact visible column using its inline filter or filter menu's current/default operator. No fallback to keyword search.
Read grid cellReport a loaded cell using a zero-based data-row index and exact column name. A blank cell is valid; missing rows or columns fail. This reads a value, not an equality assertion.
Read grid record countReport the grid's exact total, excluding header rows. Requires a valid ARIA count, exact scoped total counter, or explicit empty state. Unknown or capped totals fail.
Verify grid emptyAssert zero records using a reliable reported count or explicit empty state. A missing grid never passes.
Select record rowSelect a visible grid or subgrid row.
Select grid rowsEnsure the requested loaded rows are selected by zero-based data-row index. Already-selected rows remain selected; other selections are not cleared.
Click subgrid commandRun an exact command within an exactly named subgrid or its own overflow menu. A missing subgrid never triggers the form-wide command.

These grid actions support Background and Browser execution. Browser grid support requires Testgrity Recorder 0.4.3 or later and reloading existing Dynamics tabs. Keyword searches and inline column filters use native Enter, so Browser execution needs the extension's debugger permission.

Use a page with one visible grid, or focus a control inside the intended grid when several are visible. Row indexes exclude headers and follow the grid's exposed indexes; a row that has not been loaded by a virtualized grid cannot be read or selected. Filter/sort deterministically before using indexes. Counts are the current grid's reported totals, not an independent Dataverse database count. Approximate totals such as 5,000+ are deliberately rejected.

Column filtering supports plain text/search inputs and a single-value filter menu with an Apply command. It does not invent a choice, lookup, date, or multi-condition filter when those controls are present. Unsupported layouts fail with an explanation. A successful filter step confirms a submitted operation and observable grid refresh; add a separate verification of the expected result. Read actions only put values in the report and do not compare them with expected values.

Timeline

ActionPurpose
Create Timeline ActivityOpen the Timeline create menu, select the exact Activity type, and wait for its draft form. Fill and save it in subsequent steps.
Create Timeline NoteOpen a Note editor, enter the supplied Note text, submit it, and verify that the new note appears in the Timeline.
Create Timeline PostOpen a Post editor, enter the supplied Post text, submit it, and verify that the new post appears in the Timeline.

All three actions support Browser and Background execution. For Create Timeline Activity, enter the label shown in the Timeline menu, for example Appointment, Email, Phone Call, Task, or a configured custom activity. Available options depend on the app and user permissions, as described in Microsoft's Timeline guide.

The actions only operate inside the Timeline and its associated or newly opened menu. They do not fall back to a form-wide New button or a similarly named item elsewhere. Multiple visible Timelines require focusing the intended one first. Missing, disabled or ambiguous controls, an unavailable type, or an editor that does not open causes an explicit failure. Browser execution does not automatically retry after opening starts, avoiding duplicate drafts or entries if navigation interrupts the response.

For Create Timeline Activity, success means a new matching editable activity form opened in the run tab—not that the activity was saved or an email was sent. Follow it with field-entry and the appropriate Save command. The dedicated Note and Post actions are complete operations: they only pass after submission produces a new or updated Timeline entry containing the supplied text. Custom layouts, separate-window editors, and full-document navigation still need live-environment validation.

Commands and keys

ActionPurpose
Click NewSelect the current page's New command.
Click SaveUse Save Only or Save and Close.
Click DeleteClick the exact Delete command and choose Confirm or Cancel in its confirmation dialog. Existing saved steps without a selection default to Confirm.
Assign OwnerOpen the Assign dialog and set the record owner to Me, an exact User, or an exact Team. Ambiguous owner matches fail instead of selecting the first result.
Click buttonClick a visible button by its exact accessible name. Prefer a dedicated action when one exists; duplicate matches fail as ambiguous.
Press keyChoose from documented model-driven app shortcuts. Each option explains where it applies; behaviour depends on the focused control. Function keys are limited to F2 and F4, with Ctrl + F6 and Ctrl + Shift + F6 for page-region navigation. Existing saved combinations are retained, but unrecognised combinations fail explicitly in Browser mode. Browser execution requires Testgrity Recorder 0.4.2 or later with its debugger permission. Add a verification step to check the intended effect.

Business Process Flow

ActionPurpose
Click BPF stageClick an exact stage inside the Business Process Flow without advancing it.
Move BPF stageSelect Back, Next, or Finish and verify the stage transition or completed state.
Set BPF fieldSet an exact editable field only in the Business Process Flow and verify the accepted value.

Validation and assertions

ActionPurpose
Verify message/textCheck that matching text is rendered and visible. Hidden text does not pass.
Verify record existsCheck an exact record name in a form title or grid result. Ordinary page text does not count. This confirms presence, not which test created the record.
Verify field valueRead an exact form field and compare its value exactly.
Verify field stateCheck an exact field for visible, hidden, enabled, or disabled state. Missing fields fail, including hidden assertions.
Verify field required levelCheck explicit field markers for none, recommended, or required.
Verify view columnsCheck exact visible headers in one unambiguous loaded grid.
Verify section visibilityCheck an exact form section for shown or hidden state. A missing section fails.
Verify tab visibilityCheck an exact form tab for shown or hidden state. A missing tab fails.
Verify form typeCheck explicit form markup for a normal or Quick Create form. A non-form page fails.
Verify active BPF stageCheck an exact stage using explicit active-state markers rather than broad text matching.
Verify BPF field valueCompare an exact Business Process Flow field with an expected value.
Verify BPF field requiredCheck explicit required-state markers on an exact Business Process Flow field.

Dataverse data and cleanup

ActionPurpose
Create Dataverse recordCreate a record from metadata-selected field rows and save its returned GUID under a case-scoped reference.
Read Dataverse recordRetrieve explicitly selected columns with $select and record their raw and formatted values in the result.
Update Dataverse recordUpdate metadata-selected fields on a named reference, the current record, or a GUID.
Verify Dataverse recordPoll selected persisted values for up to 30 seconds and compare them with typed expectations.
Delete Dataverse recordDelete a named reference, the current record, or a GUID for deliberate cleanup.

These actions run in both Background and Browser modes. In Browser mode, the Web API request runs inside the authenticated Dynamics tab without opening a form, and a non-blocking status popup identifies it as a Dataverse background process. Create requires a unique reference such as testAccount; later steps can use that reference, Current, or a GUID. References are isolated to the current test case. Fields use the same row editor as Set fields rather than raw JSON, and Create or Update hides attributes that Dataverse metadata marks as non-writable for that operation. The first version supports text, numbers, currency, dates, two options, and identifiers. Choices and lookups are excluded until option-value and relationship-target metadata can produce correct Web API payloads. Date-and-time values entered without an offset are treated as UTC.

Older current-record Dataverse actions remain compatible with saved tests but no longer appear in the Action Library.

Legacy Xrm actions

The deprecated global Xrm.Page API is not used. Old Read, Set, and Verify Xrm attribute steps remain compatible by operating on the corresponding form field through the user interface. Use Read field value, Set field value, and Verify field value for new tests.

Set Xrm submit mode, Set field visibility, Set field disabled, and Set field required level are retired and no longer appear in the Action Library. Microsoft only provides the supported formContext inside a Dynamics event execution context. Configure those behaviours in the app or its business rules, then assert the visible result in Testgrity.

Some recorded or existing cases may also contain supported actions that are not currently displayed in the Action Library, such as lookup selection, field-disabled verification, or legacy Xrm compatibility actions.