Skip to main content
Salesforce CPQ

PandaDoc's integration with Salesforce CPQ allows you to easily generate, customize, and eSign quotes from within Salesforce CPQ.

Updated this week

Availability:

PandaDoc: Business annual* and Enterprise annual* plans

Salesforce: “Professional”, “Enterprise”, “Unlimited”, “Developer edition”, "Performance"

*This feature is available as a paid add-on ($20 per user per month) on top of the Salesforce integration paid add-on.

PandaDoc's integration with Salesforce CPQ allows you to easily generate, customize, and eSign professional-looking quotes from within Salesforce CPQ.

PandaDoc CPQ supports two types of integrations with Salesforce CPQ documents:

  • PDF: A PDF is generated by Salesforce CPQ and pushed to PandaDoc as-is

  • Editable PandaDoc documents: Lets you push information from Salesforce CPQ into a PandaDoc pricing table

Features:

  • Variables: Automatically pass information from Salesforce CPQ to PandaDoc documents using variables

  • Create documents: Create PandaDoc documents from a Quote object in Salesforce CPQ

  • Status tracking: Track document status in Salesforce CPQ

  • Sync triggers:
    - Update Opportunity when a Quote's status changes
    - Update Quote status when a PandaDoc document's status changes
    - Set document value on CPQ quote documents to Quote Net Amount


Skip to:

Install PandaDoc CPQ package

Note: You must have Salesforce Admin rights to install and configure the PandaDoc module.

Warning: You’ll be unable to install the PandaDoc CPQ package unless you also have the Salesforce CPQ package installed.

  1. Log into your Salesforce Production/Sandbox organization

  2. Find PandaDoc’s app on SFDC AppExchange

  3. Select Get It Now

  4. Select Install for All Users, then Install

  5. Select Yes, grant access to these third-party websites, then select Continue

  6. The installation process will start and might take a few minutes — once it’s complete, select Done

Post Installation Actions

  • Configure remote site settings

  1. Open the PandaDoc Setup page via App Launcher

  2. Scroll to the bottom and select “show” next to Advanced Settings

  3. Scroll down to the “Remote Site Setting URL” section, then copy the URL

  4. Open Setup > Remote Site Settings > find and choose “UI_API” > click “edit”

  5. Paste copied text to the “Remote Site URL” section

  6. Select Save.

  • Configure PDF package to use PDF mode (optional)

If you plan to send CPQ Quote documents within PandaDoc using PDF mode, we recommend you perform the following step to enable redirecting to the document in PandaDoc once a CPQ Quote document has been created. To do this, go to Setup > Installed Packages > Configure on Salesforce CPQ.

Find the Plugins section and fill the Electronic Signature Plugin with “pandadoccpq.PandaDocElectronicSignaturePlugin”. Once you’ve done this, save your changes.

Assuming you have PDF mode enabled in PandaDoc CPQ Setup, you’ll see the Create as PandaDoc button on the “Generate Document” page. This will send the CPQ Quote Document to PandaDoc and redirect to it.

Connect PandaDoc and Salesforce CPQ

Note: View our setup guide in the bottom right corner of the Salesforce tab in PandaDoc for helpful integration-setup instructions.

  1. In PandaDoc, go to Settings > Integrations > select Salesforce CPQ > Start setup then choose where you would like to enable the integration (Sandbox or Production environment).

  2. You may need to log into Salesforce at this point. When prompted, select Allow to authorize PandaDoc access to Salesforce.

  3. Your PandaDoc account is now connected to Salesforce. Proceed to install the PandaDoc package on AppExchange as described in the next section.

Note: This integration allows you to create, track, and pass data to PandaDoc documents in multiple workspaces. Enable the integration once and log into the desired workspace. In the “Related Documents” section, you will see only the documents created within the integration and located inside the workspace you are logged into.

