Quick Start

Webhooks Overview

Webhooks allow you to programmatically subscribe to certain events from Lead Voyager. When one of these events is triggered, Lead Voyager will send an HTTP POST payload to the webhook’s URL.

Webhooks are configured at the Organization level. You can use the data in the webhook payload to determine the team, agent, or lead to which the event refers.

Subscribing to Webhooks

To subscribe to a webhook, you will need to give the URL for a website you control to your account manager. You can subscribe a single URL to multiple webhooks, or have individual URLs subscribed to each webhook you want to process.

Accepting Webhooks

Any URL you provide will begin receiving HTTP POSTs from Lead Voyager immediately. You should return a 200 OK HTTP response upon receipt. If Lead Voyager encounters any other return code, it will be logged as an error. Lead Voyager will not retry in case of error.

Payload Schema

Each webhook includes a payload in the form on a JSON object. The payload describes the data related to the event that triggered the webhook.

Base Properties

Each payload is a JSON object including several properties to help you understand the event that was triggered.

lead
The associated lead
eventName
string
The name of the event that was triggered
webhookUrl
string
The URL to which this webhook was posted
messageId
string (UUIDv4)
The unique ID of this message
assignment
Optional
The associated assignment

Typical Payload Example

This is an example of a typical payload included with a webhook. This shows the leadAccepted event, which is commonly used to create a new lead in a CRM.

{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"acceptedDateTime": "2018-06-23T20:40:03.77967",
		"assignedDateTime": "2018-06-23T20:34:28.861197"
	},
	"eventName": "leadAccepted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

lead Property

The lead property is included in the payload for every webhook triggered from an event that deals with a lead, such as leadCreated or leadAssigned. It describes the basic information about the related lead. If you need more detail on a specific lead, you should access the lead through the Lead Voyager API.

leadId
number
The unique user ID of the lead in Lead Voyager
userId
string
Optional
The user ID from your system
name
string
The name of the lead
email
array of string
The known email addresses for this lead
phone
array of string
The known telephone numbers for this lead
source
string
The name of the lead source
account
string
The friendly name of the e-Team that received the lead
teamEmail
string
The Lead Voyager email address of the e-team that received this lead
boostedAPIKey
string (UUIDv4)
Optional
The Brytelytics API key of the lead source, if it arrived via Brytelytics
aid
string (UUIDv4)
Optional
The unique anonymous user ID created by Brytelytics (Brytelytics leads only)

lead Property Example

The lead object parameter is named "lead" and is in the root of the payload JSON object.

{
	"lead": {
		"userid": "2f1c32bf-2066-4acd-bc63-ee65566d9686",
		"name": "Lead Name",
		"email": ["leadEmail@hotmail.com"],
		"phone": ["15551234567"],
		"leadid": 1234,
		"source": "your site",
		"account": "your account",
		"teamEmail": "youremail@bryteagent.com",
		"boostedAPIKey": "your api key"
	},
	...
}

assignment Property

Each payload related to an assignment or routing event, or events that occur on leads that are assigned to an agent, will have an assignment property describing which agent owns the lead. You should use this information to determine which agent's database is updated in your CRM.

Only one of two roles will be passed with this object: member or concierge.

  • member: a member of an e-Team, generally just a real estate agent.
  • concierge: a person who scrubs leads and can assign leads to agents, sometimes called an inside sales agent, or lead manager.

All members will have an additional field tag which describes their relationship with the lead on this deal. The tag field will always be null when the role is concierge.

  • Buyer: the member is the buyer's agent
  • Seller: the member is the listing agent
  • Renter: the member is the leasing agent
  • Scrubber: the tag is not yet determined (the lead is still being scrubbed by the member)
role
string
The role of the user
tag
string
The relationship of the member with this lead
assignedTo
string
The email address of the member assigned to this lead
assignedDateTime
timestamp (ISO 8601)
The date and time this assignment occurred
assignedAgentId
string
The user ID of the assigned member in your system (if your user roster is synced)

 

When a concierge is claiming a lead, these attributes may also be available in the assignment property.

claimedBy
string
The email address of the concierge who claimed this lead
claimedDateTime
timestamp (ISO 8601)
The date and time the concierge claimed the lead
assignedConciergeId
string
The user ID of the claiming concierge in your system (if your user roster is synced)

