Table of Contents

Replicating CaliberMind Attribution Data to Salesforce

Nic Zangre Updated by Nic Zangre

Why Copy Attribution Data to Salesforce?

This documentation is focused solely on best practices for migrating CaliberMind attribution data to your Salesforce instance. Other CRMs will need different configurations and support.

For decades, revenue operations professionals have been striving to make Salesforce the single source of truth. One of the core motivations for this is to increase adoption. If the reports we need are in our CRM, suddenly we have executive teams logging into the product, which increases their aptitude for enforcing usage with their teams.

The main reasons we hear marketers ask us to support them in transferring attribution data into Salesforce are:

  • They want to build trust with their sales team by surfacing how attribution is being split across specific activities on their opportunities
  • They want the sales team to see the different touchpoints marketing is curating with the brand across their account
  • They want executives who are used to getting their reports  in their CRM to not have to navigate to another system

All of these are great reasons to push attribution into your CRM. This documentation is meant to help you create the permissions, related lists, custom object, and report types needed to get the most out of attribution in your CRM. This strategy can also be used when switching attribution vendors to CaliberMind-- we can replicate the previous vendor's schema in SFDC to ease the disruption of switching.

Best Practices for Integrating Attribution with Salesforce

One of my most painful memories as a Salesforce administrator was acting as arbiter whenever departments reported conflicting metrics. Inevitably, one team was using a different filter than the other, or they ran their numbers on different days, and something had legitimately changed. A simple conflict in filters created an exaggerated conflict between teams in a down quarter (picture your VP of sales challenging whether or not a marketing leader’s team actually contributed 50% of pipeline – it gets messy fast!).

If your company has historically used Salesforce for their first and last touch attribution (otherwise known as “lead source” or “opportunity source” reporting), we don’t recommend pushing these models from CaliberMind into your CRM. The data points will be different because CaliberMind is not looking just at the primary contact associated with your opportunity – CaliberMind looks across the account, including leads. You can read more about why the data is different here.

We recommend focusing on a single multi-touch attribution model, and it should be the model you use when you report on attribution in front of other departments. Using a single model will reduce the chances that your Salesforce users accidentally bloat the pipeline or bookings number because they’re using more than one model, and it cuts down on the chance that they will use a different model in an attempt to debate the validity of your team’s reports.

How To Integrate Attribution - What You’ll Need

In order to migrate attribution data into your CRM from CaliberMind, you’ll need to work with your Customer Success team at CaliberMind and your Salesforce Administrator. You’ll need full administrative rights in Salesforce because you will need to:

  1. Create a Custom Object
  2. Create Custom Report Types
  3. Update existing page layouts
  4. Create summary or roll-up fields on your existing objects
  5. Create Permission Sets
  6. Create a Dashboard with Reports

We’ve linked Salesforce documentation above to help give background on how to do these things. The following documentation assumes your admin has experience with each of these items, so we focus on describing what needs to be done for this project.

The Custom Object: CM Attribution

The custom object in Salesforce will not only house your touchhpoint details and attribution dollar allocation – it will also contain lookups that allow you to see and summarize data by Campaign, Account, Opportunity, and person records (both lead and contact). We recommend creating the fields listed below, then thinking through which fields would be most helpful for your different profiles when setting up related lists or page layouts.

FIELD LABEL

FIELD NAME

DATA TYPE

Description

CaliberMind Attribution Name

Name

Auto Number

Primary Key

Campaign

Campaign__c

Lookup(Campaign)

A lookup relationship to the Salesforce campaign (if applicable), based on the Campaign Id

Campaign ID (18)

campaign_id__c

Text(255)

The unique ID of the campaign either generated by your CRM, advertising platform, or CaliberMind depending on the type of touch.

Campaign Name

campaign_name__c

Text(255)

The CRM or ad platform campaign name.

Campaign Type

campaign_type__c

Text(255)

The type of campaign designated in your CRM or mapping logic in CaliberMind.

Company ID (18)

company_id__c

Lookup(Account)

A lookup relationship to the Salesforce Account (if applicable), based on the Company Id associated with the attributable event touch.

