Skip to main content
HubSpot CRM

PandaDoc integration with HubSpot enables data transfer between HubSpot and PandaDoc, automating document creation and pricing updates.

Updated today

Availability:

*External automations feature is available as a paid add-on for the Business plan ($39 per month per account/ $468 per year per account) and is included in the Enterprise plan.

This integration will work for Contacts, Companies, and Deals in HubSpot.

Watch an overview video:

Skip to:

Features

Variables: You can pass information from HubSpot to PandaDoc documents automatically with the help of variables and back.

Products: Transfer product information from HubSpot deals to PandaDoc pricing tables and quote builder blocks and back.

Create documents: You can create PandaDoc documents from HubSpot Deals, Contacts, and Companies.

Status tracking: You can track document status in HubSpot.

Install PandaDoc <> HubSpot integration

Notes and limitations:

  • PandaDoc Account owner and Admins with Admin permissions in HubSpot can install the integration.

  • This integration works with multiple workspaces. For that, make sure you enable the integration in each workspace. In the PandaDoc modules documents section, you will see only the documents created via the integration and located in the workspace you are logged into.

  • You must be logged into the workspace connected with an active HubSpot CRM to use the integration.

  • PandaDoc EU accounts must initiate the integration connection from PandaDoc. Connecting the integration from HubSpot will not work.

  1. Make sure you’re logged into your HubSpot account. In PandaDoc, go to Settings > Integrations > HubSpot

  2. Select Connect. This will open a new window, select ‘Grant Access’ > Connect app

  3. Go to HubSpot, and open any Deal, Contact, or Company record. On the right side of your screen, you will see the PandaDoc module.

    Install_integration_check_HubSpot.png

Pass information from HubSpot into PandaDoc

Warning: This functionality isn't available to eSignature plan users.

Configure templates

To push information from HubSpot into PandaDoc documents, you must first configure your template to specify what data to transfer and where it should be placed.

  1. In PandaDoc, open your template (click here to learn how to create a new one)

  2. Go to Extensions on the right panel and select HubSpot

  3. Connect the extension by selecting the +Add to document > Connect


    Important: When connecting your HubSpot account through Automations, the necessary permissions are automatically preselected. There’s no need to adjust the 'Scopes' values during the Authorization step in the Advanced settings.

    Note: The user connecting HubSpot account must have the App Marketplace access permission set.

  4. Select Connect and select your HubSpot account and authorize PandaDoc to access HubSpot

Note: Once you've successfully connected to HubSpot you may need to wait for up to 5 minutes, the side panel will refresh once the connection with the platform is established.

Configure variables

Add HubSpot Deal variables

Pre-set a PandaDoc template with variables that will pull information from HubSpot Deal and associated Company each time you create a new document from this template.

Notes and limitations:

  • To use variables that are mapped to other fields in PandaDoc or your CRM, they must match exactly. Variables are case-sensitive, and one wrong character will cause the token to not populate. Example: [Contact.Address] [contactaddress]

  • Variables will not work across all objects. If you create a document from a Contact, you may use Company and Contact variables. If you create a document from a Company, you may use only Company variables. If you create a document from a Deal, you may use Company and Deal variables.

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

  • PandaDoc does not support 'Sensitive' & 'Highly Sensitive' HubSpot data tokens.

In the HubSpot extension on the right, select View related variables.


From here, you can search for, copy, and paste the needed HubSpot variables into your template.

Add HubSpot Company or Contact variables

Pre-set a PandaDoc template with variables that will pull information from HubSpot Company or Contact each time you create a new document from this template.

  1. Open your template (click here to learn how to create a new one)

  2. Use HubSpot variables: inside HubSpot on the right, scroll down to the PandaDoc module. Select Actions > Show PandaDoc tokens

  3. Copy these tokens (variables) with the square brackets and paste them into a text block in your template

  4. When you create a document using this template information from HubSpot will be populated through variables

Note: If the template is not available for selection in HubSpot, open PandaDoc and ensure you’re logged into the workspace where the template was created.

Use Roles and role variables to populate contact info