assignment Property Example

The assignment object parameter is named "assignment" and is in the root of the payload JSON object.

{
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"acceptedDateTime": "2018-06-23T20:40:03.77967",
		"assignedDateTime": "2018-06-23T20:34:28.861197"
	},
	...
}

Assignment & Routing

Many events in Lead Voyager relate to assignment and routing of leads. You can subscribe to these events to update your system and keep your contacts in sync as Lead Voyager handles these tasks.

Agents do not get notified of assignments, and you should expect assignments to change before the agent ever sees a lead.

When a lead is routed to an agent, the agent will get notified of the lead availability, and must accept the lead before accessing it.

When an agent accepts a lead, you can safely add the lead to the agent's database in your system.

leadAccepted

A lead was accepted by the assigned real estate agent.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"acceptedDateTime": "2018-06-23T20:40:03.77967",
		"assignedDateTime": "2018-06-23T20:34:28.861197"
	},
	"eventName": "leadAccepted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadAssigned

A lead was assigned by the system or a concierge. This lead has not yet been routed to the assigned agent. You may wish to examine the leadAccepted event as an alternative, based on your needs.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedDateTime": "2018-06-28T15:28:50.255453"
	},
	"eventName": "leadAssigned",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadClaimed

A lead was claimed by a concierge. This event will create an assignment on the lead with the role of concierge.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": null,
		"role": "concierge",
		"claimedBy": "concierge@example.com",
		"claimedDateTime": "2018-06-23T20:40:03.77967",
		"assignedConciergeId": null
	},
	"eventName": "leadClaimed",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadClaimedByAgent

A lead was claimed by an agent from the Unclaimed Leads queue.

This event will immediately be followed by the leadAccepted event. You may wish to use that event instead, depending on your needs.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedDateTime": "2018-06-23T20:34:28.861197",
		"assignedAgentId": null
	},
	"eventName": "leadClaimedByAgent",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadClaimTakeover

The concierge role on a lead was taken by another concierge.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": null,
		"role": "concierge",
		"claimedBy": "concierge@example.com",
		"claimedDateTime": "2018-06-23T20:40:03.77967",
		"assignedConciergeId": null
	},
	"eventName": "leadClaimTakeover",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadDeclined

A lead was declined by an assigned agent.

If this lead was assigned to multiple agents (a "jump ball" assignment), each of the other assignments will eventually trigger a leadExpired, leadDeclined, leadAccepted, or leadSlowAccepted event.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
reason
string
The provided reason for declining the lead
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"declinedDateTime": "2018-06-28T15:24:40.764885",
		"assignedAgentId": null
	},
	"eventName": "leadDeclined",
	"reason": "Out of service area",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadExpired

An assigned lead that was routed to an agent has expired, and the agent is no longer able to accept the lead.

If this lead was assigned to multiple agents (a "jump ball" assignment), this event will trigger for every assignment that was not accepted.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"expiredDateTime": "2018-06-28T15:24:40.764885",
		"assignedAgentId": null
	},
	"eventName": "leadExpired",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadRetracted

A lead that was previously routed was retracted by a concierge. This action will remove the lead from the agent's database.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"retractedDateTime": "2018-06-29T12:25:16.422922",
		"assignedAgentId": null
	},
	"eventName": "leadRetracted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadRouted

An assigned lead was routed to an agent (via the system or a concierge). This means the agent has received notification of the new lead, but they have not yet accepted the lead. (You may wish to subscribe to the leadAccepted event instead of this one.)

If multiple agents are assigned a lead (a "jump ball" assignment), and the lead is routed, this event will trigger for each assigned agent.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"routedDateTime": "2018-06-28T15:34:48.093157",
		"assignedAgentId": null
	},
	"auto_accept": false,
	"eventName": "leadRouted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadSlowAccepted

An agent attempted to accept a lead (by clicking the "Accept" button on the lead form), but was unable to accept because another assigned agent accepted it first.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"slowAcceptedDateTime": "2018-06-28T15:24:40.764885",
		"assignedAgentId": null
	},
	"eventName": "leadSlowAccepted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

Deal Management

