Quick start: connect OpenSolar to HubSpot in 5 steps
The short version. The sections below cover each step in detail.
- Turn on HubSpot projects. A Super Admin activates the Projects object in Data Management → Data Model.
- Install Solaris. Click Install, choose your HubSpot account, and approve the permissions Solaris asks for.
- Connect OpenSolar. Sign in with an OpenSolar user (a machine user is best), enter your two-factor code if asked, and pick your organization. The first import starts right away.
- Choose a plan. Pick a Solaris plan in the Integr8e Marketplace. Syncing runs while the plan is active.
- Map stages and check fields. In the Solaris settings, map each OpenSolar workflow stage to a HubSpot pipeline stage and review the field mappings. From then on, Solaris syncs on its own.
Overview
Your designers build systems and proposals in OpenSolar. Your sales and operations teams live in HubSpot. Without a connection, someone retypes the customer, the system size, and the install date into both, and sooner or later the two disagree.
Solaris keeps them in step. Each OpenSolar project becomes a HubSpot project with its site address, system size, panel count, battery, price, and milestone dates. Its customers become HubSpot contacts. When your team edits a contact or moves a stage in HubSpot, that change goes back to OpenSolar.
Common use cases
- Give sales reps the system size, price, and proposal status of every solar project right on the HubSpot record.
- Report on your solar pipeline in HubSpot with OpenSolar workflow stages mapped to project pipeline stages.
- Trigger HubSpot workflows when a project is marked as sold, a contract is signed, or an installation date is set.
- Keep customer contact details current in both systems, whichever one your team edits.
- See OpenSolar calls, site visits, and payment events on the HubSpot timeline next to your own emails and meetings.
Why Solaris uses HubSpot projects, not deals
Most OpenSolar connectors push projects into HubSpot deals. That works until the deal closes, and then design changes, permits, installation, and inspection have nowhere to go. HubSpot's Projects object has its own pipelines, stages, owners, and associations, which fits a solar job that runs for months after the contract is signed. Solaris mirrors each OpenSolar project there and leaves your deals alone, so your sales pipeline reporting stays exactly as it is.
How the sync works
Changes usually sync within seconds through webhooks from both systems. A scheduled check (every 15 minutes by default) catches anything a webhook missed. For each field, Solaris compares both sides with the value stored at the last sync: if only one side changed, that value is copied; if both changed, the field's conflict rule decides. Solaris never deletes OpenSolar records.
Solaris key facts
- What it is
- A HubSpot app built by Integr8e that syncs an OpenSolar organization with a HubSpot account.
- Sync direction
- Two-way for projects, contacts, stages, and project–contact associations. Into HubSpot only for documents, activity, and owners.
- HubSpot records
- Projects (not deals), contacts, companies, files, calls, meetings, and notes.
- Sync speed
- Usually within seconds through webhooks. A backup check runs every 15 minutes by default (30 minutes, 1 hour, or 4 hours are also available).
- First import
- OpenSolar records modified in the last 12 months by default. All records, the last 30 days, or nothing are also available.
- OpenSolar sign-in
- Email, password, and two-factor code. Solaris stores only an encrypted access token, never the password.
- HubSpot plans
- All plans, once the Projects object is turned on.
- Deleting records
- Solaris never deletes OpenSolar records.
- Extra tools
- None. Solaris talks to both APIs directly, so there's no Zapier or Make account to manage.
Features
Projects, both ways
OpenSolar projects become HubSpot projects with site address, system size, panel count, price, and milestone dates. Changes made on either side flow back.
Contacts without duplicates
Project customers sync as HubSpot contacts, matched by email (or email, then phone) so existing records are updated, not duplicated.
Workflow stages to pipeline stages
Map each OpenSolar workflow stage to a HubSpot project pipeline stage. A stage change on either side moves the record on the other.
Documents in HubSpot
Proposals, contracts, and other private OpenSolar files are copied to private HubSpot files and attached to the project.
Activity on the timeline
Calls, site visits, proposal views, payments, and stage changes in OpenSolar are logged as calls, meetings, and notes in HubSpot.
Field-level control
Choose the direction and conflict rule for every mapped field, add your own mappings, and pause the sync at any time.
Install the app
Before you start
- Turn on the Projects object in HubSpot. A Super Admin can do this in Data Management → Data Model: click Edit Data Model, then Activate object on projects. Learn how projects work.
- Make sure you can install apps in HubSpot: you need Super Admin or App Marketplace Access permission.
- Have the email and password of the OpenSolar user Solaris should act as, plus their authenticator app if the account uses two-factor authentication. Solaris can see and change whatever this user can, so use an account with access to the projects you want to sync.
Recommended: use an OpenSolar machine user
A regular OpenSolar sign-in lasts 7 days. Solaris renews it automatically, but if renewal fails (for example after a password change) you have to reconnect. A machine user never expires. Your OpenSolar admin can convert a dedicated user into a machine user; see OpenSolar's machine user guide.
Step 1: Connect HubSpot
- Click Install app on the Solaris listing.
- Sign in to HubSpot if you're asked to, then choose the HubSpot account to connect.
- Review the permissions Solaris requests (listed below) and click Connect app.
Step 2: Connect OpenSolar
OpenSolar doesn't offer a “Sign in with” button for apps, so after HubSpot you land on the Connect your OpenSolar account page.
- Enter the OpenSolar email and password of the user from Before you start, then click Continue.
- If the account uses two-factor authentication, check My account uses two-factor authentication and enter the 6-digit code from the authenticator app. You can also leave it empty; Solaris asks for it on the next step, where you click Verify and connect. Codes change every 30 seconds.
- If the user belongs to more than one OpenSolar organization, choose the one that should sync with this HubSpot account and click Connect organization. If OpenSolar doesn't say which organization the user belongs to, enter the Organization ID shown in OpenSolar under Control → Company Info.
- When you see OpenSolar is connected, Solaris creates its HubSpot properties and starts the first sync. Records appear in HubSpot over the next few minutes.
Solaris stores only the access token OpenSolar returns, encrypted. Your OpenSolar password is never saved. If you'd rather connect later, click Skip for now and use Connect OpenSolar in the Solaris settings when you're ready.
Step 3: Choose a plan
- Sign in to the Integr8e Marketplace, or create an account with the email you use for HubSpot.
- Pick a Solaris plan and complete checkout.
Solaris syncs only while the subscription for this HubSpot account is active. You can manage the plan, billing, and teammates later from the Integr8e dashboard.
Permissions Solaris requests
These are shown on HubSpot's consent screen in step 1. Solaris only uses them for the sync described in this guide.
| Scope | What it's used for |
|---|---|
oauth | Connects Solaris to your HubSpot account. |
crm.objects.contacts.read / write | Reads, creates, and updates contacts that match OpenSolar project contacts. |
crm.schemas.contacts.read / write | Creates the OpenSolar contact ID property and lists contact properties for field mapping. |
crm.objects.projects.read / write | Reads, creates, and updates HubSpot projects that mirror OpenSolar projects. |
crm.schemas.projects.read / write | Creates the Solaris project properties (system size, site address, milestones, and so on) and reads project pipelines. |
crm.objects.owners.read | Matches the OpenSolar assigned salesperson to a HubSpot user by email. |
files.read / write | Copies OpenSolar project documents into private HubSpot files. |
Optional scopes. HubSpot may also ask for these. If you don't grant them, Solaris still works and the related settings are turned off.
| Scope | What it's used for |
|---|---|
crm.objects.companies.read / write | Associates commercial projects with a company, matched by business name. |
crm.schemas.companies.read | Reads company properties for that association. |
crm.objects.deals.read / write, crm.schemas.deals.read | Reserved for an upcoming deal mirror. Solaris doesn't read or write deals today. |
Solaris also creates a property group in HubSpot named Solaris (OpenSolar). It holds an OpenSolar ID on contacts and projects, plus project properties such as System size (kW), Panel count, Site address, Sold date, and Installation date. Use them in views, reports, lists, and workflows like any other property.
Configure the app
Solaris works with sensible defaults as soon as it's connected. Review these settings to match how your team works.
Open the settings
- In HubSpot, click the settings icon in the top navigation bar, then go to Integrations → Connected Apps.
- Click Solaris, then open the Settings tab.
The settings page has tabs for Overview, Projects, Contacts, Documents & events, Associations, and Sync rules. When you change anything, click Save changes (or Discard) before you leave the page.
Map contact and project fields
The Projects and Contacts tabs work the same way:
- Sync contacts / Sync projects turns that object on or off.
- Create HubSpot contacts for new OpenSolar contacts is on by default. Create OpenSolar contacts for new HubSpot contacts is off by default, so HubSpot-only contacts stay out of OpenSolar unless you want them there. Projects have the same two options.
- Match existing contacts by email, or email then phone. Matching prevents duplicates when a customer already exists in both systems.
Each row in Field mappings pairs an OpenSolar field with a HubSpot property and has:
| Setting | Options |
|---|---|
| Sync direction | OpenSolar → HubSpot, HubSpot → OpenSolar, or Two-way ⇄. Fields that are read-only in OpenSolar (such as sold system size or price) can only sync into HubSpot. |
| If both changed | Use the default from Sync rules, OpenSolar wins, HubSpot wins, or Most recent change wins. Only applies to two-way fields. |
| Sync this field | Turn a mapping off without deleting it. |
Name, email, phone, and address fields sync both ways by default. Values OpenSolar calculates, like the sold system, payment option, and assigned installer, sync into HubSpot only. The OpenSolar ID mapping is locked because Solaris uses it to keep records linked. Use the search box to find a field, and add your own rows for any other OpenSolar field or HubSpot property.
Map pipelines and stages
On the Projects tab, open Pipeline and stage mapping:
- Choose the HubSpot project pipeline new projects are created in.
- For each OpenSolar workflow stage, choose the matching HubSpot pipeline stage.
When a project changes stage in OpenSolar, Solaris moves the HubSpot project to the mapped stage, and the other way around. Unmapped stages aren't synced.
Documents and events
| Setting | What it does |
|---|---|
| Sync documents | Copies OpenSolar private files to HubSpot, once per file. On by default. |
| Only sync files with these tags | Limit documents to certain OpenSolar file tags. Leave empty to sync every file. |
| Attach documents to | The HubSpot project, or the project and its contacts. A note links each file on the record. |
| HubSpot files folder | Where files are stored privately, one subfolder per project. Default: /Solaris/OpenSolar documents. |
| Sync events | Logs OpenSolar events as calls, meetings (site visits), and notes. On by default. |
| Event types to sync | Communication, Site visit, Customer activity, Finance, Payment, and Project management. All are on by default. |
| Show events on | The HubSpot project, or the project and its contacts. |
Associations
- Associate projects with their contacts links each HubSpot project to the contacts on the OpenSolar project. On by default.
- Only associate the primary (first) OpenSolar contact skips additional contacts, such as a second homeowner.
- Associate commercial projects with a company links commercial projects to a HubSpot company with the same business name. It needs the optional companies scope; if it wasn't granted, the page shows Company access not granted.
- Set the HubSpot project owner from the OpenSolar assigned salesperson matches the salesperson's email to a HubSpot user. On by default.
Sync rules
| Setting | Default | Options |
|---|---|---|
| Pause sync | Off | Stops all syncing until you turn it back on. Nothing is lost; changes are picked up when you resume. |
| Conflict resolution: By default | Most recent change wins | Most recent change wins, OpenSolar wins, or HubSpot wins. Used by every two-way field without its own rule. |
| Check for missed changes every | 15 minutes | 15 minutes, 30 minutes, 1 hour, or 4 hours. |
| On the first sync, import existing OpenSolar records | Modified in the last 12 months | Don't import (only sync new changes), modified in the last 30 days, modified in the last 12 months, or all records. Applies only to the first sync after connecting. |
| When a record is deleted on one side | Unlink it and keep the other record | Unlink; archive in HubSpot when deleted in OpenSolar; or keep the link and recreate it if it changes again. A record deleted in HubSpot is always just unlinked. |
| Email sync problems to | Empty (off) | An address that gets a daily summary when records fail to sync or the OpenSolar connection needs attention. |
Use the app
Automatic sync
Once connected, Solaris runs on its own. There's nothing to trigger by hand:
- Edit a project or contact in OpenSolar, and the HubSpot record updates within seconds.
- Edit a mapped property or move a project stage in HubSpot, and the change is written back to OpenSolar for fields that sync that way.
- New OpenSolar documents and events appear on the HubSpot project (and its contacts, if you chose that).
- Every 15 minutes (or the interval you chose), Solaris checks both systems for anything a webhook missed.
Open a synced HubSpot project and look for the Solaris (OpenSolar) properties and the OpenSolar project link, which opens the project in OpenSolar.
OpenSolar rate limits
OpenSolar allows about 10 project updates per user per minute. Solaris queues writes to stay under that limit, so large bulk edits in HubSpot reach OpenSolar gradually rather than all at once.
Run a sync manually
On the Overview tab, click Sync now to check both systems for changes straight away instead of waiting for the next scheduled check. The first-sync import range only applies once, right after you connect OpenSolar.
Monitor the sync
The Overview tab shows:
- OpenSolar connection: the connected user (Connected as), organization, and status: Connected, Expired, or Error.
- Sync activity: Projects synced, Contacts synced, Documents synced, Events synced, and Errors (24h).
- Recent sync errors: each failed record, when it failed, and why. Temporary problems like rate limits and outages are retried automatically and don't appear here.
What Solaris doesn't do
Better to know these before you install than after:
- No deal sync. Solaris writes to HubSpot projects. Your deals and sales pipeline aren't read or changed.
- No deletes in OpenSolar. Deleting a record in HubSpot only unlinks it.
- One OpenSolar organization per HubSpot account. To switch, disconnect and connect the other organization.
- Documents and activity are one-way. They copy into HubSpot; files and notes added in HubSpot don't go to OpenSolar.
- OpenSolar write limits apply. OpenSolar accepts about 10 project updates per user per minute and 10,000 per organization per day, so big bulk edits in HubSpot reach OpenSolar over several minutes.
- HubSpot-only contacts stay in HubSpot unless you turn on Create OpenSolar contacts for new HubSpot contacts.
Troubleshooting
| What you see | What to do |
|---|---|
| OpenSolar isn't connected yet | Click Connect OpenSolar on the Overview tab and sign in. |
| OpenSolar access has expired | The OpenSolar sign-in could not be renewed, often after a password change. Click Reconnect. Switch to a machine user to stop this happening. |
| Solaris can't reach OpenSolar | OpenSolar is unavailable or rejected the request. Solaris retries automatically; if it persists, reconnect or contact support. |
| Subscription inactive | Syncing stops while the plan for this HubSpot account isn't active. Renew it from the Integr8e dashboard. |
| Sync is paused | Turn off Pause sync on the Sync rules tab. |
| Company access not granted | Reinstall Solaris and approve the optional companies scope to link commercial projects to companies. |
| A record didn't sync | Check Recent sync errors on the Overview tab. Most failures are a value the other system rejects, such as an invalid email or a stage that isn't mapped. |
| Duplicate contacts | Set Match existing contacts by to email then phone, and make sure the same customer has the same email in both systems. |
| The owner isn't set | The OpenSolar salesperson's email must match a HubSpot user's email exactly. |
Disconnect OpenSolar
Disconnecting stops the sync but keeps Solaris installed, for example to switch to a different OpenSolar user or organization.
- Open the Solaris Settings in HubSpot and go to the Overview tab.
- Under OpenSolar connection, click Disconnect.
- In the Disconnect OpenSolar? dialog, click Disconnect.
What happens to your data
Syncing stops immediately and the saved OpenSolar token is deleted. Records already synced stay in both HubSpot and OpenSolar, along with your field mappings and settings. To start again, click Connect OpenSolar; existing records are matched by their OpenSolar ID instead of being duplicated.
To pause syncing without signing out of OpenSolar, use Pause sync on the Sync rules tab instead.
Uninstall the app
- In HubSpot, click the settings icon in the top navigation bar, then go to Integrations → Connected Apps.
- Find Solaris, click Actions, then Uninstall.
- In the dialog box, type uninstall and click Uninstall.
See HubSpot's guide to connecting and uninstalling apps for more detail.
What happens to your data
Solaris stops syncing, removes its OpenSolar webhook, and deletes the saved OpenSolar token. Nothing is deleted from OpenSolar. Contacts, projects, files, activities, and the Solaris (OpenSolar) properties stay in HubSpot; you can delete the properties yourself if you no longer need them.
Uninstalling doesn't cancel your subscription. Cancel it from the Integr8e dashboard so you aren't billed for the next period.
Solaris FAQs
Does OpenSolar integrate with HubSpot?+
Yes, through a HubSpot Marketplace app. Solaris connects OpenSolar and HubSpot directly through both APIs, so you don't need Zapier, Make, or custom code. Install it in HubSpot, sign in with an OpenSolar user, and projects, contacts, and stages start syncing both ways.
Can I see OpenSolar proposal status in HubSpot?+
Yes. When a customer views or accepts an online proposal, or signs a DocuSign contract in OpenSolar, Solaris logs it on the HubSpot project timeline. Keep the Customer activity event category turned on in Documents & events.
Does Solaris sync deals?+
Not today. Solaris syncs OpenSolar projects to the HubSpot Projects object. It may ask for deal permissions because a deal mirror is planned, but it doesn't read or write deals yet.
Will Solaris create duplicate contacts?+
No, as long as the same customer has the same email (or phone, if you match by email then phone) in both systems. Solaris links matching records instead of creating new ones.
Can Solaris delete records in OpenSolar?+
No. Solaris never deletes OpenSolar records. A record deleted in HubSpot is only unlinked. A record deleted in OpenSolar is unlinked or, if you choose, archived in HubSpot.
How quickly do changes sync?+
Usually within seconds, through webhooks. A scheduled check every 15 minutes (adjustable up to 4 hours) catches anything a webhook missed. Updates to OpenSolar are queued to respect OpenSolar's rate limits.
Is my OpenSolar password stored?+
No. Solaris exchanges your sign-in for an access token, stores only that token (encrypted), and discards the password.
Can I connect more than one OpenSolar organization?+
Each HubSpot account syncs with one OpenSolar organization. To switch, disconnect OpenSolar and connect again with the other organization.
Which HubSpot plan do I need?+
Solaris works with every HubSpot plan. A Super Admin has to turn on the Projects object first.
About this guide
Integr8e builds and supports Solaris, and wrote this guide from the app itself: every button and setting name is copied from the Solaris screens, and the HubSpot steps follow HubSpot's own help articles. The illustrations are drawings of those screens with example data. We re-check the guide whenever Solaris changes; it was last checked on .
Found something out of date? Email [email protected] and we'll fix it. Need a sync Solaris doesn't cover? See custom HubSpot development, or browse other HubSpot apps.
Support
Stuck on a step, or seeing an error this guide doesn't cover? The team that builds Solaris answers every request.