Skip to main content
Quote sync creates a HubSpot quote when you create a subscription as a draft for a customer who came from HubSpot. The quote is attached to the customer’s deal and holds the subscription’s fixed-price line items, so your sales team can review it and send it from HubSpot. Turn quote sync on with the Quotes toggle on the HubSpot connection, or with sync_config.quote.outbound in the API.

When HubSpot quote sync runs

Flexprice creates a quote when all of these are true:
  1. A subscription is created as a draft.
  2. The Quotes toggle is on for the HubSpot connection.
  3. The subscription’s customer has hubspot_deal_id in its metadata. Customers created by customer sync have it.
Quote sync runs once per draft subscription. Editing the draft later, activating it, or cancelling it does not change the quote.

What Flexprice creates in HubSpot for a draft subscription

HubSpot quote properties

Flexprice associates the quote with:
  • The deal in the customer’s hubspot_deal_id metadata.
  • The contact in the customer’s hubspot_contact_id metadata, when it is set.
  • The first quote template HubSpot returns for your account.
HubSpot only publishes quotes that have a template. If your account has no quote templates, Flexprice creates the quote without one, and you pick a template in HubSpot before publishing.

HubSpot quote line items

Flexprice adds one HubSpot line item for each subscription line item that has a fixed price and is active when the quote is created. Usage-based line items are not added. These quote line items are separate from the deal line items that deal sync manages. If one line item fails, Flexprice still adds the others.
Flexprice maps only the weekly, monthly, quarterly, and annual billing periods to HubSpot billing frequencies. For subscriptions billed daily or half-yearly it sends Flexprice’s own value (DAILY or HALF_YEARLY), which HubSpot does not accept, so their line items are not added to the quote.
Every line item gets the subscription’s billing period as its frequency, including one-time charges such as setup fees, so HubSpot shows them as recurring.

Publishing the HubSpot quote

The quote arrives in HubSpot as a draft on the customer’s deal. Open it in HubSpot, check the template, line items, and expiration date, then publish and send it from HubSpot.
If the subscription has no active fixed-price line items, Flexprice stops after creating the quote and never sets hs_status to DRAFT. The same happens if that final update fails. HubSpot then keeps the quote in its Minimal state: the quote is listed in HubSpot’s quotes tool, but it cannot be edited or published.
To make such a quote editable, set its status to DRAFT through HubSpot’s API with your private app’s access token, then add line items in HubSpot. You can also delete the quote and create a new one in HubSpot.
Flexprice does not track the quote’s status. When the customer accepts, activate the draft subscription in Flexprice yourself. Activating a draft does not start a deal sync; the next quantity change or add-on on the subscription does.

Troubleshooting HubSpot quote sync