Contact

Contact__c

Lookup(Contact)

A lookup relationship to the Salesforce Contact (if applicable), based on the Person Id associated with the attributable event touch.

Days to Value

days_to_value__c

Number(18, 0)

Number of days that passes between the activity date and the date the attribution record was created (opportunity open date).

Event Detail

event_detail__c

Long Text Area(32768)

A detailed description of the event associated with the record.

Event System

event_system__c

Text(255)

Which system the event was generated whether that be your CRM, MAP, or ad platform.

Influence

influence__c

Percent(3, 2)

The percentage of the opportunity's total amount allocated to this touch.

Is Won

is_won__c

Checkbox

A True/False flag that indicates the associated opportunity record is marked Closed Won in your CRM.

Lead

Lead__c

Lookup(Lead)

A lookup relationship to the Salesforce Lead (if applicable), based on the Person Id associated with the attributable event touch.

Campaign Member ID (18)

member_id__c

Text(255)

The ID in your CRM or generated by CaliberMind when a record is created because a person interacts with a campaign.

Model Name

model_name__c

Text(255)

The name of the attribution model used to calculate the value associated with the record.

Model Type

model_type__c

Text(255)

Whether the opportunity associated with the record is Lost, Won, or Open according to its stage.

Opportunity

opportunity__c

Lookup(Opportunity)

A lookup relationship to the Salesforce Opportunity associated with the attributable event touch.

Opportunity Create Date

opp_create__c

Date

Allows admins to report on pipeline generated when using a campaign report type.

Opportunity Close Date

opp_close_c

Date

Allows admins to report on bookings generated when using a campaign report type.

Opportunity ID (18)

Opportunity_Id__c

Text(18)

The unique ID generated for the opportunity in your CRM.

Person

person__c

Text(255)

The email address associated with the person that is associated with the event.

Pre-Opportunity (y/n)

pre_opp__c

Checkbox

A true/false indicator that is true when the event took place prior to the opportunity creation date and is false when the activity took place between opportunity creation and close.

Primary Campaign (y/n)

primary_campaign__c

Checkbox

Whether or not the attributable event touch was the associated Opportunity’s primary campaign.

Response Date/Time

response_datetime__c

Date/Time

The date and time the touch took place.

Source

source__c

Text(255)

The system the touch was generated in whether it be CRM, LinkedIn, MAP, or other platform.

Total Value

total_value__c

Currency(10, 2)

The total dollar amount associated with the opportunity.

Touch Value

touch_value__c

Currency(10, 2)

The portion of the total amount "credited" to this touch.

Weighted Touch Value

weighted_value__c

Number(10, 2)

The touch value multiplied by the probability of the opportunity closing.

If you choose to port over multiple models, we recommend not creating the Model Name, Model Type and weight fields and changing Touch Value to [Model 1 Name] Value, and adding a field per additional model. We suggest doing the same for the Weight values. For example, if I choose to migrate even-weighted data, chain-based data, and a first-touch model data – the field values would look something like the following on the CM Attribution page layout:

  • Even-Weighted Touch Value
  • Even-Weighted Touch Weighted
  • Chain-Based Touch Value
  • Chain-Based Touch Weighted
  • First Touch Value
  • First Touch Weighted

The Custom Object Page Layout: CM Attribution

We recommend creating two page layouts on a single record type. One page layout should be for non-admin users and should only contain the most essential information such as any linked objects, a description of the event, and the model touch value. The admin page layout should contain all fields to make troubleshooting simpler.

The Custom Report Types

Once you create the CM Attribution object, we recommend creating a minimum of four custom report types:

  • Opportunities with and without CM Attribution
  • Opportunities without CM Attribution
  • Campaigns with and without CM Attribution
  • Campaigns without CM Attribution

The report types without CM Attribution are meant to make troubleshooting easier. If you can see which records do not have attribution, this may flag an issue in the system. We recommend including all fields on the opportunity object and CM Attribution object so that you can create extensive reports meant to help with troubleshooting.

Optionally, you can also create report types with accounts, leads, or contacts and CM attribution, but we find the greatest utility in reporting against opportunities and campaigns.

