Skip to content
English
  • There are no suggestions because the search field is empty.

Set-Up Guide: How to install DoQuotes Modules for Revenue Hub Quotes

Covers installing Node.js and the HubSpot CLI, setting up a HubSpot quote project including DoQuotes' Field and Layout modules, deploying to a HubSpot Portal and adding modules to a Revenue Hub quote or template.

INDEX

About DoQuotes Modules

Part A: One-time computer setup

1. Install Node.js and the HubSpot CLI (on your Mac or PC)
2. Connect the HubSpot CLI to your portal

Part B: Per-portal setup

3. Create your HubSpot quote project and add DoQuotes' modules
4. Deploy the DoQuotes project to your HubSpot portal
5. Add a DoQuotes module to a quote template

What's next

About DoQuotes Modules

This guide covers DoQuotes Modules — the custom, buyer-facing quote modules that add to a HubSpot Revenue Hub quote template: form fields (text, number, date, dropdown, radio, checkbox) that save a buyer's answer back to a HubSpot property, plus a flexible column layout module. It walks through installing DoQuotes Modules into a brand-new HubSpot portal for the first time, from your computer's prerequisites through adding your first module to a quote template.

Note: This guide is specifically for Revenue Hub quote modules. If you're looking to install the main DoQuotes app and its CRM app cards, see the main DoQuotes Set-Up Guide instead.

Note: DoQuotes requires a HubSpot Revenue Hub Professional or Enterprise portal — quote modules aren't available on other plans.

This guide has two parts. Part A (steps 1-2) sets up your computer once — you won't need to repeat it for future portals. Part B (steps 3-5) is done once per portal.

↑ Back to top

Part A: One-time computer setup

1. Install Node.js and the HubSpot CLI (on your Mac or PC)

DoQuotes modules are installed using two small developer tools: Node.js (runs the install scripts) and the HubSpot CLI (uploads your quote project to HubSpot). Both are installed once per computer, not once per portal.

  1. Open the Terminal app on your Mac (find it via Spotlight — press Cmd + Space and type Terminal) or Command Prompt on Windows.
  2. Check whether Node.js is already installed by typing node -v. If you see a version number of v20 or newer (e.g. v22.23.2), you're set — skip to step 3. If you see "command not found," or a version below 20, install the current LTS version from nodejs.org, then come back and repeat this check.
  3. Install the HubSpot CLI by typing npm install -g @hubspot/cli. This adds a new command, hs, that you'll use throughout the rest of this guide.

Tip: You only need to do this step once per computer. If you're setting up a second portal later on the same Mac, you can skip straight to step 2 below.

↑ Back to top

2. Connect the HubSpot CLI to your portal

  1. In Terminal, type hs account auth.
  2. Your browser opens automatically to a HubSpot page for generating a CLI Personal Access Key — nothing else to type in Terminal yet.
  3. In the browser: choose which HubSpot portal to connect, and confirm the permission scopes shown. Leave all scopes selected — these control what the CLI itself can do (like hs project upload), not DoQuotes' own permissions, and deselecting one can cause project uploads to fail later for no obvious reason.
  4. Once confirmed, the key is sent straight back to the CLI automatically — there's nothing to copy or paste. Terminal shows ✔ Personal access key received.
  5. Terminal then suggests a name for this connection, based on your portal's name, e.g. ✔ Enter a unique name to reference this account in the CLI: doquotesnpxsetuptest. Press Enter to accept the suggested name, or type your own (no spaces).
  6. Terminal then asks ? Set doquotesnpxsetuptest as your default account? [--default] (y/N). Type y and press Enter. (Notice the capital N — if you just press Enter without typing anything, it defaults to No.) Setting it as default means the commands later in this guide will automatically target this portal without you needing to specify it each time.

Note: The scopes screen here is about what the HubSpot CLI can do on your portal (uploading projects, etc.) — it's a separate thing from the DoQuotes back-end app's own permissions, which you'll connect in a later step.

Tip: After this step, Terminal shows a "What's next?" tip suggesting hs get-started — skip that. It's for building general HubSpot apps, not quote modules, and won't work for what we're doing here. Continue to step 3 below instead. If you're managing more than one portal on this computer, you can switch which one is default at any time later with hs account use, without repeating the whole auth process.

↑ Back to top

Part B: Per-portal setup

3. Create your HubSpot quote project and add DoQuotes' modules

You'll do this once per HubSpot portal you set up DoQuotes on. One command now creates the project, adds DoQuotes' modules, and installs everything it needs — you'll end this step ready to deploy.

  1. In Terminal, move to wherever you'd like the project to live — for example your Desktop: cd ~/Desktop
  2. Type npx @hubdo/doquotes.
  3. The first time you run this, npm hasn't downloaded DoQuotes yet, so it will ask something like:
    Need to install the following packages:
    @hubdo/doquotes@1.1.0
    Ok to proceed? (y)
    Press Enter (or type y) to continue.