Contact information is not populating when you are creating documents from a deal or company object? Unfortunately, contact variables are unavailable within a deal or company, but there's a workaround. Template roles and role variables are a great way to pass some contact data while creating documents within a deal/company. You can pass the first name, last name, email address, phone, company name, job title, street address, city, postal code, country, and state/region of a contact associated with a deal or company.

In case you pre-assign a recipient on the template level, they will be automatically assigned to the role when the document is created.

  1. In your template, click + Add roles at the top and add one

    mceclip1.png

  2. Click on Variables and find your specific Role name

  3. Click the duplicate icon next to a variable to copy, and paste it into your template. Example: [Client.Name]

    mceclip2.png

  4. When creating a document from a deal/company, assign the contact associated with it to the Role you created

Note: A contact connected with a HubSpot record will appear in the dropdown menu when assigning recipients to roles. To assign a recipient from your PandaDoc contacts start typing their name or email address.

Configure merge fields

You can pass data into PandaDoc fields similarly to how variables operate. Unlike with variables, however, you must not include square brackets.

Add HubSpot Deal merge fields

  1. Select a field or add a new one and select Properties on the floating panel

  2. In Properties on the right, the Merge field data source should list the ‘HubSpot deal’

  3. You can search and select the needed HubSpot Deal and deal-associated Company variables

Add HubSpot Company or Contact merge fields

In the list of tokens, copy the company/contact token without square brackets and paste it into the Merge field area in the field Properties.

Add Role merge fields to populate contact info

Pass the first name, last name, email address, phone, company name, job title, street address, city, postal code, country, and state/region of a contact associated with a deal or company.

  • Select Variables on the right panel and find your specific Role variable

  • Select the duplicate icon next to a variable to copy, and paste it into Merge Field without square brackets

  • When creating a document from a deal/company, assign the contact associated with it to the Role you created

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. Go here to learn how to sync the updates back to HubSpot.

Configure pricing blocks

Notes and limitations:

  • Text values from HubSpot can’t be passed to the columns that allow only numbers (Price, QTY, Discount, Tax, Fee, Additional multiplier).

  • There is no way to pull values into the Subtotal column in your pricing table, as this column is calculated automatically in PandaDoc.

  • The current order of line items in the deal is maintained in the pricing table and quote builder block when you create a document from your deal or update information in the document using the Refresh data button.

Send product information to a pricing table in PandaDoc

To send product information from your HubSpot deals to the pricing table block, first, add the pricing table block to your template. Then create a document from a deal in HubSpot.

Once you create a document using this template, the following product information will be sent to the pricing table:

  • Price

  • Quantity

  • Discount on the Line Item level

  • Line Item name

  • Line Item description

  • Cost (‘Unit Cost’ in HubSpot)

What’s not supported:

  • Taxes (since taxes are not supported in HubSpot);

  • Recurring payments set up in HubSpot will be transferred as a one-time payment option to the pricing table. If you need to include recurring payments in your PandaDoc document, you can use Quote Builder block.

How to map deal product fields into specific pricing table columns

Column mapping lets you easily pull deal product fields into specific pricing table columns in PandaDoc.

  1. Open a template you use to create documents from HubSpot

  2. Find or add a pricing table

  3. Access data merge in pricing table properties or below the pricing table by selecting +Product > Set up data merge from CRM/API

    mceclip0.png

  4. Select Enable

    mceclip1.png

  5. In the data merge pop-up, select Column mapping.

  6. Type HubSpot field names (left) to match with pricing table column names (right).

    mceclip0.png

Warning:

Use 'QTY' as a field value for quantity to avoid quantity mapping errors.

To map additional columns:

  1. Close the data merge setup, then add columns by selecting the plus sign on the right.

  2. Double-click on the data merge header to access Column mapping and enter the new field names for the recently added columns from HubSpot.

Note: To find custom field names, you can create a document from your deal, select the plus sign on the right, and locate your custom product field under Add hidden.

Once setup is complete, the HubSpot product field names will appear under corresponding columns highlighted in blue.

