Map Actions
Within Map Actions, you can configure the right-click action within the map. Supported Action Types include ExecuteJs, HTTPRequest, OpenD365Modal, SetAttribute, and URLNavigate.
To add map actions, please refer to Adding a Map Action.
Adding a Map Action
- 
Within the
Config Managerselect theConfig Profilethat you want to add the action to. - 
Select
Map Actions. - 
Select
Add Action. - 
Select the
Action Type. Learn more - 
Add an
Action Name. This will be the name in the right-click option menu. - 
Search and select the icon which best suits your requirements (full list of available icons here).

 - 
Input the required
Action Data. - 
Optionally, you can add conditional visibility.
 - 
Select
Show action only when condition is metto turn on condition checking. - 
Enter the field, comparison and value to set a condition. To add multiple, select the plus button under the table.
 - 
If your action impacts a layer in any way, you can use Layer Refresh Properties to refresh either all layers on the map or specific layers by entering their names in the text field.
 
Map and Layer Actions Configuration
Layer actions can be configured for individual layers or applied to all layers. Follow these steps for each action type:
URLNavigate
Description: Navigate to a custom URL. Fields:
URL: The URL to navigate to (e.g.,https://google.com).OpenInNewWindow: Whether to open in a new window (e.g.,checked). Example:
{
  "URL": "https://google.com",
  "OpenInNewWindow": true
}
OpenD365Modal
This action is only available in Dynamics 365
Description: Open a Dynamics 365 form. Fields:
entityName: Name of the entity (e.g.,account).entityId: ID of the entity (leave blank to open the create form).formPosition: Position of the form (e.g.,center).formId: ID of the form (leave blank for the default form).formProps: Additional properties (e.g.,{"key":"{{value}}"}). Example:
{
  "entityName": "account",
  "entityId": "",
  "formPosition": "center",
  "formId": "",
  "formProps": "{\"key\":\"{{value}}\"}"
}
Need to populate a Dynamics lookup field (ID + display name)? See the LOOKUP example: Resolving a Contact fullname.
ExecuteJs
Description: Execute custom JavaScript functions. Fields:
functionName: Name of the JavaScript function (e.g.,myFunction).functionParameters: Parameters to pass, wrapped in double curly braces (e.g.,{{dynamicVal}}). Example:
{
  "functionName": "myFunction",
  "functionParameters": "{{dynamicVal}}"
}
When using the ExecuteJS action type, ensure that the JavaScript function is defined in the window.top context. This allows Maptaskr to locate and execute the function seamlessly. For example, you can define your function as window.top.myFunction = function() { ... }.
HTTPRequest
Description: Send HTTP requests (GET or POST). Fields:
- 
Type: HTTP method (e.g.,POST). - 
URL: Endpoint URL (e.g.,http://localhost:3001/). - 
Body: Request body, with dynamic values (e.g.,{"key":"{{value}}"}). - 
Example*:
{
"Type": "POST",
"URL": "http://localhost:3001/",
"Body": "{"key":"{{value}}"}"
}Important Notes- HTTPRequest: The body should be formatted as follows:
 - For a single action: 
{"key":"{{value}}"} - For a multi-action: 
{"key":"{{value|,}}"}(replace,with any separator, but|must be included). - Note: HTTPRequests return a single string. A function is required to process the response, especially for multi-actions, as items will be concatenated into the same value, separated by a 
,. 
 
SendEmail
Description: Send an email through Dynamics 365 using data from the selected map feature(s). Fields:
entityType: The type of entity record to associate the email with (e.g.,contact,account,lead).entityName: The display name field from the selected feature that will show in the email "To" field (e.g.,{{fullname}},{{name}}).entityId: Dynamic token resolving to the record GUID that the email will be associated with (e.g.,{{contactid}}).emailSubject: The subject line for the email. Can include dynamic values (e.g.,Follow up for {{fullname}}).emailBody: The body content of the email. Can include dynamic values and HTML formatting (e.g.,Hello {{fullname}}, your location is {{maptaskr_lat}}, {{maptaskr_lng}}).
Example:
{
  "entityType": "contact",
  "entityName": "{{fullname}}",
  "entityId": "{{contactid}}",
  "emailSubject": "Follow up for {{fullname}}",
  "emailBody": "Hello {{contactName}},\n\nWe noticed you are located at coordinates {{maptaskr_lat}}, {{maptaskr_lng}}.\n\nBest regards,\nYour Team"
}
- This action requires Dynamics 365 with email capabilities enabled.
 - The email will be created as an activity record associated with the specified entity.
 - Use dynamic tokens (wrapped in 
{{}}) to include data from the selected map feature. - The 
emailBodyfield supports basic HTML formatting and line breaks (\n). 
SetFormAttribute
Description: Populate model‑driven form fields with values from the selected layer feature(s). Target attributes must exist on (and be rendered in) the current form—visible or hidden—for the assignment to succeed. Fields:
formAttributeName: Name of the attribute (e.g.,address1_latitude).formAttributeValue: Example:
{
  "attributeName": "address1_latitude",
  "attributeValue": "{{maptaskr_lat}}"
}
SetFormLookupAttribute
Description: Set a lookup field within a Dynamics form from a Maptaskr Power Map. Fields:
formAttributeName: Logical name of the lookup attribute on the current form (e.g.,new_assetid).relatedEntityName: Logical (schema) name of the target table/entity (e.g.,new_asset,account,contact).relatedEntityId: Feature attribute holding the target record GUID (e.g.,{{new_assetid}}). Must be a valid Dynamics ID for the entity specified above.relatedEntityDisplayName: Feature attribute holding the human‑readable primary name shown in the lookup control (e.g.,{{new_assetname}}). Used only for display; the system resolves the lookup using the ID.
Why both ID and display name? The ID guarantees the record resolves instantly; the display name avoids showing a blank or placeholder until Dynamics retrieves it.
Example:
  {
   "formAttributeName": "new_assetid",
   "relatedEntityName": "new_asset",
   "relatedEntityId": "{{new_assetid}}",
   "relatedEntityDisplayName": "{{new_assetname}}"
  }
AddRecordToMarketingList
This action is only available in Dynamics 365
Description: Add a layer feature to a marketing list
For this action to be usable please make sure the Dynamics Sales Hub is installed. This contains a important table maptaskr needs access to.
Fields:
recordEntityName: Logical (schema) name of the record's table (e.g.,contact,account,lead).recordEntityIdFieldName: Name of the feature attribute that contains the record GUID column (e.g.,contactid).recordEntityId: Dynamic value (token) resolving to the record GUID (e.g.,{{contactid}}).
Example:
{
  "recordEntityName": "contact",
  "recordEntityIdFieldName": "contactid",
  "recordEntityId": "{{contactid}}"
}
SetRecordAssignedUser
This action is only available in Dynamics 365
Description: Assign one or more records to a user or team (owner change). Use this when you need to bulk reassign map‑selected records from the map UI.
Fields:
recordEntityName: Logical name of the table whose records you are assigning (e.g.,contact).recordEntityID: The unique identifier (GUID) of the record, supplied dynamically (e.g.,{{contactid}}).
Example (single record):
{
"recordEntityName": "contact",
"recordEntityID": "{{contactid}}",
}
SetRecordAttribute
This action requires API access and table permissions to be configured.
Description: Update a single attribute (column) on an existing Dataverse/Dynamics record directly (server‑side) without the field being present on the currently open form. Useful for quick bulk edits from map‑selected features (the action is executed once per selected feature). Fields:
recordEntityName: Logical (schema) name of the table containing the record (e.g.,account).recordEntityID: Dynamic token that resolves to the record GUID (e.g.,{{accountid}}).recordAttributeName: Logical name of the attribute/column to set (e.g.,address1_longitude).recordAttributeValue: Value or dynamic token to assign (e.g.,{{maptaskr_lng}}or a literal like"Active").
- For lookups use 
SetRecordLookupAttributeinstead (this action only sets simple / primitive fields: text, number, decimal, float, boolean, date, optionset by value). - When multiple features are selected the update runs per feature with that feature's token context.
 - Ensure the user has update privileges on the target table and attribute; failures will be silently skipped if security denies access.
 
Example (set longitude using the feature's captured coordinate):
{
  "recordEntityName": "account",
  "recordEntityID": "{{accountid}}",
  "recordAttributeName": "address1_longitude",
  "recordAttributeValue": "{{maptaskr_lng}}"
}
SetRecordLookupAttribute
This action requires API access and table permissions to be configured.
Description: Set (or change) a lookup attribute on an existing Dataverse/Dynamics record without opening the form. Use this when you need to relate many selected records to a single parent (or feature‑specific parent) directly from the map. Fields:
recordEntityName: Logical (schema) name of the table that owns the lookup you are updating (e.g.,account).recordEntityID: Dynamic token resolving to the record's GUID (e.g.,{{accountid}}). Executed once per selected feature.recordAttributeName: Logical name of the lookup attribute you want to set (e.g.,primarycontactid,new_assetid).relatedEntityName: Logical name of the target (referenced) table (e.g.,contact,new_asset).relatedEntityID: Dynamic token resolving to the GUID of the related record (e.g.,{{contactid}},{{new_assetid}}).
- This action only needs the IDs server‑side; display name resolution happens automatically in Dataverse—no display name parameter required here (unlike 
SetFormLookupAttribute). - To clear a lookup, set 
relatedEntityIDto an empty string""(ensure the attribute is not required, or the update will fail silently). - Security: The executing user must have Update privileges on the owning table and Read privilege on the target (related) table.
 
Example (set the Account's primary contact):
{
  "recordEntityName": "account",
  "recordEntityID": "{{accountid}}",
  "recordAttributeName": "primarycontactid",
  "relatedEntityName": "contact",
  "relatedEntityID": "{{contactid}}"
}
BulkRecordEdit
This action is only available in Dynamics 365 and leverages the native Dynamics 365 bulk edit functionality.
Description: Opens the standard Dynamics 365 bulk edit dialog for multiple records selected from the map. This action piggybacks off Dynamics 365's out-of-the-box bulk edit capabilities, providing users with the familiar native interface to modify multiple records simultaneously. Fields:
entityName: The logical (schema) name of the entity table that will be bulk edited (e.g.,contact,account,lead).entityId: Dynamic token resolving to the record GUID that identifies which records to include in the bulk edit (e.g.,{{contactid}},{{accountid}}).
Example:
{
  "entityName": "contact",
  "entityId": "{{contactid}}"
}
- This action utilizes Dynamics 365's native bulk edit functionality, so users get the standard D365 bulk edit experience.
 - The bulk edit dialog will show all the fields that are typically available for bulk editing in Dynamics 365.
 - Users can select which fields to update and apply changes to all selected map features at once.
 - The action respects all Dynamics 365 security roles and field-level permissions.
 - This provides the most comprehensive bulk editing experience by leveraging Microsoft's built-in capabilities.
 - Requires the same permissions as using bulk edit directly in Dynamics 365.
 
Pre-Supplied Fields: The fields {{maptaskr_lat}}, {{maptaskr_lng}}, and {{maptaskr_geometry}} are provided directly by the Maptaskr tool. These fields are pre-supplied and available for use in your configurations.
Dynamic Values: To make your values dynamic, wrap them in double curly braces {{value}}. For example, instead of using a static value like "latitude": 40.7128, you can use "latitude": {{latitude}} to dynamically inject the value at runtime.