Webhooks
What is it?
Webhooks allow applications (like your CRM and your PRO app) to share data without needing a direct API connection.
For you, this means your mobile app can send data to a specific location (for example your CRM) whenever something new happens. This can easily kick off a workflow in your CRM.
For example, when a user logs into your app and enters their contact info, your app can POST the new profile to your CRM, and your CRM can then create a new Contact. This can kick of a welcome email, email list subscription and a task can be schedule to contact the user.
Later, the same user gets pre-qualified, and your app can POST the pre-qualification info into your CRM. You can now easily kick off a workflow that can send a congrats email and create a task to follow up.
As a Mortgage Broker, you can use the pre-qualification data to send laser-targeted emails and complete parts of a mortgage application. Hence, no one has to rekey the info again.
As a Realtor, you can use the pre-qualification data to narrow the search filters and email your client new properties within their budget and location.
How to set it up
Get your Webhook URL
Ask your CRM company or the platform where you want the mobile app data to go for a custom webhook URL.
Paste the URL in your app
On your app, visit the Admin console.
Admin > Webhooks > Get Started

New Profile
The profile data is posted when a user creates a new profile on your app or logs in to an existing account. The JSON data structure has a type key that shows this is a profile payload.
{
"type": "profile",
"version": "1.0",
"customerId": "CO12345",
"ownerCustomerId": "23",
"firstName": "Ben",
"lastName": "Salami",
"email": "test@bendigi.com",
"phone": "416-555-5555",
"localeIdentifier": "en",
"defaultLocation":
{
"countryCode": "CA",
"province": "ON",
"city": "Toronto",
"longitude": "-79.38459",
"latitude": "43.80549"
},
"createdAt": "2020-07-07T21:40:21.172Z"
}
Aside from basic contact information, the payload also contains unique ids.
customerId is the user’s unique id on your mobile app and should be stored in your CRM because future notifications about this user will include the same key/value so it can be cross-referenced.
ownerCustomerId is your own unique id with us. This is particularly useful if you share your CRM account with another colleague and you both have an app with us. Here you may use the same webhook URL, and this field will help to identify from whose app the data originated.
PreQualification Schema
TBD
{
"type": "prequalification",
"version": "1.0",
"scenarioId": "3A3E9126-94F3-4D41-BAC0-B93D1BC16842",
"scenarioTitle": "Sally",
"contact": {...},
"subjectProperty":{...},
"mortgage":{...}, // ommited on Realtor apps
"applicant":{...},
"closingCosts":{...},
"qualificationDetails":{...}
}
Requests (Leads)
{
"type": "lead",
"version": "1.0",
"leadId": "QfMDqwfeRi",
"leadType": "lead_preq",
"contact":
{
"customerId": "CO36752",
"firstName": "Ben",
"lastName": "Salami",
"email": "consumer@bendigi.com",
"phone": "(416) 720-3044",
"preferredContactMethods":
[
"text",
"phone",
"email"
],
"preferredContactLanguages":
[
"en"
],
"userLocation":
{
"province": "ON",
"city": "Toronto"
}
},
"request":
{
"clientNotes": "Client notes goes here",
"mortgageGoal": "preapproval",
"propertyValue": 807987.4236961136,
"propertyLocation":
{
"province": "Ontario",
"city": "Toronto"
}
},
"scenarioData":
{
// follows the PREQ scenario structure
},
"submittedAt": "2023-01-09T21:00:13.901Z"
}
{
"type": "lead",
"version": "1.0",
"leadId": "1UYUAK69Fd",
"leadType": "lead_contact",
"contact":
{
"customerId": "CO36752",
"firstName": "Ben",
"lastName": "Salami",
"email": "consumer@bendigi.com",
"phone": "(416) 720-3044",
"preferredContactMethods":
[
"text",
"phone",
"email"
],
"preferredContactLanguages":
[
"en"
],
"userLocation":
{
"province": "ON",
"city": "Toronto"
}
},
"request":
{
"clientNotes": "Client notes goes here ",
"mortgageGoal": "purchase",
"purchaseStatus": "propertyFound",
"propertyValue": 1300000,
"downPayment": 300000,
"buildingType": "house",
"propertyLocation":
{
"province": "Ontario",
"city": "North York",
"countryCode": "CA",
"latitude": "43.7607114",
"longitude": "-79.4106385"
}
},
"scenarioData": { // Included if attached },
"submittedAt": "2023-01-09T20:59:26.970Z"
}
{
"type": "lead",
"version": "1.0",
"leadId": "1H8x0CUNeN",
"leadType": "lead_contact",
"contact":
{
"customerId": "CO36752",
"firstName": "Ben",
"lastName": "Salami",
"email": "consumer@bendigi.com",
"phone": "(416) 720-3044",
"preferredContactMethods":
[
"text",
"phone",
"email"
],
"preferredContactLanguages":
[
"en"
],
"userLocation":
{
"province": "ON",
"city": "Toronto"
}
},
"request":
{
"clientNotes": "Client noted goes here",
"mortgageGoal": "refinance",
"propertyValue": 1200000,
"mortgageBalance": 250000,
"maturityDate": "2022-12-29T21:06:00.000Z",
"propertyLocation":
{
"countryCode": "Canada",
"province": "Ontario",
"city": "Toronto",
"longitude": "-79.3831843",
"latitude": "43.653226"
}
},
"scenarioData":
{
// Included if attached
},
"submittedAt": "2022-12-28T21:07:03.895Z"
}
{
"type": "lead",
"version": "1.0",
"leadId": "Ykq77SUvC6",
"leadType": "lead_contact",
"contact":
{
"customerId": "CO36752",
"firstName": "Ben",
"lastName": "Salami",
"email": "consumer@bendigi.com",
"phone": "(416) 720-3044",
"preferredContactMethods":
[
"text",
"phone",
"email"
],
"preferredContactLanguages":
[
"en"
],
"userLocation":
{
"province": "ON",
"city": "Toronto"
}
},
"request":
{
"clientNotes": "Client noted goes here",
"mortgageGoal": "renew",
"mortgageBalance": 850000,
"existingMortgageRate":
{
"rate": 3.0
},
"maturityDate": "2022-12-31T21:08:00.000Z",
"propertyLocation":
{
"countryCode": "Canada",
"province": "Ontario",
"city": "Toronto",
"longitude": "-79.3831843",
"latitude": "43.653226"
}
},
"submittedAt": "2022-12-28T21:09:44.735Z"
}
{
"type": "lead",
"version": "1.0",
"leadId": "BR9sH8rptn",
"leadType": "lead_contact",
"contact":
{
"customerId": "CO36752",
"firstName": "Ben",
"lastName": "Salami",
"email": "consumer@bendigi.com",
"phone": "(416) 720-3044",
"preferredContactMethods":
[
"text",
"phone",
"email"
],
"preferredContactLanguages":
[
"en"
],
"userLocation":
{
"province": "ON",
"city": "Toronto"
}
},
"request":
{
"clientNotes": "Client Notes goes here and it’s a least 30 characters long"
"mortgageGoal": "other",
},
"submittedAt": "2022-12-28T21:30:46.746Z"
}