Skip to main content
Salesforce Classic

Create and send PandaDoc documents from Salesforce records, auto-populate data and pricing, and sync contacts and products.

Updated over a month ago

Note: This guide covers the functionality of the latest version of the PandaDoc <> Salesforce integration.

Skip to:

Plan availability:

PandaDoc: Business Annual* and Enterprise Annual* plans

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

*This integration is available as a paid add-on.

What can you do with the integration?

  • Create and send documents from Salesforce Opportunities, Leads, Contacts, Accounts, or Custom objects records;

  • Pull Salesforce records information into PandaDoc documents;

  • Automatically populate pricing tables with Salesforce products;

  • Use Salesforce contacts as document recipients;

  • Sync data between Salesforce and PandaDoc (not available on Group and Professional editions)

Connect PandaDoc and Salesforce

Note: View our setup guide found in the bottom right corner of the Salesforce tab in PandaDoc for a quick and easy integration setup.

  1. In PandaDoc, go to “Settings” > “Integrations” > Click on “Salesforce.” > Choose where you would like to enable the integration: Sandbox or Production environment

  2. You may need to log into Salesforce at this point. Click “Allow” to authorize PandaDoc access to Salesforce

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

This integration allows 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. Sync triggers functionality will work only for one workspace that was connected first.

Install PandaDoc package on AppExchange

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

  1. Log into your Salesforce account: https://login.salesforce.com/

  2. You can find our application on SFDC AppExchange;

  3. Click on “Get It Now”;

    Add_PandaDoc_Module_Salesforce_0.png
  4. Click on “Install for All Users”, then click “Upgrade/Install”;

    Add_PandaDoc_Module_Salesforce_1.png
    mceclip0.png

  5. Select, “Yes, grant access to these third-party web sites” and Click “Continue.”

  6. The installation process will start and might take a while. Click “Done” once it’s finished.

Configure the PandaDoc module under Salesforce record

Note: The below instructions showcase Opportunity configuration but you can use this guide for the other objects (Opportunity, Lead, Account, Contact).

Warning: If you're using Lightning, follow this installation guide.

If you want to add the PandaDoc module to a Custom object, learn more here.

  1. Go to any record under “Opportunity” and click on “Edit Layout.” In the “Opportunity Layout” module at the top, navigate to “Fields” and find “Sections";

    Add_PandaDoc_Module_Salesforce_3.png
    Add_PandaDoc_Module_Salesforce_4.png
  2. Click and drag “Section” to where you want PandaDoc to display on the Opportunity Layout. Once added, set up section properties. Name this new section “PandaDoc Documents.” Set the layout to “1-Column” and select “OK”;

    Add_PandaDoc_Module_3.png
    Add_PandaDoc_Module_Salesforce_6.png
  3. Go back to the “Opportunity Layout” module above. Find “Visualforce Pages” on the left and drag “PandaDoc” to the previously created section;

    Add_PandaDoc_Module_Salesforce_7.png
  4. On the right, click “Properties” and set the “Height (in pixels)” to at least 500. The larger the number, the larger the module is displayed in Salesforce;

    Add_PandaDoc_Module_Salesforce_8.png
  5. In the “Opportunity Layout” module above, click “Save” and wait for the layout to complete saving;

  6. Go to any object under “Opportunities” to check the “PandaDoc Documents” module.

Note: If you created a Custom Object, please refer to this guide to learn how to add PandaDoc to Custom objects in Salesforce.

Configuration steps for PandaDoc.eu accounts

To configure your PandaDoc.eu account, you will need to make two important changes:

  • Update PandaDoc Settings to use pandadoc.eu domain:

    1. In Salesforce, go to "Setup"

    2. In the QuickFind search bar look for "Custom Settings"

    3. Select "Custom Settings"

    4. Select "Manage" next to "PandaDoc Settings"

    5. Select "Edit" for PANDADOC_APP_HOST and PANDADOC_DOCSERVICE_HOST

    6. Change domain from com to eu and click "Save"


      For PANDADOC_APP_HOST you must have https://app.pandadoc.eu/sdk/ domain value.
      For PANDADOC_DOCSERVICE_HOST you must have https://api.pandadoc.eu/public/v1/documents/ domain value.

  • Add api.pandadoc.eu to Remote Site Settings.

  1. In Salesforce, go to "Setup"

  2. Select "Remote Site Settings"

  3. Select "Edit" next to PD_API

  4. Change domain from com to eu

Pass data from SFDC into PandaDoc

In order to pass data from Salesforce to PandaDoc document, first you should create your template and set it up with Variables (same as Merge Fields). Learn more about Variables here.

