---
title: "HubSpot"
description: "Keep Quire and HubSpot in step with the Quire HubSpot app."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HubSpot

<span id="hubspot"></span>

The Quire HubSpot app keeps learning and CRM data in step: HubSpot contacts
become Quire users, companies become departments, and what people do in
Quire appears on their HubSpot record.

## Connecting <!--quire:connecting-->

The app is installed once per Quire organisation, through HubSpot's own
consent screen, by someone who is an administrator in both. One HubSpot
account connects to one Quire organisation only: a second organisation
trying to connect the same HubSpot account is refused, because a shared
account would carry one organisation's learners into another's CRM.

At install, the app checks whether your HubSpot plan includes custom
behavioural events, and chooses how to report learning:

| Your HubSpot plan | What appears in HubSpot |
| --- | --- |
| With custom behavioural events (Marketing Hub Enterprise) | Events on the contact timeline: enrolled, started, completed, certificate issued, quiz attempted |
| Without them | A **Quire learning** property group on each contact: last course, last completion date, courses completed, latest certificate |

The integration's settings page says which mode is active. If you upgrade
HubSpot later, reconnect and it switches.

## What is kept in step <!--quire:what-is-kept-in-step-->

- **Contacts and users**, **companies and departments**, and **Quire courses
  and HubSpot's Courses object**, each linked one to one.
- **Fields** you map yourself: the source, the destination, and the
  direction (to HubSpot, to Quire, or both).
- **Conflicts** are settled per field: Quire wins, HubSpot wins, newest wins,
  or held for a person to decide. By default Quire wins for learning data and
  HubSpot wins for marketing data.

A first connection backfills existing records in the background, reporting
progress, without holding up live changes.

## Creating people from contacts <!--quire:creating-people-from-contacts-->

A HubSpot contact with no Quire person can become one. Switch on **Create
people from HubSpot contacts** on the integration's settings page, then choose:

- which **lifecycle stages** are eligible, so prospects do not become users;
- the **cohorts** and **courses** every new person is put in;
- whether each new person joins a **group named for their HubSpot company**;
- whether Quire keeps importing changed contacts **automatically**, every five
  minutes.

Each contact goes through the same user import a CSV upload uses. The plan's
user limit, licence seats and profile field rules apply, and a contact the
import refuses (an invalid address, a full licence) is reported on its own line
without stopping the others. A contact that already has a person, by link or by
email address, is linked and updated by the field map; it is never created twice
and the import never overwrites a person from the CRM.

Field map rows that go to Quire (or both ways) fill the new person's name, time
zone, language and profile fields from HubSpot properties.

**Preview what would happen** reads one page of contacts and lists what would be
created, linked, left alone or refused, writing nothing. **Import changed
contacts now** reads what changed since the last import. The first import reads
every contact, and **Read every contact again** on the settings form starts over.
A large backlog takes several runs, each resuming where the last stopped, and the
next run re-reads the newest contact of the last one, which is harmless.

Contacts also arrive from HubSpot's contact creation and change notifications,
from a deal that reaches an enrolment stage, and from a workflow action that
names a contact with no person yet. Every line, created or not, is in the sync
log, and the settings changes and manual imports are in the audit log.

## Workflows <!--quire:workflows-->

Four HubSpot workflow actions act in Quire: **enrol**, **unenrol**, **issue
certificate** and **send email**. A HubSpot workflow that runs twice does not
enrol twice.

You can also enrol people automatically when a deal reaches a stage, or when
a product that maps to a course is added to a deal. Set this up per course,
with the **HubSpot** enrolment method under the course's enrolment methods.

## On the contact record <!--quire:on-the-contact-record-->

A Quire card on each HubSpot contact shows their enrolments, progress and
certificates.

## The sync log <!--quire:the-sync-log-->

Every operation is logged for 30 days: direction, record, outcome and any
error. A failed operation can be retried from the log. HubSpot's rate limits
are respected automatically; when HubSpot asks the app to slow down, it
pauses that account rather than failing.

Source: https://docs.quirelms.com/integrations/hubspot/index.mdx