Related lists are an easy way to display key information about attribution to your Salesforce users without forcing them to click into each child record. We recommend that you meet with your key stakeholders to determine which data they would like to see, but have provided some suggestions by each object.

Opportunity

FIELD LABEL

FIELD NAME

DATA TYPE

Touch Date

touch_date

Date

Person

person__c

email

Campaign Type

campaign_type__c

Text(255)

Campaign Name

campaign_name__c

Text

Pre-Opportunity (y/n)

pre_opp__c

Checkbox

Touch Value

touch_value__c

Currency(10, 2)

Weight

weight__c

Number(10, 2)

Campaign

FIELD LABEL

FIELD NAME

DATA TYPE

Touch Date

touch_date

Date

Person

person__c

email

Company

company__c

Lookup

Opportunity

opportunity__c

Lookup

Pre-Opportunity (y/n)

pre_opp__c

Checkbox

Touch Value

touch_value__c

Currency(10, 2)

Weight

weight__c

Number(10, 2)

Account

FIELD LABEL

FIELD NAME

DATA TYPE

Touch Date

touch_date

Date

Person

person__c

email

Campaign Type

campaign_type__c

Text(255)

Campaign Name

campaign_name__c

Text

Opportunity

opportunity__c

Lookup

Pre-Opportunity (y/n)

pre_opp__c

Checkbox

Touch Value

touch_value__c

Currency(10, 2)

Weight

weight__c

Number(10, 2)

If you would like, you can also add related lists to your Contact and Lead page layouts.

The Rollup Fields

Rollup or Summary fields require a master-detail relationship between the object you want to display the summary data on and your CM Attribution custom object. We find that marketers prefer this to take place on the Campaign object. This allows marketers to summarize the total attributed dollars on the campaign, pre-opportunity dollars, and post-opportunity dollars for both pipeline and bookings data. This will allow your marketing team to get a sense of ROI and understand how their campaigns impact pipeline and bookings.

The Permission Sets

It’s possible to control object-level and field-level access at the Profile level, but we recommend creating permission sets. This allows you to assign access at a granular level and remove it quickly should you ever need to. We recommend creating two permission sets:

  • CM Attribution Admin
  • CM Attribution Read Only

The Admin level profile should only be given to system administrators and your integration user for CaliberMind. This profile should allow full access to the CM Attribution object. The majority of profiles should only need read permission to allow visibility of all fields but not allow edit, create, or delete permissions.

The Reports

We recommend starting with six reports and building on that foundation. Use your discretion. If your business is primarily interested in certain opportunity types or thinks of the summarized data differently than outlined below, please feel free to change or add additional reports to support your dashboard.

Report 1: Pipeline Generated by Campaign Type

These instruction steps take place in Salesforce:

  • Start by creating a report with report type Opportunities with and without CM Attribution.
  • The filter should show all opportunities owned by all people and be organized by created date (or your opportunity qualification date - whatever is used by your sales organization to run pipeline generation reports). We recommend setting the filter to THIS FISCAL QUARTER, LAST 4 FISCAL QUARTERS. 
  • We recommend setting the Group Rows to Create Date and updating it to group by Fiscal Quarters. Then group the report by Campaign Type.
  • We recommend adding the Pre-Opp column to Group Columns.
  • Make sure the touch value is summarized and not the opportunity amount fields.
  • Add a stacked column chart. This should mirror the Attribution 2.0 dashboard in CaliberMind with the Chart and Table set to group by Campaign Type:
  • Save your report to a public folder so users can access the visualization.
Report 2: Bookings by Campaign Type

These instruction steps take place in Salesforce:

  • Start by creating a report with report type Opportunities with and without CM Attribution.
  • The filter should show all opportunities owned by all people and be organized by close date. We recommend setting the filter to THIS FISCAL QUARTER, LAST 4 FISCAL QUARTERS. Also add a filter for Is Won IS TRUE.
  • We recommend setting the Group Rows to Close Date and updating it to group by Fiscal Quarters. Then group the report by Campaign Type.
  • We recommend adding the Pre-Opp column to Group Columns.
  • Make sure the touch value is summarized and not the opportunity amount fields.
  • Add a stacked column chart. This should mirror the Attribution 2.0 dashboard in CaliberMind with the Chart and Table set to group by Campaign Type:
  • Save your report to a public folder so users can access the visualization.
