- DarkLight
Salesforce Adapter
- DarkLight
Campaign Manager gets leads (contact lists) from multiple sources like CSV files, SQL database tables. In addition, Campaign Manager can also use a list of campaign members on the Salesforce CRM application as a lead Source, using the Salesforce Adapter. This adapter communicates between the Campaign Manager and the Salesforce CRM applications.
Architecture
Campaign Manager is integrated with Salesforce for lead synchronization through SF SOAP APIs.
The Administrator creates a new upload profile page, maps the business data against Salesforce campaign member fields, and defines a schedule. The Uploader Service reads the profile configuration and creates a scheduler to fetch campaign members from Salesforce.
At the scheduled time or interval, the Uploader Service sends a request to Salesforce Adapter and the adapter fetches the campaign members from Salesforce. The Adapter constructs the import file (comprising of campaign members) and places the file in the configured upload path.
Limitation:
On account of a limitation from the Salesforce CRM, application limits the records per batch to 2000
When you import campaign members are imported, the application updates the status of the members as Uploaded and the adapter creates an activity in Salesforce. When records fail to upload into Campaign Manager, the system changes the member status to Error and a related activity is created by the adapter, if configured.
When the contacts start dialing, the adapter updates the member status and creates an activity for every attempt. When the contact is closed, which means there are no further attempts made, it updates the member status as Success; else updates the status as Rescheduled; and creates an activity, if configured.
If the customer requests a Callback, the adapter updates the status as Callback.
Salesforce Adapter updates one of the following statuses as part of the contact lifecycle:
Callback: This status update happens when a Salesforce contact is dialed and the outcome set as Callback. Salesforce updates the member status and creates an activity.
Contact Expired: This status update happens when a contact or a contact list is marked as expired. Salesforce updates the member status. It does create an activity.
Error: This is the status when a contact is not downloaded due to some validation failure. Salesforce updates the member status. It does not create an activity.
NonDialed: This contact status update occurs when a contact remains non-dialed for reasons such as Flush, List Stop, Scrub, etc. Salesforce updates the member status. It does not create an activity. This status applies to the contacts flushed from both Open and Rescheduled states. Expired contacts and closed contacts cannot be flushed.
Rescheduled: This is the status when the adapter receives an outcome and reschedules the contact based on this outcome. Salesforce updates the member status and creates an activity.
Uploaded: The contact is downloaded to the Campaign Manager application. Salesforce updates the Member status and creates an activity.
Configurations
The following configurations the CRM Connector component determine the time interval or the scheduled time to update the member status and activity:
CallActivityIntervalInMinute—The interval, in minutes, between two iterations for Campaign Manager to update the status to the CRM.
NonDialedIntervalInMinute—The interval, in minutes, between two iterations for Campaign Manager to update the non-dialed contacts’ status to the CRM.
Salesforce Credentials
To use Salesforce API, the Campaign Manager application requires credentials to connect to the Salesforce system. You can configure these credentials in the adapter.
Profile
For the adapter to fetch the data from Salesforce campaign members, enter the following in the Campaign Manager application’s Profile feature:
In the Import File section, select Salesforce CRM.
Select the appropriate SF Campaign Name to fetch the contacts to Campaign Manager It lists all the available campaigns created by Salesforce and mapped against the Campaign Manager user.
Note:
All the campaigns configured on Salesforce are visible only to admin users; all other users see only campaigns that they have permissions to view.
Select the appropriate SF Member Status from the dropdown list. It lists all the available status of the campaign member created under the selected campaign. Select the required member status. You can select multiple statuses.
Go to Schedule to configure a schedule to fetch campaign members from Salesforce.
Select the day(s) to run the scheduler to fetch data from Salesforce to Campaign Manager.
Select the Interval (Min) time. It is the frequency (in minutes) that the scheduler runs in between the provided start time and end time. The Minimum Interval (Min) value is 30 and Maximum is 999.
You can also select the Time Slot (Max 3 Slots) option. Use this to configure a minimum of 1 or a maximum of 3 slots for the scheduler.
Click Save Profile. The adapter reads the profile from the Campaign Manager service and creates a scheduler to fetch campaign members.
Database Configurations
The database table OBD_SFConfigurations controls various aspects of the Campaign Manager - Salesforce CRM integration. The list of configurations is in the table:
Property | Description | Default Value |
---|---|---|
SF_USERNAME | The Salesforce default account username used to access the CRM. | If the profile is created using admin user, these credentials are used. If the profile is created using a non-admin user, the Salesforce user credentials mapped with the user are used for Salesforce authentication. |
SF_PASSWORD | The password used to access the Salesforce CRM application. If Salesforce token is mandatory, the attach the token with the password store it this field. | |
SF_RECEIVED_CAMPAIGN_STATUS | The custom status that is set in Salesforce for the campaign members fetched from the CRM. | Uploaded |
SF_COMPLETED_CAMPAIGN_STATUS | The custom status to be updated in Salesforce for completed or closed contacts. Ensure these statuses are available in Salesforce. | Success |
SF_LCM_CUSTOM_STATUS | Other custom statuses set in Salesforce. For example, Callback can be a status if the outcome in Campaign Manager is Callback. | Rescheduled, NonDialed, Error, ContactExpired, and Callback. Separate each status with a comma. |
SF_EXCLUDED_STATUS | List of members Statuses to be excluded while retrieving the member from Salesforce to Campaign Manager. | Success |
SF_EXCLUDED_HEADERS | Campaign Member headers to be excluded when providing data to Campaign Manager. For example, if we do not want sensitive fields from Salesforce to Campaign Manager, such fields can be excluded. | CampaignId,ContactId,LeadI,IsDeleted,HasResponded,CreatedDate, CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp, FirstRespondedDate, HasOptedOutOfEmail, HasOptedOutOfFax,LeadSource. Separate each header with a comma. |
SF_FETCH_LIMIT | Maximum contacts to be fetched for single request.
| -1 |
SF_FAILED_FILE_MONITOR_INTERVAL | The interval, in minutes, that the Salesforce Adapter monitors failed records in the C:\\SF_Adapter\\failed_status\\ path. | 3 |
SF_FAILED_FILE_MAX_RETRY | The maximum number of retries that the Salesforce Adapter is allowed to update member status of failure records. | 3 |
CREATE_ACTIVITY_DURING_FETCH | This flag determines if an activity has to be created while fetching a record. | true |
CREATE_ACTIVITY_DURING_UDPATE | This flag determines if an activity has to be created while updating a record. | true |
CREATE_ACTIVITY_OUTCOMEID | List of Outcomes (comma separated) for which an activity has to be created. For example, 0,4 (for success and callback) | |
SF_ACTIVITY_SUBJECT | The activity subject that the application creates on Salesforce during download of campaign members. The subject field is replaced with the actual campaign name and the contact's status. For example, Completed, Rescheduled, or Callback | #SFCAMPAIGN# - #STATUS# (or) plain text like Outbound dialer call. |
SF_ACTIVITY_CALLRESULT | The activity status that the application creates on Salesforce during download of campaign members. The Status field is replaced with the actual contact status. For example, Completed, Rescheduled, or Callback. | |
SF_ACTIVITY_DESCRIPTION | The activity description that the application creates on Salesforce during download of campaign members. The status of the contact is set as part for activity description. | Updated to '#STATUS#' status in '#SFCAMPAIGN#' campaign on #DATE# IST |
STATUS_ACTIVITY_SUBJECT | The activity subject that the application creates on Salesforce for call attempts. The call type is either Inbound or Outbound. | Outbound Call |
STATUS_ACTIVITY_CALLRESULT | This is the outcome set by an Agent. | #OUTCOMEDESCRIPTION# |
STATUS_ACTIVITY_DESCRIPTION | The call comments as noted by the agent. | #CALLCOMMENTS# by #AGENTID#, #AGENTNAME# |
Note:
If a custom Salesforce campaign member status is not available, our adapter updates the campaign member with default status as Sent. To avoid this, ensure all custom campaign member statuses are available in OBD_SFConfigurations table.