website#saveproperty

Message

_website user saves a property

Payload Example(s) (generated)

{
  "topic": "realestate/website#saveproperty",
  "time": "2020-06-18T18:30:49Z",
  "agent": "https://bhhs.example.com/profile/card#me",
  "instrument": "https://smarter-agent.example.com/profile/card#me",
  "source": "https://{agentid}.example.com/profile/card#me",
  "recipient": "https://bhhs.hsfaffiliates.com/profile/card#me",
  "identifier": "9e1067ce-ebab-41f4-9b52-26cf2232097b",
  "data": {
    "type": "SaveAction",
    "identifier": "nwurogb34tnoi3t",
    "agent": {
      "type": "Contact",
      "name": "Bill Bailey",
      "givenName": "Amy",
      "familyName": "Page",
      "telephone": "067-419-1230",
      "email": "user@example.com",
      "dateCreated": "2026-05-28T18:22:14.203Z",
      "dateModified": "2026-05-28T19:15:59.313Z",
      "additionalProperty": {
        "userPath": "xxx",
        "redPreferredContactMethod": "No Preference",
        "redPreferredTime": "",
        "preferredLanguage": "en-US",
        "preferredCurrency": "USD",
        "preferredUnits": "Imperial",
        "marketingViaEmailOptIn": false,
        "marketingViaSmsOptIn": false
      },
      "identifier": {
        "sausID": "216bf670-0777-43db-9d73-c3377d280fe4",
        "redContact_Guid": "201ff92c-e3ad-43b1-8a01-5555168cb0ae",
        "hsfconsumerid": "5763a3dd-87cd-41e9-9308-6ceac2051fc3"
      },
      "sameAs": {
        "cregcontactkey": "14451413",
        "redContact_Guid": "60e426ef-0b9b-4dd1-b26b-808726b559a0"
      },
      "contactPoint": [
        {
          "type": "ContactPoint",
          "kind": "EmailAddress",
          "name": "primary",
          "email": "apage528@protonmail.com"
        }
      ]
    },
    "instrument": {
      "type": "RealEstateWebsite",
      "url": "http://gotham-city-realestate.example.com",
      "name": "Office Website"
    },
    "object": {
      "type": "PropertyListing",
      "redListingKey": "9a0b7555-cd92-473b-b312-3c5b717afe97",
      "originatingSystemName": "GOTHAM-MLS",
      "originatingSystemKey": "12345",
      "listingStatus": "Active",
      "url": "https://{company-website-url}/{path-to-listing}",
      "streetAddress": "1007 Mountain Gate Rd",
      "addressRegion": "New Jersey",
      "addressLocality": "Gotham City",
      "postalCode": "10010",
      "addressCountry": "USA",
      "addressCounty": "Marion",
      "addressSubdivision": "Amber Ridge",
      "listingTypeName": "Residential",
      "propertyType": "Single Family",
      "propertySubType": "Traditional",
      "daysOnMarket": 6,
      "listingPrice": {
        "type": "PriceSpecification",
        "price": 7500000,
        "priceCurrency": "USD"
      },
      "purchaseContractDate": "2026-05-22T00:00:00.000Z",
      "listingAgent": {
        "type": "RealEstateAgent",
        "name": "Jake Stiles",
        "givenName": "Jake",
        "familyName": "Stiles",
        "email": "jake@cbstiles.com"
      },
      "listingOffice": {
        "type": "RealEstateOffice",
        "identifier": "STIL01",
        "name": "Coldwell Banker Stiles",
        "telephone": "3178839461"
      },
      "yearBuilt": 2002,
      "numberOfBedrooms": "4",
      "numberOfBathrooms": "2.5",
      "numberOfGarageSpaces": 2,
      "lotSize": {
        "type": "QuantitativeValue",
        "value": 0.47
      },
      "description": "Welcome to this spacious 4-bedroom, 2.5-bath home tucked away on a quiet cul-de-sac!",
      "additionalProperty": {
        "heating": "Gas Heat",
        "cooling": "Central Air",
        "exteriorFeatures": "Patio",
        "interiorFeatures": "Breakfast Bar, Eat-in Kitchen, Smart Thermostat, Walk-In Closet(s)",
        "stories": 2,
        "lotSizeDimensions": "0.00 x 0.00"
      },
      "dateCreated": "2026-05-28T19:16:00.415Z",
      "dateModified": "2026-05-28T19:16:00.415Z"
    },
    "description": "ExternalUpdate PropertyAdded Updated",
    "leadOwner": {
      "type": "RealEstateWebsite",
      "name": "Office Website",
      "id": "https://IN302.bhhs.hsfaffiliates.com/profile/card#me"
    },
    "originatingSystem": {
      "type": "SoftwareApplication",
      "name": "RDesk",
      "description": "User Created.",
      "url": "http://www.rdeskwebsite.com/"
    },
    "event": {
      "type": "Event",
      "name": "Property Showing  64 Buttercup Lane, South Grafton, MA, USA",
      "description": "",
      "subEvents": [
        {
          "type": "Campaign",
          "name": "A good campaign name",
          "id": "ire:1d2995307f2c48ae9543caf586f43f9b",
          "url": "https://www.bhhspro.com/mentor/steve-baird/cid-356481/oh/889-hartford-drive-44035/pid-338005633",
          "contactGroup": [
            {
              "type": "Collection",
              "name": "Topic 1"
            },
            {
              "type": "Collection",
              "name": "Topic 2"
            }
          ]
        }
      ]
    }
  },
  "@id": "https://creg.bhhs.hsfaffiliates.com/publish/9f388267cfa5409e8f334e321f85a537",
  "id": "https://creg.bhhs.hsfaffiliates.com/publish/9f388267cfa5409e8f334e321f85a537",
  "timestamp": 1779995761589,
  "originalRecipient": "https://bhhs.hsfaffiliates.com/profile/card#me",
  "@to": "https://listtracwebsite.bhhs.hsfaffiliates.com/profile/card#me"
}

