What is this page about: This page explains how the Light app connects to HubSpot and keeps your sales pipeline and your accounting in sync. It covers connecting the two systems, how HubSpot deals become Light contracts or invoices, what data moves automatically, what falls outside standard scope, and how to fix a sync that's stuck or wrong.
On this page
- What the integration does
- Connect the Light app to HubSpot
- How deal sync works
- Company sync (and why contacts don't sync)
- Product sync
- What doesn't sync
- Custom property mapping
- Renewing a HubSpot deal
- Sending Light invoices to HubSpot
- Sync frequency
- Monitoring and fixing sync issues
- Reporting on synced deals
- Related articles
What the integration does
Light's HubSpot integration turns closed HubSpot deals into Light contracts or invoices automatically, so your sales pipeline and your books stay aligned without manual re-entry. Once connected, HubSpot companies, products and closed-won deals sync into Light on a recurring schedule, and Light can send invoices back to HubSpot too.
Connect the Light app to HubSpot
- Open the Light app and go to Settings → Integrations → HubSpot.
- Click Connect.
- Light redirects you to HubSpot to authorise the connection.
- Log in with your HubSpot credentials.
- Review the permissions Light is requesting, then click Authorise.
- The Light app confirms the connection is active.
Once connected, configure what data syncs in the HubSpot to Light workflow, under Settings → Workflows in the Light app.
How deal sync works
The HubSpot to Light workflow controls which deals sync and what they become.
Which deals sync. By default, only deals marked closed and won (hs_is_closed_won = true) sync. You can narrow this further, for example by pipeline, deal amount or close date. Deals still in proposal or negotiation stay in HubSpot, and lost deals are excluded, so revenue reaches Light only once it's actually won.
What a deal becomes. By default, a closed-won deal creates a Light contract. The workflow can instead, or additionally, be set to create or update accounts receivable invoices. A deal with a negative amount creates a customer credit instead.
Default field mapping, deal to contract:
| HubSpot field | Light field |
|---|---|
| Associated Company | Customer |
| Deal Amount | Contract Estimated Amount |
| Deal Close Date | Contract Start Date |
| Deal Currency | Contract Currency |
| Deal Description | Contract Description |
| Deal Line Items | Contract Lines (product, quantity, discount, billing period) |
New customers. If the deal's company doesn't exist as a customer in Light yet, Light creates one automatically from the HubSpot company record.
Deal attachments. If a HubSpot deal has a PDF attached, Light reads it using AI and uses it to create or fill in the contract, typically within about 5 minutes of the deal syncing. Only PDF attachments are read this way. Other file types are ignored, so a deal with a Word doc or image attached syncs without that step.
Company sync (and why contacts don't sync)
Company records sync to Light whenever they're attached to a deal that syncs, which is the only route a company takes into Light. HubSpot contacts stay in HubSpot. Light holds customers at company level, so this integration gives you company-level customer records.
Default field mapping, company to customer:
| HubSpot field | Light field |
|---|---|
| Company Name | Customer Name |
| Company Domain | Customer Domain |
| Company Description | Customer Description |
| Company Address (street, city, state, zip, country) | Customer Address |
Customers created this way are tagged with HubSpot as their source, and Light stores the HubSpot record ID as the customer's external ID. This is how Light avoids creating duplicate customers on future syncs.
Product sync
Active HubSpot products sync to Light products by default, including the price set for each currency configured on the HubSpot product. This keeps pricing consistent between the two systems without manual updates on the Light side.
What doesn't sync
| Not synced | Why |
|---|---|
| Contacts | Light holds customers at company level and has no contact-level record. See Company sync, above. |
| Custom objects | The integration reads HubSpot's standard objects (Company, Deal, Product). Data held in a custom object, and custom properties that live on one, aren't available to it, whether as a sync trigger or as associated data. |
Custom property mapping
Map any custom HubSpot property to a Light field for reporting or cost allocation, as long as the property sits on the Company or Deal object. Custom objects, and properties that live on them, are outside the integration's reach. See What doesn't sync, above.
- Create the custom property in HubSpot, for example "Project Code" or "Customer Segment".
- In the HubSpot to Light workflow's mapping nodes, add the mapping, for example HubSpot Project Code to Light Cost center, or HubSpot Customer Segment to a Light custom property.
- Light syncs the value on every future deal sync.
Renewing a HubSpot deal
- A brand new HubSpot deal for a renewal (for example, a fresh annual contract) syncs as a new Light contract.
- Editing an existing HubSpot deal updates the matching Light contract instead of creating a duplicate. Light matches by the HubSpot deal ID it stored as the contract's external ID when the deal first synced.
Sending Light invoices to HubSpot
When the Light to HubSpot workflow is published, Light sales invoices sync to HubSpot as HubSpot invoices. Today this creates new HubSpot invoices for open Light invoices, and leaves any HubSpot invoice that already exists for a given Light invoice as it is. This reverse sync runs on its own hourly schedule, separate from the HubSpot-to-Light import.
Sync frequency
Once the HubSpot to Light workflow is published, Light polls HubSpot for new and changed records roughly every hour, on a schedule Light manages. If you need a specific record pulled in sooner, contact Light support to trigger an on-demand sync.
Monitoring and fixing sync issues
Check what synced. Go to Settings → Workflows and open the HubSpot to Light workflow. Each synced record shows as a workflow run, so you can see what was processed, what succeeded and what failed, and why.
Common problems and fixes:
| Symptom | Likely cause | Fix |
|---|---|---|
| Deal not syncing | Wrong stage, missing required field, or excluded by your filter | Confirm the deal is closed-won (or matches your custom filter) and that mapped fields are filled in |
| Wrong customer assigned | Company mapping issue, or a duplicate customer name already in Light | Check the company mapping and search Light for existing customers with a similar name |
| Incorrect amounts | The deal amount is not a plain number, or the field mapping is off | Confirm the HubSpot deal amount is a plain number and check the mapping node |
| Duplicate invoices | The deal already synced once | Check the workflow run history before re-triggering, and adjust your filter if this keeps happening |
| Connection failed | HubSpot authorisation expired, or the HubSpot account lacks API access | Re-authorise the integration under Settings → Integrations → HubSpot, and confirm API access on the HubSpot side |
Tip: add validation rules in HubSpot to require key fields before a deal can be closed. This prevents most sync failures before they happen.
Reporting on synced deals
Once deals are syncing, use Planning & Reports → Reports in the Light app to see revenue by customer, sales rep, deal stage or close date, and to compare HubSpot pipeline (forecast) against Light's recognised revenue (booked). You can export any of these views to Excel or PDF, and every contract or invoice created from a HubSpot deal keeps the source deal ID, so you can trace revenue back to the deal that drove it.
Related articles
Also searched as: Connect HubSpot to Light, HubSpot CRM sync, closed-won deal automation, HubSpot invoice sync, does Light sync HubSpot contacts, sales to accounting automation, CRM to ERP sync, HubSpot deal to contract, Light HubSpot connector, HubSpot deal to customer credit, HubSpot custom object sync.