PandaDoc + HubSpot: The Complete Integration Guide (2026)
PandaDoc + HubSpot: The Complete Integration Guide (2026)
Written by

Ben Reimann



In this post:
In this post:
In this post:
Section
Section
Section
What the PandaDoc + HubSpot Integration Actually Does
Before touching any settings, it helps to understand what you're connecting. The PandaDoc + HubSpot integration is a native two-way sync between your CRM and your document platform. In plain terms: deals in HubSpot can automatically populate PandaDoc proposals, and once a document is sent or signed, that status flows back into HubSpot as deal activity and property updates.
Here's what the integration handles in practice:
Token population: HubSpot deal and contact properties (company name, deal value, owner name, etc.) auto-fill into PandaDoc templates using merge tags, so reps aren't copying and pasting
Activity logging: When a document is viewed, signed, or declined, a note is created on the HubSpot deal timeline
Property sync: Document status can write back to custom HubSpot deal properties (useful for building workflows off document state)
Deal stage triggers: You can configure HubSpot workflows to create or send PandaDoc documents automatically when a deal moves to a specific stage
This is the integration most sales teams should have running. If your reps are still pulling deal data from HubSpot and typing it into a Word doc, you're losing time and introducing errors on every single deal.
Prerequisites Before You Start
A few things need to be in place before setup. Skipping these is the most common reason the integration breaks partway through:
HubSpot plan: You need HubSpot Starter, Professional, or Enterprise. The free plan does not support third-party app integrations from the marketplace
PandaDoc plan: The HubSpot integration is available on PandaDoc Business and Enterprise plans. It is not available on the free tier or Essentials
Admin access: You need to be a Super Admin in HubSpot and have Admin rights in PandaDoc to install the app and configure OAuth
Clean contact and deal data: The integration maps CRM properties to document tokens. If your HubSpot data is messy (blank required fields, duplicate properties, etc.), documents will generate with blanks or wrong values
Also worth noting: this is not a Zapier integration. It's a native connection maintained by PandaDoc, which means it's faster, more reliable, and doesn't require a middleware account. But it also means any issues need to go through PandaDoc support, not a third-party platform.
Step-by-Step Setup
Step 1: Install PandaDoc from the HubSpot App Marketplace
In HubSpot, go to Settings > Integrations > Connected Apps and click "Visit App Marketplace." Search for PandaDoc. You'll find the official app published by PandaDoc, Inc. Click Install.
You'll be redirected through an OAuth flow that asks you to log in to PandaDoc and grant HubSpot permission to access your workspace. Make sure you're logging in with an account that has Admin rights in PandaDoc, not a standard user account. If you install with a standard account, certain sync settings won't appear.
Step 2: Configure the Integration Settings in PandaDoc
Once the OAuth handshake is done, you'll land in PandaDoc under Settings > Integrations > HubSpot. This page controls the core behavior of the sync:
Object mapping: Decide whether PandaDoc documents should link to HubSpot Deals, Contacts, or both. For B2B sales, Deals is almost always the right choice
Document status sync: Enable this so that sent, viewed, and completed statuses write back to the deal timeline as activity
Property writeback: This is optional but useful. You can create a custom HubSpot deal property (e.g., "PandaDoc Status" as a single-line text or dropdown) and have PandaDoc update it when document status changes
Step 3: Set Up Tokens in Your PandaDoc Templates
Tokens (also called merge tags) are the variables in your PandaDoc templates that pull data from HubSpot. They look like this in the template editor: [Deal.dealname] or [Contact.firstname].
To add a token, open a template in PandaDoc and click on a text block. In the toolbar you'll see a "Token" option. This opens a field browser where you can select from available HubSpot properties. The token inserts into the document and auto-fills when the document is created from a HubSpot deal.
The most commonly used tokens for a sales proposal:
[Deal.dealname] - Deal name from HubSpot
[Deal.amount] - Deal value
[Deal.closedate] - Expected close date
[Contact.firstname] and [Contact.lastname] - Prospect's name
[Contact.email] - Used to pre-fill the recipient field
[Company.name] - Company name
[HubSpot_Owner.name] - The deal owner's name (great for signature blocks)
One thing reps often miss: the token namespace matters. [Deal.X] pulls from deal properties, [Contact.X] from the associated contact, and [Company.X] from the associated company. If you use [Contact.name] but the deal has no associated contact, that field will be blank in the generated document.
Step 4: Create a Document from a HubSpot Deal
Once the integration is live and your templates are set up, here's how reps actually use it:
Open the HubSpot deal record
Scroll to the PandaDoc panel in the right sidebar (it appears automatically after installation)
Click "Create Document" and choose a template
PandaDoc opens with all mapped tokens pre-filled
Rep reviews, adjusts pricing, and sends
The document is linked to the deal. All activity (views, opens, comments, signatures) surfaces in the HubSpot timeline without any manual updates from the rep.
Field Mapping: The Part Most Teams Get Wrong
The integration uses HubSpot's internal property names, not the display labels you see in the UI. This trips up a lot of admins during setup.
For example, the "Deal Owner" field you see in HubSpot has an internal name of hubspot_owner_id, and in PandaDoc it maps as [HubSpot_Owner.name] for the name or [HubSpot_Owner.email] for the email address. If you try to use [Deal.deal_owner], it won't work.
To find the internal property name in HubSpot: go to Settings > Data Management > Properties, find the property, and look at the "Internal name" field on the detail view.
For custom properties you've created (things like "Customer Tier" or "Contract Length"), the internal name usually follows the pattern: lowercase, underscores instead of spaces. In PandaDoc tokens, custom deal properties reference as [Deal.your_custom_property_name].
Tips for clean field mapping:
Test every token before sending templates to your sales team. Create a test document from a known deal with complete data and verify each field populates correctly
For currency fields like deal amount, set the formatting in PandaDoc's token settings (currency symbol, decimal places) rather than relying on HubSpot's formatting
Date fields from HubSpot come through as Unix timestamps by default. Use PandaDoc's date formatting option on the token to display them as MM/DD/YYYY or your preferred format
If a token might be blank (e.g., a deal doesn't always have a billing address), add fallback text using PandaDoc's token default value setting
Common Issues and How to Fix Them
The PandaDoc Panel Doesn't Appear on Deal Records
This is almost always a HubSpot plan issue or a caching problem. First, confirm your HubSpot account is on Starter or above. If the plan is correct, try logging out and back in to both platforms. If the panel still doesn't appear, go to HubSpot > Settings > Connected Apps and disconnect PandaDoc, then reinstall it. The OAuth tokens occasionally go stale.
Tokens Show as Blank in Generated Documents
Usually one of three causes:
The deal doesn't have the required property filled in (check the deal record in HubSpot)
The deal has no associated contact or company (required for [Contact.X] and [Company.X] tokens)
The token syntax is wrong (double-check internal property names as described above)
Document Status Isn't Syncing Back to HubSpot
Check the Document Status Sync toggle in PandaDoc under Settings > Integrations > HubSpot. It must be enabled. Also confirm the HubSpot deal the document was created from still exists and hasn't been deleted or merged.
The Integration Connects Fine But Workflow Triggers Don't Fire
HubSpot workflows that trigger on PandaDoc document status require the property writeback to be configured. The workflow trigger must use a deal property (e.g., your custom "PandaDoc Status" field) rather than the timeline activity. Set up the property writeback in PandaDoc settings first, then build the workflow in HubSpot using that property as the trigger.
Best Practices for Teams Running This at Scale
After setting this up for multiple sales teams, a few practices separate the teams that get full value from the ones that end up with a half-configured integration:
Standardize your template library: The integration is only as good as your templates. Have one primary proposal template per product line, with all tokens mapped. Avoid letting reps create templates ad-hoc, as inconsistent token usage breaks automation
Use a "Document Created" deal stage: Add a deal stage (or pipeline property) that automatically gets set when a PandaDoc document is created from that deal. This gives you visibility in your pipeline on which deals have active proposals out
Build a "Signed" workflow: When PandaDoc document status writes back "completed," trigger a HubSpot workflow to move the deal to Closed Won, create a task for onboarding, and notify the CS team. This is where the real ROI of the integration comes from
Audit document activity weekly: PandaDoc shows you when prospects open documents and how much time they spend on each section. Pull this data into your sales reviews. A prospect who spent 8 minutes on the pricing section is a different conversation than one who hasn't opened the document
Lock down template editing: Give reps Send access to templates, not Edit access. Every time a rep edits a shared template, they break someone else's token setup
Setting Up Automated Document Creation with HubSpot Workflows
This is an advanced step, but it's worth mentioning because it removes the manual step of a rep clicking "Create Document" in the sidebar.
In HubSpot, go to Automation > Workflows and create a deal-based workflow. Set the trigger to "Deal Stage is X." In the actions, you'll see a PandaDoc action called "Create Document from Template." Select the template, and HubSpot will automatically generate the PandaDoc document when any deal hits that stage.
A few caveats: auto-created documents don't auto-send (PandaDoc requires a human to review and send). The document appears in the deal's PandaDoc panel, ready for the rep. Also, if the deal lacks a primary contact with an email address, the workflow action will fail. Build an enrollment condition that checks for a valid contact email before running the PandaDoc action.
When to Call in Help
Most teams can self-serve through the initial setup. Where things get complicated: multi-pipeline deal structures, custom object associations, content libraries synced across multiple HubSpot portals, and integrations that involve a third system (like a CPQ or billing platform sitting alongside both tools).
If you're dealing with any of those scenarios, or if you've run through this guide and something still isn't working, it's usually faster to have someone who configures this daily take a look rather than spending hours in support tickets.
We offer a dedicated HubSpot integration setup service for teams that want this done right the first time, including template builds with all tokens mapped, workflow configuration, and testing on real deal data.
Need help setting this up? We configure PandaDoc + HubSpot for teams every week. Book a call and we'll take a look at your setup.
What the PandaDoc + HubSpot Integration Actually Does
Before touching any settings, it helps to understand what you're connecting. The PandaDoc + HubSpot integration is a native two-way sync between your CRM and your document platform. In plain terms: deals in HubSpot can automatically populate PandaDoc proposals, and once a document is sent or signed, that status flows back into HubSpot as deal activity and property updates.
Here's what the integration handles in practice:
Token population: HubSpot deal and contact properties (company name, deal value, owner name, etc.) auto-fill into PandaDoc templates using merge tags, so reps aren't copying and pasting
Activity logging: When a document is viewed, signed, or declined, a note is created on the HubSpot deal timeline
Property sync: Document status can write back to custom HubSpot deal properties (useful for building workflows off document state)
Deal stage triggers: You can configure HubSpot workflows to create or send PandaDoc documents automatically when a deal moves to a specific stage
This is the integration most sales teams should have running. If your reps are still pulling deal data from HubSpot and typing it into a Word doc, you're losing time and introducing errors on every single deal.
Prerequisites Before You Start
A few things need to be in place before setup. Skipping these is the most common reason the integration breaks partway through:
HubSpot plan: You need HubSpot Starter, Professional, or Enterprise. The free plan does not support third-party app integrations from the marketplace
PandaDoc plan: The HubSpot integration is available on PandaDoc Business and Enterprise plans. It is not available on the free tier or Essentials
Admin access: You need to be a Super Admin in HubSpot and have Admin rights in PandaDoc to install the app and configure OAuth
Clean contact and deal data: The integration maps CRM properties to document tokens. If your HubSpot data is messy (blank required fields, duplicate properties, etc.), documents will generate with blanks or wrong values
Also worth noting: this is not a Zapier integration. It's a native connection maintained by PandaDoc, which means it's faster, more reliable, and doesn't require a middleware account. But it also means any issues need to go through PandaDoc support, not a third-party platform.
Step-by-Step Setup
Step 1: Install PandaDoc from the HubSpot App Marketplace
In HubSpot, go to Settings > Integrations > Connected Apps and click "Visit App Marketplace." Search for PandaDoc. You'll find the official app published by PandaDoc, Inc. Click Install.
You'll be redirected through an OAuth flow that asks you to log in to PandaDoc and grant HubSpot permission to access your workspace. Make sure you're logging in with an account that has Admin rights in PandaDoc, not a standard user account. If you install with a standard account, certain sync settings won't appear.
Step 2: Configure the Integration Settings in PandaDoc
Once the OAuth handshake is done, you'll land in PandaDoc under Settings > Integrations > HubSpot. This page controls the core behavior of the sync:
Object mapping: Decide whether PandaDoc documents should link to HubSpot Deals, Contacts, or both. For B2B sales, Deals is almost always the right choice
Document status sync: Enable this so that sent, viewed, and completed statuses write back to the deal timeline as activity
Property writeback: This is optional but useful. You can create a custom HubSpot deal property (e.g., "PandaDoc Status" as a single-line text or dropdown) and have PandaDoc update it when document status changes
Step 3: Set Up Tokens in Your PandaDoc Templates
Tokens (also called merge tags) are the variables in your PandaDoc templates that pull data from HubSpot. They look like this in the template editor: [Deal.dealname] or [Contact.firstname].
To add a token, open a template in PandaDoc and click on a text block. In the toolbar you'll see a "Token" option. This opens a field browser where you can select from available HubSpot properties. The token inserts into the document and auto-fills when the document is created from a HubSpot deal.
The most commonly used tokens for a sales proposal:
[Deal.dealname] - Deal name from HubSpot
[Deal.amount] - Deal value
[Deal.closedate] - Expected close date
[Contact.firstname] and [Contact.lastname] - Prospect's name
[Contact.email] - Used to pre-fill the recipient field
[Company.name] - Company name
[HubSpot_Owner.name] - The deal owner's name (great for signature blocks)
One thing reps often miss: the token namespace matters. [Deal.X] pulls from deal properties, [Contact.X] from the associated contact, and [Company.X] from the associated company. If you use [Contact.name] but the deal has no associated contact, that field will be blank in the generated document.
Step 4: Create a Document from a HubSpot Deal
Once the integration is live and your templates are set up, here's how reps actually use it:
Open the HubSpot deal record
Scroll to the PandaDoc panel in the right sidebar (it appears automatically after installation)
Click "Create Document" and choose a template
PandaDoc opens with all mapped tokens pre-filled
Rep reviews, adjusts pricing, and sends
The document is linked to the deal. All activity (views, opens, comments, signatures) surfaces in the HubSpot timeline without any manual updates from the rep.
Field Mapping: The Part Most Teams Get Wrong
The integration uses HubSpot's internal property names, not the display labels you see in the UI. This trips up a lot of admins during setup.
For example, the "Deal Owner" field you see in HubSpot has an internal name of hubspot_owner_id, and in PandaDoc it maps as [HubSpot_Owner.name] for the name or [HubSpot_Owner.email] for the email address. If you try to use [Deal.deal_owner], it won't work.
To find the internal property name in HubSpot: go to Settings > Data Management > Properties, find the property, and look at the "Internal name" field on the detail view.
For custom properties you've created (things like "Customer Tier" or "Contract Length"), the internal name usually follows the pattern: lowercase, underscores instead of spaces. In PandaDoc tokens, custom deal properties reference as [Deal.your_custom_property_name].
Tips for clean field mapping:
Test every token before sending templates to your sales team. Create a test document from a known deal with complete data and verify each field populates correctly
For currency fields like deal amount, set the formatting in PandaDoc's token settings (currency symbol, decimal places) rather than relying on HubSpot's formatting
Date fields from HubSpot come through as Unix timestamps by default. Use PandaDoc's date formatting option on the token to display them as MM/DD/YYYY or your preferred format
If a token might be blank (e.g., a deal doesn't always have a billing address), add fallback text using PandaDoc's token default value setting
Common Issues and How to Fix Them
The PandaDoc Panel Doesn't Appear on Deal Records
This is almost always a HubSpot plan issue or a caching problem. First, confirm your HubSpot account is on Starter or above. If the plan is correct, try logging out and back in to both platforms. If the panel still doesn't appear, go to HubSpot > Settings > Connected Apps and disconnect PandaDoc, then reinstall it. The OAuth tokens occasionally go stale.
Tokens Show as Blank in Generated Documents
Usually one of three causes:
The deal doesn't have the required property filled in (check the deal record in HubSpot)
The deal has no associated contact or company (required for [Contact.X] and [Company.X] tokens)
The token syntax is wrong (double-check internal property names as described above)
Document Status Isn't Syncing Back to HubSpot
Check the Document Status Sync toggle in PandaDoc under Settings > Integrations > HubSpot. It must be enabled. Also confirm the HubSpot deal the document was created from still exists and hasn't been deleted or merged.
The Integration Connects Fine But Workflow Triggers Don't Fire
HubSpot workflows that trigger on PandaDoc document status require the property writeback to be configured. The workflow trigger must use a deal property (e.g., your custom "PandaDoc Status" field) rather than the timeline activity. Set up the property writeback in PandaDoc settings first, then build the workflow in HubSpot using that property as the trigger.
Best Practices for Teams Running This at Scale
After setting this up for multiple sales teams, a few practices separate the teams that get full value from the ones that end up with a half-configured integration:
Standardize your template library: The integration is only as good as your templates. Have one primary proposal template per product line, with all tokens mapped. Avoid letting reps create templates ad-hoc, as inconsistent token usage breaks automation
Use a "Document Created" deal stage: Add a deal stage (or pipeline property) that automatically gets set when a PandaDoc document is created from that deal. This gives you visibility in your pipeline on which deals have active proposals out
Build a "Signed" workflow: When PandaDoc document status writes back "completed," trigger a HubSpot workflow to move the deal to Closed Won, create a task for onboarding, and notify the CS team. This is where the real ROI of the integration comes from
Audit document activity weekly: PandaDoc shows you when prospects open documents and how much time they spend on each section. Pull this data into your sales reviews. A prospect who spent 8 minutes on the pricing section is a different conversation than one who hasn't opened the document
Lock down template editing: Give reps Send access to templates, not Edit access. Every time a rep edits a shared template, they break someone else's token setup
Setting Up Automated Document Creation with HubSpot Workflows
This is an advanced step, but it's worth mentioning because it removes the manual step of a rep clicking "Create Document" in the sidebar.
In HubSpot, go to Automation > Workflows and create a deal-based workflow. Set the trigger to "Deal Stage is X." In the actions, you'll see a PandaDoc action called "Create Document from Template." Select the template, and HubSpot will automatically generate the PandaDoc document when any deal hits that stage.
A few caveats: auto-created documents don't auto-send (PandaDoc requires a human to review and send). The document appears in the deal's PandaDoc panel, ready for the rep. Also, if the deal lacks a primary contact with an email address, the workflow action will fail. Build an enrollment condition that checks for a valid contact email before running the PandaDoc action.
When to Call in Help
Most teams can self-serve through the initial setup. Where things get complicated: multi-pipeline deal structures, custom object associations, content libraries synced across multiple HubSpot portals, and integrations that involve a third system (like a CPQ or billing platform sitting alongside both tools).
If you're dealing with any of those scenarios, or if you've run through this guide and something still isn't working, it's usually faster to have someone who configures this daily take a look rather than spending hours in support tickets.
We offer a dedicated HubSpot integration setup service for teams that want this done right the first time, including template builds with all tokens mapped, workflow configuration, and testing on real deal data.
Need help setting this up? We configure PandaDoc + HubSpot for teams every week. Book a call and we'll take a look at your setup.
What the PandaDoc + HubSpot Integration Actually Does
Before touching any settings, it helps to understand what you're connecting. The PandaDoc + HubSpot integration is a native two-way sync between your CRM and your document platform. In plain terms: deals in HubSpot can automatically populate PandaDoc proposals, and once a document is sent or signed, that status flows back into HubSpot as deal activity and property updates.
Here's what the integration handles in practice:
Token population: HubSpot deal and contact properties (company name, deal value, owner name, etc.) auto-fill into PandaDoc templates using merge tags, so reps aren't copying and pasting
Activity logging: When a document is viewed, signed, or declined, a note is created on the HubSpot deal timeline
Property sync: Document status can write back to custom HubSpot deal properties (useful for building workflows off document state)
Deal stage triggers: You can configure HubSpot workflows to create or send PandaDoc documents automatically when a deal moves to a specific stage
This is the integration most sales teams should have running. If your reps are still pulling deal data from HubSpot and typing it into a Word doc, you're losing time and introducing errors on every single deal.
Prerequisites Before You Start
A few things need to be in place before setup. Skipping these is the most common reason the integration breaks partway through:
HubSpot plan: You need HubSpot Starter, Professional, or Enterprise. The free plan does not support third-party app integrations from the marketplace
PandaDoc plan: The HubSpot integration is available on PandaDoc Business and Enterprise plans. It is not available on the free tier or Essentials
Admin access: You need to be a Super Admin in HubSpot and have Admin rights in PandaDoc to install the app and configure OAuth
Clean contact and deal data: The integration maps CRM properties to document tokens. If your HubSpot data is messy (blank required fields, duplicate properties, etc.), documents will generate with blanks or wrong values
Also worth noting: this is not a Zapier integration. It's a native connection maintained by PandaDoc, which means it's faster, more reliable, and doesn't require a middleware account. But it also means any issues need to go through PandaDoc support, not a third-party platform.
Step-by-Step Setup
Step 1: Install PandaDoc from the HubSpot App Marketplace
In HubSpot, go to Settings > Integrations > Connected Apps and click "Visit App Marketplace." Search for PandaDoc. You'll find the official app published by PandaDoc, Inc. Click Install.
You'll be redirected through an OAuth flow that asks you to log in to PandaDoc and grant HubSpot permission to access your workspace. Make sure you're logging in with an account that has Admin rights in PandaDoc, not a standard user account. If you install with a standard account, certain sync settings won't appear.
Step 2: Configure the Integration Settings in PandaDoc
Once the OAuth handshake is done, you'll land in PandaDoc under Settings > Integrations > HubSpot. This page controls the core behavior of the sync:
Object mapping: Decide whether PandaDoc documents should link to HubSpot Deals, Contacts, or both. For B2B sales, Deals is almost always the right choice
Document status sync: Enable this so that sent, viewed, and completed statuses write back to the deal timeline as activity
Property writeback: This is optional but useful. You can create a custom HubSpot deal property (e.g., "PandaDoc Status" as a single-line text or dropdown) and have PandaDoc update it when document status changes
Step 3: Set Up Tokens in Your PandaDoc Templates
Tokens (also called merge tags) are the variables in your PandaDoc templates that pull data from HubSpot. They look like this in the template editor: [Deal.dealname] or [Contact.firstname].
To add a token, open a template in PandaDoc and click on a text block. In the toolbar you'll see a "Token" option. This opens a field browser where you can select from available HubSpot properties. The token inserts into the document and auto-fills when the document is created from a HubSpot deal.
The most commonly used tokens for a sales proposal:
[Deal.dealname] - Deal name from HubSpot
[Deal.amount] - Deal value
[Deal.closedate] - Expected close date
[Contact.firstname] and [Contact.lastname] - Prospect's name
[Contact.email] - Used to pre-fill the recipient field
[Company.name] - Company name
[HubSpot_Owner.name] - The deal owner's name (great for signature blocks)
One thing reps often miss: the token namespace matters. [Deal.X] pulls from deal properties, [Contact.X] from the associated contact, and [Company.X] from the associated company. If you use [Contact.name] but the deal has no associated contact, that field will be blank in the generated document.
Step 4: Create a Document from a HubSpot Deal
Once the integration is live and your templates are set up, here's how reps actually use it:
Open the HubSpot deal record
Scroll to the PandaDoc panel in the right sidebar (it appears automatically after installation)
Click "Create Document" and choose a template
PandaDoc opens with all mapped tokens pre-filled
Rep reviews, adjusts pricing, and sends
The document is linked to the deal. All activity (views, opens, comments, signatures) surfaces in the HubSpot timeline without any manual updates from the rep.
Field Mapping: The Part Most Teams Get Wrong
The integration uses HubSpot's internal property names, not the display labels you see in the UI. This trips up a lot of admins during setup.
For example, the "Deal Owner" field you see in HubSpot has an internal name of hubspot_owner_id, and in PandaDoc it maps as [HubSpot_Owner.name] for the name or [HubSpot_Owner.email] for the email address. If you try to use [Deal.deal_owner], it won't work.
To find the internal property name in HubSpot: go to Settings > Data Management > Properties, find the property, and look at the "Internal name" field on the detail view.
For custom properties you've created (things like "Customer Tier" or "Contract Length"), the internal name usually follows the pattern: lowercase, underscores instead of spaces. In PandaDoc tokens, custom deal properties reference as [Deal.your_custom_property_name].
Tips for clean field mapping:
Test every token before sending templates to your sales team. Create a test document from a known deal with complete data and verify each field populates correctly
For currency fields like deal amount, set the formatting in PandaDoc's token settings (currency symbol, decimal places) rather than relying on HubSpot's formatting
Date fields from HubSpot come through as Unix timestamps by default. Use PandaDoc's date formatting option on the token to display them as MM/DD/YYYY or your preferred format
If a token might be blank (e.g., a deal doesn't always have a billing address), add fallback text using PandaDoc's token default value setting
Common Issues and How to Fix Them
The PandaDoc Panel Doesn't Appear on Deal Records
This is almost always a HubSpot plan issue or a caching problem. First, confirm your HubSpot account is on Starter or above. If the plan is correct, try logging out and back in to both platforms. If the panel still doesn't appear, go to HubSpot > Settings > Connected Apps and disconnect PandaDoc, then reinstall it. The OAuth tokens occasionally go stale.
Tokens Show as Blank in Generated Documents
Usually one of three causes:
The deal doesn't have the required property filled in (check the deal record in HubSpot)
The deal has no associated contact or company (required for [Contact.X] and [Company.X] tokens)
The token syntax is wrong (double-check internal property names as described above)
Document Status Isn't Syncing Back to HubSpot
Check the Document Status Sync toggle in PandaDoc under Settings > Integrations > HubSpot. It must be enabled. Also confirm the HubSpot deal the document was created from still exists and hasn't been deleted or merged.
The Integration Connects Fine But Workflow Triggers Don't Fire
HubSpot workflows that trigger on PandaDoc document status require the property writeback to be configured. The workflow trigger must use a deal property (e.g., your custom "PandaDoc Status" field) rather than the timeline activity. Set up the property writeback in PandaDoc settings first, then build the workflow in HubSpot using that property as the trigger.
Best Practices for Teams Running This at Scale
After setting this up for multiple sales teams, a few practices separate the teams that get full value from the ones that end up with a half-configured integration:
Standardize your template library: The integration is only as good as your templates. Have one primary proposal template per product line, with all tokens mapped. Avoid letting reps create templates ad-hoc, as inconsistent token usage breaks automation
Use a "Document Created" deal stage: Add a deal stage (or pipeline property) that automatically gets set when a PandaDoc document is created from that deal. This gives you visibility in your pipeline on which deals have active proposals out
Build a "Signed" workflow: When PandaDoc document status writes back "completed," trigger a HubSpot workflow to move the deal to Closed Won, create a task for onboarding, and notify the CS team. This is where the real ROI of the integration comes from
Audit document activity weekly: PandaDoc shows you when prospects open documents and how much time they spend on each section. Pull this data into your sales reviews. A prospect who spent 8 minutes on the pricing section is a different conversation than one who hasn't opened the document
Lock down template editing: Give reps Send access to templates, not Edit access. Every time a rep edits a shared template, they break someone else's token setup
Setting Up Automated Document Creation with HubSpot Workflows
This is an advanced step, but it's worth mentioning because it removes the manual step of a rep clicking "Create Document" in the sidebar.
In HubSpot, go to Automation > Workflows and create a deal-based workflow. Set the trigger to "Deal Stage is X." In the actions, you'll see a PandaDoc action called "Create Document from Template." Select the template, and HubSpot will automatically generate the PandaDoc document when any deal hits that stage.
A few caveats: auto-created documents don't auto-send (PandaDoc requires a human to review and send). The document appears in the deal's PandaDoc panel, ready for the rep. Also, if the deal lacks a primary contact with an email address, the workflow action will fail. Build an enrollment condition that checks for a valid contact email before running the PandaDoc action.
When to Call in Help
Most teams can self-serve through the initial setup. Where things get complicated: multi-pipeline deal structures, custom object associations, content libraries synced across multiple HubSpot portals, and integrations that involve a third system (like a CPQ or billing platform sitting alongside both tools).
If you're dealing with any of those scenarios, or if you've run through this guide and something still isn't working, it's usually faster to have someone who configures this daily take a look rather than spending hours in support tickets.
We offer a dedicated HubSpot integration setup service for teams that want this done right the first time, including template builds with all tokens mapped, workflow configuration, and testing on real deal data.
Need help setting this up? We configure PandaDoc + HubSpot for teams every week. Book a call and we'll take a look at your setup.
Ready to build your proposal engine?
Let’s design a proposal process that’s faster, cleaner, and more reliable. Whether you’re new to PandaDoc or scaling your team, we’ll help you close more deals - with less admin.
Let’s design a proposal process that’s faster, cleaner, and more reliable. Whether you’re new to PandaDoc or scaling your team, we’ll help you close more deals - with less admin.
Let’s design a proposal process that’s faster, cleaner, and more reliable. Whether you’re new to PandaDoc or scaling your team, we’ll help you close more deals - with less admin.
Let’s design a proposal process that’s faster, cleaner, and more reliable. Whether you’re new to PandaDoc or scaling your team, we’ll help you close more deals - with less admin.