Payload

NameTypeDescription
(root)object-
topicstring!const ("realestate/website#saveproperty")
timestring<date-time> !date & time the event was produced
agentstring<uri> !event publisher
instrumentstring<uri> !the application that produced the event
sourcestring<uri>associated RealEstate{Agent,Office,Organization}
recipientstring<uri>event recipient
identifierstringunique identifier
timestampnumberevent timestamp
originalRecipientstringformat (uri)
@idstringformat (uri)
idstringformat (uri)
@tostringformat (uri)
dataobjectAn action performed by a direct agent and indirect participants upon a direct object
data.typestring!const ("SaveAction")
data.identifierstringunique identifier
data.descriptionstringdata description
data.agentobject!the website user RANGE: Contact, Person
data.agent.typestringallowed ("Person", "Contact")
data.agent.namestringfull name
data.agent.givenNamestringfirst name
data.agent.familyNamestringlast name
data.agent.telephonestringtelephone number
data.agent.emailstringformat (email)
data.agent.dateCreatedstringdate and time the contact was created
data.agent.dateModifiedstringdate and time the contact was modified
data.agent.identifierobjectagent identifier
data.agent.identifier.sausIDstringSAUS identifier
data.agent.identifier.redContact_GuidstringRED contact GUID
data.agent.identifier.hsfconsumeridstringHSF consumer identifier
data.agent.sameAsobjectvendor specific identifiers
data.agent.sameAs.cregcontactkeystringCREG contact key
data.agent.sameAs.redContact_GuidstringRED contact GUID
data.agent.contactPointarraycontact points for the user
data.agent.contactPoint.0.typestringconst ("ContactPoint")
data.agent.contactPoint.0.kindstringcontact point kind
data.agent.contactPoint.0.namestringcontact point label
data.agent.contactPoint.0.emailstringformat (email)
data.agent.additionalPropertyobjectadditional property for the website user
data.agent.additionalProperty.userPathstringuser path
data.agent.additionalProperty.redPreferredContactMethodstringpreferred contact method
data.agent.additionalProperty.redPreferredTimestringpreferred contact time
data.agent.additionalProperty.preferredLanguagestringpreferred language
data.agent.additionalProperty.preferredCurrencystringpreferred currency
data.agent.additionalProperty.preferredUnitsstringpreferred units
data.agent.additionalProperty.marketingViaEmailOptInbooleantrue or false
data.agent.additionalProperty.marketingViaSmsOptInbooleantrue or false
data.instrumentobjectwebsite or mobile application RANGE: RealEstateWebsite, MobileApplication, Thing
data.instrument.typestringconst ("RealEstateWebsite")
data.instrument.urlstringformat (uri)
data.instrument.namestringinstrument name
data.objectobject!the property that was saved RANGE: PropertyListing
data.object.typestringconst ("PropertyListing")
data.object.redListingKeystringRED listing key
data.object.originatingSystemNamestringoriginating system name
data.object.originatingSystemKeystringoriginating system key
data.object.listingStatusstringlisting status
data.object.urlstringproperty listing URL
data.object.streetAddressstringstreet address
data.object.addressRegionstringstate or region
data.object.addressLocalitystringcity or locality
data.object.postalCodestringpostal code
data.object.addressCountrystringcountry
data.object.addressCountystringcounty
data.object.addressSubdivisionstringsubdivision or neighborhood
data.object.listingTypeNamestringlisting type name
data.object.propertyTypestringproperty type
data.object.propertySubTypestringproperty subtype
data.object.daysOnMarketnumbernumber of days on market
data.object.listingPriceobjectlisting price details
data.object.listingPrice.typestringconst ("PriceSpecification")
data.object.listingPrice.priceCurrencystringuse ISO4217
data.object.listingPrice.pricenumberlisting price
data.object.purchaseContractDatestringpurchase contract date
data.object.listingAgentobjectlisting agent details
data.object.listingAgent.typestringconst ("RealEstateAgent")
data.object.listingAgent.namestringlisting agent name
data.object.listingAgent.givenNamestringlisting agent first name
data.object.listingAgent.familyNamestringlisting agent last name
data.object.listingAgent.emailstringformat (email)
data.object.listingOfficeobjectlisting office details
data.object.listingOffice.typestringconst ("RealEstateOffice")
data.object.listingOffice.identifierstringlisting office identifier
data.object.listingOffice.namestringlisting office name
data.object.listingOffice.telephonestringlisting office telephone number
data.object.yearBuiltnumberyear built
data.object.numberOfBedroomsstringnumber of bedrooms
data.object.numberOfBathroomsstringnumber of bathrooms
data.object.numberOfGarageSpacesnumbernumber of garage spaces
data.object.lotSizeobjectlot size details
data.object.lotSize.typestringconst ("QuantitativeValue")
data.object.lotSize.valuenumberlot size value
data.object.descriptionstringlisting description
data.object.additionalPropertyobjectadditional property details
data.object.additionalProperty.heatingstringheating details
data.object.additionalProperty.coolingstringcooling details
data.object.additionalProperty.exteriorFeaturesstringexterior features
data.object.additionalProperty.interiorFeaturesstringinterior features
data.object.additionalProperty.storiesnumbernumber of stories
data.object.additionalProperty.lotSizeDimensionsstringlot size dimensions
data.object.dateCreatedstringdate and time the listing was created
data.object.dateModifiedstringdate and time the listing was modified
data.leadOwnerobjectlead owner details
data.leadOwner.typestringlead owner type
data.leadOwner.namestringlead owner name
data.leadOwner.idstringformat (uri)
data.event.typeobjecttype of the event e.g Campaign
data.event.namestringany string name
data.event.idstringformat (uri)
data.event.urlstringurl of the event
data.event.subEventsarrayarray of subEvents
data.originatingSystemobjectthe original system where this item was created. Can be of type Thing or any sub-type

Headers

NameTypeDescription
(root)object-
timestringdate & time the event was produced format (date-time)
agentstringif you are a multi-tenant app, then the agent is the user associated with the event data. any future events related to this message will be sent to the same agent/recipient format (uri)
instrumentstringthe app or service that produced the event on behalf of the agent/user format (uri)
sourcestringa copy of the event was sent to the source(s). format (uri)
originalRecipientstringthe originalRecipient helps you determine the subscription that delivered the event to you. if the originalRecipient is the same as the agent, then the you are subscribed to the agent. if the originalRecipient is different from the agent, then you are subscribed to the event source format (uri)
idstringthe Event ID (aka "Publish ID") is the immutable canonical identifier for the event. it is a URI that is unique to the event and will not change. all subscribers will receive the same id for the same event. format (uri)
@idstringformat (uri)

Tools