In most cases, we want to retrieve and celebrate individual Salesforce records that have (optionally) satisfied specific criteria. For example
New Contacts // no criteria
Won Opportunities // opportunity records that are closed/won
In some cases, however, we want to track high-volume metrics where the total record count or summation of a currency field is relevant — not the individual records. For example
Calls // total number of calls per user/team/organization-as-a-whole
Tasks // total number of tasks per user/team/organization-as-a-whole
These high-volume metrics should be retrieved directly from an aggregated Salesforce Report, rather than querying for individual records in the Salesforce REST API.
Why Should High-Volume Metrics be Aggregated?
A high-volume metric, like phone calls, can be challenging and costly to track on an individual level.
Challenging, because it can be hard to debug a case where 2 out of 50 000 records didn't get synchronized to SalesScreen for unknown reasons.
Costly, because Salesforce has to facilitate high volumes of API requests in order for SalesScreen to retrieve all relevant records. Furthermore, SalesScreen has to store the individual records in numbers that can grow by the thousands for each passing day.
The goal is to create a daily aggregated report that can be synchronized to SalesScreen from that day forward. The report must be formatted in a specific manner so that SalesScreen can consume its aggregated results. This is explained in detail in the Salesforce Steps section below.
When the report has been created, we will create a Report Workflow that is tasked with running the report every 20 minutes and reading its results. This is explained in detail in the SalesScreen Steps section below.
The following steps explain how you can format a Salesforce report, that displays a high-volume metric, in a manner that SalesScreen can consume.
Find or create a report that presents the metric you want to carry over to SalesScreen. If you create a new report, make sure its name contains "SalesScreen".
⚠️ Important Note: The report name cannot have special characters in it, such as "&".
If you found an existing report, copy the report (Save As) and append "SalesScreen" to its new name. Now you can comfortably modify the new version of the report without interfering with the existing one.
This will also make it easier to search for the correct report when configuring the synchronization in SalesScreen afterwards.
For the sake of structure, you can create a report folder called "SalesScreen" and place the report in it. Just make sure this folder is visible/accessible for the Salesforce user who initially authorized the integration. Otherwise, place the report in the Public folder.
Edit the new report and go to the Filters tab. Set the report's "standard" Date filter to TODAY.
Next, go to the Outline tab. Make sure the report's Group Rows section is configured to only group by the user (e.g., Group By: Assigned/Creator/Owner). Make sure the report's Group Columns section remains empty.
Finally, make sure the Detail Rows and Grand Total checkboxes at the very bottom of the screen are unchecked. Save and run the report.
The resulting report should present at simple table that lists users and their total record count for the current day, as well as any other summarized integer or currency fields included in the report.
The following steps explain how you can create a Report Workflow in SalesScreen that is tasked with running an aggregated Salesforce report every 20 minutes and consuming its results.
As a SalesScreen admin, navigate to Manage > Settings > Integrations > Manage Salesforce. You'll land on the workflow dashboard.
From there, click on Create new workflow > Report workflow.
Search for the aggregated Salesforce report in the dropdown menu. Select it and click Apply.
If you can't find the report, it's most likely placed in a private folder in Salesforce, or a folder that the integration user doesn't have access to.
Click on the cogwheel at the bottom of the page.
In the popup window, check the option Accumulate records. Optionally, give the workflow a fitting description.
Go to the next wizard page (Destination).
Select the Activity Type you want this metric to populate under.
Click the cogwheel next to the Activity field and select Custom value. Enter the desired name of the metric in the text field. E.g., Completed Tasks
Scroll down on the page and find the Main User Id dropdown menu. Select the report's aggregated user field. If no options show up, the report's group-by configurations are likely missing.
Below, you'll find the Quantity dropdown menu. Select the report's aggregated record count field.
If the report contains additional aggregated integer or currency fields, you can map those field to the other number fields below.
Finally, Save the workflow.
If the report workflow is successfully created, it should start reading the aggregated Salesforce report every 20 minutes moving forward. Once data is received, SalesScreen will automatically create the Activity and populate the records under said activity.