OAuth token handling
QuotePoint stores the HubSpot refresh token encrypted server-side. It is not returned to the browser. Access tokens are short-lived and refreshed server-side.
HubSpot shared data
The HubSpot integration requests only the CRM and schema access needed to launch governed quoting, maintain the QuotePoint deal card, and synchronize the production product library.
Data flow
| HubSpot object | Direction | Purpose |
|---|---|---|
| Deals | Read + write | HubSpot → QuotePoint: deal context and selected sales-channel context. QuotePoint → HubSpot: linked quote ID/number, status, approval status, total, and QuotePoint URL. |
| Companies | Read only | Used to prefill customer company context when launching QuotePoint from a deal. |
| Contacts | Read only | Used to prefill customer name and email context when launching QuotePoint from a deal. |
| Products | Read + write | QuotePoint publishes a one-way governed mirror of production products into HubSpot Products. QuotePoint remains the source of truth. |
| Deal schema / properties | Read + write | Used to create and maintain QuotePoint-specific deal properties, including the governed QuotePoint sales-channel field. |
QuotePoint stores the HubSpot refresh token encrypted server-side. It is not returned to the browser. Access tokens are short-lived and refreshed server-side.
QuotePoint uses HubSpot 2026-03 token issuance, introspection, and revocation endpoints.
Connections are associated with the QuotePoint workspace that authorized them. CRM operations are scoped to that workspace connection.
Demo and test workspaces cannot synchronize quotes externally, and sample product records are excluded from product-library sync.
Requested scopes
The app requests OAuth plus deal, company, contact, product, and deal-schema scopes required for the workflows above.
oauth
crm.objects.deals.read
crm.objects.deals.write
crm.objects.companies.read
crm.objects.contacts.read
crm.objects.products.read
crm.objects.products.write
crm.schemas.deals.read
crm.schemas.deals.write
Questions?