Quotivity custom properties
See every property Quotivity adds to companies, contacts, deals, quotes, products, and line items — and which are business data versus system fields.
Overview
Section titled “Overview”When you install Quotivity, we add custom properties to your HubSpot portal so quoting data lives on the same CRM records your team already uses. Some of those properties are business data you can report on, filter, and show on records. Others are system fields Quotivity uses to run the quote lifecycle — leave those alone unless a workflow or integration needs them.
This article lists the properties Quotivity creates on companies, contacts, deals, quotes, products, and line items. Product and line item fields are listed separately because HubSpot inheritance is easy to miss: a property created on Product also appears on Line Item, and Quotivity creates additional properties on Line Item that never exist on Product.
It is a HubSpot reference — there is nothing to configure in Quotivity Studio — so Studio screenshots are not included.
Properties appear after install or the next HubSpot re-authentication. Internal
names start with quote_hapily_, quotivity_, or hapily_, with one exception:
Expiration Period Option. Use the label in reports and the internal
name in workflows and the API.
Business data vs system fields
Section titled “Business data vs system fields”| Kind | What it means |
|---|---|
| Business | A metric or status your team can report on — revenue, margin, price book, acceptance, e-signature status. |
| System | An identifier, token, flag, or workflow signal Quotivity needs to operate. Don’t edit these by hand. |
| Calculated | HubSpot computes the value from other line item fields. Quotivity defines the formula; you don’t set it. |
A few properties only appear when a plan feature is on: company and deal Price Book need company-assigned price books (Enterprise), and Optional? needs optional line items (Enterprise). Roll-up fields and Guided Selling can add more properties you configure — those are covered at the end.
Companies
Section titled “Companies”Quotivity adds one company property, and only when company-assigned price books are on (Enterprise).
| Label | Internal name | Kind | How Quotivity populates it |
|---|---|---|---|
| Price Book | quotivity_price_book |
Business | You set this on the company in HubSpot. When a quote is created, Quotivity can use it as the catalog if no higher-priority source applies — a book already on the quote, a matching Set Price Book rule, a book inferred from deal line items, or a book on the deal. A company assignment locks the book on the quote so the rep can’t switch it. |
See Assigning price books to companies.
Guided Selling can also create or write other company properties when a question is set to sync there. Those names come from your Question Library, not from install.
Contacts
Section titled “Contacts”Quotivity does not add standard custom properties to contacts.
Quotes still associate buyer contacts, and Quote Rules can read contact properties that already exist in HubSpot. Guided Selling syncs answers to deal, company, or quote properties — not contacts.
Approval properties live in a Quote Approval Information group. Ramp revenue fields live with the rest of deal information.
| Label | Internal name | Kind | How Quotivity populates it |
|---|---|---|---|
| Price Book | quotivity_price_book |
Business | Enterprise. You set this on the deal. At quote create, it wins over a company assignment and loses to a book already on the quote, a matching Set Price Book rule, or a book inferred from deal line items. A deal assignment locks the book. |
| Current Quote Approver(s) | quote_hapily_current_approvers |
Business | Written when a HubSpot workflow requests approval. A comma-separated list of approver emails. |
| Last Approval Request Reason | quotivity_approval_request_reason |
Business | The explanation from the latest approval request, copied onto the deal from the Quote sent for approval timeline event. |
| Date Quote Submitted for Approval | quote_hapily_date_submitted |
Business | Set when a quote is submitted and an approval rule holds it. |
| Date Quote Approved | quote_hapily_date_approved |
Business | Set when the quote publishes — after approval, or immediately if no approval was required. |
| Starting ARR | quotivity_arr_starting |
Business | Copied from the quote when the deal syncs. On a ramped quote, this is first-period ARR. |
| Ending ARR | quotivity_arr_ending |
Business | Copied from the quote. Last-period ARR on a ramped quote; otherwise matches Starting ARR. |
| Starting MRR | quotivity_mrr_starting |
Business | Copied from the quote. First-period MRR on a ramped quote. |
| Ending MRR | quotivity_mrr_ending |
Business | Copied from the quote. Last-period MRR on a ramped quote; otherwise matches Starting MRR. |
When a quote publishes, Quotivity also writes HubSpot’s standard deal Amount from the quote metric you chose in Settings — TCV, ACV, ARR, or MRR — unless you use manual entry. See Choosing how the deal amount is calculated.
Roll-up fields you create are written to the deal with the same internal name as on the quote, when that property exists on both objects.
Quotes
Section titled “Quotes”Most quote properties sit in HubSpot’s Quote information group.
Revenue and margin
Section titled “Revenue and margin”Quotivity recalculates these as line items change, then uses them when the quote publishes and the deal syncs.
| Label | Internal name | Kind | How Quotivity populates it |
|---|---|---|---|
| Gross Margin | quote_hapily_quote_margin_amount |
Business | Sum of line-item margin. A sample Gross Margin roll-up uses this same name. Bundle headers use bundle net price minus rolled-up cost. |
| Margin Percentage | quote_hapily_quote_margin_percentage |
Business | Margin as a percentage of net line amount. Bundle headers use bundle net price as the denominator. |
| Total Contract Value (TCV) | quote_hapily_total_contract_value |
Business | Full contract value across the term, including recurring and one-time charges. Starts at 0 on a new quote. |
| Annual Contract Value (ACV) | quote_hapily_annual_contract_value |
Business | Value of the contract over one year. |
| Annual Recurring Revenue (ARR) | quote_hapily_annual_recurring_revenue |
Business | Recurring portion expressed per year. On ramped quotes, this is the starting run-rate. |
| Monthly Recurring Revenue (MRR) | quote_hapily_monthly_recurring_revenue |
Business | Recurring portion expressed per month. On ramped quotes, this is the starting run-rate. |
| Starting ARR | quotivity_arr_starting |
Business | Recurring revenue of the first billing period. Without ramps, this matches ARR. |
| Ending ARR | quotivity_arr_ending |
Business | Recurring revenue of the last billing period. Without ramps, this matches Starting ARR. |
| Starting MRR | quotivity_mrr_starting |
Business | First-period MRR. |
| Ending MRR | quotivity_mrr_ending |
Business | Last-period MRR. |
| Sales Tax Amount | quote_hapily_sales_tax_amount |
Business | Total sales tax on the quote when automatic sales tax is enabled (Enterprise). |
Optional line items do not count toward these revenue totals.
Lifecycle, approval, and validation
Section titled “Lifecycle, approval, and validation”| Label | Internal name | Kind | How Quotivity populates it |
|---|---|---|---|
| Quotivity Approval Queue | quote_hapily_approval_queue |
Business | Semicolon-separated queue names when an approval rule holds the quote. Options stay in sync with the queues you configure. |
| Quotivity Validation Operation | quotivity_validation_operation |
System | Set to Calculate Shipping and/or Calculate Taxes while a Require Validation rule is pending (Enterprise). Cleared when validation finishes. |
| Quotivity Validation Status | quotivity_validation_status |
System | Validation Pending or Validation Complete. A pending quote is not editable. |
| Quotivity Validation Date | quote_hapily_validation_date |
Business | Date validation completed, or the publish date when no validation ran. |
| Created by Quotivity | quote_hapily_created_by_quote_hapily |
System | Set to Yes on every quote Quotivity creates. |
| Auto-created by Quotivity | quotivity_auto_created |
System | Yes when the HubSpot Create Quote workflow action created the quote. |
| Auto-submitted by Quotivity | quotivity_auto_submitted |
System | Yes when the HubSpot Submit Quote workflow action submitted the quote. |
| Expiration Period Option | expiration_period_option |
Business | Copied from your default quote expiration at create (30_days, 60_days, 90_days, 120_days, 180_days, 365_days, or custom_date). Drives the HubSpot expiration date unless the option is a custom date. |
| E-Signature Status | quotivity_esign_status |
Business | DocuSign envelope status: Not Started, Awaiting Signatures, Partially Signed, Completed, Voided, or No Credits. |
| Accepted By | quotivity_accepted_by |
Business | Email of the buyer who accepted the quote. |
| Accepted Date | quotivity_accepted_date |
Business | Date and time the quote was marked accepted. |
Catalog, template, and delivery
Section titled “Catalog, template, and delivery”| Label | Internal name | Kind | How Quotivity populates it |
|---|---|---|---|
| Price Book | hapily_price_book |
Business | The catalog chosen at quote create. Options stay in sync with your price books. |
| Quotivity Template ID | quotivity_template_id |
System | ID of the selected Quotivity-managed template. Cleared when the quote uses a HubSpot-native template. |
| Quotivity Template Name | quotivity_template_name |
Business | Display name of the template in use (Quotivity or HubSpot), for reporting. |
| Quotivity Quote Link | quotivity_quote_link |
Business | URL of the published Quotivity-hosted quote page. Written when the quote renders. |
| Quotivity PDF Download Link | quotivity_pdf_download_link |
Business | URL of the generated PDF. Written when the PDF is ready. |
| Finalization Token | quote_hapily_finalization_token |
System | One-time token used to finalize the quote. Cleared after acceptance. |
| Attached File URLs | quote_hapily_attached_file_urls |
System | JSON list of uploaded quote attachment URLs. |
| Form Data | quote_hapily_form_data |
System | JSON of buyer form answers collected at finalization. |
How product and line item properties relate
Section titled “How product and line item properties relate”HubSpot’s Line Item object inherits custom Product properties. When Quotivity creates a property on Product, HubSpot automatically makes that same property available on Line Item — same label, same internal name. You do not create it twice.
Quotivity also creates some properties directly on Line Item. Those do not exist on Product. They are quote-specific values (discounts, net cost, line type) that only make sense on a quote line.
A line item in HubSpot therefore shows two kinds of Quotivity fields:
| Where Quotivity creates it | What you see |
|---|---|
| Product | Inherited onto every line item automatically. Catalog values copy onto the line when the product is added; Quotivity may then update the line (list price snapshot, selected variant, narrowed price books). |
| Line Item only | Created on Line Item independently. Not present on the product record. |
| Both objects | Is Bundle Header? is the one property Quotivity defines on Product and again on Line Item (same internal name, different HubSpot property groups). |
Don’t treat a field as product-only just because its schema lives on Product — it is valid on the line item too. And don’t expect a Line Item-only field such as Absolute Discount Amount to appear on the product.
Products
Section titled “Products”Quotivity creates these on the Product object. Because of HubSpot inheritance, every property in this section also appears on line items.
Catalog and pricing
Section titled “Catalog and pricing”| Label | Internal name | Kind | How Quotivity populates it |
|---|---|---|---|
| Price Books | hapily_price_books |
Business | Which price books this product belongs to. On a line item, Quotivity can narrow this to the quote’s book. |
| Quotivity Calculated Price | quotivity_calculated_price |
Business | Enterprise. Which calculated-price formula is assigned to the product. |
| List Price | quote_hapily_list_price |
Business | Catalog list price. On a line item, Quotivity snapshots this when the product is added or the price book changes. |
| Margin Percentage | quote_hapily_margin_percentage |
Business | Line-item margin percentage. Defined on Product so it inherits onto the line. |
| Optional? | quote_hapily_is_optional |
Business | Enterprise. Optional or Required. On a line item, optional lines are excluded from quote revenue totals and from the deal line-item sync. |
| Product Variant Template | quote_hapily_product_variant_template |
System | Variant template the product uses (Enterprise). |
| Selected Product Variant | quote_hapily_selected_product_variant |
Business | Variant selected for this product. On a line item, the variant the rep chose. |
| Product Features | quote_hapily_product_features |
Business | Rich-text features shown for the product or bundle. |
Bundles
Section titled “Bundles”These are created on Product so they inherit onto header and member line items. Quotivity then writes quote-specific values onto the line (bundle IDs, option name, header link, quantities, and subtotals).
| Label | Internal name | Kind | How Quotivity populates it |
|---|---|---|---|
| Is Bundle Header? | quotivity_is_bundle_header |
System | True on the header product. Also created independently on Line Item so it appears in the Line Item property group. |
| Quotivity Bundle ID | quote_hapily_bundle_id |
System | Bundle the header product represents. Copied onto header and member line items. |
| Quotivity Bundle Option ID | quote_hapily_bundle_option_id |
System | Option a member line item belongs to. |
| Quotivity Bundle Option Name | quote_hapily_bundle_option_name |
Business | Display name of that option. |
| Bundle Header Line Item ID | quote_hapily_bundle_header_line_item_id |
System | Links a member line item back to its header. Populated on the line. |
| Bundle Base Quantity | quote_hapily_base_quantity |
System | Member quantity before multiplying by the header quantity. Don’t edit this. |
| Bundle Net Price | quote_hapily_bundle_net_price |
Business | Net price of the configured bundle, stored on the header line. |
| Included Products Subtotal | quote_hapily_bundles_included_products_subtotal |
Business | Subtotal of included bundle members. |
| Add-on Products Subtotal | quote_hapily_bundles_addon_products_subtotal |
Business | Subtotal of add-on members. |
Line items
Section titled “Line items”A line item shows inherited Product properties plus Line Item-only properties. The Product table above is the full inherited set — those names are not created a second time on Line Item (except Is Bundle Header?).
Inherited from products
Section titled “Inherited from products”When a product is added to a quote, HubSpot copies the Product properties onto the line. Quotivity may then overwrite quote-specific values for List Price, Price Books, Selected Product Variant, Optional?, and the bundle fields.
You will not find a separate Line Item definition for names such as
hapily_price_books or quote_hapily_list_price. They appear on the line
because they were created on Product.
Created only on line items
Section titled “Created only on line items”Quotivity creates these directly on the Line Item object. They do not exist on Product, so they never appear on product records.
| Label | Internal name | Kind | How Quotivity populates it |
|---|---|---|---|
| Absolute Discount Amount | quotivity_absolute_discount_amount |
Calculated | Amount + percentage discount, plus any drop from list price to unit price. |
| Absolute Discount Percentage | quotivity_absolute_discount_percentage |
Calculated | Absolute discount amount divided by list price (or unit price if list is empty). |
| Unit Sale Price | quotivity_unit_sale_price |
Calculated | Unit price after amount or percentage discount. |
| Net Cost | quotivity_net_cost |
Calculated | Unit cost × quantity. |
| Margin Amount | quotivity_margin_amount |
Business | Mirrors HubSpot margin on normal lines. Bundle headers use bundle net price minus rolled-up cost. |
| Gross Margin | quote_hapily_quote_margin_amount |
Business | Same name as the quote Gross Margin roll-up. Written on bundle header line items for that bundle’s members. |
| Calculated Unit Price | quotivity_calculated_unit_price |
System | Last unit price from a Calculated Pricing formula (Enterprise). Used to detect when formula inputs changed. |
| Original Bundle Header Cost | quotivity_original_bundle_header_cost |
System | Bundle header’s own cost before member costs are rolled in. Snapshotted from product COGS when the header is created. |
| Line Item Type | quotivity_line_item_type |
Calculated | HEADER if a bundle ID is present, MEMBER if a bundle option ID is present, otherwise LINE. |
| Is Bundle Header? | quotivity_is_bundle_header |
System | Also created on Product. The Line Item copy lives in the Line Item property group and is True on the header line. |
Properties you create yourself
Section titled “Properties you create yourself”Install is not the only source of Quotivity-named HubSpot properties.
- Roll-up fields (Pro and Enterprise) — each roll-up creates a property with the same internal name on Quote, Deal, and Line Item. Quotivity recalculates the quote value as line items change, writes the per-bundle result onto each bundle header, and copies the quote value to the deal when the deal syncs. See Configuring Roll-up fields.
- Guided Selling (Enterprise; complimentary on Legacy Pro through November 1, 2026) — a question can create a new Deal, Company, or Quote property, or write to one that already exists. See How Guided Selling works.
- Dynamic Property Sets (Enterprise) — these show existing line-item (and inherited product) properties in Quote Builder. They do not create new HubSpot properties. See Using Dynamic Property Sets.
- Add business properties to HubSpot record views and reports. Keep system fields off default views so reps don’t edit tokens, IDs, or workflow flags.
- In HubSpot property settings, look at Product for catalog fields and Line Item for quote-specific calculated fields. Inherited Product properties appear on both objects; Line Item-only properties appear only under Line Item.
- If a property is missing, re-authenticate the Quotivity app in HubSpot so post-install can create it. Company and deal Price Book still require company-assigned price books; Optional? still requires optional line items.
- Price book dropdown options refresh to match the books in Quotivity Studio. An assignment that points at a deleted book is cleared.
- Don’t rename or delete Quotivity properties. Changing the internal name breaks writes, roll-ups, and workflows that depend on it.
Related articles
Section titled “Related articles”Ask the help center
Answers come from these guides, with links to the articles used.
Ask anything about configuring quoting in Quotivity Studio.