Data Operations
Data operation steps interact with Dataverse data - creating, reading, updating, and deleting records.
Save Entity
Creates a new record or updates an existing record in Dataverse.
| Parameter | Description |
|---|---|
| Entity | The entity record to save (with field values set) |
| Reload Entity After Save | Whether to reload the entity with server-generated values after saving |
When Reload Entity After Save is enabled, the step returns the entity with any server-generated values (such as auto-numbers, calculated fields, or plugin-modified values).
Use Cases:
- Create a new Account when a lead is qualified
- Update Contact information after form submission
- Create related records as part of a workflow
Example:
SAVE ENTITY
Entity: Account
Data: {
Name: "Contoso Ltd",
Industry: "Technology",
Revenue: 5000000
}
Reload Entity After Save: true
→ Store in variable: NewAccount
Delete Entity
Removes a record from Dataverse.
| Parameter | Description |
|---|---|
| Entity | The entity type to delete from |
| Entity ID | The unique identifier of the record to delete |
Use Cases:
- Remove temporary or draft records
- Clean up related records when parent is deleted
- Implement data retention policies
Example:
DELETE ENTITY
Entity: Task
Entity ID: TaskToDelete.Id
Modify Entity
Updates a specific set of fields on an existing record without replacing the whole entity. Where Save Entity persists a complete record, Modify Entity applies a set of property setters (each field is computed from an expression) to the record identified by the supplied entity.
| Parameter | Description |
|---|---|
| Entity Logical Name | The entity type to modify |
| Entity | The record (or reference) whose fields are updated |
| Setters | The set of field assignments to apply, each defined by an expression |
Example:
MODIFY ENTITY
Entity Logical Name: account
Entity: Customer
Setters:
creditonhold: true
description: "Placed on hold on " + TODAY()
Get Entity by ID
Retrieves a single record by its unique identifier.
| Parameter | Description |
|---|---|
| Entity Logical Name | The entity type to retrieve |
| Entity ID | The unique identifier of the record |
| Properties | The list of columns (attributes) to return |
Returns: The record with the requested columns populated
Example:
GET ENTITY BY ID
Entity Logical Name: contact
Entity ID: ContactId
Properties: [ firstname, lastname, emailaddress1 ]
→ Store in variable: CustomerContact
Execute Query
Retrieves records matching a query expression.
| Parameter | Description |
|---|---|
| Query Expression | The query (entity, columns, filters, orders) to execute |
| Multiplicity | Single (first matching record), All (every matching record), or Sliced (a single page) |
| Paging | Page size / paging cookie, used when Multiplicity is Sliced |
Returns: A single record (Single) or a collection of matching records (All / Sliced)
Example - Single Record:
EXECUTE QUERY
Multiplicity: Single
Entity: Account
Conditions: AccountNumber == "ACC-001"
→ Store in variable: FoundAccount
Example - All Records:
EXECUTE QUERY
Multiplicity: All
Entity: Contact
Conditions: ParentCustomerId == AccountId AND Status == "Active"
→ Store in variable: ActiveContacts
Execute Multiple Requests
Performs multiple data operations in a single batch for better performance.
| Parameter | Description |
|---|---|
| Entities to Create | Collection of records to create |
| Entities to Update | Collection of records to update |
| Entities to Delete | Collection of records to delete |
This step is particularly useful when you need to perform many operations at once, as it reduces the number of round trips to the server.
Example:
EXECUTE MULTIPLE REQUESTS
Entities to Create: NewTasksList
Entities to Update: ModifiedContactsList
Entities to Delete: ObsoleteRecordsList
Add Entity Annotation
Adds a note or attachment (annotation) to a record.
| Parameter | Description |
|---|---|
| Entity Logical Name | The entity type of the record |
| Entity ID | The record to annotate |
| Title | The note title/subject |
| Description | The note content |
| File Name | Name of the attached file (optional) |
| Content | Base64-encoded file content (optional) |
A note becomes a document (file attachment) simply by supplying File Name and Content — there is no separate "is document" flag.
Example - Adding a Note:
ADD ENTITY ANNOTATION
Entity Logical Name: account
Entity ID: Customer.Id
Title: "Credit Check Complete"
Description: "Customer passed credit verification on " + TODAY()
Example - Adding an Attachment:
ADD ENTITY ANNOTATION
Entity Logical Name: quote
Entity ID: Quote.Id
Title: "Signed Contract"
File Name: "Contract_Signed.pdf"
Content: FileContent
Add Item to Collection / Remove Item from Collection
Adds or removes a single item from a list (collection) variable in place.
| Parameter | Description |
|---|---|
| Collection | The list variable to modify |
| Item | The item to add or remove |
These steps are the explicit, first-class way to grow or shrink a collection variable during a flow (as opposed to reassigning it through Update Variable).
Example:
ADD ITEM TO COLLECTION
Collection: SelectedProducts
Item: CurrentProduct
REMOVE ITEM FROM COLLECTION
Collection: SelectedProducts
Item: DiscontinuedProduct
Best Practices
Use Reload Wisely: Only enable "Reload Entity After Save" when you need server-generated values. It adds an extra database call.
Batch Operations: When performing many similar operations, use Execute Multiple Requests instead of multiple individual Save/Delete steps.
Handle Missing Records: When using Get Entity by ID or Execute Query (Single), consider what happens if no record is found. Use a Condition step to check for null results.
Optimize Queries: Use specific filter conditions in Execute Query to minimize the number of records returned. Avoid retrieving more data than needed.