Note: Although you can add your own variables on documents, please set up variables to pass information from Salesforce in a template.

Passing Salesforce fields into PandaDoc (via variables)

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

Note: Variables must be setup for each object individually. Only the variables listed in that particular object will be available when creating a document from it (no cross-object population.)

  1. For that, click “+” and go to Pandadoc Setup. Scroll down to “Salesforce to PandaDoc data flow” and click “Configure objects”;

    Field_set_access.png
  2. Next, choose an object you want to modify the variables list for. If you have PandaDoc installed in another object, click “Add object”;

    Pass_Salesforce_Fields_via_Variables_0.png
  3. You will see a default list of variables on the right. To add more, check the fields you want to add to the variables list and click “Save”;

  4. Open your PandaDoc template in a separate browser window, copy & paste Variable names with the square brackets into the template.

    mceclip1.png

Warning: Encrypted text field cannot be passed through a variable!

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

Note:

  • Date variables 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.

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

  1. Open a Salesforce record, scroll down to PandaDoc, click the gear icon in the top right corner of the module and choose Variables - this is what you can pass;

    Pass_Salesforce_Fields_via_Variables_2.png
  2. Open your PandaDoc template in a separate browser window, copy & paste Variable names with the square brackets into the template.

    copy_variable.gif
    Pass_Salesforce_Fields_via_Variables_3.png

Note: Variable value passed to PandaDoc might be different from what the field looks like in Salesforce, see the second screenshot below. This is due PandaDoc passing the root field value, not the display value in some cases. Learn here how to format date fields that are passed from Salesforce.

copy_variable.gif
Pass_Salesforce_Fields_via_Variables_3.png

Note: In case the field in Salesforce is empty, the Variable in the document will not be populated and you will have to fill it in manually.

Passing Recipients from Salesforce to PandaDoc

Note: Passing recipients info best works with PandaDoc Roles. Learn how to setup Roles on a Template here.

By default Salesforce pushes the following recipient information depending on an object where your PandaDoc module is located:

  • from Opportunity: Contact Role info

  • from Account: Contact info + possible to push Account info

  • from Lead: Lead info

  • from Contact: Contact info

You can configure which field from Salesforce will be mapped to a Role in PandaDoc as well as set up which fields will be send as the following parameters:

  • First name

  • Last name

  • Email

  • Company field

  • Phone field

  • Role field

  1. Go to “Pandadoc Configure Recipients”;

    Passing_Recipients_Salesforce_PandaDoc_0.png
  2. You will see default mapping for default objects. You can change them or add new mapping for custom objects.

If you want PandaDoc to automatically map recipient to specific Role, you need 2 things:

  • Role field configured in the Recipients mapping;

  • Have identical Role names in Salesforce and in PandaDoc template;

    Passing_Recipients_Salesforce_PandaDoc_1.png
    Passing_Recipients_Salesforce_PandaDoc_2.png
    mceclip2.png

If you have this setup right, PandaDoc will insert respective Recipient into the respective role when you will be creating documents.

Passing_Recipients_Salesforce_PandaDoc_4.png

Note: PandaDoc pulls all related contacts from Salesforce into the document. If you want to remove any, delete them on the role popup window or in recipients section on the document.

If you generate documents from a quote or a case, you might be using a lookup field to a specific contact record. You can specify what lookup fields to use as recipients by going to PandaDoc Setup > scrolling down to Object Customization settings. Find the object you need to set this up for and click Setup on the right-hand side.

Add_new_field_as_recipient_0.png

Add_new_field_as_recipient_1.png

Then choose the field to use as a recipient and click Save. You can choose up to five fields.

Add_new_field_as_recipient_2.png

Next, set up the recipient mapping. And that's it!

Add_new_field_as_recipient_3.png

Filter recipients

You can filter contacts that get transferred into PandaDoc documents as recipients based on yes/no fields in a record (aka Boolean fields).

  1. Go to "+" > PandaDoc Configure recipients;

  2. Scroll down to "Recipients Filtering";

  3. Click "Enable Filtering";

  4. Choose a field based on which value recipients will be filtered;

  5. Choose the value of the field based on which recipients will be filtered: true - yes, false - no.

Filter_recipients__1_.png

