Skip to content

Publishing a flow on your website

Embed a Guided Selling flow on your own site so visitors can request a quote, and let Quotivity create the contact, deal and quote.

This feature requires an Enterprise plan. Website RFQs is an Enterprise add-on that is not part of the Enterprise plan itself; Trial accounts include it. An admin adds it from Quotivity Studio with Add to Plan; until it is on, the Website page and Settings → Guided Selling show a locked state with the price and that button.

A published flow turns a Guided Selling questionnaire into a self-serve request form on any page of your website. A visitor answers the flow, including a required Email question, and submits. Quotivity then:

  1. Finds or creates the HubSpot contact by that email, writes any other contact-synced answers to it (job title, phone, and so on), and picks up the contact’s primary company when it has one. Quotivity never creates a company; a new contact’s deal has no company until HubSpot or your team associates one.
  2. Creates a deal in the pipeline and stage set in Settings and sets quotivity_flow_response_id and quotivity_deal_source (Website flow). The deal owner is the company’s owner; if the company has none, the contact’s owner; if neither, the HubSpot user who installed Quotivity.
  3. Saves the answers as a Flow Response on the deal. Questions set to sync to HubSpot properties write their values to the deal and company, just as they do for reps.
  4. Creates a quote on that deal with your Quote Rules applied, then posts two timeline cards. New Quote from Public Flow Response is on the deal, with the quote id. Website flow submitted is on the contact. That card lists Quote ID, Deal ID, and each answered question with the visitor’s answer. Flow name, Flow response ID, Deal ID, and Quote ID are also workflow tokens. The answers themselves are on the card only — a workflow cannot filter on a particular question.

The visitor sees a response page with a reference number. Nothing else is shown to them; the quote stays in HubSpot for your team.

Open any flow’s Website page, the Flows list, or Settings → Guided Selling → Website RFQs and click Add to Plan. The dialog shows what is due today, prorated from today to your subscription’s renewal date, the full yearly price that renews with your subscription, and the payment method on file. Confirm and Pay charges the prorated amount to that payment method and turns the feature on for every admin in the account straight away. If your subscription has no payment method yet, you add one first. If you pay by bank debit, the add-on turns on once the payment clears, usually within a few business days. A trial account, or one whose subscription is not active, is pointed to Manage Account to activate the subscription first and can then add the add-on from the same page. Only account admins can add it; contact Quotivity to remove it.

The add-on includes 100 website-created quotes each month. Website quote packs add 25 more quotes per month each; buy them from Manage Account → Subscription when you need more. See Website quote allowance and held submissions.

  • Build the flow as usual (see Creating a Guided Selling flow) and set Available in to Website only. Quotivity asks you to confirm, because the choice is permanent: a Website only flow cannot be switched back to a rep surface, reps never see it in Quote Creation or the Quote Builder, and it cannot be chosen in a Start Guided Selling Flow rule outcome. Create a new flow if you later need those questions for reps.
  • Saving the flow as Website only adds a required Email question (What is your email) to the first step when the flow does not already have one synced to the contact’s Email property (Existing property → Contact → Email). If the account already has that question, it is placed on the first step instead of creating another. The same thing happens when the flow is saved through the API. This is how Quotivity knows who the visitor is; a website flow cannot be activated without one. It has to stay on a step every visitor reaches (not on a branch some visitors skip), because answers on skipped branches are not kept. Block public email domains is on by default, so visitors are asked for a work address instead of a Gmail, Yahoo or Outlook.com one; turn it off on the question to accept any address.
  • Any other question can sync to a Contact property too, but only in a Website only flow, and only when the flow also has the required Email question. Text questions take free text (up to 1,000 characters), so they suit names, job titles and phone numbers.
  • Open Settings → Guided Selling → Website RFQs and set:
    • Allowed Domains — every hostname that will embed a flow, exactly as visitors see it (for example www.example.com and shop.example.com; subdomains are not implied). Your default quote domain and HubSpot (app.hubspot.com and app-eu1.hubspot.com) are always allowed.
    • Support Email — shown to visitors when a submission cannot be completed, with a reference they can quote to you.
    • Deal pipeline and Initial deal stage — where every website flow creates its deals. Changing the pipeline clears the stage. When unset, the default pipeline’s first stage is used. The deal is created in the account’s default currency. A question synced to the deal’s Deal Currency property uses the visitor’s answer instead, and the account default is used when that question is left blank.
    • Appearance — brand color, button text color, font (inherit from your site, Lexend Deca, Inter or system), corner radius, card or transparent background, custom CSS and whether to show “Powered by Quotivity”. These apply to every published flow and reach live pages within a minute.
  1. Open the flow and set Available in to Website only. Website in the header stays disabled until you do. Then click Website.
  2. Check the Questions and Prefill Parameters table. It lists every question in the order visitors see it, where its answer is written, and the data-answer- attribute your page can use to prefill it. The page warns you when the required Email question is missing. Publishing is refused until that question is in place and the flow is Website only.
  3. Edit the response page heading, message and reference label. Type [responseId] in the message to print the reference number inline.
  4. Save Changes, then turn the flow’s Status on. A Website only flow is served while that status is on.
  5. Copy Script and paste the tag where the flow should appear. On a HubSpot page, follow Add the flow to a HubSpot page.

