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. |
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. |
Parameter Name | Parameter Type | Description |
---|---|---|
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.