How to pull deal products to specific pricing table sections and/or specific pricing tables in your documents

You can also easily pull products from your HubSpot deal into specific pricing table sections or tables in your documents.

  1. Open or create a template for your HubSpot integration.

  2. Add or select a pricing table, then access pricing table properties.

  3. Select Set up data merge from the floating panel or by right-clicking a section header.

    mceclip0.png

  4. Select Enable.

    mceclip1.png

Product merging rules overview

  • A product can be added to a pricing table only once, following the first applicable rule.

  • Without rules, all products will be added if data merge is enabled.

  • Only products matching set rules will be added.

  • You need to use default deal product fields (Name, Description, Price, QTY, Discount) exactly as spelled.

Important notes:

  • Discount field. Only "Contains" and "Doesn’t contain" values work.

  • QTY field. If blank in HubSpot, set value to "0" under Merge rules.

How to merge products into specific sections

  1. Add necessary sections to your pricing table by clicking +Section.

  2. Access Merge rules via the blue data merge header or pricing table properties.

  3. Select Add rule and set conditions for filtering products into sections.

  4. Save the rule.

As an example, filter products by the Name field to contain “Plan” for a Subscription section.

mceclip2.png

How to merge products into specific pricing tables

  1. Add a pricing table and access merge rules.

  2. Select Add rule, set conditions, and select "Pricing table, no section" in the Then section.

  3. Save the rule and repeat for each pricing table if needed.

mceclip6.png

When you create a document from a HubSpot deal using this template, products will be filtered into their respective sections or tables based on the merge rules.

Send product information to a quote builder block in PandaDoc

To send product information from your HubSpot deals to the quote builder block, first, add the quote builder block to your template. Then create a document from a deal in HubSpot.

Once you create a document using this template, the following product information will be sent to the quote block:

  • Price

  • Quantity

  • Discount on the line item level

  • Line Item name

  • Line Item description

  • Cost (‘Unit Cost’ in HubSpot)

  • Billing frequency (annually, semiannually, quarterly, and monthly only)

  • Contract term ('Term (Months)' in HubSpot)

To unhide custom fields in the created document click on the quote builder block > select Edit quote on the floating panel, select Add column at the top right of a section and select your custom column from the dropdown under 'Show hidden'.

Note: If you have several sections in your quote builder block products will be pulled to the last section. If you have several quote builder blocks in your template, products from your quote/opportunity will be pulled to each block.

How to map deal product fields into specific quote builder columns

Column mapping allows you to easily pull deal product fields into specific quote builder columns in PandaDoc.

  1. Activate or create needed quote columns

  2. Open the quote builder block’s properties > Set up data merge

  3. The data source will list the ‘HubSpot deal’
    Note: the merge rules by default use standard column mapping to Name, Description, Price, QTY, Discount, and Contract term line items fields. If you need to change it to other line items fields or add field mapping to other quote columns, do this:

  4. Click into a cell that corresponds to the quote column > erase existing text > find the needed line item field > Save

How to pull deal products to specific quote builder sections and/or specific quotes in your documents

Merge rules allow you to easily pull products from your HubSpot deal to specific pricing table sections and/or specific pricing tables in your documents.

  1. Open the quote builder block’s properties > Set up data merge > Merge Rules

  2. The data source should list the ‘HubSpot deal’

Open this page for more info.

Pass information from PandaDoc to HubSpot

You can update HubSpot deals when Pandadoc document status changes with the help of Automations.

Note:

Please note that the external automations feature is available as a paid add-on for the Business plan ($39 per month per account/ $468 per year per account) and is included in the Enterprise plan.

  1. In your template, select the HubSpot extension on the right

  2. Select Configure rules

Change HubSpot deal stage whenever a document’s status is updated

  1. Switch on the “Change deal stage on HubSpot” toggle

  2. Select the pipeline

  3. Select the trigger status for PandaDoc documents created via HubSpot

  4. Select the deal stage: all available deal stages will be reflected in the dropdown

  5. Select Save

