Webhooks v2

Webhooks v2 is an enhancement to our existing Webhooks functionality. This allows for more information to pull through, such as products, pricing, and customer information.

How It Works

The setup for Webhooks v2 has not changed much from the original Webhooks setup. There will be a toggle on the CRM and Appointments workflow to activate this feature. On the Document Routing, Results Routing, and Credit App Routing pages there will be a Webhooks toggle switch labeled “Use v2 (Recommended)” that can be toggled on and off. Toggling this switch ON will enable Webhooks v2. If the toggle is OFF you will continue using Webhooks v1.

Capabilities of Webhooks v2

Webhooks v2 can fetch Appointment information and bring it into SalesPro and it can push many other types of data out.

Fetching appointments has not changed from Webhooks v1 to Webhooks v2. Click here to check out our existing API Documentation to learn how to pull Appointments into SalesPro with Webhooks.

The data that can be pushed from SalesPro into other systems using Webhooks can be found below. There are many new fields that can be fetched including additional Customer info and info about the products and estimate.

New Webhook information is highlighted in YELLOW in the table below.

General Parameters

Parameter Name Parameter Type Description
trigger String This string will tell you which action caused the trigger. Options include contract, proposal, contract_verify, proposal_verify, credit_app, results.
user User The user that triggered the webhook.
customer Customer The customer that the user triggered the webhook for
estimate Estimate The estimate that was resulted. Note: This parameter is only sent when a lead is resulted (the trigger will be “results”).
fileURL String The url to the PDF file created within the app.
fileData String The base64 data of the PDF file created within the app. Note: This field will only be included if “Include PDF” is turned on in App Settings.

User

Parameter Name Parameter Type Description
id String The unique identifier for the user.
firstName String The first name of the user.
lastName String The last name of the user.
email String The email address of the user.
phoneNumber String The phone number of the user.
licenseNumber String The license number of the user.
username String The username of the user.
identifier String The identifier of the user.
office Office The office the user is currently logged into.

Customer

Parameter Name Parameter Type Description
id String The unique identifier for the customer.
estimateName String The saved name of the estimate.
apiSourceData apiSourceData The data downloaded from the API Source. This value will be null if the customer was created manually.
firstName String The customer’s first name.
lastName String The customer’s last name.
spouseFirstName String The spouse’s first name.
spouseLastName String The spouse’s last name.
street String The customer’s street address.
city String The customer’s city.
state String The customer’s state.
zipCode String The customer’s zip code.
phoneNumbers Array The customer’s phone number(s).
emails Array The customer’s email address(es).

API Source Data

Parameter Name Parameter Type Description
apiSource String The source of the data used to create the customer. Options include Marketsharp, Salesforce, LeadPerfection, Leap, and JobNimbus.
data The JSON data that is returned from the apiSource that SalesPro used to create the customer.

Phone Number

Parameter Name Parameter Type Description
number String The Phone number for the customer.
note String The note added to the phone number.

Email

Parameter Name Parameter Type Description
email String The email address for the customer.
note String The note added to the email address.

Estimate

Parameter Name Parameter Type Description
id String The unique identifier for the estimate.
isSale Boolean Determines if the estimate was resulted as a Sale or No-Sale.
saleAmount Float The amount entered in the “Total Sale Amount” result field.
resultNote Array All Sale/No-Sale results combined in one paragraph.
activeCategories Array The categories that are marked as active in the estimate. Note: All values will be lowercased.
resultData Object The title and value for each individual results field.
addedCategories Array The unique categories of all added items to the estimate.
addedItems Array The added items that make up the estimate.
office OfficeObject The office the user was logged into when they created the estimate.

Result Data

Parameter Name Parameter Type Description
title String The title from the Results line.
value String The value from the Results line.

Added Item

Parameter Name Parameter Type Description
quantity Float The quantity of the added item.
tag String The value the user entered in for “Tag”.
isActive Boolean Determines if the user had the item active or not.
additionalDetails EnteredAdditionalDetail The values entered for additional detail fields.
addedUpCharges Array The Upcharges that were added with this item.
customItem Array The custom products that were added in.
measureSheetItem Array The measure sheet items added in.
selectedOption Array The selected price option added in.

Added Up-Charge

Parameter Name Parameter Type Description
upChargeId String The category of the added item.
quantity Float The quantity of the added item.
additionalDetails EnteredAdditionalDetail The values entered for additional detail fields.

Custom Item

Parameter Name Parameter Type Description
name String The name of the custom item.
prices String The prices from the custom item.
description String The description of the custom item.

Measure Sheet Item

Parameter Name Parameter Type Description
objectId String The id from the Measure Sheet Item.
note String The note field from the Measure Sheet Item.
measurementType String The type of measurement from the Measure Sheet Item.
thumbnailURL String The URL to the thumbnail of the Measure Sheet Item.
drillDowns String The drill downs for the Measure Sheet Item.
name String The name of the Measure Sheet Item.
category String The category of the Measure Sheet Item.
subCategory String The sub-category of the Measure Sheet Item.

Selected Option

Parameter Name Parameter Type Description
objectId String The object ID of the selected Price Guide Option.
brand String The brand of the selected Price Guide Option.
name String The name of the selected Price Guide Option.
price Float The price of the selected Price Guide Option.