Configure PandaDoc for a Quote object

  1. Open a Quote object

  2. Select the gear icon at the top right > Edit Page

  3. You will be transferred to Edit mode, where you can add the PandaDoc module to the page layout

  4. On the left panel, scroll down and find the PandaDoc Documents Lightning component

  5. Drag and drop it on the page layout wherever you like (you can add as many PandaDoc components as you wish)

  6. When you add it, adjust the component height and display mode: “Related documents” will show all documents created from a Quote, and “Template selection” will show templates to create documents from

  7. Save and activate the component by selecting Save and Activation in the top right


How to use PDF mode

  1. In Salesforce, click on App Launcher at the top left, then select PandaDoc CPQ Setup from the dropdown menu. Next, select “PDF format” under Choose a format for your quote documents.

  2. Go to Setup > Installed Packages > Configure on Salesforce CPQ. Find the “Plugins” section and fill in the Electronic Signature Plugin with the following: “pandadoccpq.PandaDocElectronicSignaturePlugin”. Once you’ve done this, save your changes.

  3. To create Quote documents using Salesforce CPQ, your organization must have at least one Quote template in deployed status. Your administrator can modify the content, formatting, and style of these quote templates. When generating a Quote document in Salesforce CPQ, you will be prompted to select a Quote template.

  4. After setting up and ensuring the right Quote template is in place, Salesforce is ready to transfer generated Quote documents to PandaDoc. Find a Quote you’d like to generate a document from, then check its lines and details. The documents created in PandaDoc for this quote will be accessible in the PandaDoc tab on the Quotes page. These documents will be also accessible at https://app.pandadoc.com.

  5. To generate a Quote document in Salesforce CPQ, select Generate document.

  6. You’ll then be prompted to choose the quote template and paper size, as well as a file name for the quote document and resulting PDF. Finish this screen by selecting Send as PandaDoc to open the generated Quote document in PandaDoc’s editor. From here, you can add your recipients by selecting Invite at the top of the page > Recipient > Add recipient, then enter their contact information. If you have the recipient info saved in your PandaDoc contacts, you can start typing the recipient's name or email address. Once done, send your document.

  7. Next, select Return to object. Under the PandaDoc tab, you can easily review the document status and select it to open in PandaDoc.

How to create editable PandaDoc documents

Pass data from Salesforce CPQ into PandaDoc

To pass data from Salesforce to a PandaDoc document, create your template and make sure you set it up with variables.

Passing Salesforce fields into PandaDoc

Before setting up your template with variables, create a variable list for each object you will use PandaDoc with.

Note: Variables must be set up for each object individually. Only the variables listed in a particular object will be available when creating a document from it, as cross-object population is unavailable.

  1. Select App Launcher, then go to Pandadoc Setup.


    Scroll down to “Salesforce to PandaDoc data flow” and select Configure tokens.

  2. Next, choose the Quotes object for which you’d like to modify variables.

  3. You’ll see a default list of variables on the right. To add more variables, check the fields you’d like to add to the variables list, then select Save.

  4. Open your PandaDoc template in a separate browser window, then copy-paste variable names (including square brackets) into the template.

When you create a document from Salesforce using this template, variables will be filled out with information from the CRM.

Note:

  • Date variable formatting depends on the default date format set up in your workspace settings.

  • Currency variable formatting is based on the recipient view locale. Custom money variables will pass to the document without a currency symbol and formatting.

Warning: Any encrypted text field can’t be passed through a variable.

You can also review the list of variables along with the data that will be passed in a Salesforce record.

  1. Open your template in PandaDoc (go here to learn how to create a new one).

  2. Open Salesforce CPQ in a separate tab. In the Quote, select the gear icon in the top right corner, then select Variables. You’ll now see a list of available variables showing entity fields and their associated values in Salesforce CPQ.

  3. Copy-paste these variables (including square brackets) into the template.

Passing quote line fields into PandaDoc pricing tables

Note: You’ll be unable to map quote line items with quote builder block columns.

You can extract values from quote line fields and display them in a pricing table. These values are pulled in a text format, and all calculations are executed within the Salesforce Quote environment.

To pass Quote line fields to a PandaDoc pricing table, first, make sure that the Quote line-related list is mapped to the pricing items-related list of the Quote object. To do this, go to PandaDoc CPQ Setup > Object customization settings > SBQQ__Quote__c > Setup.

