B2B buyers add configurable SKUs, request a quote, and expect a human response. Marketing expects the same moment in HubSpot as a deal or custom object with line context — not an email saying “someone wants a quote.” WooCommerce quote request PDF to HubSpot is the programme that turns RFQ carts into CRM records with attachments sales can open, while ERP pricing stays honest.
HostHob builds that path for Dutch and EU merchants. WooCommerce B2B context: B2B custom pricing & ERP sync, HPOS realities in HPOS migration agency, HubSpot entry HubSpot WordPress integration agency, custom objects when quotes are not deals: custom objects sync. ERP neighbours: Exact & AFAS ERP, NL Exact/AFAS koppeling.
What the RFQ object must carry
- Buyer identity and company (VAT, customer number if account-based).
- Line items: SKU, qty, requested options, customer reference.
- Generated PDF quote or RFQ summary stored accessibly.
- HubSpot association: contact + company + deal or quote custom object.
- Status: submitted, priced, sent, accepted, rejected — with one system of record per status.
WooCommerce may use a quote plugin, a custom cart mode, or “order on account” flows. HubSpot may use deals in a Quote pipeline or custom objects for long-lived RFQs. Guessing wrong in week one creates migration pain in month three.
Where naive HubSpot feeds fail
Form addons send name, email, and a textarea of SKUs. Line structure dies. File properties fail. Rate limits drop the PDF note. Patterns: GF/CF7 HubSpot addon failures. Meanwhile ERP still owns real price books — HubSpot should not invent net prices that Exact will reject later. Sequence with B2B ERP pricing sync deliberately.
Architecture
- RFQ captured in WooCommerce as order-like or custom post with stable ID.
- PDF generated server-side (or on first sales open) and stored privately.
- Queue upserts HubSpot contact/company, creates deal/custom object, attaches file or note with link.
- Idempotency on RFQ ID; status updates flow both ways only where ownership allows.
- Optional Exact/AFAS for formal quotations after sales accepts — do not dual-write chaotic prices.
HPOS-safe order APIs matter if RFQs are shop orders — HPOS custom integrations. Multisite brands need credential isolation — multisite ERP credentials.
Delivery checklist
- RFQ data model and HubSpot object choice signed by sales ops.
- PDF template ownership (brand vs legal disclaimers).
- Staging: multi-line RFQ, account customer, guest B2B application, HubSpot 429 retry.
- Permissioned PDF URLs; no public uploads directory listing.
- Sales playbook: where to open lines and how status moves.
- Runbook for SKU option changes breaking PDF templates.
When not to hire us
If you only need a mailto: link for rare quotes, stay simple. If HubSpot Commerce already is your storefront, do not force WooCommerce. If ERP must price before any CRM visibility, start with ERP quote documents and a thinner HubSpot notification — we will say so.
Hire us when RFQ volume hurts, PDFs are scattered in inboxes, or deals lack line context. Case-shaped proof: HubSpot lead sync case. EU API delivery: API agency Europe.
Pricing honesty
Showing list prices on RFQ PDFs while account net prices live in Exact creates dispute fuel. Either PDF shows “request only” without binding prices, or prices come from the same service ERP sync uses. We refuse to hard-code discount tables in HubSpot workflows.
Failure modes
- PDF generated before line validation finishes; sales prices empty carts.
- HubSpot file size limits; need external signed URL with CRM note instead.
- Guest RFQ creates contact without company; territory routing fails.
- Accepted quote in HubSpot never creates Woo order or Exact sales document.
- HPOS dual-run leaves RFQ meta in the wrong datastore.
Commercial shape
Estimate from quote plugin vs custom, line complexity (options/bundles), HubSpot object choice, and ERP handoff scope. A PDF + deal create is a slice; bidirectional status with Exact quotation is a programme. Discovery freezes the object model first.
Bring: sample RFQ, HubSpot pipeline screenshot, ERP quote process, and pain volume. Related: connector vs maatwerk · Exact Globe · HubSpot koppeling.
Account pricing, catalogues, and who may RFQ
Not every visitor should submit a multi-line RFQ. Account catalogues, locked price books, and “request access” workflows belong upstream of quote capture. We align HubSpot lifecycle or lead status with whether the company is approved for RFQ — otherwise sales drowns in tyre-kickers while real accounts wait. Membership or role gates on WooCommerce can emit the same entitlement signals used elsewhere in your HubSpot membership programmes.
Configurable products (options, length cuts, finishing) must serialise into line properties the PDF and HubSpot can both read. HTML blobs in a single deal property are what you have today and hate. Structured line arrays — in a custom object or in an attachment plus mirrored summary fields — let workflows fire on margin risk or strategic SKUs. Engineers should not parse PDF text to automate follow-up.
Accepted quotes need a deliberate handoff: create WooCommerce order, create Exact sales document, or mark HubSpot closed-won with a human still confirming ERP. Automating all three without idempotency creates double shipments and double invoices. We write the state machine on a whiteboard before coding. Refunds and cancelled RFQs need paths too; orphaned deals with attached PDFs confuse quarterly forecasts.
Performance: generating PDFs inline on submit under catalogue traffic will time out. Generate async, show “preparing your request,” and notify sales when HubSpot record + PDF are ready. That UX is more honest than a spinner that lies. Monitoring watches PDF failure rate separately from HubSpot API failure rate so you do not mis-prioritise fixes.
Train sales on the deal layout: where lines live, how to re-open PDF, what status means commercially. A thirty-minute enablement session prevents “the sync is broken” tickets that are actually users looking at the wrong record type. Measure adoption by deals with attachments and time-to-first-sales-action after RFQ submit — operational metrics, not vanity sync counters.
Guest RFQ versus logged-in B2B accounts
Guest quote requests need heavier fraud and completeness checks: company name, VAT, phone. Logged-in accounts should pre-fill from customer meta and still allow a buyer reference per RFQ. HubSpot company matching on domain helps, but shared domains (gmail-style or country ISPs) need manual review flags. We surface “weak match” on the deal rather than silently attaching to the wrong company — a classic sales complaint after “successful” syncs.
Multi-currency RFQs must label currency on PDF and HubSpot amounts. Mixing EUR display with USD deal amounts creates finance distrust. Tax display on RFQ PDFs should follow your legal template, often excluding VAT until formal quotation. ERP remains authoritative for tax when the formal document is issued.
Integrations with Exact Globe or Online for formal quotes should wait until HubSpot status says sales accepted the RFQ. Parallel auto-create in Exact on every RFQ floods finance with noise — see connector-versus-custom guidance when that phase starts. Quote PDF in HubSpot is a sales enablement artefact; Exact quotation is a commercial artefact. Name both in the runbook so teams stop using the words interchangeably.
Black Friday–style catalogue traffic plus RFQ spikes will expose synchronous HubSpot calls. Queues are mandatory. Budget observability before the peak, not after the first lost RFQ thread in someone’s inbox. Related WooCommerce discipline on HPOS and multisite credentials applies whenever RFQs are stored as orders.
When you are ready to brief HostHob, bring a sample RFQ PDF, your HubSpot deal pipeline (or custom object sketch), ERP quote steps, and how many RFQs arrive in a busy week. We turn that into an object model, a queue plan, and a sales enablement note — so quote requests stop disappearing into inboxes and start appearing as CRM work sales can actually close.
Security of quote PDFs and customer data
RFQ PDFs often contain account pricing hints, project names, and personal emails. Treat them as confidential: private storage, signed URLs with short TTL for HubSpot notes when file properties are impractical, and access logs for support. Public media URLs for “convenience” are a data incident. When partners receive quote copies, use HubSpot’s sharing features deliberately rather than forwarding WordPress admin links.
Role-based visibility in HubSpot matters: not every user should see every RFQ PDF across brands. Mirror your WooCommerce brand separation in HubSpot teams or portals where possible. Multisite merchants already know credential isolation for ERP — apply the same thinking to CRM file access.
Contractual note: HostHob implements technical controls; your DPA with HubSpot and customer contracts still govern how quote data may be used. We will not invent legal language. We will implement the retention and deletion hooks counsel approves, including removing PDFs from WordPress when deals age out per policy.
Related: B2B pricing ERP · HubSpot WP · Custom objects · Exact/AFAS · Lead sync case