Whenever a document created through a HubSpot deal using this template changes to the selected status in the rule, the deal stage will automatically update to the corresponding stage based on your rule setup.

Move a document to attachments in HubSpot deals

  1. Switch on the toggle “Attach PDF to HubSpot”

  2. Select trigger status for any PandaDoc documents created via HubSpot — you can choose between “Sent” and “Completed”

  3. Select Save

Each time the document you create through a HubSpot deal using this template is sent or completed (depending on your automation setup), it will be automatically attached to the deal.

mceclip11.png

Update deal properties in HubSpot with PandaDoc field value when PandaDoc document status changed

To sync the field values updated in a Pandadoc document back to the HubSpot deal, first, you need to link the field in HubSpot to the field in your template using the Merge field. Go here for more info on pulling HubSpot info into PandaDoc fields.

  1. Select a field or add a new one and select Properties on the floating panel

  2. In Properties on the right, the Merge field data source should list the ‘HubSpot deal’

  3. You can search and select the needed HubSpot Deal and deal-associated Company variables

Note: Only Text, Date, Dropdown, Checkbox, and Radio Button field types can be synced back to HubSpot.

Next, in your template, you need to set up the rule:

  1. Go to HubSpot extension on the right panel

  2. Turn on “Update HubSpot deal properties with PandaDoc field values”

  3. Select trigger status for PandaDoc documents created via HubSpot — you can choose between “Sent” and “Completed”

  4. Select Save

  5. Create a document through a HubSpot deal using this template

If you choose the 'Sent' document status as a trigger and update the fields pulled from the deal, both the properties in HubSpot and the primary company associated with the deal will be updated when the document is sent.

Alternatively, if you select 'Completed' as the trigger status, information about field properties in your deal and the associated primary company will be updated as soon as the document status changes to Completed, provided that the recipient edits the values pulled from the deal.

A few important notes:

  • If a certain field cannot populate info submitted into the merge field, the rule will not work. Reasons for that:

    • no permissions to the mapped HubSpot field

    • the value format does not coincide with the HubSpot field’s type/format rules.

  • Fields whose names contain only special symbols will not work.

Update, add, and remove line items in HubSpot whenever a document status changed

  1. In the HubSpot extension on the right select Configure rules

  2. Switch on the toggle “Update, add, and remove line items in HubSpot"

  3. Select trigger status for PandaDoc documents created via HubSpot — you can choose between “Sent” and “Completed”

  4. Select the checkbox for syncing added or removed line items (optional). This functionality ensures that when the status of a document changes, any item added to the pricing table or quote builder will be generated in the associated deal. Similarly, if an item originally sourced from the HubSpot deal is removed from the pricing table or the quote builder, it will also be removed from the HubSpot deal.

  5. Select Save

  6. Create a document through a HubSpot deal using this template

If you select “Sent” document status as a trigger and update the products pulled from a deal, the product information will be updated in the deal once you send the document.

If you select “Completed” as a trigger status, product info in your deal will be updated if you update pulled to the pricing table/quote builder products before sending it, or if a document signer updates the quantity of products in the pricing table/quote builder (providing you have quantity editing enabled before sending it).

A few important notes:

  • Main product fields, including SKU, Name, Description, Price, Quantity, and Discount, will consistently reflect values from PandaDoc. Custom fields are updated only if the corresponding column is visible in the PandaDoc document.

  • If the same field is used more than once and has different values, we prioritize the one that has been most recently modified.

  • If validation for any of the fields is not passed, the rule will fail.

  • The Deal Amount is automatically recalculated based on the line items in HubSpot.

  • When optional items are enabled in the pricing table/quote builder, the choices made will impact the product list on the deal:

    • Selected items will synchronize, and if a selected item does not exist on the HubSpot side, it will be created.

    • Unselected items will be removed from the deal.

Update deal properties in HubSpot with PandaDoc variable values

Use this sync rule to automatically update CRM data in HubSpot whenever changes are made in your PandaDoc documents and the document status changes to Sent or Completed. By syncing variables back to HubSpot, you can avoid manual updates, streamline workflows, and minimize errors, ensuring your CRM data stays accurate and current.

