Dynamics CRM Connector 1.1 Contact sync issue

Hi,

 

I have recently installed the Dynamics CRM Connector 1.1 and am trying to sync contacts to my Sitecore xDB but not having any luck.

I believe I have it configured correctly following: http://integrationsdn.sitecore.net/DynamicsCrmConnect/v1.1/getting-started/index.html 

When testing the connection I get "A connection was established with Dynamics CRM." So that seems to be fine, but when ever I run the "CRM Contacts to xDB Sync Pipeline Batch" I just get the following messages in the box:

9/19/2016 3:03:17 AM INFO Condition added to read entities modified on or after 9/19/2016 3:00:01 AM. (pipeline step: Read CRM Contacts, entity: contact)
9/19/2016 3:03:17 AM INFO Entities were read from Dynamics CRM. (pipeline step: Read CRM Contacts, endpoint: Dynamics CRM Entity Endpoint, entity: contact)
9/19/2016 3:03:17 AM INFO 0 elements were iterated. (pipeline: Read CRM Contacts Pipeline, pipeline step: Iterate CRM Contacts and Run Pipelines)
9/19/2016 3:03:17 AM DEBUG Pipeline processor finished processessing pipeline steps. (pipeline: Read CRM Contacts Pipeline, completed pipeline steps: 3)
9/19/2016 3:03:17 AM DEBUG Pipeline processor finished processessing pipeline steps. (pipeline: Process Contacts in Queue Pipeline, completed pipeline steps: 1)

The logs also hold very little information as to why there is nothing being synced:

ManagedPoolThread #14 13:07:01 INFO Job started: CRM Contacts to xDB Sync Pipeline Batch
ManagedPoolThread #14 13:07:01 INFO [Data Exchange] Pipeline batch started. (pipeline batch: CRM Contacts to xDB Sync Pipeline Batch, pipeline batch id: 4314b562-9846-4a6f-9772-85667cad822e)
ManagedPoolThread #14 13:07:01 INFO Ignoring update of ItemID on Item {4314B562-9846-4A6F-9772-85667CAD822E}
ManagedPoolThread #15 13:07:01 INFO Job started: Index_Update_IndexName=sitecore_master_index
ManagedPoolThread #14 13:07:01 INFO [Data Exchange] Condition added to read entities modified on or after 9/19/2016 3:03:17 AM. (pipeline step: Read CRM Contacts, entity: contact)
ManagedPoolThread #14 13:07:01 INFO [Data Exchange] Entities were read from Dynamics CRM. (pipeline step: Read CRM Contacts, endpoint: Dynamics CRM Entity Endpoint, entity: contact)
ManagedPoolThread #15 13:07:01 INFO Job ended: Index_Update_IndexName=sitecore_master_index (units processed: )
ManagedPoolThread #14 13:07:01 INFO [Data Exchange] 0 elements were iterated. (pipeline: Read CRM Contacts Pipeline, pipeline step: Iterate CRM Contacts and Run Pipelines)
ManagedPoolThread #14 13:07:01 INFO Ignoring update of ItemID on Item {4314B562-9846-4A6F-9772-85667CAD822E}
ManagedPoolThread #8 13:07:01 INFO Job started: Index_Update_IndexName=sitecore_master_index
ManagedPoolThread #14 13:07:01 INFO [Data Exchange] Pipeline batch finished. (pipeline batch: CRM Contacts to xDB Sync Pipeline Batch, pipeline batch id: 4314b562-9846-4a6f-9772-85667cad822e, duration: 140 ms)
ManagedPoolThread #14 13:07:01 INFO Job ended: CRM Contacts to xDB Sync Pipeline Batch (units processed: )
ManagedPoolThread #8 13:07:02 INFO Job ended: Index_Update_IndexName=sitecore_master_index (units processed: )
ManagedPoolThread #0 13:07:05 INFO Starting update of index for the database 'master' (1 pending).
ManagedPoolThread #0 13:07:05 INFO Update of index for the database 'master' done.

There is 2 contacts in my CRM which I think should be syncing which arent. I am wondering if a property needs to be set on them to have them syncable?

 

