Payload Schemas
Complete type reference for every webhook event metadata payload. All fields are always present — nullable fields are null when not applicable.
Job Payloads
job_created
Created via normal agency/residential path, or Fixify Maintenance transfer
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
cancellationReason |
string | null |
Reason the original job was cancelled, when applicable |
categoryId |
string |
ID of the service category the job falls under |
estateId |
string | null |
ID of the estate the property belongs to; null if not part of an estate |
jobId |
string |
ID of the newly created job |
jobNumber |
number | null |
Human-readable sequential job number |
originalAgencyId |
string | null |
Recreate/transfer path only — agency ID of the originating job |
originalAgencyName |
string | null |
Recreate/transfer path only — agency name of the originating job |
originalJobId |
string | null |
Recreate/transfer path only — ID of the originating job; null on normal paths |
originalJobNumber |
number | null |
Recreate/transfer path only — job number of the originating job |
propertyId |
string | null |
ID of the property the job is for; null if not linked to a property |
propertyRecreated |
boolean | null |
True when the property was recreated as part of the transfer |
requestorInfo |
JobRequestorInfo | null |
Contact details of the requestor; null when not captured |
requestorType |
string | null |
Type of party that requested the job (e.g. agent, occupant, landlord) |
transferredToFixifyMaintenance |
boolean | null |
True when the job was transferred to Fixify Maintenance |
Example
{
"agencyId": "<agencyId>",
"cancellationReason": "<cancellationReason>",
"categoryId": "<categoryId>",
"estateId": "<estateId>",
"jobId": "<jobId>",
"jobNumber": 1,
"originalAgencyId": "<originalAgencyId>",
"originalAgencyName": "Example Name",
"originalJobId": "<originalJobId>",
"originalJobNumber": 1,
"propertyId": "<propertyId>",
"propertyRecreated": false,
"requestorInfo": {
"email": "user@example.com",
"fullName": "Example Name",
"mobileNumber": "<mobileNumber>"
},
"requestorType": "<requestorType>",
"transferredToFixifyMaintenance": false
}
job_assigned_to_service_providers
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderIds |
string[] |
IDs of the service providers assigned in this action |
serviceProvidersAssignedTotal |
number |
Total number of service providers now assigned to the job |
Example
{
"agencyId": "<agencyId>",
"categoryId": "<categoryId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderIds": [
"<serviceProviderIds>"
],
"serviceProvidersAssignedTotal": 0
}
job_fulfilment_accepted
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
fulfilmentId |
string |
ID of the fulfilment (a service provider's engagement on the job) |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider who accepted the fulfilment |
Example
{
"agencyId": "<agencyId>",
"categoryId": "<categoryId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
job_fulfilment_rejected
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
fulfilmentId |
string |
ID of the fulfilment (a service provider's engagement on the job) |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider who rejected the fulfilment |
Example
{
"agencyId": "<agencyId>",
"categoryId": "<categoryId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
job_cancelled
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
jobId |
string |
ID of the cancelled job |
jobNumber |
number |
Human-readable sequential job number |
reason |
string | null |
Reason the job was cancelled |
Example
job_fulfilment_cancelled
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
fulfilmentId |
string |
ID of the cancelled fulfilment |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider whose fulfilment was cancelled |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
job_completed
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
jobId |
string |
ID of the completed job |
jobNumber |
number |
Human-readable sequential job number |
Example
job_quote_number_updated
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
requiredNumberOfQuotes |
number |
New number of quotes required on the job |
requiredNumberOfQuotesPrevious |
number |
Previous number of quotes required on the job |
Example
{
"agencyId": "<agencyId>",
"categoryId": "<categoryId>",
"jobId": "<jobId>",
"jobNumber": 1,
"requiredNumberOfQuotes": 1,
"requiredNumberOfQuotesPrevious": 1
}
job_fulfilment_completed
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
fulfilmentId |
string |
ID of the completed fulfilment |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider who completed the fulfilment |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
job_fulfilment_quote_uploaded
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
fulfilmentId |
string |
ID of the fulfilment the quote was uploaded to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
links |
string[] |
Download links to the uploaded quote(s) |
numberOfQuotes |
number |
Number of quote documents uploaded |
quoteNames |
string |
Comma-separated list of the uploaded quote file names |
serviceProviderId |
string |
ID of the service provider who uploaded the quote(s) |
Example
{
"agencyId": "<agencyId>",
"categoryId": "<categoryId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"links": [
"<links>"
],
"numberOfQuotes": 0,
"quoteNames": "<quoteNames>",
"serviceProviderId": "<serviceProviderId>"
}
job_fulfilment_site_visit_scheduled
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
fulfilmentId |
string |
ID of the fulfilment the site visit is for |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
scheduledDate |
number |
Scheduled site visit date/time as an epoch timestamp |
serviceProviderId |
string |
ID of the service provider performing the site visit |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"scheduledDate": 0,
"serviceProviderId": "<serviceProviderId>"
}
job_fulfilment_job_visit_scheduled
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
fulfilmentId |
string |
ID of the fulfilment the job visit is for |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
scheduledDate |
number |
Scheduled job visit date/time as an epoch timestamp |
serviceProviderId |
string |
ID of the service provider performing the job visit |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"scheduledDate": 0,
"serviceProviderId": "<serviceProviderId>"
}
job_fulfilment_media_uploaded
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
fulfilmentId |
string |
ID of the fulfilment the media was uploaded to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider who uploaded the media |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
job_fulfilment_invoice_uploaded
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
fulfilmentId |
string |
ID of the fulfilment the invoice was uploaded to |
invoiceNames |
string |
Comma-separated list of the uploaded invoice file names |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
links |
string[] |
Download links to the uploaded invoice(s) |
numberOfInvoices |
number |
Number of invoice documents uploaded |
serviceProviderId |
string |
ID of the service provider who uploaded the invoice(s) |
Example
{
"agencyId": "<agencyId>",
"categoryId": "<categoryId>",
"fulfilmentId": "<fulfilmentId>",
"invoiceNames": "<invoiceNames>",
"jobId": "<jobId>",
"jobNumber": 1,
"links": [
"<links>"
],
"numberOfInvoices": 0,
"serviceProviderId": "<serviceProviderId>"
}
job_fulfilment_substatus_updated
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
fulfilmentId |
string |
ID of the fulfilment whose sub-status changed |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
newSubStatus |
string | null |
Sub-status after the change |
previousSubStatus |
string | null |
Sub-status before the change |
serviceProviderId |
string |
ID of the service provider associated with the fulfilment |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"newSubStatus": "pending",
"previousSubStatus": "pending",
"serviceProviderId": "<serviceProviderId>"
}
job_fulfilment_rating_submitted
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
fulfilmentId |
string |
ID of the rated fulfilment |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
rating |
JobRatingBreakdown | null |
Rating breakdown submitted for the service provider |
serviceProviderId |
string |
ID of the rated service provider |
Example
{
"agencyId": "<agencyId>",
"categoryId": "<categoryId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"rating": {
"communication": 0,
"qualityOfQuote": 0,
"qualityOfWork": 0,
"reliability": 0,
"review": "<review>"
},
"serviceProviderId": "<serviceProviderId>"
}
job_reminder_sent
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
categoryId |
string |
ID of the service category the job falls under |
jobId |
string |
ID of the job the reminder relates to |
jobNumber |
number |
Human-readable sequential job number |
Example
job_fulfilment_reminder_sent
| Field | Type | Description |
|---|---|---|
agencyId |
string | null |
ID of the agency the job belongs to; null for residential jobs |
fulfilmentId |
string |
ID of the fulfilment the reminder relates to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider the reminder was sent to |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
job_name_updated
| Field | Type | Description |
|---|---|---|
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
newName |
string | null |
Job name after the change |
previousName |
string | null |
Job name before the change |
Example
job_substatus_updated
| Field | Type | Description |
|---|---|---|
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
newSubStatus |
string | null |
Sub-status after the change |
previousSubStatus |
string | null |
Sub-status before the change |
Example
job_payment_responsibility_updated
| Field | Type | Description |
|---|---|---|
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
newResponsibility |
string | null |
Party responsible for payment after the change |
previousResponsibility |
string | null |
Party responsible for payment before the change |
Example
{
"jobId": "<jobId>",
"jobNumber": 1,
"newResponsibility": "<newResponsibility>",
"previousResponsibility": "<previousResponsibility>"
}
job_active_service_provider_removed
| Field | Type | Description |
|---|---|---|
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider removed from the job |
Example
Quote Payloads
quote_approved / quote_rejected / quote_requote_requested
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the job belongs to |
fulfilmentId |
string |
ID of the fulfilment the quote belongs to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
quoteStatus |
"approved" | "rejected" | "requote" |
New quote status |
serviceProviderId |
string |
ID of the service provider who submitted the quote |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"quoteStatus": "approved",
"serviceProviderId": "<serviceProviderId>"
}
quote_outdated
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the job belongs to |
fulfilmentId |
string |
ID of the fulfilment the outdated quote belongs to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider whose quote became outdated |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
Invoice Payloads
invoice_approved
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the job belongs to |
fulfilmentId |
string |
ID of the fulfilment the invoice belongs to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider whose invoice was approved |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
invoice_disputed
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the job belongs to |
fulfilmentId |
string |
ID of the fulfilment the invoice belongs to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider whose invoice was disputed |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
invoice_cancelled
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the job belongs to |
fulfilmentId |
string |
ID of the fulfilment the invoice belongs to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider whose invoice was cancelled |
Example
{
"agencyId": "<agencyId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
Approval Payloads
approval_created
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the job belongs to |
approvalId |
string | null |
ID of the created approval; null until persisted |
fulfilmentId |
string |
ID of the fulfilment the approval relates to |
jobId |
string |
ID of the job |
jobNumber |
number |
Human-readable sequential job number |
serviceProviderId |
string |
ID of the service provider the approval is for |
Example
{
"agencyId": "<agencyId>",
"approvalId": "<approvalId>",
"fulfilmentId": "<fulfilmentId>",
"jobId": "<jobId>",
"jobNumber": 1,
"serviceProviderId": "<serviceProviderId>"
}
approval_approved / approval_rejected / approval_pending / approval_requote
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the job belongs to |
approvalId |
string |
ID of the approval whose status changed |
jobId |
string |
ID of the job |
status |
"approved" | "rejected" | "pending" | "requote" |
New approval status |
Example
{
"agencyId": "<agencyId>",
"approvalId": "<approvalId>",
"jobId": "<jobId>",
"status": "approved"
}
Property Payloads
property_created
| Field | Type | Description |
|---|---|---|
address |
PropertyAddress |
Address of the property |
agencyId |
string |
ID of the agency the property belongs to |
estateId |
string | null |
ID of the estate the property belongs to; null if standalone |
estateName |
string | null |
Name of the estate the property belongs to; null if standalone |
managingAgentId |
string | null |
ID of the agent managing the property; null if unassigned |
propertyId |
string |
ID of the newly created property |
vacant |
boolean |
True when the property is currently vacant |
Example
{
"address": {
"city": "<city>",
"formatted": "<formatted>",
"postalCode": "<postalCode>",
"province": "<province>",
"street": {
"name": "Example Name",
"number": "<number>"
},
"suburb": "<suburb>",
"unitNumber": "<unitNumber>"
},
"agencyId": "<agencyId>",
"estateId": "<estateId>",
"estateName": "Example Name",
"managingAgentId": "<managingAgentId>",
"propertyId": "<propertyId>",
"vacant": true
}
occupant_added
| Field | Type | Description |
|---|---|---|
occupant |
PropertyPersonRef |
Reference details of the added occupant |
occupantId |
string |
ID of the added occupant |
propertyId |
string |
ID of the property |
Example
{
"occupant": {
"email": "user@example.com",
"fullName": "Example Name",
"id": "<id>"
},
"occupantId": "<occupantId>",
"propertyId": "<propertyId>"
}
occupant_removed
| Field | Type | Description |
|---|---|---|
occupantId |
string |
ID of the removed occupant |
occupantType |
string |
Type of occupant that was removed |
propertyId |
string |
ID of the property |
Example
landlord_added
| Field | Type | Description |
|---|---|---|
landlord |
PropertyPersonRef |
Reference details of the added landlord |
landlordId |
string |
ID of the added landlord |
propertyId |
string |
ID of the property |
Example
{
"landlord": {
"email": "user@example.com",
"fullName": "Example Name",
"id": "<id>"
},
"landlordId": "<landlordId>",
"propertyId": "<propertyId>"
}
landlord_removed
| Field | Type | Description |
|---|---|---|
landlordId |
string |
ID of the removed landlord |
propertyId |
string |
ID of the property |
Example
trustee_added
| Field | Type | Description |
|---|---|---|
propertyId |
string |
ID of the property |
trustee |
PropertyPersonRef |
Reference details of the added trustee |
trusteeId |
string |
ID of the added trustee |
Example
{
"propertyId": "<propertyId>",
"trustee": {
"email": "user@example.com",
"fullName": "Example Name",
"id": "<id>"
},
"trusteeId": "<trusteeId>"
}
trustee_removed
| Field | Type | Description |
|---|---|---|
propertyId |
string |
ID of the property |
trusteeId |
string |
ID of the removed trustee |
Example
property_address_updated
| Field | Type | Description |
|---|---|---|
newAddress |
PropertyAddress |
Address after the change |
previousAddress |
PropertyAddress |
Address before the change |
propertyId |
string |
ID of the property |
Example
{
"newAddress": {
"city": "<city>",
"formatted": "<formatted>",
"postalCode": "<postalCode>",
"province": "<province>",
"street": {
"name": "Example Name",
"number": "<number>"
},
"suburb": "<suburb>",
"unitNumber": "<unitNumber>"
},
"previousAddress": {
"city": "<city>",
"formatted": "<formatted>",
"postalCode": "<postalCode>",
"province": "<province>",
"street": {
"name": "Example Name",
"number": "<number>"
},
"suburb": "<suburb>",
"unitNumber": "<unitNumber>"
},
"propertyId": "<propertyId>"
}
property_assigned_to_agent
| Field | Type | Description |
|---|---|---|
newAgentId |
string |
ID of the newly assigned agent |
previousAgentId |
string | null |
ID of the previously assigned agent; null if none |
propertyId |
string |
ID of the property |
Example
{
"newAgentId": "<newAgentId>",
"previousAgentId": "<previousAgentId>",
"propertyId": "<propertyId>"
}
Estate Payloads
estate_created
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the estate belongs to |
estateId |
string |
ID of the newly created estate |
managingAgentId |
string | null |
ID of the agent managing the estate; null if unassigned |
name |
string |
Name of the estate |
Example
{
"agencyId": "<agencyId>",
"estateId": "<estateId>",
"managingAgentId": "<managingAgentId>",
"name": "Example Name"
}
estate_updated
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the estate belongs to |
estateId |
string |
ID of the estate |
managingAgentId |
string | null |
ID of the agent managing the estate; null if unassigned |
name |
string |
Updated name of the estate |
Example
{
"agencyId": "<agencyId>",
"estateId": "<estateId>",
"managingAgentId": "<managingAgentId>",
"name": "Example Name"
}
estate_manager_added
| Field | Type | Description |
|---|---|---|
estateId |
string |
ID of the estate |
estateManagerId |
string |
ID of the added estate manager |
Example
estate_manager_removed
| Field | Type | Description |
|---|---|---|
estateId |
string |
ID of the estate |
estateManagerId |
string |
ID of the removed estate manager |
Example
property_linked
| Field | Type | Description |
|---|---|---|
estateId |
string |
ID of the estate the property is linked to |
previousEstateId |
string | null |
ID of the estate the property was previously linked to; null if none |
propertyId |
string |
ID of the property being linked |
Example
{
"estateId": "<estateId>",
"previousEstateId": "<previousEstateId>",
"propertyId": "<propertyId>"
}
property_unlinked
| Field | Type | Description |
|---|---|---|
previousEstateId |
string | null |
ID of the estate the property was previously linked to; null if none |
propertyId |
string |
ID of the property being unlinked |
Example
estate_assigned_to_agent
| Field | Type | Description |
|---|---|---|
estateId |
string |
ID of the estate |
newAgentId |
string |
ID of the newly assigned agent |
previousAgentId |
string | null |
ID of the previously assigned agent; null if none |
Example
Agent Payloads
agent_created
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the agent belongs to |
agentId |
string |
ID of the newly created agent |
email |
string |
Email address of the agent |
role |
"owner" | "admin" | "agent" |
Role assigned to the agent |
Example
agent_invited
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the agent was invited to |
agentId |
string |
ID of the invited agent |
email |
string |
Email address the invitation was sent to |
Example
agent_deleted
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the agent belonged to |
agentId |
string |
ID of the deleted agent |
email |
string |
Email address of the deleted agent |
estatesReassigned |
number |
Number of estates reassigned away from the deleted agent |
newManagingAgentId |
string | null |
ID of the agent that inherited the deleted agent's managed records |
propertiesReassigned |
number |
Number of properties reassigned away from the deleted agent |
Example
{
"agencyId": "<agencyId>",
"agentId": "<agentId>",
"email": "user@example.com",
"estatesReassigned": 0,
"newManagingAgentId": "<newManagingAgentId>",
"propertiesReassigned": 0
}
agent_role_updated
| Field | Type | Description |
|---|---|---|
agentId |
string |
ID of the agent |
email |
string |
Email address of the agent |
newRole |
"owner" | "admin" | "agent" |
Role after the change |
previousRole |
"owner" | "admin" | "agent" |
Role before the change |
Example
{
"agentId": "<agentId>",
"email": "user@example.com",
"newRole": "owner",
"previousRole": "owner"
}
agent_email_updated
| Field | Type | Description |
|---|---|---|
agentId |
string |
ID of the agent |
newEmail |
string |
Email address after the change |
previousEmail |
string |
Email address before the change |
Example
agent_mobile_number_updated
| Field | Type | Description |
|---|---|---|
agentId |
string |
ID of the agent |
email |
string |
Email address of the agent |
newMobileNumber |
string |
Mobile number after the change |
previousMobileNumber |
string | null |
Mobile number before the change |
Example
{
"agentId": "<agentId>",
"email": "user@example.com",
"newMobileNumber": "<newMobileNumber>",
"previousMobileNumber": "<previousMobileNumber>"
}
agent_accepted_terms
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the agent belongs to |
agentId |
string |
ID of the agent |
Example
agent_agency_changed
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the agent now belongs to |
agentId |
string |
ID of the agent |
email |
string |
Email address of the agent |
previousAgencyId |
string | null |
ID of the agency the agent previously belonged to; null if none |
Example
{
"agencyId": "<agencyId>",
"agentId": "<agentId>",
"email": "user@example.com",
"previousAgencyId": "<previousAgencyId>"
}
agent_enabled
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency the agent belongs to |
agentId |
string |
ID of the enabled agent |
email |
string |
Email address of the agent |
Example
Agency Payloads
agency_created
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the newly created agency |
ownerId |
string |
ID of the agent that owns the agency |
Example
agency_updated
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency |
contactNumber |
string | null |
Updated agency contact number |
name |
string | null |
Updated agency name |
Example
agency_submitted_for_review
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency submitted for review |
submittedOn |
number |
Timestamp the agency was submitted, as an epoch value |
Example
agency_sent_back
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency sent back for changes |
reason |
string | null |
Reason the agency was sent back |
Example
Service Provider Payloads
service_provider_created
| Field | Type | Description |
|---|---|---|
createdVia |
string |
Channel the service provider was created through |
email |
string |
Email address of the service provider |
serviceProviderId |
string |
ID of the newly created service provider |
Example
{
"createdVia": "<createdVia>",
"email": "user@example.com",
"serviceProviderId": "<serviceProviderId>"
}
service_provider_accepted_terms
| Field | Type | Description |
|---|---|---|
serviceProviderId |
string |
ID of the service provider who accepted terms |
Example
service_provider_category_added / service_provider_category_removed
| Field | Type | Description |
|---|---|---|
categories |
ServiceProviderCategorySummary[] |
Full list of the service provider's categories after the change |
categoryId |
string |
ID of the category added or removed |
categoryName |
string |
Name of the category added or removed |
serviceProviderId |
string |
ID of the service provider |
Example
{
"categories": [
{
"name": "Example Name",
"status": "pending",
"supportingDocuments": [
"<supportingDocuments>"
],
"tasks": [
"<tasks>"
]
}
],
"categoryId": "<categoryId>",
"categoryName": "Example Name",
"serviceProviderId": "<serviceProviderId>"
}
service_provider_category_activated
| Field | Type | Description |
|---|---|---|
categoryId |
string |
ID of the activated category |
categoryName |
string |
Name of the activated category |
previousStatus |
string |
Category status before activation |
serviceProviderId |
string |
ID of the service provider |
Example
{
"categoryId": "<categoryId>",
"categoryName": "Example Name",
"previousStatus": "pending",
"serviceProviderId": "<serviceProviderId>"
}
service_provider_category_deactivated
| Field | Type | Description |
|---|---|---|
categoryId |
string |
ID of the deactivated category |
categoryName |
string |
Name of the deactivated category |
reason |
string | null |
Reason the category was deactivated |
serviceProviderId |
string |
ID of the service provider |
Example
{
"categoryId": "<categoryId>",
"categoryName": "Example Name",
"reason": "Reason text",
"serviceProviderId": "<serviceProviderId>"
}
service_provider_personal_info_updated
| Field | Type | Description |
|---|---|---|
serviceProviderId |
string |
ID of the service provider |
updatedFields |
string[] |
Names of the personal-info fields that were updated |
Example
service_provider_company_info_updated
| Field | Type | Description |
|---|---|---|
serviceProviderId |
string |
ID of the service provider |
updatedFields |
string[] |
Names of the company-info fields that were updated |
Example
service_provider_location_added / service_provider_location_removed
| Field | Type | Description |
|---|---|---|
coordinates |
number[] |
Location coordinates as a [latitude, longitude] tuple |
geohash |
string | null |
Geohash of the location |
locationId |
string |
ID of the location added or removed |
name |
string | null |
Name of the location |
serviceProviderId |
string |
ID of the service provider |
Example
{
"coordinates": [
0
],
"geohash": "<geohash>",
"locationId": "<locationId>",
"name": "Example Name",
"serviceProviderId": "<serviceProviderId>"
}
service_provider_contact_viewed
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency that viewed the contact |
searchContext |
Record%3Cstring%2Cunknown%3E |
Context of the search that surfaced the service provider |
serviceProviderId |
string |
ID of the service provider whose contact was viewed |
Example
service_provider_blocked / service_provider_unblocked
| Field | Type | Description |
|---|---|---|
agencyId |
string |
ID of the agency that blocked or unblocked the service provider |
serviceProviderId |
string |
ID of the service provider that was blocked or unblocked |
Example
service_provider_disabled
| Field | Type | Description |
|---|---|---|
reason |
string |
Reason the service provider was disabled |
serviceProviderId |
string |
ID of the disabled service provider |
Example
service_provider_enabled
| Field | Type | Description |
|---|---|---|
serviceProviderId |
string |
ID of the enabled service provider |
Example
service_provider_documents_requested
| Field | Type | Description |
|---|---|---|
categoryId |
string |
ID of the category the documents relate to |
categoryName |
string |
Name of the category the documents relate to |
message |
string | null |
Message accompanying the document request |
serviceProviderId |
string |
ID of the service provider documents were requested from |
Example
{
"categoryId": "<categoryId>",
"categoryName": "Example Name",
"message": "<message>",
"serviceProviderId": "<serviceProviderId>"
}
service_provider_deactivation_requested
| Field | Type | Description |
|---|---|---|
reason |
string | null |
Reason for the deactivation request |
serviceProviderId |
string |
ID of the service provider whose deactivation was requested |
Example
service_provider_deactivation_request_dismissed
| Field | Type | Description |
|---|---|---|
serviceProviderId |
string |
ID of the service provider whose deactivation request was dismissed |
Example
service_provider_deactivated
| Field | Type | Description |
|---|---|---|
reason |
string | null |
Reason the service provider was deactivated |
serviceProviderId |
string |
ID of the deactivated service provider |
Example
Referenced Types
Shared object types used by the payloads above.
JobRequestorInfo
| Field | Type | Description |
|---|---|---|
email |
string |
Email address of the requestor |
fullName |
string |
Full name of the requestor |
mobileNumber |
string |
Mobile number of the requestor |
Example
JobRatingBreakdown
| Field | Type | Description |
|---|---|---|
communication |
number | null |
Communication score |
qualityOfQuote |
number | null |
Quality-of-quote score |
qualityOfWork |
number | null |
Quality-of-work score |
reliability |
number | null |
Reliability score |
review |
string | null |
Free-text review |
Example
{
"communication": 0,
"qualityOfQuote": 0,
"qualityOfWork": 0,
"reliability": 0,
"review": "<review>"
}
PropertyAddress
| Field | Type | Description |
|---|---|---|
city |
string | null |
City |
formatted |
string | null |
Full formatted address string |
postalCode |
string | null |
Postal or zip code |
province |
string | null |
Province or state |
street |
PropertyStreet |
Street name and number |
suburb |
string | null |
Suburb |
unitNumber |
string | null |
Unit or apartment number |
Example
{
"city": "<city>",
"formatted": "<formatted>",
"postalCode": "<postalCode>",
"province": "<province>",
"street": {
"name": "Example Name",
"number": "<number>"
},
"suburb": "<suburb>",
"unitNumber": "<unitNumber>"
}
PropertyPersonRef
| Field | Type | Description |
|---|---|---|
email |
string | null |
Email address of the person |
fullName |
string | null |
Full name of the person |
id |
string |
ID of the person |
Example
ServiceProviderCategorySummary
| Field | Type | Description |
|---|---|---|
name |
string |
Display name of the category |
status |
string |
Current status of the category (e.g. active, pending) |
supportingDocuments |
string[] |
URLs of supporting documents for this category |
tasks |
string[] |
Tasks the service provider offers under this category |
Example
{
"name": "Example Name",
"status": "pending",
"supportingDocuments": [
"<supportingDocuments>"
],
"tasks": [
"<tasks>"
]
}
PropertyStreet
| Field | Type | Description |
|---|---|---|
name |
string |
Street name |
number |
string | null |
Street number |
Example