Read Entity
Audience:
Low-code EngineersSkill Prerequisites:
Actions,Connectors,Tokens
Reads one Dynamics 365 / Dynamics CRM record by its GUID and loads the attributes (columns) you choose into tokens.
Use it when you already have the record's GUID, for example from Find Entity, Create Entity or a URL parameter.
This action is part of the Dynamics (CRM, 365) add-on (DnnSharp.DynamicsCrm). The add-on is installed separately and needs the DYNCRM feature in your license. If it isn't licensed, the action fails with a "not licensed" error. If you don't see the Dynamics actions, the add-on isn't installed.
Typical Use Cases
- Load a record into tokens to prefill a form for editing
- Read the current values of a record before Update Entity changes it
- Get the details of a record that was just created with Create Entity
- Follow a lookup: read a contact, then read its parent account with the
:Idtoken
Don't use it to
- Search by other values, such as an email address. Use Find Entity instead.
- Read several records. Use Read Multiple Entities instead.
- Check whether a record exists. If the GUID isn't found, the action fails.
Related Actions
| Action Name | Description |
|---|---|
| Find Entity | Finds the first record that matches conditions. |
| Read Multiple Entities | Reads all matching records into a list. |
| Create Entity | Creates a record. |
| Update Entity | Updates a record by its GUID. |
| Delete Entity | Deletes a record by its GUID. |
| Test Connector | Checks that a Dynamics Service Connector can sign in. |
Input Parameter Reference
| Parameter | Description | Supports Tokens | Default | Required |
|---|---|---|---|---|
| Connector | The Dynamics Service Connector that holds the Dynamics server address and sign-in details. See Connectors. | No | empty | Yes |
| Logical Name | The entity of the record. The list shows the entities of the selected connector by display name. The value saved is the entity's logical name, for example contact or account. You can also type a logical name or a token. The value is converted to lowercase. | Yes | empty string | Yes |
| Entity Guid | The GUID of the record to read, for example [ContactId]. It must be a valid GUID. | Yes | empty string | Yes |
| Attribute Mapping | The attributes to read. For each row, enter the attribute's logical name in Attribute Name, for example fullname, and the token to create in Output Token Name, for example ContactName. See Output tokens. | No | None | No |
Output Parameters Reference
| Token | Description |
|---|---|
[<Output Token Name>] | One token per row of Attribute Mapping, holding the attribute's value, for example [ContactName]. |
[<Output Token Name>:Id], [<Output Token Name>:Name], [<Output Token Name>:LogicalName] | Extra tokens for reference attributes (Lookup, Customer, Owner): the referenced record's GUID, its name and its entity logical name, for example [ParentAccount:Id]. |
The record's own GUID isn't written to a token, since you already have it in Entity Guid.
Output tokens
The value in each token depends on the attribute type:
- If Dynamics returns a formatted value for the attribute, the token gets that. For example, an option set gives its label (
Active), not its number. Money and number values may include currency symbols or thousands separators. - Date and time attributes are never formatted. They're written in ISO 8601 format, for example
2026-09-27T14:30:00.0000000Z. Date Only attributes use the short date format of the current culture. - Otherwise, the raw value is used: money as its amount, option sets as their number, and references as the GUID.
- For reference attributes (Lookup, Customer, Owner), use the
:Idtoken when you need the GUID. The main token may hold the record's name instead. - If the attribute is empty in Dynamics, the token is empty.
Considerations
- Not found is an error. If no record of that entity has the GUID, the action fails. Wrap it in Execute Actions and use
On Errorif the record may have been deleted. - Use logical names. Entity and attribute names are the lowercase logical names, such as
emailaddress1, not display names such asEmail. An unknown attribute name makes the action fail. - The entity must match the GUID. A contact's GUID won't be found in
account. - The sign-in is cached. The connection is reused until its security token is about to expire. Use Test Connector to check a connector. See Add Connector to create one in actions.
Examples
To understand how to use the below examples, please see Running Examples.
In these examples, replace the connector Entry value with the ID of your own Dynamics Service Connector, or select the connector after importing.
1. Read a contact
This action reads the contact whose GUID is in the ContactId token. It creates [ContactName], [ContactEmail], [ContactPhone] and, for the parent account, [ParentAccount], [ParentAccount:Id], [ParentAccount:Name] and [ParentAccount:LogicalName].
{
"Title": "Read Entity",
"ActionType": "DynamicsCrm.ReadEntity",
"Description": "Load the contact's details",
"Condition": "[ContactId] != \"\"",
"Parameters": {
"Credentials": {
"Entry": "00000000-0000-0000-0000-000000000000"
},
"LogicalName": "contact",
"EntityGuid": "[ContactId]",
"AttributeMapping": {
"fullname": "ContactName",
"emailaddress1": "ContactEmail",
"telephone1": "ContactPhone",
"parentcustomerid": "ParentAccount"
}
}
}
2. Read the parent account of a contact
Run this after example 1. It reads the account that the contact belongs to, using the :Id token of the lookup.
{
"Title": "Read Entity",
"ActionType": "DynamicsCrm.ReadEntity",
"Description": "Load the contact's account",
"Condition": "[ParentAccount:LogicalName] == \"account\"",
"Parameters": {
"Credentials": {
"Entry": "00000000-0000-0000-0000-000000000000"
},
"LogicalName": "account",
"EntityGuid": "[ParentAccount:Id]",
"AttributeMapping": {
"name": "AccountName",
"accountnumber": "AccountNumber"
}
}
}
The condition skips the action when the contact has no parent, or when the parent is a contact instead of an account.
Revised 09/27/2026