The Salesforce.com integration uses the Salesforce Bulk API to synchronize petition and signature data between ControlShift and Salesforce two systems once an hour. The bulk API is used to reduce the API usage quotas, and save customers money.
We create Contact records in Salesforce for each signature that happens inside ControlShift, and Campaign records for each petition. We also create Campaigns for all petition creators, and for everyone who interacts with ControlShift.
A CampaignMember is created for each person who creates a petition in the "petition creators" Campaign:
'Name' => 'ControlShift petition creators',
'Type' => 'ControlShift',
'Description' => 'Members who have created a petition',
'IsActive' => 'true'
A CampaignMember is created for each person who signs any petition in the "all signers" Campaign:
'Name' => 'ControlShift Petition Signers',
'Type' => 'ControlShift',
'Description' => 'Members who have signed any ControlShift petition',
'IsActive' => 'true'
A CampaignMember is created on each Campaign which mirrors each ControlShift petition:
'Name' => "your-petition-url-slug signers",
'Type' => 'ControlShift',
'Description' => "Signers of the campaign 'Your Petition Title' on the ControlShift Toolset",
'IsActive' => 'true'
It is possible to add additional custom fields from each ControlShift petition to the Campaign records that mirror each petition.
CampaignMembership records have the following format:
'CampaignId' => 123, # Salesforce Campaign ID
'ContactId' => 123, # Salesforce Contact ID
'ControlShiftId__c' => 123 # custom field with ControlShift's signature ID
Contact records have the following format:
'FirstName' => signature.first_name,
'LastName' => signature.last_name,
'MailingPostalCode' => signature.postcode,
'Phone' => signature.phone_number,
'Email' => signature.email
Where signature is a ControlShift signature. It is possible to add additional custom fields from each ControlShift signature to the Contact records that mirror each petition signature. Potential additional fields include locale, source code, etc.
A CampaignAdmin record is created to mirror the creator of each petition. This CampaignAdmin record is associated with both a Contact and Campaign.
Comments
0 comments
Please sign in to leave a comment.