Cheers,

  • According to the log above, only contacts that were changed after 9/19/2016 3:00:01 AM (UTC) will be synchronized. Are you sure the 2 contacts you expect to see fit that criteria?

    Assuming this is the problem, there are several solutions:

    OPTION 1. Reset the date the pipeline batch was last run

    1. In Content Editor, select your tenant under sitecore > System > Data Exchange.
    2. Under the tenant, navigate to Pipeline Batches > CRM Contacts to xDB Sync Pipeline Batch.
    3. Clear the value from the field Requested at.

    See option 2 for more information on why this fixes the problem.

    OPTION 2. Change the component that determines only contacts that were changed after the last time the pipeline batch was run

    This option will still only sync contacts that have changed, but it gives you a little more "wiggle room".

    1. In Content Editor, select your tenant under sitecore > System > Data Exchange.
    2. Under the tenant, navigate to Pipelines > CRM Contact Pipelines > Read CRM Contacts Pipeline > Set Use Delta Settings.
    3. The fields in the section Offset allow you to configure the date used in the filter used when reading contacts. The default settings indicate that only contacts that were changed on or after the date the pipeline batch was last started should be read.

    More information on how to configure these settings is available at integrationsdn.sitecore.net/.../set-use-delta-settings.html.

     

    OPTION 3. Disable the logic that only syncs contacts that have changed

    This option will completely disable the logic, meaning that ALL active contacts will be synchronized every time the pipeline is run.

    1. In Content Editor, select your tenant under sitecore > System > Data Exchange.
    2. Under the tenant, navigate to Pipelines > CRM Contact Pipelines > Read CRM Contacts Pipeline > Read CRM Contacts.
    3. Tick the field Exclude delta settings.

    More information on this setting is available at integrationsdn.sitecore.net/.../read-entities.html.

  • In reply to Adam Conn:

    I am now getting lots of errors about end points not being set and identifiers not being set.

    Ok so it would seem that there is lots of configuration that isn't covered in the setup guide for this.
    None of the "Endpoint to read data from" or "Identifier" fields are set in any of the pipeline items.

    Is there a standard out of the box configuration guide I can follow?

  • In reply to Daniel Wood:

    The following instructions (from the configuration guide) cover all of the required configuration:

    integrationsdn.sitecore.net/.../index.html

    If you have followed all of these instructions and you're still getting errors, post the errors so I can take a closer look.

  • In reply to Adam Conn:

    Yea so I followed that to a tee and get these errors
    9/20/2016 12:55:34 AM ERROR Pipeline step processing will abort because the pipeline step is missing an endpoint to read from. (pipeline step: Resolve xDB Contact from Repository, plugin: Sitecore.DataExchange.Plugins.EndpointSettings, property: EndpointFrom)
    9/20/2016 12:55:34 AM ERROR Pipeline step processing will abort because the pipeline step is missing an endpoint to read from. (pipeline step: Resolve xDB Contact from Queue, plugin: Sitecore.DataExchange.Plugins.EndpointSettings, property: EndpointFrom)

    if I look at the config for the pipeline none of the endpoint or identifier data is set.
  • In reply to Daniel Wood:

    1. In Content Editor, navigate to your tenant.
    2. Under the tenant, navigate to Pipelines > CRM Contact Pipelines > CRM Contact to xDB Contact Sync Pipeline.
    3. The field Endpoint to read data from should have its value set to Sitecore/Local xDB Contacts Endpoint

    Can you confirm the setting in step 3?

  • In reply to Adam Conn:

    Yep so as I stated above all those settings are blank for all the pipelines.
    When I set that one the error changes to the identifier not being set.

    9/20/2016 1:10:27 AM ERROR Unable to get value reader for identifier. (pipeline step: Resolve xDB Contact from Repository)
    9/20/2016 1:10:27 AM ERROR Pipeline step processing will abort because no identifier value was resolved. (pipeline step: Resolve xDB Contact from Repository)
    9/20/2016 1:10:27 AM ERROR Pipeline step processing will abort because the pipeline step is missing an endpoint to read from. (pipeline step: Resolve xDB Contact from Queue, plugin: Sitecore.DataExchange.Plugins.EndpointSettings, property: EndpointFrom)
    9/20/2016 1:10:27 AM ERROR Pipeline step processing will abort because the pipeline context has no target assigned. (pipeline step: Apply Mapping, plugin: Sitecore.DataExchange.Plugins.SynchronizationSettings, property: Target)

  • In reply to Daniel Wood:

    Somehow the tenant got corrupted. The easiest solution is to delete the tenant and recreate it. Trying to manually reconnect all of the setting is not worth it considering it takes about 2 minutes to recreate the tenant.

    As for how this happened, I don't know. But when you create the tenant, all of the pipelines and settings are set automatically. It literally should take care of everything except the steps in the configuration guide.

    But the process is fairly complex, and it's not inconceivable that the process was interrupted, especially if the server isn't especially fast.

    Can you create a new tenant and see if that fixes the problem?

    Also, if you can think of anything that might have been going on on the Sitecore server when the tenant was created, that would be helpful information so we can help other people who might have the same problem in the future.

  • In reply to Adam Conn:

    Removed tenant and recreated following guide but those fields are all still blank. At what point should be be populated?
  • In reply to Daniel Wood:

    They are assigned when the tenant is created because they are set on a branch template. Which versions of Sitecore and Dynamics CRM Connect are you using? Can you list the Sitecore version and the versions of all of the 3 Sitecore packages you installed?
  • In reply to Adam Conn:

    Sitecore - 8.1 rev. 151207
    Data Exchange Framework 1.1.0 rev. 160817
    Dynamics CRM Provider for Data Exchange Framework 1.1.0 rev. 160817
    Sitecore Provider for Data Exchange Framework 1.1.0 rev. 160817
  • In reply to Adam Conn:

    Yes sounds like a good way forward!! I am from Australia would team viewer or something similar be best?
  • Make sure that the Dynamics CRM provider package is the LAST package you install. This situation can occur if you install the packages in the wrong order.

    If you did install the packages in the wrong order, you can reinstall the Dynamics CRM package. Be sure to overwrite all existing Sitecore items.

    You also need to re-create your tenant (meaning, delete the existing tenant and create a new one).
  • In reply to Adam Conn:

    But also keep in mind that my other suggested answer IS something you will want to understand, because you actually had 2 separate problems. After we solved the first one, it exposed the second one.
  • In reply to Adam Conn:

    Hi Adam,

    Is this Delta setting just configured to read the date or can this work on other CRM field as well ?

    Thanks,
    Samridhi