To begin, you'll need to set up a pricing table within the template you intend to use. Follow these steps:

  1. Insert a pricing table into your template by dragging and dropping it wherever you like.

  2. Hide the default pricing table columns by selecting the small arrow in the top right corner of each column header, then by selecting Hide column.

  3. Add text columns by selecting the plus sign on the right side of the pricing table, or by right-clicking any cell. Choose Insert column to the right and select the Text column option. Add as many text columns as you like.

  4. Rename these columns by double-clicking on the header of each cell, then typing the corresponding Quote line field names.


Next, establish a connection between the Quote line item fields and the text columns you've added by following these steps:

  1. Double-click on the blue placeholder within your pricing table

  2. On the left, copy-paste the field names (without square brackets) from the Quote line item field mapping in Salesforce

Important!

For CPQ Quotes and Quote lines, field values are transmitted to the PandaDoc template as locale-formatted text. This preserves formatting from Salesforce CPQ.

As an additional step, consider hiding the standard pricing table footer rows, as all calculations will be handled within Salesforce CPQ. Here's how:

  1. Select the small arrow at the top right of a footer cell

  2. Select Hide row

Instead of these footer rows, you can introduce a text block or table block below the pricing table, then populate these blocks with any Salesforce CPQ variables you require.

Important:

When your quote contains quote line groups, the items within each group will be automatically pulled into corresponding sections within the generated pricing table, named after the quote line groups.

Your template should now be set up. Once you generate a document using this template, the Quote line item details will be pulled according to the data merge setup. Keep in mind that no calculations will be performed within the pricing table if you make changes later. To edit values in the pricing table, access the associated Quote, apply your modifications there, and re-generate the document.

Tip:

We recommend locking the pricing table and standard table to prevent document creators from modifying the pulled variables.

Create PandaDoc documents in Quotes

Now that you've successfully created and configured your template, you're ready to move forward with generating and sending documents directly from Salesforce.

Here's the process:

  1. Navigate to a record and scroll down to the PandaDoc module. Select New Document.

  2. Choose a template from your selection, or pick multiple templates to bundle them.

  3. After that, select Add items and assign recipients to their respective roles, if applicable.

  4. Select Continue to review your document. Make sure to verify variables, content, the recipient list, and reminders before you send the document.

  5. Return to the Salesforce record to keep track of your document's status.

  6. Once a document is marked as completed, its corresponding .pdf file will appear under Notes & Attachments in the record.

Sync triggers

Update Opportunity when Quote status changes

This trigger allows you to update the Opportunity stage whenever its primary Quote document’s status changes.

To enable this feature in Salesforce, select App Launcher, then PandaDoc CPQ Setup from the dropdown menu. Scroll down to Document trigger settings, then turn on “Change Opportunity Stage on Primary Quote's Document changes”.

Note: An Opportunity’s status will change according to the status mappings from the Change Opportunity stage trigger.

Set Document Value on CPQ Quote Documents to Quote's Net Amount

This trigger allows you to automatically set the PandaDoc document value to the CPQ Quote's Net Amount (SBQQ__NetAmount__c) when a document is created from a Salesforce CPQ Quote (either in editable or PDF mode).

Update quote status when PandaDoc document status changes

This trigger allows you to update the Quote status whenever a PandaDoc document that’s been created from a Quote undergoes a status change.

To turn on this feature in Salesforce:

  1. Access App Launcher and select PandaDoc CPQ Setup from the dropdown menu

  2. Navigate to Document Trigger Settings and enable the Change Quote status trigger

After turning on the trigger, select Setup to configure mapping between document status and Quote status.

Note: If you have different record types, then status mapping should be configured separately for each.

Here’s an example:

  • When a document is created and its status is draft, the Quote's status changes to approved

  • When a document is completed, the Quote's status changes to accepted

Note: Implementing this feature requires post-installation adjustment of the 'UI_API' Remote Site setting.

Did this answer your question?