How to set up HubSpot?
Connect Quotify to HubSpot so that every quote request submitted on your store automatically creates or updates a contact (and optionally a deal with line items) in your HubSpot account. This guide walks you through setup end to end.
What this integration does
When a customer submits a quote request, Quotify can:
- Create or update a HubSpot contact using the data from the quote form (email, name, phone, company, etc.).
- Create a HubSpot deal named after the quote, attached to that contact, with the total amount and a pipeline stage you choose.
- Add line items to the deal for each product and variant in the quote.
- Write custom contact properties you define (for example
lead_source = quotify). - Only sync when conditions are met — for example, only quotes above a certain value, from a specific country, or containing a specific product.
If you only want contacts in HubSpot and no deals, that is supported too.
Before you start
You need:
- A HubSpot account you can log in to as an admin (Super Admin or a user with permission to create Private Apps).
- Your Quotify plan includes the HubSpot integration. If it doesn't, you will see a lock notice on the integration page — upgrade first.
- A few minutes. The whole setup takes roughly 5 to 10 minutes.
Step 1 — Create a Private App in HubSpot
Quotify connects to HubSpot using a Private App access token. This is a token you generate inside HubSpot that gives Quotify permission to read and write specific data in your account.
- Log in to HubSpot.
- Click the settings gear in the top-right navigation.
- In the left sidebar, go to Integrations → Private Apps.
- Click Create a private app.
- On the Basic Info tab:
- Name:
Quotify(or anything you like). - Description: optional, e.g. "Syncs quote requests from my Shopify store."
- Logo: optional.
- Switch to the Scopes tab. Scopes decide what Quotify is allowed to do. Tick these five:
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.deals.readcrm.objects.deals.writecrm.objects.line_items.write
If you only plan to sync contacts (no deals), the two deals scopes and the line_items.write scope are still required by Quotify's validation — add all five to keep setup simple and future-proof.
- Click Create app in the top-right. HubSpot will ask you to confirm — click Continue creating.
- HubSpot will show you an access token that starts with
pat-. Copy it now. For security, HubSpot will only show it in full once. You can view it again later behind a "Show token" button.
Keep the token somewhere private for a moment — you will paste it into Quotify in the next step.
Step 2 — Open the HubSpot settings in Quotify
- In your Shopify admin, open the Quotify app.
- Go to Settings.
- In the settings sidebar, click Integrations → HubSpot.
You will see the HubSpot integration page with several sections: API Configuration, Sync Type, Sync Mode, Contact Field Mapping, Custom Contact Properties, Deal Configuration, and Recent Activity.
Step 3 — Paste your access token and test the connection
- In the API Configuration section, paste the
pat-xx-...token you copied from HubSpot into the Access Token field. - Click Test Connection.
- If the token is valid you will see a green toast: "Connection successful! Your access token is valid."
- If the token is wrong or missing scopes, you will see an error message explaining the problem. Go back to Step 1 and double-check the scopes you ticked.
- Click Save (top-right save bar).
You do not have to finish the rest of setup right away — saving the token lets Quotify load the list of available pipelines from your HubSpot account for the next steps.
Step 4 — Choose what to sync
In the Sync Type section, pick one:
- Contacts and Deals (default) — for each quote, Quotify creates or updates a contact and also creates a deal with line items. Choose this if your team tracks quotes as sales opportunities in HubSpot.
- Contacts only — Quotify only creates or updates contacts. No deals are created. Choose this if you treat HubSpot as a lead database and handle deals elsewhere.
You can change this later.
Step 5 — Choose when to sync
In the Sync Mode section, pick one:
- Sync on every quote request (default) — every quote the customer submits is sent to HubSpot.
- Sync on specific quote requests — only quotes that match rules you define are sent to HubSpot. When you pick this, a Sync Rules section appears where you can build conditions.
Building sync rules (only if you chose conditional sync)
Rules let you say things like:
- Only sync when the quote total is over €500.
- Only sync when the customer's country is Germany.
- Only sync when the quote contains a product tagged "wholesale".
Click Add rule, choose the field to match on, pick an operator (equals, contains, greater than, etc.), and enter the value. Add as many rules as you need. If any rule matches, the quote is synced.
Step 6 — Map your form fields to HubSpot contact properties
The Contact Field Mapping section is where you tell Quotify which quote form field goes into which HubSpot contact property.
For each HubSpot property (Email, First Name, Last Name, Phone, Company, Job Title, Address, City, State/Region, Zip Code, Country) you have three options in the dropdown:
- Select a form field — pick one of your Quotify quote form fields. The customer's answer to that field becomes the HubSpot property value.
- Custom value — type a fixed value that is the same for every quote (e.g. set
Companyto your store name if you don't collect it). - (Leave empty) — leave the dropdown on "Select field..." to skip that property.
Email is required — Quotify uses the email address as the key to find or create the HubSpot contact. If no email is provided, the quote is logged as an error and the sync is skipped.
Example mapping
HubSpot property | Source | Value |
|---|---|---|
Form field | Email field on your quote form | |
First Name | Form field | First name field |
Last Name | Form field | Last name field |
Phone | Form field | Phone field |
Company | Custom value | |
Country | Form field | Country field |
Fields not in the mapping (for example Address or State) will simply not be sent. That is fine.
Step 7 — (Optional) Add custom contact properties
Use the Custom Contact Properties section to send extra data to HubSpot that isn't in the standard 11 fields above. Good uses:
- Tag every lead with its source:
lead_source = quotify. - Mirror a custom HubSpot property your sales team already uses.
- Store the Shopify store name or market name for segmentation.
- Click Add property.
- Property name — the internal name of the property in HubSpot (for example
lead_source). This must already exist in HubSpot, or the sync will fail for that row. Create it in HubSpot under Settings → Properties first if needed. - Value source — same three options as before: a form field, a custom value, or leave empty.
- Click Add property again to add more. Click the trash icon to remove a row.
Step 8 — (Only if syncing deals) Pick a pipeline and stage
If you chose Contacts and Deals in Step 4, a Deal Configuration section appears.
- Pipeline — pick which HubSpot deal pipeline new deals should land in (for example "Sales Pipeline").
- Deal Stage — pick which stage the deal should start in (for example "Appointment Scheduled" or a custom "New Quote Request" stage).
Both are required when syncing deals. If you see "Unable to load pipelines. Verify your access token.", go back to Step 3 and confirm your token is saved and working.
Tip: Create a dedicated stage in HubSpot called something like "Quote Requested" so your sales team can immediately see which deals came from Quotify.
Step 9 — Save
Click Save in the top-right save bar. If anything is missing (no pipeline selected when syncing deals, email field not mapped, etc.) Quotify will show validation errors next to the offending field. Fix them and save again.
Step 10 — Test it end to end
- Go to your storefront and submit a test quote request the way a customer would. Use a real email address you control (or a throwaway one) so you can verify it appeared in HubSpot.
- Back in the Quotify HubSpot settings page, scroll to Recent Activity at the bottom. Within a few seconds you should see a new row:
- ✅ Success — the sync worked.
- ❌ Error — something went wrong. The message column tells you what (for example "Missing required email field mapping" or "Contact property X doesn't exist in HubSpot").
- Open HubSpot and go to Contacts. Search for the email you used. You should find the new or updated contact.
- If you're syncing deals, go to Sales → Deals, open the pipeline you chose, and find the new deal named
Quote #abc123(the ID is Quotify's quote reference). Open it — the customer should be associated as a contact, and the deal's line items should list each product and variant from the quote with the correct quantity and price.
Ongoing — Monitoring and troubleshooting
- Recent Activity shows the last 10 sync attempts. Green = success, red = error. Use this to spot problems quickly.
- Typical errors:
- "Missing required email field mapping" — the customer didn't provide an email, or you haven't mapped the email property. Go to Step 6.
- "Unable to load pipelines. Verify your access token." — your token was revoked, expired, or is missing the
crm.objects.deals.readscope. Regenerate it in HubSpot and paste again. - "Property 'xyz' doesn't exist" — a custom property you added in Step 7 doesn't exist in HubSpot. Create it there first.
- Rotating the token: if you ever need to change your HubSpot token, paste the new one, click Test Connection, then Save. The previous token is replaced instantly.
- Disabling the integration: clear the access token and save. No more quotes will be sent to HubSpot until you re-add a token.
What gets sent to HubSpot — at a glance
When a quote is submitted | Quotify sends |
|---|---|
Sync Type = Contacts only | One contact (created or updated by email) |
Sync Type = Contacts and Deals | One contact + one deal (named |
Sync Mode = Conditional, no rule matched | Nothing — the quote is skipped silently |
Email missing from mapped data | Nothing — an error is logged to Recent Activity |
You're done. Every quote submission that matches your sync mode will now appear in HubSpot automatically.
Updated on: 24/04/2026
Thank you!