Note: Variables must be included in the document content to ensure the corresponding values are updated in HubSpot.

Create and track documents

  1. Go to HubSpot and open any Contact, Company, or Deal record. Then click on ‘Create Document';

    HubSpot_create_document.png

  2. Choose the template you’d like to use and assign your recipients. Then review your document and make any necessary changes to customize it for your recipient;

    mceclip3.png
    mceclip4.png

  3. Select Send, and follow the prompts to customize your document’s title and email message;

    mceclip5.png

  4. Go to the PandaDoc module in your HubSpot record to track the status of your document.

    Create_and_track_1.png

Link a document to a deal in HubSpot

If you’ve created a document in PandaDoc that you’d like to link to a deal in HubSpot, we’ve got you covered!

  1. Make sure you’re logged into both HubSpot and PandaDoc.

  2. In your PandaDoc tab, open the document, then click the HubSpot icon on the right.

  3. Click Link document and you’ll be prompted to select a deal from your HubSpot account.

    mceclip0.png

  4. Choose a deal and click Link. The list will display all deals you have access to, and the ten deals you’ve most recently updated will be listed at the top.

    mceclip1.png

  5. On the right, under “Deal Info,” you can view the deal’s created date, status, and total amount. Please note, the deal info displayed in PandaDoc may need to be refreshed to ensure you’re viewing the latest update. If the deal amount or created date shows “Unknown,” it means this field is empty in HubSpot.

  6. Now go to the HubSpot deal record. The document will be displayed in the PandaDoc module as if it were created through HubSpot!

mceclip2.png

To unlink a document from a deal or link it to another one, select three vertical ellipses next to the deal's name and select Unlink Deal from the dropdown. If you’ve created the document from another object (Company, Contact), you’ll be unable to unlink it from that object, and also unable to link it to a deal or view related information.

mceclip3.png

If the integration with HubSpot isn’t connected to your account, you’ll see one of the errors shown on the screenshots below. Either contact your PandaDoc Workspace Admin to have the integration connected or, if you are the Admin, connect it yourself in Settings > Integrations.

mceclip4.png
mceclip5.png

Update a document with values from HubSpot

Note: To use this feature, the document’s status must be “Draft.”

Note: The current order of line items in the deal is maintained in the pricing table and quote builder block when you create a document from your deal or update information in the document using the Refresh dat button.

If you update information in your deal after the document has already been created or linked to the deal, you can easily update your document with the new values from the linked deal. Here’s how:

  1. Within the PandaDoc document, go to the Integrations panel by clicking the HubSpot icon on the right.

  2. Select Refresh data.

  3. The variables and product information in your pricing table/quote builder will be updated with the correct information from HubSpot. Please note that you’ll be unable to update PandaDoc fields or role variables.

If a product has been removed from the linked deal, it will also be removed from the pricing table/quote builder. If a product has been added to the linked deal, it will be reflected in the pricing table/quote builder as well.

To update the currency in a PandaDoc document when it doesn't match the currency in HubSpot, follow these steps:

  1. Within HubSpot on the right, scroll down to the PandaDoc module. Click on Actions > Show PandaDoc tokens. Next, find [Deal.DealCurrencyCode] variable under the Deal tab and make sure the variable includes the currency code.

  2. Within the PandaDoc document, go to the Integrations panel by clicking the HubSpot icon on the right.

  3. Select Refresh data

  4. The currency will be updated in the pricing table or quote builder and reflected in the document value.

Note: A HubSpot Deal must include the currency code in the [Deal.DealCurrencyCode] variable. If this variable lacks a value, it’s an indicator that the HubSpot account is configured to use a single currency. We recommend activating an additional currency in HubSpot if you would like to use the feature.

Warning: In cases where the variable is empty in the HubSpot Deal, the Refresh data function will not update the currency of the associated document and its products in the pricing table.

How to uninstall the PandaDoc <> HubSpot Integration