Note: The version number shown will be whatever the current release is at the time — it won't always say 1.1.0.

  1. It then confirms where it's about to create the project, and asks before doing anything:

    This will create a new HubSpot quote project at:
      /Users/yourname/Desktop/doquotes
    
    Create it? (y/N)
    Type y and press Enter — notice this one defaults to No.

  2. You'll then see the project created, followed by a confirmation listing everything DoQuotes added to it — a set of shared files followed by one entry per module:

    ✔ Created the project (11 files).
    
    ✔ Installed:
      - shared/ConditionalVisibility.tsx
      - shared/CrmPropertyTargetFields.tsx
      ... (26 shared files in total)
      - modules/FieldDatePicker
      - modules/FieldDropdownSelect
      - modules/FieldMultiLineText
      - modules/FieldNumber
      - modules/FieldRadioSelect
      - modules/FieldSingleCheckbox
      - modules/FieldSingleLineText
      - modules/LayoutColumns
    That's seven Field modules and one Layout module — this matches everything DoQuotes currently ships, so this list is the same every time you run this command fresh.

  3. It then installs everything the project needs, which takes a minute or two and prints a lot of text. All of the following are normal — not errors: - A block of lines starting with npm warn deprecated ... — these are older sub-components HubSpot's own quote tooling depends on; they don't affect DoQuotes. - The install appearing to run twice — you'll see a line > postinstall partway through, followed by a second round of added X packages. This is expected: the first install sets up the project itself, and it automatically triggers a second one for the quote modules. - A summary mentioning a number of "vulnerabilities" (e.g. "20 vulnerabilities... 4 high") and a suggestion to run npm audit fix.

Note: Don't run npm audit fix or npm approve-scripts, even though npm suggests them. This tooling is maintained by HubSpot, and changing its dependency versions yourself can break things in ways that are hard to undo. If you're ever concerned about one of these warnings, contact support@hubdo.com rather than trying to fix it yourself.

  1. You'll know it worked when you see:
    ✔ Ready.
    
    Next, deploy it to your HubSpot portal:
    
      cd doquotes
      hs project upload

Tip — already have a quote project for this portal? Run npx @hubdo/doquotes from inside it instead (the folder containing hsproject.json) and it adds DoQuotes' modules there rather than creating a new project.

Tip — updating later: if HubDo releases a newer version of DoQuotes and you want to update your existing modules, re-run this command with --force: npx @hubdo/doquotes --force. Without --force, it skips any module it finds already installed rather than overwriting it — so if you'd made your own edits to a module, they're safe by default.

↑ Back to top

4. Deploy the DoQuotes project to your HubSpot portal

  1. Type hs project upload.
  2. You'll likely see two warnings before anything else happens:
    ⚠ WARNING Project lint: lint packages not installed for src/cms-assets/my-react-assets. Run `hs project lint` to install them.
    ⚠ WARNING npm audit: security issues found for src/cms-assets/my-react-assets: 20 total (4 high, 14 moderate, 2 low)
    Both are safe to ignore — the same underlying "vulnerabilities" you saw during step 3, and an optional linting step you don't need for this setup.
  3. Since this project doesn't exist in your portal yet, you'll be asked:
    ? [--forceCreate] The project doquotes does not exist in doquotesnpxsetuptest [test account] (149143419). Would 
    you like to create it? (Y/n)
    Press Enter (or type y) — notice this one defaults to Yes.
  4. HubSpot then creates the project, uploads your files, and automatically builds and deploys it, all in one go, with no further prompts:
    ✔ SUCCESS New project doquotes successfully created in doquotesnpxsetuptest [test account] (149143419).
    ✔ Uploaded doquotes project files to doquotesnpxsetuptest [test account] (149143419)
    View build #1 in HubSpot: https://app.hubspot.com/developer-projects/149143419/project/doquotes/activity/build/1
    ✔ Built doquotes #1
    --------------------------------------------------
    Build #1 succeeded. Automatically deploying to doquotesnpxsetuptest [test account] (149143419)
    View deploy of build #1 in HubSpot: https://app.hubspot.com/developer-projects/149143419/project/doquotes/activity/deploy/1
    ✔ Deployed build #1 in doquotes
  5. Once you see "Deployed build #1 in doquotes," your DoQuotes modules are live in the portal and ready to add to a quote template.

Tip: Each of the two links printed above opens that build/deploy's details directly in HubSpot, if you want to double-check anything.

Note: The project is named doquotes automatically — step 3 created it that way. If you ever set up a second DoQuotes project in the same portal, you'll need to give it a different name first — HubSpot won't let two projects in one portal share a name. You can also view the uploaded project any time by going to your portal and navigating to Developer Projects, or by running hs project open from this same folder.

↑ Back to top

5. Add a DoQuotes module to a quote template

  1. In your portal, go to SettingsObjectsQuotesQuote TemplatesOpen template library.
  2. Create a new quote template, or open an existing one to edit it — if it's already published, unpublish it first so you can make changes.
  3. Decide where in the template you'd like to add a module.
  4. Use the + (plus) icon at the top-left of the editor to add a module to the template.
  5. Choose one of DoQuotes' modules in the picker — e.g. Field: Single-text or Layout: Columns — and drag and drop it onto the template.
  6. Configure the module using the panel on the left side of the editor.
  7. When you're done, publish the template to make it available for new quotes.

Note: Field modules (everything except Layout: Columns) won't save a buyer's answer until the DoQuotes back-end app is connected to this portal — that's a separate step, not yet covered in this guide.

↑ Back to top

What's next

Connecting the DoQuotes back-end app — needed before Field modules can save a buyer's answer — isn't covered by this guide yet. For help in the meantime, contact support@hubdo.com.

↑ Back to top