---
sourceDocument: Yokohama Account Lifecycle Events
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/yokohama/acct-lifecycle-events

 Release :

    - yokohama

ft:locale :

    - en-US

ft:publication_title :

    - Yokohama Account Lifecycle Events

ft:clusterId :

    - actle

bundleId :

    - actle

workflow :

    - Customer and Industry


---

# Integrating with Microsoft Dynamics CRM

# Integrating with Microsoft Dynamics CRM {#ariaid-title1}

Release version: Yokohama  
Updated January 30, 2025  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of Integrating with Microsoft Dynamics CRM

Integrating ServiceNow with Microsoft Dynamics CRM via the Microsoft Dynamics CRM spoke enables seamless data exchange and process synchronization between the two platforms.
This integration supports tracking renewals, assessing risks, and creating renewal opportunities during the engagement lifecycle.
It is available with the Account Lifecycle Events application and can also be configured to work with other CRM platforms.
Show full answer Show less  

## Key Use Cases

* Create opportunities for renewals from renewal playbooks.
* Create tasks from risk records when renewal dates are missing.
* Automatically update ServiceNow records when changes occur in the CRM task table.

## Integration Setup Requirements

* Configure the Recommended Actions application before setting up the integration.
* Set up the Microsoft Dynamics CRM spoke in ServiceNow.
* On the Microsoft Dynamics CRM side:
  * Create accounts matching the account names associated with internal play tasks or risk records in ServiceNow to ensure proper mapping.
  * Define currencies corresponding to those in the Customer contracts table, using a script include to map currency symbols to constants.
  * Use **DynamicsCRMMappingConstants** to define mappings between ServiceNow Sys IDs and Microsoft Dynamics CRM GUIDs.
  * Customize the **getRiskSysIdFromCRMRequest()** function to handle task updates from CRM and update risk signal records accordingly.
  * Configure a subflow and decision table for processing task update events via the Microsoft Dynamics CRM webhook.
* (Optional) Configure a UI action in ServiceNow to create CRM tasks directly.

## Practical Usage with Script Includes

Use the **AleCRMUtilOOB** script include to interact with Microsoft Dynamics CRM by executing actions such as creating opportunities or tasks. The **executeAction** function requires:

* **CRMPlatformName**: the CRM platform identifier (e.g., 'MSDYNAMICS')
* **action**: the action to perform (e.g., 'OpportunityCreationWithSpoke' or 'TaskCreationWithSpoke')
* **recordData**: the SysID of the relevant ServiceNow record (e.g., internal play task or risk signal)

Example scripts demonstrate how to create an opportunity or task in Microsoft Dynamics CRM programmatically, with logging of the response for verification.

## Expected Outcomes

* Automated creation and synchronization of opportunities and tasks between ServiceNow and Microsoft Dynamics CRM.
* Improved tracking and management of account renewals and associated risks.
* Streamlined workflows that reduce manual data entry and ensure data consistency across platforms.  
Integrating your ServiceNow instance with the Microsoft Dynamics CRM platform enables seamless data exchange and process synchronization between the two platforms. This integration is done through the Microsoft Dynamics CRM
spoke.

By enabling integration of the Microsoft Dynamics CRM platform during the engagement lifecycle you can track renewals, assess risks, and create renewal opportunities. The Microsoft Dynamics CRM integration is available with the Account Lifecycle Events application and can be configured to work with other CRM platforms.  
The following use cases are supported:

* Creating opportunity for renewals from renewal playbooks.
* Creating task from risk record when renewal date is missing in the account.
* Updating the ServiceNow records when any change is made to the CRM task table.
{#account-lifecycle-crm-integration__ul_frn_myp_5dc}  
To set up the integration, follow these steps:  
Note:  
Before you set the integration, you must configured the Recommended Actions application. See [Set up Recommended Actions for account onboarding](https://servicenow-prod.fluidtopics.net/WgLQOTntqxMdQsC1t4235w "Set up recommended actions to display relevant recommendations in the account onboarding playbook.") for details.

1. Set up the Microsoft Dynamics CRM spoke. See [Microsoft Dynamics CRM Spoke](https://www.servicenow.com/docs/access?context=microsoft-dynamics-crm-spoke&version=yokohama&pubname=yokohama-integrate-applications&ft:locale=en-US) for details.
2. On the Microsoft Dynamics CRM platform, you must do the following:
   * Create an account with the same name as the account associated with your internal play task.Before creating an opportunity from an internal play task, make a note of the account associated with the task.

     <br />

     <br />

     Before creating a task from the risk signal, make a note of the account associated with Risk and Issue record as shown below.  

     <br />

     In the Microsoft Dynamics CRM platform, you must create an account with the same account name (Genixify) associated with your internal play task as shown in the above examples. This
     account must be configured later in the mapping file.
   * Create currencies that correspond to the currencies in the Customer contracts table. While creating currencies, you must add the name of the currency with the symbol in the `TechOnbConstants` script include as follows:  

         TechOnbConstants.MS_DYNAMICS_CRM_CURRENCY = {
             '£': 'CURRENCY_GBP',
             '$': 'CURRENCY_USD',
             '€': 'CURRENCY_EUR',
             '¥': 'CURRENCY_JPY',
             'CHF': 'CURRENCY_CHF'
         };

   {#account-lifecycle-crm-integration__ul_mdg_ghw_ydc}  
   Note:  
   Use the DynamicsCRMMappingConstants script include to define mappings between ServiceNow Sys IDs and their corresponding GUIDs in Microsoft Dynamics CRM.
   Sample mappings are shown in the following image.  

   <br />

3. Update the `getRiskSysIdFromCRMRequest()` function in the `DynamicsCRMTaskUpdateHandlerUtilOOB` script include to handle the task updates from Microsoft Dynamics CRM by processing the input parameters and updating the associated risk signal record.

   The Process Task Update Event demo action can be further configured and added as part of a sub flow. Create the sub flow and add it to the decision table (Dynamics CRM Webhook Decision Policy) of Microsoft Dynamics CRM Spoke.
4. (Optional) You can optionally configure an UI action to create a CRM task in your ServiceNow instance.
5. Use the `AleCRMUtilOOB` script include to interact with CRM platforms like Microsoft Dynamics CRM.

   Use The `executeAction` function perform actions like creating opportunities or tasks on the CRM
   platform.  

       executeAction(CRMPlatformName, action, recordData)
       where 
       - CRMPlatformName is the name of the CRM platform on actions are to be performed.
       - action is the action to be performed 
       - recordData is the SysID of the risk signal record that is updated when the action is performed.

{#account-lifecycle-crm-integration__ol_f5r_vyp_5dc}The following examples show how you can create an opportunity or a task in Microsoft Dynamics CRM:

* Creating an Opportunity in Microsoft Dynamics CRM:  

      var aleCRMUtil = new AleCRMUtil();

      var CRMPlatformName = 'MS_DYNAMICS';
      var action = 'OpportunityCreationWithSpoke';
      var recordData = { internalPlayTaskSysId: '02de3efaeb3d5a10ddd6f94fbad0cd16' };

      var response = aleCRMUtil.executeAction(CRMPlatformName, action, recordData);

      gs.info('Opportunity Creation Response: ' + JSON.stringify(response));

* Creating a Task in Microsoft Dynamics CRM  

      var aleCRMUtil = new AleCRMUtil();

      var CRMPlatformName = 'MS_DYNAMICS';
      var action = 'TaskCreationWithSpoke';
      var recordData = { riskSignalIssuesSysId: 'b07062b53ba29a10be57327aa5e45a0c' };

      var response = aleCRMUtil.executeAction(CRMPlatformName, action, recordData);

      gs.info('Task Creation Response: ' + JSON.stringify(response));

{#account-lifecycle-crm-integration__ul_aq1_mzz_ydc}  
After you have setup the integration, you can do the following:

* [Create an opportunity in Microsoft Dynamics CRM](https://servicenow-prod.fluidtopics.net/cCzMDZ1vfPvx_ymqsoD_nQ "Create a renewal opportunity in the Microsoft Dynamics CRM platform from your ServiceNow instance.")
* [Create a task in Microsoft Dynamics CRM](https://servicenow-prod.fluidtopics.net/EipfGPwSAeNs0eMri15FTg "Create a task in the Microsoft Dynamics CRM platform from your ServiceNow instance and receive updates to the task in your ServiceNow instance.")
{#account-lifecycle-crm-integration__ul_okg_4c1_zdc}

