Traverse Multiple One-to-Many Relationships in Salesforce Spiff

Return data for an object that's separated by multiple layers of a relationship in Salesforce Spiff.

Required Editions

Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition with Web Services API Enabled
User Permissions Needed
To create a data relationship:

A Spiff user role with this permission turned on.

Designer Configuration: Manage

For example, maybe you want to sum all opportunity products per account, which requires traversing an one-to-many relationship from account to opportunities and a one-to-many relationship from opportunity to opportunity products. We recommend that you start in the middle.

  1. Create a one-to-many relationship, OpportunityToProducts, from opportunity to opportunity products.
  2. On the opportunity object, create a datasheet calculation that sums all related opportunity product amounts per opportunity.
    OpportunityProductTotal = sum(OpportunityToProducts, ProductPrice)
  3. Create a one-to-many relationship, AccountToOpportunities, from account to opportunities.
  4. On the account object, create a datasheet calculation that sums all related OpportunityProductTotal amounts.
    AccountTotal = sum(AccountToOpportunities, OpportunityProductTotal)

You can apply this same approach for any data type or field.