If you have set up Recipient mapping for Accounts, you can then configure it to pass this Account info (email, phone # and etc) as a Recipient to PandaDoc.

For that, go to PandaDoc Setup -> Scroll down to JSON Builder Settings, next to the Account Object name click “Setup” -> Tick the box next to “Send Account as recipient” and click “Save”.

Note: Salesforce Contact Roles and PandaDoc Template Roles cannot have 2 contacts assigned to one role.

If you have any suggestions regarding PandaDoc functionalities -> please submit an idea on the idea portal or reach out to us.

Passing information from Salesforce into PandaDoc (via fields)

You can pass data into PandaDoc fields similarly to how variables operate. Unlike with variables, however, you don’t need to include square brackets.

In the list of tokens, copy the token without square brackets into Merge field.

mceclip0.png
mceclip1.png

Once the document has been sent, the recipient will see the pre-filled data and be able to update this field, provided the field has been assigned to them.

Passing product data from Salesforce into PandaDoc

PandaDoc can be configured to pick Products from an Opportunity, Leads, Contacts, or Account and add them to a pricing table in a document.

You can map product fields of an object to PandaDoc pricing table fields to pass data even more accurately.

  1. Go to PandaDoc Setup > Configure Pricing Items.

    Set_up_pricing_items_access_0.png
    Set_up_pricing_items_access_1.png
  2. Add an object you want to pass product data from and select which fields exactly you want to map to the PandaDoc pricing table, click “Save” once done.

    Pass_products_to_pricing_table_0.png

  3. Below, under Pricing Items Sorting, you can set up the order in which you want the products listed in the PandaDoc pricing table.

Now, just make sure your Opportunity, Lead, Contact or Account has products added. Then open your PandaDoc template, add a pricing table. In the Pricing table Properties, switch the toggle Data merge to ON position.

mceclip0.png
Create_and_Send_documents_0.png
Create_Track_documents_0.png
Add_more_fields.png
Add_from_hidden.png

Pass custom product fields into pricing table

Sometimes, you need to pass more than the standard set of product fields.

  1. First, add Opportunity product fields into the tokens/variables list by going to PandaDoc Setup > Configure tokens. Select Opportunity product, and check the fields you need to pass on the right and they will show up in the tokens list on the left.

    Set_up_pricing_items_access_0.png
    Confirgure_tokens.png
    Pass_custom_product_fields_new_1.png

  2. Make sure the pricing table in the template has Automatic import toggled on.

    mceclip0.png
  3. When you create a document from the template, click the plus sign on the right side of the pricing table.

    Create_and_Send_documents_0.png
    Create_Track_documents_0.png
    Add_custom_fields_from_hidden.png
  4. Select the custom product fields under Add hidden.

Add_custom_fields_from_hidden.png

If adding custom fields from hidden columns every time you create a document seems like too many clicks, there's a way around that.

  1. Create a document and unhide custom product fields.

  2. Then, click the vertical ellipses in the top right corner and select Convert to template. Your new template will open in a new browser tab.

  3. In the template, you can delete the products from the pricing table, but make sure you keep the custom field columns.

  4. Next time you start a document from Salesforce, use this template. The columns will be populated with custom product field values.

mceclip4.png

Create and Send documents

Now that you've created and set up your template, you can proceed to creating and sending documents from Salesforce.

  1. Go to a record, scroll down to the PandaDoc module, click New Document.

    Create_and_Send_documents_0.png
  2. Choose a template or select the templates you’d like to bundle, then select Add items and assign recipients to roles, if applicable;

    mceclip1.png
    mceclip2.png
  3. Click Continue and check your document: variables, content, recipients list, reminders, and Send your document;

  4. You can now go back to the record in Salesforce and track your document status;

    Create_and_Send_documents_1.png
  5. When a document is completed, its .pdf will show up under Notes&Attachments in the record.

    Create_and_Send_documents_2.png

If you have multiple workspaces and creating documents from Opportunities or Accounts in Salesforce, you can set it up so that documents from ALL workspaces are displayed in the PandaDoc module, see here more.

Link a document to an Opportunity in Salesforce

If you have a document created in PandaDoc which you would like to link to an Opportunity in Salesforce, we’ve got you covered!

  1. In your PandaDoc tab, open the document, click the Salesforce icon on the right.

  2. Click “Link” and you will be prompted to login into your Salesforce account.

  3. Select an opportunity from the list then click “Link.”

    mceclip5.png
  4. On the right, under Opportunity info, you can view the Opportunity’s created date, status and total amount. Please note, the opportunity info displayed in PandaDoc may need to be refreshed in order to ensure you are viewing the latest update.

  5. Now, go to the Salesforce opportunity record, and the document will be displayed in the PandaDoc module as if it was created through Salesforce.

    mceclip6.png

In order to unlink a document from an Opportunity or link it to another one, click on the desired action on the Integrations panel. If you have created the document from another object (Account, Contact, etc.), you cannot unlink it from that object and link it to an Opportunity or view related information.

Update a document with field values from Salesforce

Note: The document must be in the Draft status for this feature.

If the information in a Salesforce record is updated after the document has already been created from this record, you can update the document with the correct values:

  1. In PandaDoc, go to the Integrations panel by clicking the Salesforce icon on the left inside the PandaDoc document

  2. Under Document data, select “Import from CRM”

    mceclip8.png
  3. The variables will be updated with the latest information from Salesforce

  4. You can use the "Import from CRM" feature in any object in Salesforce: Opportunity, Account, Lead, Contact, custom objects.

    Link_to_opp_import_from_CRM_updated.png
    Import_from_CRM_classic_SFDC_.png

If the field in Salesforce is empty, the corresponding variable won't be refreshed.

Warning: You cannot update your pricing table with product data from Salesforce, nor can you update PandaDoc fields or role variables.

FAQ

How can I check my integration version?

Open your Salesforce, click on Setup at the top, type “installed packages” into Quick find, then click on the Installed packages section that appears in the search. Find PandaDoc among the installed applications and look up the version in the Version number column.

Version.png

How can I provide the PandaDoc support team with access to my account in Salesforce?

The Support team might request access to your account in Salesforce to assist with an issue or question. Please do not grant access without the request of our Support team.

In Salesforce Lightning:

  1. Log into your Salesforce, click on your image (or avatar) in the top right, then click on Settings

  2. On the left in the small search box, type in "grant," then click below on Grant Account Login Access

In Salesforce Classic:

  1. Log into your Salesforce, then click on My Settings in the top right. (Alternately, click on your name, then on My Settings.)

  2. On the left in the small search box, type in "grant," then click below on Grant Account Login Access

Set the “Access duration” for "PandaDoc Support" for 3 days.

Next, email our Support team your SalesForce Organization ID found on the Company information page. Click Setup > Company profile > Company information and find the ID next to Salesforce Organization ID.

Grant_access.png
Company_ID.png

Troubleshooting

Click on a problem to unfold the solution.

PandaDoc module is blank or shows the following error message: “Attempt to de-reference a null object. An unexpected error has occurred.

This happens when the object for which you have set up variables, a pricing table, or recipients mapping is deleted or renamed.

You can fix it by following these steps:

  1. Make sure you have the latest version of the integration installed

  2. Go to PandaDoc Setup, click Configure Tokens, then open the object that shows the error message or a blank screen.

    PandaDoc_setup.png
    Configure_tokens.png
  3. Add any new field from the left column as a token/variable, then click Save.

    Add_fields.png
  4. If the issue persists, go to Object customization settings on the PandaDoc Setup page, then click Setup next to the object where the error is shown.

  5. If a blank page opens, remove the object from the list, then re-add it.

Remo_or_Setup.png

PandaDoc module displays the error: “Unexpected token ‘FROM’ in opportunity”

If you see this message, you may not have permissions for certain Salesforce objects related to the opportunity. Possible examples are that files aren’t enabled for your profile, or perhaps your company recently added a new object that hasn’t yet been enabled for your profile.

To fix this, ask your Salesforce administrator to check permissions for your profile and make sure you have access to the related objects.

Unexpected_token_from.png

Contacts are not passed as recipients when you create a document from an opportunity

You may have just started testing the integration with test Contacts. It’s possible that no email addresses are associated with these Contacts in Salesforce. To fix this issue, add valid email addresses to the Contacts in Salesforce, then try again.

PandaDoc module isn't loading in Salesforce for some users in my account/ Some users in my account see Insufficient permissions error in the PandaDoc module

To start, make sure that Custom Settings Definition Access for two PandaDoc objects (PandaDoc.pandadoc.PandaDoc Settings and PandaDoc.pandadoc.PandaDoc JsonBuilder Mapping) is enabled. You'll be able to find this setting under Setup > Profiles > Select the profile in question.

mceclip0.png

After that, you need to allow this user full access to 7 objects mentioned below. You can do so by going to the profile in question and pressing Edit, then scrolling down to the Custom Object Permissions.

  • Doc Status

  • Object Tokens

  • PandaDoc Document

  • PandaDoc Log

  • Pricing Item Map

  • Recipient Map

  • Trigger Setting

mceclip1.png

Next, check access to the fields related to the 7 objects mentioned in the previous step. You can do that by going to the profile in question and scrolling down to the option Field-Level Security (Custom Field-Level Security), then pressing View for each of the 7 objects, Edit and allow read-only access to all the fields.

unnamed.gif
Did this answer your question?