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.
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 | Notes |
---|---|---|
HOVER Job Name | The name of the job in HOVER | Will always be webhook |
Content Available | Static boolean | Will always be 1 (true) |
Event | The event type of the hook. | Possible event types can be found here |
HOVER Job | The name of the Job in HOVER | |
Job Estimated Hours to Completion | Estimated hours that the job will be processed in HOVER | |
Job External Identifier | External ID of the Job as seen in HOVER. | Typically reserved for ID of associated object in Salesforce (e.g. a lead, a claim, an opportunity, etc.) |
Job ID | The ID of the job in HOVER | |
Request | JSON representation of the full webhook event | |
State | The state of the given event in HOVER. The state values depend on the event type | The state values depend on the event type |
Webhook ID | The ID of the webhook within HOVER |
HOVER Job Object (HOVER_Job__c)
The HOVER Job object encapsulates all data associated with a job or capture request in HOVER. Upon creation of a HOVER Job/Capture Request object in Salesforce, a “shell job” or a property that awaits photo capture. When the property is captured in HOVER, automation occurs that will pull in and populate the measurement fields based on HOVER’s summarized measurements (for complete and roof-only deliverables). Additionally, the measurements PDF and the measurements JSON file are written to the Notes & Attachments fields within the specific job object.
The following table is all of the possible fields when creating a HOVER Job:
Note: There are numerous more custom objects on the HOVER job fields associated with measurement data that are not listed in this table.
Field Name | Salesforce Field Name | Description | Notes |
---|---|---|---|
HOVER Webhook Name | Name | The name of the HOVER Job | |
HOVER Job ID | HOVER_Job_ID__c | The ID of the job in HOVER | |
Location Line 1 | Location_Line_1__c | The first/main line of a property address | Required for job/capture request creation |
Location Line 2 | Location_Line_2__c | The second line of a property address | |
City | location_city__c | The city where the property resides | |
State (Region) | location_region__c | The state where the property resides in | |
Postal Code | location_postal_code__c | The zip code where the property resides in | |
Country | location_country__c | The country where the property resides in | |
State | State__c | The state of the property within HOVER’s reconstruction pipeline | |
Assignee | Assignee__c | The user who the job is being created by | This is a picklist to select a Salesforce user. The user in Salesforce also needs to have the exact email address associated with an Admin user in HOVER. |
Suborg Assignee | Suborg_Assignee__c | An user on a HOVER suborg to assign the job | Only relevant if using a suborg structure in HOVER |
Suborg Assignee ID | Suborg_Assignee_ID__c | The ID of the suborg user in HOVER | Only relevant if using a suborg structure in HOVER |
Customer Email | customer_email__c | Homeowner or user assigned to capture a property | |
Customer Phone | customer_phone__c | Phone number of user assigned to capture a property |
The following table is all of the possible fields when creating a Hover Connect Request:
Field Name | Salesforce Field Name | Description | Notes |
---|---|---|---|
Send Connect Request | Send_Connect_Request__c | A checkbox indicating that a connect request should be sent to a user to capture the property | Boolean. True indicates the connect request, false indicates a job creation |
Capturing User Name | Capturing_User_Name__c | The name of the user capturing a property in a connect request | Required for a Capture Request |
Capturing User Phone | Capturing_User_Phone__c | The first/main line of a property address | Required for a Capture Request |
Capturing User Email | Capturing_User_Email__c | The second line of a property address | Required for a Capture Request |
Capture Request ID | Capture_Request_ID__c | The ID of the Connect Request | Mapped back to Salesforce when the Capture Request is created |
Connect Status | Connect_Status__c | The state of the connect request | Mapped back to Salesforce when the Capture Request is created or updated |
Connect Identifier | Connect_Identifier__c | The unique identifier of the capture request link | |
Connect Link | Connect_Link__c | The full capture request link (connect identifier is appended) | Can be used to resend to a homeowner to capture a property |
Note: The integration only supports measurement PDF and JSON deliverables for Roof Only or Complete 3D deliverables in HOVER.
Update HOVER Job Flow
This flow is a part of the integration that processes incoming webhook events from HOVER and maps it back into actions within the integration. In this flow, incoming webhook events are being analyzed to by their state value and event_type values. Here are the possibilities outlined in the default flow:
- If the event_type is job-state-changed and the state is complete ⇒ integration goes to HOVER to retrieve measurement data and writes that data back into Salesforce
- If the event_type is job-state-changed and the state is not complete ⇒ do nothing
- If the event_type is capture-request-state-changed ⇒ update the connect request data in Salesforce
- If the event_type is webhook-verification-code ⇒ the integration will evaluate the webhook verification code and verify the webhook. This data is associated with the Webhooks Config object in the integration.
It is recommended that you do not edit the core functionality of this flow. If you’d like to make additive changes, please note that they may be wiped away if you decide to upgrade package versions in the future. Here is a snapshot of the flow within Salesforce.
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 6 months ago