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
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 a HubSpot quote project template
4. Install the HubSpot quote project's dependencies
5. Rename the HubSpot quote project to 'doquotes'
6. Add the DoQuotes modules to your HubSpot quote project
7. Deploy the DoQuotes project to your HubSpot portal
8. Add a DoQuotes module to a quote template
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 onward) is done once per portal, and starts with generic HubSpot quote-project setup before anything DoQuotes-specific.
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.
- Open the Terminal app on your Mac (find it via Spotlight — press Cmd + Space and type
Terminal) or Command Prompt on Windows. - Check whether Node.js is already installed by typing
node -v. If you see a version number (e.g.v22.23.2), you're set — skip to step 3. If you see "command not found," install Node.js from nodejs.org (choose the LTS version), then come back and repeat this check. - 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.
2. Connect the HubSpot CLI to your portal
- In Terminal, type
hs account auth. - Your browser opens automatically to a HubSpot page for generating a CLI Personal Access Key — nothing else to type in Terminal yet.
- 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. - 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. - 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). - 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.
Part B: Per-portal setup
3. Create a HubSpot quote project template
You'll do this once per HubSpot portal you set up DoQuotes on. HubSpot provides a ready-made starting template for this — you need it because HubSpot's own tools can't yet scaffold a quote-module project from scratch.
- Open this link in your browser: github.com/HubSpot/quote-dev-starter
- Click the green Code button (top right, above the file list). A panel opens — ignore the clone URL box at the top of it.
- Near the bottom of that same panel, click Download ZIP (it's a plain text link with a small icon, not a big button — easy to miss below "Open with GitHub Desktop").
- Find the downloaded file (usually in your Downloads folder) named
quote-dev-starter-master.zip, and double-click it to unzip it. This creates a folder calledquote-dev-starter-master. - Move that folder somewhere you'll remember — for example, place it on your Desktop or in your Documents folder. This folder is now your HubSpot quote project for this portal.
Tip: You don't need to know Git or use the Terminal to get this template — the Download ZIP link inside the Code panel does the same job. (If you're comfortable with Git, git clone https://github.com/HubSpot/quote-dev-starter.git also works, but on a brand-new Mac it can prompt you to install additional developer tools first, which the ZIP download avoids.)
4. Install the HubSpot quote project's dependencies
- In Terminal, move into the folder you just created:
cd ~/Desktop/quote-dev-starter-master - Type
npm install.
This runs for a few seconds 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 template depends on; they don't affect DoQuotes. - The install running twice — you'll see a line
> postinstallpartway through, followed by a second round ofadded X packages. This is expected: the first install sets up the main project, and it automatically triggers a second one for the quote modules themselves. - A summary mentioning a number of "vulnerabilities" (e.g. "31 vulnerabilities... 13 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 project template 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.
You'll know it worked when Terminal returns you to a normal prompt with no red npm error text.
5. Rename the HubSpot quote project to 'doquotes'
By default, this template will upload to HubSpot as quote-dev-starter — we want it to always upload as doquotes instead, so future updates land in the same place rather than creating a duplicate project. This is the first DoQuotes-specific step in this guide — everything before it applies to any HubSpot quote project, not just DoQuotes.
- In Terminal, in the same folder, type:
sed -i '' 's/"quote-dev-starter"/"doquotes"/' hsproject.json - Confirm it worked by typing
cat hsproject.json. You should see"name": "doquotes",in the output.
Note: Do this before running hs project upload in step 7 — the name in this file is what determines the project's name inside HubSpot. That exact sed -i '' syntax (with the empty quotes) is Mac-specific.
6. Add the DoQuotes modules to your HubSpot quote project
- Make sure you're still in the project folder from steps 3-5 (the one containing
hsproject.json). - Type
npx @hubdo/doquotes. - The first time you run this, npm hasn't downloaded DoQuotes yet, so it will ask something like:
Press Enter (or type y) to continue.Need to install the following packages: @hubdo/doquotes@1.0.9 Ok to proceed? (y)
Note: The version number shown will be whatever the current release is at the time — it won't always say 1.0.9.
- You'll then see a confirmation listing everything that was added — a set of shared files followed by one entry per module:
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.✔ 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 Next: run your usual "hs project upload" to deploy.
Note: This command only works when run from inside a HubSpot quote project folder (one containing hsproject.json) — if you see an error saying No hsproject.json found, you're in the wrong folder; go back to step 3.
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.
7. Deploy the DoQuotes project to your HubSpot portal
- Type
hs project upload. - You'll likely see two warnings before anything else happens:
Both are safe to ignore — the same underlying "vulnerabilities" you saw during⚠ 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: 31 total (13 high, 15 moderate, 3 low)npm installin step 4, and an optional linting step you don't need for this setup. - Since this project doesn't exist in your portal yet, you'll be asked:
Press Enter (or type y) — notice this one defaults to Yes.? [--forceCreate] The project doquotes does not exist in doquotesnpxsetuptest [test account] (149143419). Would you like to create it? (Y/n) - 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 - 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 because of the rename in step 5. 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.
8. Add a DoQuotes module to a quote template
- In your portal, go to Settings → Objects → Quotes → Quote Templates → Open template library.
- 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.
- Decide where in the template you'd like to add a module.
- Use the + (plus) icon at the top-left of the editor to add a module to the template.
- Choose one of DoQuotes' modules in the picker — e.g. Field: Single-text or Layout: Columns — and drag and drop it onto the template.
- Configure the module using the panel on the left side of the editor.
- 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.
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.