CPQ / Admins / Marketers

Combining Salesforce CPQ & Price Promotion Campaigns

By Dario Finotti

Salesforce CPQ brings a whole new level of power into Salesforce, allowing you to build complex pricing engines to support your sales team in sending out accurate quotes. There are many Salesforce features that you can combine with Salesforce CPQ in order to build cool solutions to ultimately delight your customers and internal users.

What we are going to run through in this tutorial, is how to combine Salesforce Campaigns & CPQ.

Business Case – A stakeholder in your business has asked you to set up a commercial campaign for a specific product, where a promotional price will be applied to specific contacts within this Campaign

In this tutorial, we will learn how to use…

  • Salesforce Campaigns to manage a date range and target
  • Salesforce CPQ Price rules associated with Lookup queries to check eligibility and apply the promotional price during the selling process.

If you don’t have a Salesforce environment with CPQ, you can sign up for a shiny new one here.

Prep Work on Campaign and Campaign Members

Firstly, we need to create an autonumber field to apply a promotional price, only to members of a specific Campaign.

  • Go to Setup
  • Select the Object manager tab
  • Search “Campaign” on quick find
  • On the field and relationship section create a new field like in the image below
  • Add to the page layout

Campaign Members

Next, we need two cross-object formula fields on campaign member, we will use these later to match between campaign members and lookup queries.

  • Go to Setup
  • Select Object manager tab
  • Search “campaign member” on quick find
  • Go to field and relationship section and create two formula fields like in the images below
  • Add to the page layout

The Account ID brings account id from contact related to the campaign member.

CampaignNumb&Status takes the campaign number and campaign status from campaign to campaign member. If you have more criteria you want to built-in, you can add it to the formula.

Step 1: Create a Campaign & Add Your Target Audience

Now let’s create a campaign that we can test with…

  • Go to the App launcher
  • Type “Campaign” on item search and click on “Campaign” item
  • Click on “New” button
  • Create a new campaign with the active checkbox “true”

The result will be similar than the one in the image below

Now let’s go ahead and add in the target contacts into Campaign members. These contact will receive the promotional price when they go through the sales cycle.

  • Go to the campaign record created previously
  • On related lists click on “Add contacts”
  • Write contact name on search box and click “plus” button near the name
  • Click Next

You can also add campaign members from reports, import a csv list or import through the APIs. For more information on this take a look at the official Salesforce help article.

To view the results of our previous actions, go to the campaign member related list, click on “view all”, and then on one of the campaign members created.

You will see a similar detail page, including all of the formula fields we created before.

Step 2: Price Rules

Price rules automate price calculations and update quote line fields. This is a very helpful feature inside the Salesforce CPQ package.

Before creating a new Price rule we need to customize some settings that we will use in the next steps.

The first one is to create a relationship between the price rule object and standard campaign member object:

  • Go to Setup
  • Select the Object manager tab
  • Search “Price Rule” on quick find
  • Go to field and relationship section and search for “Lookup Object” field
  • Add a new picklist value called “CampaignMember”

Now it’s time to create our first shiny price rule:

  • Go to the App launcher
  • Select the App “ Salesforce CPQ”
  • Click the tab “Price Rules”
  • Create a new Price rule clicking on “New” button
  • Select the value “CampaignMember” on lookup object
  • Choose the promoted product on “Product” lookup field
  • Fill other fields like in the image below

Step 3: Lookup Queries

Lookup queries added to a price rule, help to evaluate field values on objects other than quotes. You can then use the rule’s actions and conditions to send those values to a quote line item.

On price rules, we selected the Lookup Object “CampaignMember”, which defines the object containing the fields you want to evaluate. Rules also contain a related list to create lookup queries. Lookup queries reference the fields on the object that you can compare against your quote, quote line, or product option fields.

First of all, we need to add the lookup field on the Lookup query object. We will use it later:

  • Go to Setup
  • Select Object manager tab
  • Search “Lookup Query” on quick find
  • Go to field and relationship section and search for “Lookup Field” field
  • Add the developer name of the two fields “Account_ID__c”, “CampaignNumb_Status_c” as new picklist values

This operation lets you define which fields the lookup query needs to match between campaign members and quote or static parameters.

Now we are ready to create our Lookup queries records:

  • Go to the App launcher
  • Select the App “ Salesforce CPQ”
  • Click on the tab “Price Rules”
  • Select the price rule created on the previous step “April campaign Price Rule”
  • Scroll to the detail page until you can see the related list “Lookup Queries (Price Rule)”
  • Click on “New” button
  • Fill new record fields like the images below

This lookup query compares if the account ID on the current quote is at least in one of the campaign member

The second lookup query narrow result considering only members of campaign number “CN0004” when it’s active.

When you click “View all” on the related list, it should look similar to the below…

Step 4: Price Action

The final step on price rules is to create an action that performs when lookup queries conditions are true.

Follow these steps to create price action:

  • Go to the App launcher
  • Select the App “Salesforce CPQ”
  • Click on the tab “Price Rules”
  • Select the price rule created on the previous step “April campaign Price Rule”
  • Scroll the detail page until the related list called “Price Action”
  • Click on “New” button
  • Fill new record fields like the images below

The rule will knock 10 dollars off of the price, adding your discount. You can also use percentage or write a new price.

At the end you price rule related list will be like in the image below,with price action and lookup queries:

Step 5: Test Your Work!

In this short video I recorded, you can see the results during the sales process. I performed the following actions in order to test it…

  • Check the original price on your product
  • Check the account related to the contact in promo campaign
  • Work on a quote linked to that account
  • Add your promoted product as a quote line and verify that price rule fires!


I hope this tutorial about how you can use connect Campaigns and Salesforce CPQ, has shown you the power of these features combined. This is just one example of how you can use  Price Rules, Price Actions & Lookup Queries, all without a single line of code! Here are some notes on best practices to avoid issues.

  • Campaign members in a promotional campaign must only contain one contact for each account
  • For a well designed CPQ implementation limit active price rules up to 50, but if they use lookup queries like in our case it is recommended to stay under 3 active at time.

The Author

Dario Finotti

Dario is an enthusiastic Salesforce solution and Application architect based in Milan - Totally in love with ohana culture from 2013, he achieved 13 Salesforce certifications.

Leave a Reply

24th - 27th November


50% off

all courses