Usage Instructions
Before You Start
This guide is intended to walk you through common use cases and configurations for Hover’s Salesforce integration. If you have not followed the installation instructions for the integration and tested the initial connection, please refer to our installation guide.
This integration requires a special installation link and password. If you're interested in using Hover's Salesforce integration, please fill out this form and the install link and password will be sent to you.
Custom Objects and Flow Overview
This integration includes three primary custom objects that are added to your Salesforce Instance. Additionally, the integration includes a Salesforce flow to evaluate webhook events and process data coming from Hover. This section will dive into these concepts in more detail.
The three core objects below handle the connection, incoming events, and job data, and are the focus of this guide.
The integration also installs additional objects that support newer features — Hover Estimates (Hover_Material_List__c), Estimate Line Items (Hover_Estimate_Line_Item__c), Adjustments (Hover_Adjustment__c), and Hover Inspections (Hover_Inspection__c) — which are covered in their own guides.
Optional behaviors are toggled through the Hover Config custom setting (see the Custom Settings guide).
Hover Webhooks Config Object (Hover_Webhook_Config__c)
This object is used to make the webhooks connection between Hover and Salesforce and should only be utilized during the setup process. This object takes your digital experiences site (set up in the installation process) and registers a webhook in Hover. As a part of the registration process, this object also listens for the initial webhook event from Hover, takes the verification code, and verifies the hook so that the integration can start receiving webhook events.
| Field Name | Description | Notes |
|---|---|---|
| Hover Webhook Config Name | The name of your webhook | |
| URL | Your webhooks URL | Base URL should be the same as your digital experiences site |
| Content Type | Content Type of webhook | Used to create the hook in Hover. Should always be json |
| Hover Webhook ID | The ID of the webhook within Hover | |
| Verification Code | Code used to verify the hook within Hover | This will auto populate upon creation. |
Hover Webhooks Object (Hover_Webhook__c)
This object represents the raw webhook event data coming from Hover. In practicality, Hover sends all webhook data that is evaluated (by a Salesforce Flow) and encapsulated within this object. This object captures all webhook events coming from Hover – a list of possible webhook events can be found within the Hover developer documentation.
| Field Name | Description |
|---|---|
| Hover Job Name | Always "webhook" |
| Content Available | Static boolean (always 1/true) |
| Event | The event type |
| HOVER Job | Job name in Hover |
| Job Estimated Hours to Completion | Processing time estimate |
| Job External Identifier | External ID (typically associated Salesforce object ID) |
| Job ID | Hover's job ID |
| Request | Full webhook event in JSON format |
| State | Event state (depends on event type) |
| Webhook ID | Hover's webhook ID |
| Verification Code | Verification code for the webhook-verification-code event |
| Hover Material List ID | ID of the production list/estimate referenced by the event |
| Hover Inspection ID | ID of the inspection referenced by an inspection event |
| Hover Proposal ID | ID of the proposal referenced by a signature-request event |
Hover Job Object (Hover_Job__c)
Encapsulates all data associated with a Hover job or capture request. Upon creation, a "shell job" awaits photo capture. When the property is captured, automation populates measurement fields based on Hover summarized data and writes deliverables to Notes & Attachments.
Fields for Job/Capture Request Creation:
| Field Name | Salesforce Field Name | Description | Notes |
|---|---|---|---|
| Hover Webhook Name | Name | Job name | — |
| Hover Job ID | Hover_Job_ID__c | Job ID in Hover | — |
| Location Line 1 | Location_Line_1__c | Primary address line | Required |
| Location Line 2 | Location_Line_2__c | Secondary address line | — |
| City | location_city__c | Property city | — |
| State (Region) | location_region__c | Property state | — |
| Postal Code | location_postal_code__c | Zip code | — |
| Country | location_country__c | Country | — |
| State | State__c | Property state in Hover's pipeline | — |
| Assignee | Assignee__c | Job creator (picklist) | User must have matching email in Hover |
| Suborg Assignee | Suborg_Assignee__c | Hover suborg user | Suborg structure only |
| Suborg Assignee ID | Suborg_Assignee_ID__c | Suborg user's ID | Suborg structure only |
| Customer Email | customer_email__c | Homeowner email | — |
| Customer Phone | customer_phone__c | Homeowner phone | — |
Fields for Hover Connect Requests:
| Field Name | Salesforce Field Name | Description | Notes |
|---|---|---|---|
| Send Connect Request | Send_Connect_Request__c | Boolean for connect request | True = connect request; false = job creation |
| Capturing User Name | Capturing_User_Name__c | User capturing the property | Required for capture request |
| Capturing User Phone | Capturing_User_Phone__c | User's phone number | Required for capture request |
| Capturing User Email | Capturing_User_Email__c | User's email | Required for capture request |
| Capture Request ID | Capture_Request_ID__c | Connect request ID | Mapped back when created |
| Connect Status | Connect_Status__c | Request state | Mapped back when created or updated |
| Connect Identifier | Connect_Identifier__c | Unique capture request link identifier | — |
| Connect Link | Connect_Link__c | Full capture request link | Can be resent to homeowners |
Other job fields worth noting:
| Field Name | Salesforce Field Name | Description |
|---|---|---|
| Hover Deep Link | Hover_Deep_Link__c | Link that opens the job's Photo Capture flow in the Hover mobile app |
| Hover Note | Hover_Note__c | Note body to create/update on the job in Hover |
| Hover Note ID | Hover_Note_ID__c | ID of the note in Hover (mapped back after creation) |
| Parent Org ID | Parent_Org_ID__c | Parent org ID, stamped at creation when sub-org sharing is enabled |
Note: The integration supports measurement PDF and JSON deliverables only for Roof Only or Complete 3D deliverables.
Update Hover Job Flow
The Update Hover Job flow is triggered when a Hover Webhook record is created. It routes on the event's Event (and, for some events, State) value and takes the following actions:
Event (Event__c) | Condition | Action |
|---|---|---|
job-state-changed | State = complete | Retrieves measurement data, writes it to the Hover Job, publishes a Job Complete event, and sets the "Synced to Salesforce" label on the job in Hover |
job-state-changed | State ≠ complete | Updates the job; no measurement retrieval |
capture-request-state-changed | — | Updates connect (capture) request data on the Hover Job |
webhook-verification-code | — | Evaluates the verification code and verifies the webhook |
deliverable-change-request-state-changed | State = complete | Handles the deliverable change request (e.g. a capture-only job upgraded to Roof Only or Complete) |
project-management-production-list-created | — | Creates an estimate in Salesforce when the Auto Create Estimate custom setting is enabled |
project-management-production-list-manual-sync | — | Syncs the estimate/material list data into Salesforce |
inspection-state-changed | State = submitted | Retrieves inspection data into Salesforce |
project-management-signature-request-state-changed | State = signed | Retrieves the signed proposal PDF |
The documentation notes that users should avoid editing core flow functionality. Additive changes may be overwritten during future version upgrades.
Common Workflows and Use Cases
Automate creating a new Hover when there is a new lead/claim/opportunity, etc.
The most common usage of the integration is utilizing input data from another object to automate the creation of Hover Jobs or Hover Connect Requests.
Hover recommends utilizing Salesforce’s flow automation to create these connections within your existing workflows. In the case where you have lead information being created in Salesforce, you can create a flow to create a Hover Connect Request when a new lead comes in. By using a Salesforce Flow, you can map the user’s name, phone number, and email address, and other information to create a Hover Connect Request when a new lead is created.
The example below can be extrapolated to originate from any object in Salesforce. The common workflows include generating Hover Jobs from various Salesforce native objects (Lead, Opportunity, Claim).
Let’s take a simple example where we want to generate Hover Connect Requests when new lead data is created in Salesforce. At the end of the process, we want to take Hover's measurement PDF and post it back to the original lead object so that the Sales Representative has all measurement information attempting to close a sale on a new exterior home improvement project.
- The first step would be to create a Salesforce flow that triggers when a new Lead is created. Once the lead is created, you can map all pertinent information into the creation of a new Hover Job object (with the Send_Capture_Request option set to true so that the homeowner receives text/email instructions on how to capture their property).
Consider this hypothetical mapping of data within a flow, from a Lead object to the HOVER Job Object:
| Lead Object | Hover Job Object |
|---|---|
| Lead Name | Capturing User Name |
| Lead Name | Hover Job Name |
| Capturing User Email | |
| Phone Number | Capturing User Phone |
| Send Connect Request ⇒ True | |
| Address Line 1 | Location Line 1 |
| Address Line 2 | Location Line 2 |
| City | City |
| State | State (Region) |
| Zip Code | Postal Code |
| Sales Representative | Assignee |
- When a lead is created, a Capture Request shell job is created in Hover and a connect invitation is sent to the specific homeowner associated with your original lead.
- At this point, we wait for the homeowner to capture their property using the Hover mobile application. Once they’ve captured their property, the data is sent to Hover's 3D reconstruction pipeline so that measurements and other deliverables can be generated.
- Once the job is completed, Hover sends a webhook notification to Salesforce and the integration automatically pulls back measurement information and the measurements PDF back into the corresponding Hover Job object
- Another flow can be created to evaluate when a Hover Job is updated to be complete. When this flow is triggered, the flow can evaluate the Notes and Attachments field on the Hover job and pull the PDF into the lead.

Support and Frequently Asked Questions
Does the integration work with suborgs in Hover?
Yes. You can assign jobs to any suborgs using the Suborg Assignee field on the Hover Job object. If a job is assigned to a suborg, the user it is assigned to needs to have a matching email address and the proper permissions in Salesforce.
Hover jobs or connect requests are not being created in Hover. How do I fix this?
The most common root cause of this issue is the assignee on the Hover Job not existing or having a matching email address in Hover. For the assignee field on the Hover Job, locate their email address. If you log into Hover and proceed to your team’s settings, validate that there is a user present in your Hover organization that has a matching email address.
If there is no matching email address, you’ll either need to create that user in Hover or change the Salesforce assignee’s email address to match an existing email address in Hover.
Can I view/edit the integration code?
Yes! The integration is completely open source and you can view the integration code within the Apex Settings in Salesforce. Please note that any changes made to the integration code are not subject to troubleshooting or support from the Hover. Additionally, updating to any new/future versions of the Hover for Salesforce integration may cause your custom code to be overwritten.
I have questions about the integration or I’m running into issues I cannot resolve. Who can I contact?
Please reach out to your main Hover point of contact, account manager, or [email protected].
Updated 18 days ago

