Synchronize data between Campaign and the CRM data-synchronization
Data synchronization between ÃÛ¶¹ÊÓƵ Campaign and the CRM is carried out via a dedicated workflow activity: CRM connector.
For example, to import the Microsoft Dynamics data into ÃÛ¶¹ÊÓƵ Campaign, create the following type of workflow:
This workflow imports the contacts via Microsoft Dynamics, synchronizes them with the existing ÃÛ¶¹ÊÓƵ Campaign data, deletes duplicate contacts, and updates the ÃÛ¶¹ÊÓƵ Campaign database.
The CRM Connector activity needs to be configured to synchronize data.
With this activity you can:
- Import from the CRM - Learn more
- Export to CRM - Learn more
- Import objects deleted in the CRM - Learn more
- Delete objects in the CRM - Learn more
Select the external account that matches the CRM that you want to configure synchronization with, then select the object to be synchronized: accounts, opportunities, leads, contacts, etc.
The configuration of this activity depends on the process to be carried out. Various configurations are detailed below.
Import from the CRM importing-from-the-crm
To import data via the CRM in ÃÛ¶¹ÊÓƵ Campaign, you need to create the following type of workflow:
For an import activity, the CRM Connector activity configuration steps are:
-
Select an Import from the CRM operation.
-
Go to the Remote object drop-down list and select the object concerned by the process. This object coincides with one of the tables created in ÃÛ¶¹ÊÓƵ Campaign during connector configuration.
-
Go to the Remote fields section and enter the fields to be imported.
To add a field, click the Add button in the toolbar, then click the Edit expression icon.
If necessary, alter the data format via the drop-down list of the Conversion columns. Possible conversion types are detailed in Data format.
note important IMPORTANT The identifier of the record in the CRM is mandatory for linking objects in CRM and in ÃÛ¶¹ÊÓƵ Campaign. It is added automatically when the box is approved. The last modification date on the CRM side is also mandatory for incremental data imports. -
You can also filter the data to be imported based on your needs. To do this, click the Edit the filter… link.
In the following example, ÃÛ¶¹ÊÓƵ Campaign will only import contacts for which some activity has been recorded since Nov 1st 2012.
note important IMPORTANT The limitations linked to data filtering modes are detailed in Filtering data. -
The Use automatic index… option enables you to automatically manage incremental object synchronization between the CRM and ÃÛ¶¹ÊÓƵ Campaign, depending on the date and their last modification.
For more on this, refer to Variable management.
Manage variables variable-management
Enable the Automatic index option to collect only objects modified since the last import.
The date of the last synchronization is stored in an option specified in the configuration window, by default: LASTIMPORT_<%=instance.internalName%>_<%=activityName%>.
yyyy/MM/dd hh:mm:ss
.You can specify the remote CRM field to be taken into account to identify the most recent changes.
By default, the following fields are used (in the specified order):
- For Microsoft Dynamics: modifiedon,
- For Salesforce.com: LastModifiedDate, SystemModstamp.
Activating the Automatic index option generates three variables that can be used in the synchronization workflow via a JavaScript code type activity. These activities are:
-
vars.crmOptionName: represents the name of the option that contains the last import date.
-
vars.crmStartImport: represents the start date (included) of the last data recovery.
-
vars.crmEndDate: represents the end date (excluded) of the last data recovery.
note note NOTE These dates are shown in the following format: yyyy/MM/dd hh:mm:ss
.
Filter data filtering-data
To ensure efficient operation with the various CRMs, filters need to be created using the following rules:
- Each filtering level may only use one type of operator.
- The AND NOT operator is not supported.
- Comparisons may only concern null values (‘is empty’/‘is not empty’ type) or numbers. This means that the value (right-hand column) is assessed and the result of this assessment must be a number. JOIN type comparisons are therefore not supported.
- The value contained in the right-hand column is assessed in JavaScript.
- JOIN comparisons are not supported.
- The expression in the left-hand column must be a field. It cannot be a combination of several expressions, a number, etc.
For example, the following filtering conditions will NOT be valid for a CRM import, because the OR operator is placed at the same level as the AND operators:
- The OR operator is placed at the same level as the AND operators
- Comparisons are carried out on text strings
Order by order-by
In Microsoft Dynamics and Salesforce.com, you can sort the remote fields to be imported in ascending or descending order.
To do this, click the Order by link and add the columns to the list.
The order of the columns in the list is the sorting order:
Record identification record-identification
Rather than import elements included (and possibly filtered) in the CRM, you can use a population calculated beforehand in the workflow.
To do this, select the Use the population calculated upstream option and specify the field that contains the remote identifier.
Then select the fields of the inbound population that you want to import, as shown below:
Exporting to the CRM exporting-to-the-crm
Exporting ÃÛ¶¹ÊÓƵ Campaign data into the CRM lets you copy entire contents to a CRM database.
To export data towards the CRM, you need to create the following type of workflow:
For an export, apply the following configuration to the CRM Connector activity:
-
Select an Export to CRM operation.
-
Go to the Remote object drop-down list and select the object concerned by the process. This object coincides with one of the tables created in ÃÛ¶¹ÊÓƵ Campaign during connector configuration.
note important IMPORTANT The export function of the CRM Connector activity can insert or update fields on the CRM side. To enable field updates in the CRM, you need to specify the primary key of the remote table. If the key is missing, data will be inserted (instead of being updated). -
Check Export in Batches if you need faster exports.
-
In the Mapping section, click New to specify the fields to be exported and their mapping in the CRM.
To add a field, click the Add button in the toolbar, then click the Edit expression icon.
note note NOTE For a given field, if no match is defined on the CRM side, the values cannot be updated: they are inserted directly into the CRM. If necessary, alter the data format via the drop-down list of the Conversion columns. Possible conversion types are detailed in Data format.
note note NOTE The list of records to be exported and the result of the export are saved in a temporary file that remains accessible until the workflow is finished or re-started. This enables you to start the process again in case of errors without running the risk of exporting the same record several times or losing data.
Additional configurations additional-configurations
Data format data-format
You can convert data format on the fly when importing them to or from the CRM.
To do this, select the conversion to be applied in the matching column.
The Default mode applies automatic data conversion, which in most cases equals a copy/paste of the data. However, time zone management is applied.
Other possible conversions are:
- Date only: this mode deletes Date + Time type fields.
- Without time offset: this mode cancels the time zone management applied in the default mode.
- Copy/Paste: this mode uses raw data such as strings (no conversion).
Error processing error-processing
Within the framework of data imports or exports, you can apply a specific process to errors and rejects. To do this, select the Process rejects and Process errors options in the Behavior tab.
These options place the matching output transitions.
Then place the activities relevant to the processes you want to apply.
To process errors for instance, you can add a wait box and schedule retries.
Rejects are collected with their error code and the related message, this means you can set up the tracking of rejects to optimize your synchronization process.
The Reject output transition lets you access the output schema that contains the specific columns relevant to error messages and codes. For Salesforce.com, this column is errorSymbol (error symbol, different from the error code), errorMessage (description of the error context).
Import objects deleted in the CRM importing-objects-deleted-in-the-crm
To enable the setting up of an extensive data synchronization process, you can import objects deleted in the CRM into ÃÛ¶¹ÊÓƵ Campaign.
To do this, apply the following steps:
-
Select an Import objects deleted in the CRM operation.
-
Go to the Remote object drop-down list and select the object concerned by the process. This object coincides with one of the tables created in ÃÛ¶¹ÊÓƵ Campaign during connector configuration.
-
Specify the deletion period to be taken into account in the Start date and the End date fields. These dates will be included in the period.
note important IMPORTANT The element deletion period must coincide with the limitations specific to the CRM. This means that for Salesforce.com, for instance, elements deleted over 30 days ago cannot be recovered.
Delete objects in the CRM deleting-objects-in-the-crm
To delete objects on the CRM side, you need to specify the primary key of the remote elements to be deleted.
The Behavior tab lets you enable the processing of rejects. This option generates a second output transition for the CRM connector activity. For more on this, refer to Error processing.