Relating Content ROI records in Salesforce to custom objects Cedric Lemaire May 03, 2021 14:23 Showpad Content ROI allows you to get insights on assets, content, activities, etc., from Showpad straight within Salesforce, enabling you to tie Showpad content to team and revenue metrics. Content ROI is based on the records that sales rep log shares to within Showpad. Out of the box, users can relate these logged activities to Salesforce Accounts/Opportunities, or when the ‘advanced logging’ feature is active, also to custom objects: ContentROI contains references to Account / Opportunity as part of its logic and dashboards, but for custom objects, you need to perform some manual customization steps as Salesforce admin. Manual customization steps Create a custom lookup field on the Showpad Activity Object Open the Process Builder from setup, and create a new process. Use these settings: Make the process start on the Task object when it is created or edited:Condition 1: Showpad Activity field not null (also make sure to check advanced > only when specified changes are made to not have this Process fire unnecessarily)Condition 2: see if Task was related to your custom object (since ‘whatId’ of a task is ‘polymorphic’, i.e. can point to different types of records). For this we use the technique detailed in this Salesforce article, i.e. check the initial 3 characters of the id match your custom object.First, you need to know the initial 3 characters of your custom objects - do this by browsing to a specific record and noting the first three characters in the URL after the final / character. In this case, these are a05, but this differs in each case. (Note: you can view this both in Classic and Lightning UI.) Next, if this condition is true, we define an action to update the Showpad activity: Set it to update the lookup field you created in step 1, using a field reference pointing to Task > WhatID. Save and activate your Process. From now on, new Content ROI records will be linked to your custom Task object. To verify this works, perform a share in Showpad and log it to Salesforce, linking it to a custom object. Under ‘showpad activities’ this should then appear with your custom record filled in on the Activity: Building dashboards/reports The Showpad for Salesforce package downloaded from the AppExchange comes included with a number of reports and dashboards based on Showpad Activity and related records created by ‘ContentROI’: These can be found under Dashboards and are named ‘Asset ROI’ and ‘ContentROI’. You can refer to these dashboards (and the underlying reports) to guide you to build your own, depending on your specific business use case. Note that some of these reports leverage custom report types (found under setup > report types), so you may have to create these first before you can build the same/analogous report. Considerations/Remarks Updating historical ContentROI records Setting this up will not also update historical Showpad Activity records. If you want to efer to existing Showpad Activities, consider updating these using a tool like Salesforce Dataloader or a service like dataloader.io. Updating Showpad activity Account or Opportunity based on custom record values If the custom object you are relating logged shares to, contains in turn a reference to Account or Opportunity, you can also fill this in on the Showpad Activity (existing) lookup fields based on this. Below the steps to do this for account - opportunity is fully analogous. Due to the polymorphism of a task’s WhatID field, the most straightforward way to achieve this is what a second Process with these properties: Start from create/update of object Showpad Activity Add criterion for your custom record not being null (Custom Sales Call in our example) Update the Showpad Activity account field with the Account field on your custom record Save and activate this Process. The end result after having set up both processes correctly is for Showpad Activity records that come in after a rep logs a share to contain the lookup values to both your custom record and accounts: 1