Issue
If you are using Campaign Attribution and have Account-based model types set up, you might see the following error message in your Full Circle Diagnostic Logs:
2021-12-29 06:23:21 Severity:Error Diagnostic info: Unable to process influence on account 001i000000AZpmLAAT due to excessive data skew
This error message is letting you know that our platform ran up against a Salesforce limitation and was unable to process the Campaign Attribution for a specific account(s). Due to Salesforce's multitenant environment, they put limitations on how many records can be processed at once in an individual org. This limit is 50,000 records. When it's exceeded SFDC will halt the entire process job.
We see excessive data skew on Account-based models when an account has a large number of contacts (usually 10,000 or more). Consider an opportunity related to an account with 10,000 contacts, with an average of 5 campaign members each: Any time campaign attribution goes to process this account, it will throw a skew error because it hits that 50,000 record limit.
Solution
Using the Salesforce platform, there is currently no way to calculate account-based campaign attribution on accounts with this many related records. Therefore the only workarounds we can offer are:
- Don’t do account-based attribution at all. Use opportunity models instead.
- Continue to do account-based attribution and exclude the accounts causing skew from attribution.
Removing Accounts from Attribution
I. Determine which accounts are most likely causing skew.
- Open Developer Console
- Click "Query Editor"
- Enter the following and click "Execute"
SELECT AccountID, COUNT(Id)
FROM Contact
GROUP BY AccountId
HAVING COUNT(Id) > 1000
ORDER BY Count(Id) DESC
This will show you all Account ID’s that have over 1,000 Contacts.
NOTE: if the results return too many, try “10000” in row 4, or “5000” or “8000”. If too few, try “500.”
Now that you have a list of Account ID’s with lots of contacts, decide which you want to eliminate from attribution. We suggest looking into these accounts and looking at the actual contact numbers to decide which to eliminate.
II. Remove those accounts from attribution
The best way to remove accounts from attribution is to use the "Exclude from Campaign Attribution" formula checkbox on the Opportunity object, and then select that field in your Account models. For more information on how to use this field, see this article.
III. Follow Up Suggestions
As is often the case with Salesforce and Full Circle, there is no one size fits all solution. It could be that some accounts have 50 contacts with 1,000 campaign members each, which would cause skew and not show up using the query in step I above. If you do everything in this article and some accounts still throw skew, continue to monitor the Event Logs after each Campaign Attribution Database Rebuild, and adjust as needed.
Comments
0 comments
Please sign in to leave a comment.