In Simple Synchronization, you configured a synchronization process that represents CRM accounts as Sitecore items. The real power of having access to CRM accounts is when you are able to associate an xDB contact with a CRM account.
Some custom development is required. By default, Sitecore does not provide a way to store account information and to associate an xDB contact with the account. And since Sitecore does not store this information, Sitecore is not aware of this information.
Custom development is required for the following parts of the solution:
- Read the CRM contacts that are associated with an account from CRM
- Associate an xDB contact with an account
- Search for xDB contacts by account
In order to keep the instructions as simple as possible, a specific example is used to describe this configuration:
- This example builds on the example covered in Simple Synchronization.
- Each CRM contact is a part of an account. You want to associate the Sitecore contact with the CRM account by setting a value on a custom contact facet.
The relationship between contacts and accounts is similar to the relationship between contacts and marketing lists. The difference is that a contact is associated with a single account, while a contact may be associated with multiple marketing lists.
- 1. Extend Dynamics CRM Contact Facet
- 2. Extend Indexable Contact
- 3. Extend Contact Aggregator
- 4. Register Contact Facet & Aggregator
- 5. Implement Entity Repository for Account Membership
- 6. Add Template for Entity Repository
- 7. Implement Converter for Entity Repository Template
- 8. Assign Converter to Entity Repository Template
- 9. Add Template for Read Members Pipeline Step
- 10. Implement Converter for Read Members Pipeline Step
- 11. Implement Processor for Read Members Pipeline Step
- 12. Assign Converter & Processor to Pipeline Step Template
- 13. Add Entity Repository to Entity Repository Set
- 14. Add Value Accessor Set for CRM Account
- 15. Add Value Accessor Set for Sitecore Contact
- 16. Add Value Mapping Set for Account Membership
- 17. Add Pipelines to Handle Single CRM Account
- 18. Add Pipelines to Handle CRM Accounts
- 19. Update Pipeline that Reads CRM Accounts
- 20. Update Pipeline Batch
- 21. Run Pipeline Batch
- 22. Add to Full CRM Contacts to xDB Sync Pipeline Batch