Quotes created from website submissions never open a Start Guided Selling Flow outcome; every other rule runs as usual.

<script
src="https://app.quotivity.com/embed/flow.js"
data-api="https://api.secure.quotivity.com/v1"
data-flow="FLOW_ID"
data-key="qvwk_…"
data-answer-work-email=""
async></script>
Attribute Purpose
data-flow, data-key Identify the flow and authorize the page. The key is specific to this flow; rotating it from the Website page stops every page still using the old tag.
data-answer-<question key> Prefills that question’s answer (for example the visitor’s email from a logged-in session) and hides the question. The copied tag includes the Email question’s attribute; the Website page lists the attribute for every other question (team_size becomes data-answer-team-size). Multi-select answers are option values separated by ;, and letter case does not matter (cad matches CAD). An empty attribute, a value the question would reject, or the question’s own default leaves the question visible.
data-target A CSS selector for where to render; by default the flow renders right after the script tag.

The flow renders in the page itself, so your site’s font applies when Font is set to inherit. Custom CSS is scoped to the .qv-flow element.

On a HubSpot website or landing page, paste the script tag into a rich text module’s source code. The flow renders where that module sits.

  1. In HubSpot, open the page in the content editor: Content → Website Pages (or Landing Pages), then click the page’s name.
  2. Add a rich text module where the flow should appear: click the Add icon in the left sidebar, search for Rich text, and drag the module into place. You can also use a rich text module already on the page. The page needs a template with a drag and drop area to add modules.
  3. Click the module to open its toolbar, then click Advanced and select Source code.
  4. Paste the script tag you copied from the flow’s Website page, then click Save changes.
  5. Click Update or Publish to take the page live.

Before visitors can use it, add the page’s hostname to Allowed Domains in Settings → Guided Selling → Website RFQs, exactly as it appears in the browser’s address bar. That is your connected domain (for example www.example.com), or the HubSpot hosting domain such as 12345678.hs-sites.com when the page has no domain of its own. HubSpot’s editor and preview (app.hubspot.com, app-eu1.hubspot.com) are always allowed. If the flow does not appear in the editor, preview the page or open the published URL instead.

Use Advanced → Source code rather than Insert → Embed: HubSpot does not support script embeds in full-width modules. HubSpot’s guide to editing rich text modules has more on the source code editor, and editing content in the content editor covers adding modules.

  • Website flows create up to 100 quotes each month across the account, plus 25 more per month for each Website quote pack. A submission that arrives after the allowance is spent is still accepted (contact, deal and Flow Response are created) but its quote is held until an admin processes it from Guided Selling → Website RFQs, Manage Account or the flow’s Website page; see Website quote allowance and held submissions.
  • A flow accepts 10 submissions per hour across all visitors. The flow’s configuration is cached for a minute, so Studio changes reach live pages shortly after you save.
  • An Email question refuses addresses that are not valid or, unless you turned Block public email domains off, that use a public mailbox domain such as gmail.com; the visitor sees “Please use your work email address.”
  • A visitor who hits a limit sees a friendly message asking them to try again later. A submission that fails for another reason shows a reference number and your Support Email; their answers stay in the form so they can try again.
  • Pages on a domain that is not in Allowed Domains show “This form is not available”. Add the domain and reload.
  • Unpublishing the flow, deactivating it, or removing the add-on takes the form down immediately; the script tag can stay in place.