After an agent accepts a lead, they can add a deal (buyer, seller, renter) and perform actions that move the lead through the deal lifecycle. These events track the deal-related actions.

appAccepted

A leasing agent indicated their renter's application has been accepted by the landlord. This deal will now be marked as closed and will be automatically archived.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "renter",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "appAccepted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

appRejected

A leasing agent indicated their renter's submitted application was rejected by the landlord.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
reason
string
The reason the application was rejected
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "renter",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "appRejected",
	"reason": "Credit check failure",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

appSubmitted

A leasing agent indicated their renter has submitted an application to a landlord.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "renter",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "appSubmitted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

closingCanceled

An agent indicated the scheduled closing has been canceled.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
reason
string
The reason the closing was canceled
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "cloingCanceled",
	"reason": "Lost financing",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

closingRescheduled

The agent specified that the closing date has moved.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
closingDate
datetime (ISO 8601)
The new closing date
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "closingRescheduled",
	"closingDate": "2018-06-29T00:00:00",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

closingScheduled

The agent has specified that a lead has scheduled a closing.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
closingDate
datetime (ISO 8601)
The scheduled closing date
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "closingScheduled",
	"closingDate": "2018-06-29T00:00:00",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

dealClosed

The agent has specified that their customer has closed their real estate transaction. This deal will now be marked as closed and will be automatically archived.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "dealClosed",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

dealCreated

A deal defines an agent-customer relationship, and tracks the status of that relationship through the closing. Each deal has a tag that identifies the customer need. Valid tags are:

  • Buyer: the customer is a prospective buyer
  • Seller: the customer is selling their home
  • Renter: the customer is looking to rent a home
  • Scrubber: the tag is not yet determined (the customer is still being scrubbed by the agent)

This event tracks the creation of a new deal on a lead. This deal can be created by a concierge or agent, or automatically by the system's assignment rules.

lead
The related lead
assignment
The details of the agent assignment (including the deal tag)
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "dealCreated",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

dealDeleted

A deal was removed, probably in preparation for creating a new deal.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "dealDeleted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

offerAccepted

The offer received (seller) or offer sent (buyer) was accepted by the other party.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "offerAccepted",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

offerReceived

An agent indicated their seller received an offer on the listing.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "offerReceived",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

offerSent

The agent indicated an offer was sent by a buyer they represent.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "offerSent",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

Other Webhooks

These events occur outside of deals, assignments, or routing, but may still be valuable for your system.

leadAwoken

A snoozed lead has awoken and was placed into the users "Active" queue. Leads can be manually awoken by the user, or automatically based on a scheduled date and time.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "leadAwoken",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadCalled

The user called the lead on the telephone. A result is also supplied, and must be chosen from a list by the user. Valid results are:

  • Reached
  • Left voicemail
  • Busy/No answer
  • Wrong Number
lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
result
string
The result of the telephone call
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"result": "Left voicemail",
	"eventName": "leadCalled",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadEmailed

The user sent the lead an email message.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
message
object
The details of the email message
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "leadEmailed",
	"message": "Hi Sally, let's meet on Sunday to look at some properties.",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadJunked

The lead was junked by a concierge. Note that agents do not have permission to junk a lead; they can only mark a lead as inactive. See leadMarkedInactive.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
reason
string
The reason the lead was junked
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "leadJunked",
	"reason": "Spam or fake account"
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadLifecycleUpdated

The lead's lifecycle phase was manually changed by the user.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
lifecycleState
object
An object describing the current state of the lead's lifecycle
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "leadLifecycleUpdated",
	"lifecycleState": "Reached",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadMarkedInactive

The lead was marked inactive by the assigned user. Leads can be marked as inactive manually, or automatically if the deal on the lead is closed.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
reason
string
Optional
The reason the lead was marked inactive
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "leadMarkedInactive",
	"reason": "Lost contact",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadReachedInPerson

The agent has had an initial meeting with the lead.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "leadReachedInPerson",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadSnoozed

The lead was snoozed by the user.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
wakeDateTime
timestamp (ISO 8601)
The date and time the lead is scheduled to wake
reason
string
Optional
The user-customizable reason for snoozing the lead
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "leadSnoozed",
	"wakeDateTime": "2018-06-29T12:25:16.422922",
	"reason": "Customer asked to call back Saturday.",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadTexted

The assigned user sent the lead a text message.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
message
string
The message sent to the lead
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"aid": "13cd31bc-bdeb-4c0a-a940-990af8ee4bb8",
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "www.example.com",
		"userId": "c0b70a35-fc9c-4236-919d-5ba145d28775",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com",
		"boostedAPIKey": "ae7d56b1-1276-459a-b6e4-117df2379cf4"
	},
	"assignment": {
		"tag": "buyer",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"eventName": "leadTexted",
	"message": "Hi Susan, can you meet tomorrow at noon?",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadUpdated

A user has updated the lead information, such as name or email address.

lead
The related lead
assignment
The details of the assignment related to the person who updated the lead
updatedData
object
An object containing the data fields that were changed, and their old and new values
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"assignment": {
		"tag": "scrubber",
		"role": "member",
		"assignedTo": "agent@example.com",
		"assignedAgentId": null
	},
	"updatedData": {
		"name": {
			"old": "Fredreick",
			"new": "Frederick"
		}, "telephone": {
			"old": ["8005551212"],
			"new": ["8005551212","8005551213"]
		}, "primaryTelephone": {
			"old": "8005551212",
			"new": "8005551213"
		}
	},
	"eventName": "leadUpdated",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

System Webhooks

These events are triggered by system rules or business logic. Except in some specific cases of leadCreated, these events are not triggered directly by user actions.

leadBehaviorAlert

This lead's online behavior has indicated an agent should contact them for assistance.

Note that the lead has not directly asked for an agent, and they may already have an assigned agent.

This event is designed not to trigger on leads that are actively being managed by an agent.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message

leadCreated

A lead was created in Lead Voyager. This happens before assigning or routing a lead.

lead
The lead that was created
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"eventName": "leadCreated",
	"webhookUrl": "https://yourwebsite/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

leadNeedsAttention

An issue has occurred with this lead, and it now needs human intervention.

lead
The related lead
assignment
The details of the agent assignment
eventName
string
The name of this event
reason
string
The reason this alert occurred
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message
{
	"lead": {
		"name": "Lead Name",
		"email": ["lead@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"eventName": "leadNeedsAttention",
	"reason": "Unable to auto-assign this lead.",
	"webhookUrl": "https://yourwebsite/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}

messageReceived

A lead has submitted a message, which can be a form, email, email reply, or other inbound message type supported by the broker. Assigned agents will receive notification of this message.

If this message applies to multiple assignments, it will trigger for each.

lead
The related lead
assignment
The details of the agent assignment
message
object
The details of the message
eventName
string
The name of this event
webhookUrl
string
The URL to which this webhook was posted
messageId
string
The unique ID of this message

messageReceivedExample

This example shows a message received when a user submits a showing request from a website with Brytelytics installed. The data in the message can vary greatly based on message_type.

{
	"lead": {
		"name": "Johnny Lead",
		"email": ["johnny@example.com"],
		"phone": ["5555555555"],
		"leadId": 1234,
		"source": "Source Name",
		"account": "Team Name",
		"teamEmail": "team_email@bryteagent.com"
	},
	"message": {
		"id": 1133723,
		"message_type": 1,
		"message_type_name": "form",
		"created_ts": "2018-08-05T22:29:33.788Z",
		"event": "realestate.requestedShowing",
		"form": {
			"fromEmail": "johnny@example.com",
			"fromName": "Johnny Lead",
			"fromTelephone": "5555555555",
			"isWorkingWithAgent": false,
			"name": "My Website Schedule a Showing",
			"message": "Hi I'm looking to schedule a showing for 1234 Main Street.",
			"relatedListing": {
				"address": {
					"streetAddress": "1234 Main St.",
					"city": "Lincoln",
					"stateProvince": "NE",
					"zipPostal": "68501"
				},
				"bedrooms": 4,
				"fullBaths": 2,
				"geoLocation": {
				},
				"halfBaths": 1
				...
			}
			"subject": "Schedule a Showing",
		}
	},
	"eventName": "messageReceived",
	"webhookUrl": "https://example.com/webhookEndpoint",
	"messageId": "44089235-be19-4ebf-ba86-bdfc154d20c0"
}