Who can uninstall the integration? PandaDoc Account Owner and Admins with Admin permissions in HubSpot.

  1. In PandaDoc, go to Settings > Integrations > HubSpot, and select Disconnect under the 'Overview' tab. Select Disconnect one more time in the pop-up to confirm your action.

  2. Go to HubSpot, and select the Marketplace icon in the top navigation. Under Manage, select Connected apps. Select Actions on the "PandaDoc | eSignatures & More" app, then click Uninstall. In the dialog box, type “uninstall” in the text field and click Uninstall.

Note: Uninstalling the app won’t delete any existing PandaDoc | eSignatures & More data in HubSpot, but it will no longer be updated.

FAQ

Can I update deal status once a document has been signed?

Not within our integration. However, you can use Zapier to update deal status once a document has been signed. You can also use our automations to update the deal stage once the document status changes.

I don't see the template I need when I want to create a document from a HubSpot deal

If you don't see the template you need, open PandaDoc and ensure you’re logged into the workspace where the template was created.

How to use HubSpot custom properties as variables

Similarly, you can pull custom properties created in HubSpot to PandaDoc documents. A custom property created in HubSpot for a specific object (Deal, Contact, or Company) will show up in the corresponding tokens/variables list.

  1. In your HubSpot deal, select the gear icon at the top right to open Settings

  2. Select Record customization > Customize the left sidebar

  3. Next, select Deafult view on the right panel

  4. Select an existing custom property on the left panel or create a new one and select Save

  5. Open the deal > find your property on the left > fill in the value

  6. After that, scroll down to the PandaDoc module on the right, and click Actions > Show PandaDoc tokens to find your variable there. To have it populated in the documents, simply copy the variable and paste it into a text block in your template.

    image__5_.png

Troubleshooting

Some of my HubSpot variables aren’t populating

There are a few reasons this could happen.

  1. The variable characters haven’t been matched exactly to the mapped variable. Go to Actions > View PandaDoc Tokens to verify that they match.

  2. You’re using a variable from another HubSpot record type that isn’t supported in the record from which you’re creating your document. For example, Deal tokens/variables won't work when you create documents from Contacts.

  3. No value has been provided in the property mapped to your HubSpot variable.

My products aren’t transferring into the pricing table

  1. Check whether the pricing table in the template from which you’re creating documents has "Data merge" enabled. To do that, select the pricing table you’d like to populate. Then click Properties on the floating panel, in the table's properties on the right, turn on the toggle that says Data merge. Now you can start creating a document.

If option 1 doesn’t help or is irrelevant, ask someone on your team with Super Admin permissions access in HubSpot to reconnect the integration (recommended by HubSpot). To do this in PandaDoc, go to Settings > Integrations > HubSpot > click Disable. Then, enable it back.

PandaDoc continuously asks you to sign in

1. It’s likely you have the “Block third-party cookies” setting enabled in your browser. Depending on which browser you’re using, follow one of these links to disable this setting:

In Safari, go to Preferences > Privacy > Manage website data. Click Remove all, or select hubspot.com and pandadoc.com and click Remove.

2. Additionally, you may need to disable "Prevent cross-site tracking" setting in Safari (it should be turned off):

mceclip0.png
mceclip7.png

Follow this link to learn how to disable this setting in other browsers.

I see an error in the HubSpot app in my PandaDoc document “We support record details and the ability to import data from Deals. Create a new one or open the existing document created in PandaDoc.”

PandaDoc documents can only be linked to/unlinked from the Deals object in HubSpot. If you see this error in your PandaDoc document, it means that this document was created from a different object (Company or Contact). You’ll be unable to unlink it from that object to link it to a deal or view related information. You can duplicate this document and link it to a deal in PandaDoc, or create a new one directly via the Deal in HubSpot.

I see an error in the HubSpot app in my PandaDoc document "PandaDoc is not connected to HubSpot. Please contact your PandaDoc admin to configure the integration."

To use the integration, you must be logged into the workspace connected with an active HubSpot CRM. Go to Settings > Integrations, click on HubSpot, and check if the integration is connected to the workspace you are currently logged in.

Did this answer your question?