Finance Option

Parameter Name Parameter Type Description
objectId String The object ID of the selected Finance Option.
bankName String The bank name of the selected Finance Option.
minAmount Float The minimum amount of the selected Finance Option.
maxAmount Float The maximum amount of the selected Finance Option.
interestRate Float The interest rate of the selected Finance Option.
name String The name of the selected Finance Option.
term Float The term of the selected Finance Option.
note String The note of the selected Finance Option.
paymentFactor Float The payment factor of the selected Finance Option.
planCode String The plan code of the selected Finance Option
category String The category of the selected Finance Option
dealerFeePercent Float The dealer fee percent of the selected Finance Option.

Example of a Webhook from Results


{ 
 "trigger": "results", 
 "user": { 
   "id": "6qio5RZWgQ", 
   "firstName": "Elmer", 
   "lastName": "Fudd", 
   "email": "stevestencil@leaptodigital.com", 
   "phoneNumber": "", 
   "licenseNumber": "", 
   "username": "steve", 
   "identifier": "", 
   "office": { 
     "id": "Qx5aL30Aaq", 
     "name": "Pasadena" 
   } 
 }, 
 "customer": { 
   "id": "f9bNQsyl9N", 
   "firstName": "John", 
   "lastName": "Johnson", 
   "estimateName": "11/17/2022", 
   "street": "25 Main St", 
   "city": "Mason City", 
   "state": "IA", 
   "zipCode": "50401", 
   "phoneNumbers": [ 
     { 
       "number": "(346)546-5465", 
       "note": "" 
     }, 
     { 
       "number": "(321)654-6546", 
       "note": "" 
     } 
   ], 
   "emails": [ 
     { 
       "email": "john@email.com", 
       "note": "" 
     } 
   ] 
 }, 
 "estimate": { 
   "id": "nVOynFC71L", 
   "isSale": true, 
   "saleAmount": null, 
   "resultNote": "User - Elmer Fudd\nOffice - Pasadena\nProduct Sold - 123\nSale Amount - $0.00\nPayment Type - Credit Card\nFinance Option - No Finance Option\nPar - $8,800.00\nEmail Address - john@email.com\nMain Contact - Home\nNotes - This is a test", 
   "activeCategories": [ 
     "roofing" 
   ], 
   "resultData": [ 
     { 
       "title": "Product Sold", 
       "value": "123" 
     }, 
     { 
       "title": "Sale Amount", 
       "value": "$0.00" 
     }, 
     { 
       "title": "Payment Type", 
       "value": "Credit Card" 
     }, 
     { 
       "title": "Finance Option", 
       "value": "No Finance Option" 
     }, 
     { 
       "title": "Par", 
       "value": "$8,800.00" 
     }, 
     { 
       "title": "Email Address", 
       "value": "john@email.com" 
     }, 
     { 
       "title": "Main Contact", 
       "value": "Home" 
     }, 
     { 
       "title": "Notes", 
       "value": "This is a test" 
     } 
   ], 
   "addedCategories": [ 
     "Roofing" 
   ], 
   "addedItems": [ 
     { 
       "quantity": 22, 
       "tag": "", 
       "isActive": true, 
       "additionalDetails": [ 
       
], 
       "addedUpCharges": [ 
       
], 
       "customItem": null, 
       "measureSheetItem": { 
         "objectId": "clesjwHPOz", 
         "note": "Walkable", 
         "measurementType": "Sq", 
         "thumbnailURL": "http://localhost:1337/leap/files/vsJUoMTVBxWim04bhb92eEHYlC7CF5TGGeV5zeTL/e6caed9bb601bd78fd2e016f8da694b2_thumbnail.jpg", 
         "drillDowns": "", 
         "name": "Shingles", 
         "category": "Roofing", 
         "subCategory": "Asphalt" 
       }, 
       "selectedOption": { 
         "objectId": "R8GFGPaL0z", 
         "brand": "Owens Corning", 
         "name": "Duration", 
         "price": 400 
       } 
     } 
   ], 
   "office": { 
     "id": "Qx5aL30Aaq", 
     "name": "Pasadena" 
   }, 
   "financeOption": null 
 }, 
 "fileURL": "http://localhost:1337/leap/files/vsJUoMTVBxWim04bhb92eEHYlC7CF5TGGeV5zeTL/e56e056c6fff332227a2c7d64c6a98ca_VMMk7CHfeICSpVWO3QOwattachment.pdf" 
} 

Setup

Webhooks v2 will require in-house IT support as it uses SalesPro’s API and will require technical knowledge to set up.

On SalesPro’s side, Webhooks does not need an API to call. Simply toggle on the Enable switch, fill out the fields for URL and Auth Header (if needed) and toggle on which document PDFs you would like to include. These toggles can be found on the Appointments page as well Document, Credit Application, and Results routing pages.

This will allow our system to pull or push information through to the specified URL.

On the customer side of things, the data will need to be mapped. SalesPro’s support team will not be able to assist with this part of setup, as every system is different. We recommend having your in-house IT support assist with this as it requires technical knowledge to set up to pull and map the data.

Updated on December 22, 2023

Was this article helpful?

Related Articles