Send HubSpot Proposals and Contracts in One Click
Stop pasting deal data into Word. Connect HubSpot to GJSDocs and turn any deal, contact, or company record into a branded PDF proposal, contract, or order form on demand — or automatically when a deal stage changes.
Where the time goes in a HubSpot-powered sales process
Most sales teams using HubSpot end up with a similar bottleneck. The CRM holds clean, structured data — deal amount, contact name, company, billing address, line items — and the sales rep needs to convert that into a formal document the prospect can sign. Proposals, statements of work, MSAs, order forms, renewal letters.
Without automation the rep opens a Word template, copies values out of HubSpot field by field, exports to PDF, names the file, drags it back into HubSpot's deal record, and sends it. Twenty minutes per deal. For an SDR closing 30 deals a month, that's a full working week of clipboard work.
GJSDocs replaces the cycle with a one-click action: pick a deal in GJSDocs, pick a template, get a finished PDF that already contains every field from HubSpot. Or skip the click entirely and let a deal-stage change trigger the document automatically.
What you'll need
- A GJSDocs account (free trial available, no credit card)
- A HubSpot account with permission to create a private app (Sales Hub Pro or above is recommended for full deal/line-item access, but Starter and free CRM work for basic flows)
- A GJSDocs template — build one from scratch, or import an existing DOCX, PDF or image proposal/contract and let GJSDocs convert it into an editable template
Step 1 — Connect HubSpot
Open Workspace > Integrations in GJSDocs and click HubSpot > Connect. You'll be sent through HubSpot's OAuth flow. Sign in, choose the portal, and approve the requested scopes (read access to contacts, companies, deals, and line items).
Once connected, GJSDocs reads your HubSpot property schema. Standard properties (deal amount, close date, owner, deal stage, contact email, company name) are picked up automatically. Custom properties — anything you've added on top of the HubSpot defaults — are also surfaced and available to map.
Step 2 — Map HubSpot fields to template variables
Open the template you'll use. In the variable panel, pick HubSpot as the source for each variable, then choose the property (or associated record property) it should pull from.
// Typical proposal mapping
{client.company} ← deal.associated_company.name
{client.contact} ← deal.primary_contact.full_name
{client.email} ← deal.primary_contact.email
{deal.amount} ← deal.amount
{deal.close_date} ← deal.close_date
{owner.name} ← deal.owner.full_name
{owner.email} ← deal.owner.email
Associated records resolve automatically. deal.primary_contact.full_name follows the deal-to-contact association without any extra setup. Line items on the deal are exposed as a list, so a proposal template can render a dynamic table of products and services without manual loops.
Step 3 — Generate from a deal
Go to Generate, pick the template, choose HubSpot as the source, and select the deal. GJSDocs pulls live values from the deal and its associated contact, company, and line items, fills the template, and produces the PDF.
Optional behaviour at generation time:
- Attach the generated PDF back to the HubSpot deal record automatically — appears under the deal's Files / Notes section
- Send the PDF by email to the primary contact via GJSDocs's send-on-generate, with a custom message body
- Log the generation as a note on the deal so the activity timeline reflects what was sent and when
- Store the document in GJSDocs history, where every version can be re-downloaded or audited
Step 4 — Trigger generation from a deal-stage change
The real productivity gain comes from removing the click. The pattern most sales teams use:
- When a deal moves to "Proposal sent", HubSpot Workflows fires a webhook to GJSDocs. GJSDocs generates the proposal PDF and attaches it to the deal automatically — the rep just opens the deal and finds the document waiting.
- When a deal moves to "Contract", a contract PDF is generated, signed via your e-signature provider, and the signed copy is logged back to HubSpot.
- When a deal moves to "Closed Won", an order confirmation and welcome pack are generated and emailed to the customer's primary contact.
Setup: in HubSpot, create a workflow with the trigger condition (deal stage equals X), add a webhook action pointing at the GJSDocs generation endpoint, and pass the deal ID and template ID in the payload. GJSDocs returns the PDF URL; HubSpot Workflows can store it on the deal in a custom property if you want it visible on the record.
Use cases that fit HubSpot well
- Proposals — branded, multi-page, line-item-driven, generated when a deal hits the proposal stage
- Contracts and order forms — generated on Closed Won, with line items rendered as a structured table
- Statements of work — for services deals, populated with the agreed scope, milestones, and pricing
- Renewal letters — quarterly or annual, generated in bulk against deals filtered by close date
- Customer onboarding documents — welcome packs, NDAs, account setup forms triggered when a deal closes
- Quote PDFs — quick branded quotes for follow-up emails, generated from any deal in seconds
Tips before rolling out to the full sales team
- Test against three real deals — small, medium, and complex (multiple line items, custom properties). Edge cases show up here, not in synthetic test deals.
- Use HubSpot custom properties for any non-standard data that should appear in documents (legal entity name, billing contact, payment terms). Don't overload the deal-name field.
- Decide where the file lives. Attaching to the deal is the most common pattern — every rep can find it on the record. For high-volume teams, also push to a shared drive.
- Mind the HubSpot API rate limits. Bulk generation against a large pipeline is fine, but extremely high-frequency triggers (hundreds per minute) should be batched.
- Train reps to use one template per stage. Multiple templates per stage creates ambiguity; one canonical "proposal" template per product line keeps the workflow simple.
Related reading:
Generate your first proposal from HubSpot
Connect HubSpot, pick a deal, get a finished proposal PDF in seconds. Free trial — no credit card.
Start free