Report 3: Bookings by Campaign 

These instruction steps take place in Salesforce:

  • Start by creating a report with report type Campaigns with and without CM Attribution.
  • The filter should show all campaigns, minus operational or other campaign types that are not eligible for attribution. If you are diligent about your campaign start and end dates, you may use that to limit the data to a certain period. Also, add a filter for Is Won (on the CM Attribution object) IS TRUE.
  • We recommend setting the Group Rows to Campaign Name.
  • We recommend adding the Pre-Opp column to Group Columns.
  • Make sure the touch value is summarized and not the Campaign Influence fields. Then sort the table by Touch Value in Descending order.
  • Save your report to a public folder so users can access the visualization.
Report 4: Pipeline Generated by Campaign

These instruction steps take place in Salesforce:

  • Start by creating a report with report type Campaigns with and without CM Attribution.
  • The filter should show all campaigns, minus operational or other campaign types that are not eligible for attribution. If you are diligent about your campaign start and end dates, you may use that to limit the data to a certain period.
  • We recommend setting the Group Rows to Campaign Name.
  • We recommend adding the Pre-Opp column to Group Columns.
  • Make sure the touch value is summarized and not the Campaign Influence fields. Then sort the table by Touch Value in Descending order.
  • Save your report to a public folder so users can access the visualization.
Report 5: Opportunities Created with Attribution

The purpose of this report is to display attribution for opportunities that are generated in the current quarter. This will help your team demonstrate how attribution is calculated and give specific examples of attribution to the sales team to help build buy-in of your model.

These instruction steps take place in Salesforce:

  • Start by creating a report with report type Opportunities with and without CM Attribution.
  • The filter should show all opportunities owned by all people and be organized by created date (or your opportunity qualification date - whatever your sales organization uses for pipeline generation reports). We recommend setting the filter to THIS FISCAL QUARTER. 
  • We recommend setting the Group Rows to Opportunity Name. Then group the report by Campaign Type.
  • We recommend adding the Pre-Opp column to Group Columns.
  • Make sure the touch value is summarized and not the opportunity amount fields.
  • Save your report to a public folder so users can access the visualization.
Report 6: Opportunities Closed Won with Attribution

The purpose of this report is to display attribution for opportunities that are closed won in the current quarter. This will help your team demonstrate how attribution is calculated and give specific examples of attribution to the sales team to help build buy-in of your model.

These instruction steps take place in Salesforce:

  • Start by creating a report with report type Opportunities with and without CM Attribution.
  • The filter should show all opportunities owned by all people and be organized by either your created date or the qualification date your organization uses for pipeline reports. We recommend setting the filter to THIS FISCAL QUARTER.
  • We recommend setting the Group Rows to Opportunity Name. Then group the report by Campaign Type.
  • We recommend adding the Pre-Opp column to Group Columns.
  • Make sure the touch value is summarized and not the opportunity amount fields.
  • Save your report to a public folder so users can access the visualization.

The Dashboard

These instruction steps take place in Salesforce:

To start, your dashboard will have 4 components:

  • Pipeline Generated by Campaign Type
  • Bookings by Campaign Type
  • Top 10 Pipeline Generating Campaigns
  • Top 10 Bookings Campaigns
  1. Add a Stacked Column Chart component and add your Pipeline Generated by Campaign Type report and mirror the chart in the source report.
  2. Add a Stacked Column Chart component and add your Bookings by Campaign Type report and mirror the chart in the source report.
  3. Add a Lightning Table component and add your Pipeline Generated by Campaign report and limit rows to 10.
  4. Add a Lightning Table component and add your Bookings by Campaign report and limit rows to 10.
  5. Save your dashboard and share it with whoever is interested.

How did we do?

Connecting Your Data Warehouse to CaliberMind

Salesforce Connector [via FiveTran]

Contact