Upgrading to Multi-Structure Support
For existing customers using versions of the integration prior to 2.0.0+
Upgrading to Multi-Structure Support
Version 2.0.0 of the Hover Salesforce integration adds multi-structure support. A single Hover job can hold several structures, such as a house plus a detached garage. Salesforce now tracks each structure separately, with its own deliverable, reconstruction state, measurements, and estimates.
This article covers what changes, what to check before you upgrade, and the steps to finish after you install.
What changes
- New Hover Model object. Each structure on a Hover job is saved as a Hover Model record (
Hover_Model__c) related to its Hover Job. Hover Models are created and updated automatically from Hover's model webhooks. - Measurements move to Hover Model. When a structure finishes reconstructing, its roof and siding measurements are written to that structure's Hover Model record. The legacy measurement fields on Hover Job are still present but are no longer updated.
- Estimates are linked to structures. Hover Estimates, Hover Estimate Line Items, and Adjustments now include a Hover Model lookup alongside the Hover Job lookup.
- The
HOVER_Job_Complete__eplatform event has been removed. Anything listening for it will stop receiving it.
For the full list of changes, see the v2.0.0 entry in the Release Notes.
Before you upgrade
- Find anything that reads job-level measurements. Check reports, dashboards, flows, page layouts, and any external integrations that use the roof or siding measurement fields on Hover Job. After the upgrade, point them at the matching fields on Hover Model instead.
- Find anything that listens for
HOVER_Job_Complete__e. Check flows, triggers, and external subscribers. Rebuild them to use Hover Model state changes instead. - Write down your current Hover Config settings. Go to Setup → Custom Settings → Hover Config → Manage, and record the Default Organization Level Value for each setting. You'll check them again after the upgrade.
- Upgrade a sandbox first. Work through this whole article in a sandbox before you upgrade production.
Install the upgrade
Install Hover 2.0.0 using the package installation link from the Installation Instructions article. Your existing Hover Jobs and Hover Estimates are kept.
After you upgrade
Work through each step below in every org you upgrade.
Step 1: Grant Apex class access
Confirm that every Apex class whose name starts with Hover can be accessed from both of these:
- The Hover permission set: Setup → Permission Sets → Hover → Apex Class Access.
- The guest user of the Salesforce Site that receives Hover webhooks: Setup → Sites → your site → Public Access Settings → Enabled Apex Class Access.
Make sure both include these classes, which are new in 2.0.0:
| Class | Purpose |
|---|---|
HoverHandleModelWebhook | Handles model-created and model-state-changed webhooks |
HoverQueueableModelSync | Syncs each structure's name, state, and deliverable from Hover |
HoverQueueableModelMeasurementsQuery | Fetches measurements for a structure once it's complete |
HoverQueueableExternalIdWriteback | Writes the Salesforce record Id back to the job in Hover |
HoverCreateTestJob | Creates multi-structure test jobs |
HoverQueueableFindTestJob | Finds the new test job in Hover after it's created |
Step 2: Check external credential access for estimates
Confirm that the Hover permission set can reach the Hover GraphQL external credential. Estimates can't sync without it.
- Go to Setup → Permission Sets → Hover → External Credential Principal Access.
- Confirm that the principal for the Hover GraphQL external credential (usually
HoverGraphql) is enabled. - If it isn't listed, click Edit, add it, and save.
Step 3: Confirm your custom settings
Go to Setup → Custom Settings → Hover Config → Manage. Check that each setting in the Default Organization Level Value matches the values you wrote down before the upgrade.
| Setting | What it does |
|---|---|
| Auto Create Estimate | Creates a Hover Estimate record in Salesforce when an estimate is created in Hover. |
| Enable Suborg Access | Shares jobs created at the suborg level with the parent org. |
| Split Estimates By Trade | Splits each estimate into a separate Hover Estimate per trade. |
| Prorate Deposit By Trade | New in 2.0.0. Splits the deposit evenly across the trades on the estimate, adding a Deposit line item for each trade. |
| Backup User Email | The email of an admin Hover user in the parent org, used for API requests when the assigned user can't be. |
For more detail on each setting, see the Custom Settings article.
Step 4: Add the new components to your pages (optional)
The upgrade adds a default Hover Model record page and adds a Hover Models related list to the Hover Job record page. If you use your own custom record pages, add these components in Lightning App Builder:
- Hover Model Measurements (
hoverModelMeasurements): roof and siding measurements for one structure. Add it to the Hover Model record page. - Hover PDF Link (
hoverPDFLink): now also works on Hover Model records and opens that structure's measurements PDF.
Step 5: Verify with a test job
- Open the Hover Jobs tab, go to a list view, and click Create Test Job. This creates a Hover test job with three structures and links it to a new Hover Job record.
- After a short wait, confirm that the new Hover Job has three Hover Model records in its Hover Models related list.
- Open each Hover Model and confirm its measurements have filled in once its state is
complete.
Note: You can only create multi-structure test jobs from the parent (authenticated) Hover org, meaning the org whose Hover user authorized the Salesforce connection. Test jobs can't be created at the suborg level.
Troubleshooting
| Symptom | What to check |
|---|---|
| No Hover Model records appear on new jobs | The guest site user and the Hover permission set can access HoverHandleModelWebhook and HoverQueueableModelSync (Step 1). |
| Hover Model records appear, but measurements stay blank | The guest site user and the Hover permission set can access HoverQueueableModelMeasurementsQuery (Step 1). |
| Estimates don't sync | The Hover GraphQL external credential principal is enabled on the Hover permission set (Step 2). |
| Estimates behave differently than before the upgrade | Your Hover Config settings match what you had before the upgrade (Step 3). |
| Create Test Job fails | The Salesforce connection is authorized with the parent Hover org, not a suborg (Step 5). |
| Reports or flows that use measurements stopped updating | They still read the legacy fields on Hover Job. Point them at Hover Model instead. |
Updated about 17 hours ago

