UPDATE: This is only an issue in the "Old Designer". If you moved to the "New Designer" the actions still appear. I would recommend moving over to the new designer, since Microsoft is depreciating the old designer.
A recent change to the Microsoft Dataverse connector in Power Automate has left many flows broken or incomplete. The familiar Get a row by ID and List rows actions appear to have been removed from the connector's action picker in multiple environments — and the issue is reproducible across different browsers and machines, ruling out a caching problem. In their place, a new Search rows (preview) action has been introduced. This post documents the behavior and a working workaround for restoring Get a row by ID functionality using the Power Automate Tools Chrome extension.
What Changed
When adding a new Dataverse action to a Power Automate flow, the expected actions — Get a row by ID, List rows, and others — are no longer available from the action picker. The connector now surfaces a new Search rows (preview) action instead. Existing flows that already contain Get a row by ID are unaffected — those steps continue to function and can still be configured and interacted with normally. The limitation is specifically that the action can no longer be added as a new step to any flow.
The replacement Search rows (preview) action maps to two distinct underlying operations depending on how it is configured:
- GetItem — retrieves a single record by its GUID (equivalent to the former Get a row by ID)
- GetRelevantRows — performs a relevance search across one or more tables (a true search operation)
The Power Automate designer currently only exposes the GetRelevantRows search behavior through the UI, making it impossible to replicate a simple row-by-ID lookup without a workaround.
The Workaround
Two workarounds are available for adding a Get a row by ID step to a flow:
Option 1: Copy an existing action
If the flow (or another flow in the same environment) already contains a Get a row by ID step, use Power Automate's built-in Copy to my clipboard action menu option to copy that step, then paste it into the target location. The pasted action retains the original operationId and can be reconfigured as needed. This is the fastest path when an existing step is available to copy from.
Option 2: Edit the flow JSON using Power Automate Tools
When no existing Get a row by ID action is available to copy, the Power Automate Tools Chrome extension provides direct access to the underlying JSON definition of a flow. By adding a Search rows (preview) action through the designer and then editing the JSON to swap the operation and parameters, a proper GetItem call can be constructed and saved successfully.
Follow these steps for the JSON approach:
- Add a Search rows (preview) action to the flow in the Power Automate designer.
- Configure a placeholder — set the Table name and a Search term variable. The exact values do not matter at this stage.
- Open the Power Automate Tools extension in Chrome and navigate to the flow's JSON editor.
- Locate the
Search_rows_(preview)block in the JSON. - Modify the
operationIdandparametersas described below. - Save the changes via the extension. The flow will update and display the action as expected.
JSON: Before (Search rows — GetRelevantRows)
When added through the designer, the Search rows (preview) action produces a definition similar to this — note the GetRelevantRows operationId and the SearchRequest/search and SearchRequest/entities parameters:
"Search_rows_(preview)": {
"runAfter": {},
"metadata": {
"operationMetadataId": "5e0d20a1-ef74-4cb3-8408-743350c36691"
},
"type": "OpenApiConnection",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps",
"connectionName": "shared_commondataserviceforapps",
"operationId": "GetRelevantRows"
},
"parameters": {
"SearchRequest/search": "@variables('RecipientUserID')",
"SearchRequest/entities": [
"systemusers"
]
},
"authentication": "@parameters('$authentication')"
}
}
JSON: After (Modified to GetItem — Get a row by ID)
Replace the operationId with GetItem and swap the parameters block to use entityName (the logical table name) and recordId (the GUID of the record to retrieve). The metadata, type, host connection details, and authentication remain unchanged:
"Search_rows_(preview)": {
"runAfter": {},
"metadata": {
"operationMetadataId": "fb50c17a-8fb3-4281-a7cc-d5366bcf7182"
},
"type": "OpenApiConnection",
"inputs": {
"host": {
"apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps",
"connectionName": "shared_commondataserviceforapps",
"operationId": "GetItem"
},
"parameters": {
"entityName": "systemusers",
"recordId": "@variables('RecipientUserID')"
},
"authentication": "@parameters('$authentication')"
}
}
After saving, the step label in the designer will still read Search rows (preview), but the underlying operation will execute as a Get a row by ID call. Outputs from this action can be referenced downstream in the same way as the original action.
Key Differences at a Glance
| Property | Search rows (default) | Modified (Get a row by ID) |
|---|---|---|
operationId |
GetRelevantRows | GetItem |
| Table parameter | SearchRequest/entities (array) | entityName (string) |
| Record identifier | SearchRequest/search (full-text search term) | recordId (GUID) |
| Returns | Collection of matching rows | Single row |
Bug, Glitch, or Intentional Change?
At this point it is not clear whether this is a temporary glitch, an unintentional oversight during a connector update, or the beginning of a deliberate shift toward consolidating row retrieval under the Search rows action. The evidence cuts both ways. The fact that existing Get a row by ID steps remain fully functional and editable suggests this may not be an intentional deprecation — a planned removal would more likely affect all uses of the operation, not just the ability to add new ones. On the other hand, the simultaneous disappearance of multiple actions across unrelated environments points to a deliberate connector metadata change rather than a one-off rendering issue.
Until Microsoft publishes official guidance, the workarounds above provide a reliable path forward. Monitor the Power Automate blog and the Power Platform admin center for any communication regarding changes to the Dataverse connector.
Comments
Post a Comment