Skip to content

Communication

The Communication object represents a logged interaction with a contact in the EstatePrime system. This object is returned in JSON format, containing all available values for a communication entry.

Object

The Communication object represents an individual communication record. Below are the fields included in a Communication object:

Example

json
{
  "id": 301,
  "date_created": "2025-03-12 10:05:00",
  "communication_date": "2025-03-12 09:30:00",
  "user_id": 3,
  "store_id": 2,
  "type": "outgoing",
  "channel": 1,
  "contact_id": 45,
  "request_id": null,
  "comments": "Discussed property viewing for next Tuesday.",
  "tags": [4, 9],
  "listings": [120, 135]
}
  • id (int): The system id of the communication.
  • date_created (string): The date and time the record was created in YYYY-MM-DD HH:MM:SS format.
  • communication_date (string): The actual date and time the communication took place in YYYY-MM-DD HH:MM:SS format.
  • user_id (int): The user ID of the agent who handled the communication.
  • store_id (int): The ID of the office/store this communication belongs to.
  • type (string): The direction of the communication. Possible values: incoming, outgoing.
  • channel (int): The ID of the communication channel used (e.g., phone call, email). See Get channels.
  • contact_id (int): The ID of the contact this communication is with.
  • request_id (int, nullable): The ID of the linked buyer request, or null if not linked.
  • comments (string, nullable): Notes or summary of the communication.
  • tags (array of integers): A list of tag IDs associated with the communication.
  • listings (array of integers): A list of listing IDs discussed during this communication.

Get communications

/api/communication (GET)

Fetch a paginated list of communications.

Request

  • Method: GET
  • Headers: Include authentication headers as described in the Authentication section.
  • Body: JSON object with the following optional parameters:
    • page (int): The page number to fetch. Defaults to 1.
    • type (string): Filter by direction. Possible values: incoming, outgoing.
    • channel (int): Filter by channel ID.
    • contact_id (int): Filter by contact ID.
    • user_id (int): Filter by agent user ID.
    • date_created (object): Filter by record creation date range. Must include:
      • min (string): The minimum date in YYYY-MM-DD HH:MM:SS format, or null for no lower limit.
      • max (string): The maximum date in YYYY-MM-DD HH:MM:SS format, or null for no upper limit.
    • communication_date (object): Filter by the actual communication date range. Must include:
      • min (string): The minimum date in YYYY-MM-DD HH:MM:SS format, or null for no lower limit.
      • max (string): The maximum date in YYYY-MM-DD HH:MM:SS format, or null for no upper limit.

Example Body

json
{
  "page": 1,
  "type": "outgoing",
  "contact_id": 45,
  "communication_date": {
    "min": "2025-01-01 00:00:00",
    "max": null
  }
}

Response

  • 200 OK: Returns a JSON array of communication objects.

Example Response

json
{
  "status": 200,
  "page": 1,
  "total_pages": 5,
  "results_per_page": 50,
  "total_results": 218,
  "data": [
    {
      "id": 301,
      "date_created": "2025-03-12 10:05:00",
      "communication_date": "2025-03-12 09:30:00",
      "user_id": 3,
      "store_id": 2,
      "type": "outgoing",
      "channel": 1,
      "contact_id": 45,
      "request_id": null,
      "comments": "Discussed property viewing for next Tuesday.",
      "tags": [4, 9],
      "listings": [120, 135]
    }
    //Rest of the data...
  ]
}

Get single communication

/api/communication/{id} (GET)

Get a single communication record by its id.

Request

  • Method: GET
  • Headers: Include authentication headers.
  • Path Params: The communication id to be fetched.

Example Response

json
{
  "status": 200,
  "data": {
    "id": 301,
    "date_created": "2025-03-12 10:05:00",
    "communication_date": "2025-03-12 09:30:00",
    "user_id": 3,
    "store_id": 2,
    "type": "outgoing",
    "channel": 1,
    "contact_id": 45,
    "request_id": null,
    "comments": "Discussed property viewing for next Tuesday.",
    "tags": [4, 9],
    "listings": [120, 135]
  }
}

Response

  • 200 OK: Returns the JSON object of the communication.

Create communication

/api/communication (POST)

Create a new communication record.

Request

  • Method: POST
  • Headers: Include authentication headers.
  • Body: JSON object with the communication details to be inserted.
FieldTypeRequiredDescription
channelintYesThe channel ID.
user_idintYesThe agent's user ID.
contact_idintYesThe contact ID.
store_idintYesThe office/store ID.
typestringYesDirection: incoming or outgoing.
communication_datestringYesDate/time of the communication in YYYY-MM-DD HH:MM:SS format.
request_idintNoID of a linked buyer request. Must belong to the specified contact_id.
commentsstringNoNotes or summary of the communication.
tagsarray of intNoList of tag IDs to associate.
listingsarray of intNoList of listing IDs discussed.

Example Body

json
{
  "channel": 1,
  "user_id": 3,
  "contact_id": 45,
  "store_id": 2,
  "type": "outgoing",
  "communication_date": "2025-03-12 09:30:00",
  "request_id": null,
  "comments": "Discussed property viewing for next Tuesday.",
  "tags": [4, 9],
  "listings": [120, 135]
}

Response

  • 200 OK: Returns the created communication ID.

Example Response

json
{
  "status": 200,
  "created_id": 301
}

Delete communication

/api/communication/{id} (DELETE)

Permanently delete a communication record.

Request

  • Method: DELETE
  • Headers: Include authentication headers.
  • Path Params: The communication id to be deleted.

Response

  • 200 OK: Returns the deleted communication ID.

Example Response

json
{
  "status": 200,
  "deleted_id": 301
}

Get communication channels

/api/communication/channels (GET)

Fetch the available communication channels.

Request

  • Method: GET
  • Headers: Include authentication headers.

Response

  • 200 OK: Returns a JSON array of available channels.

Example Response

json
{
  "status": 200,
  "data": [
    {
      "id": 1,
      "name": "Phone Call",
      "type": "phone"
    },
    {
      "id": 2,
      "name": "Email",
      "type": "email"
    },
    {
      "id": 3,
      "name": "SMS",
      "type": "sms"
    }
  ]
}
  • id (int): The system id of the channel.
  • name (string): The display name of the channel.
  • type (string, nullable): The channel category. Possible values: phone, email, sms.

Get communication tags

/api/communication/tags (GET)

Fetch the available communication tags.

Request

  • Method: GET
  • Headers: Include authentication headers.

Response

  • 200 OK: Returns a JSON array of available communication tags.

Example Response

json
{
  "status": 200,
  "data": [
    {
      "id": 4,
      "name": "Follow Up"
    },
    {
      "id": 9,
      "name": "Hot Lead"
    }
  ]
}

Get communication custom fields

/api/communication/custom-fields (GET)

Fetch the available custom fields for communications.

Request

  • Method: GET
  • Headers: Include authentication headers.

Response

  • 200 OK: Returns a JSON array of available custom fields for communications.

Example Response

json
{
  "status": 200,
  "data": [
    {
      "id": 1,
      "name": "Call Outcome",
      "type": "select",
      "options": [
        {
          "id": 1,
          "name": "Interested"
        },
        {
          "id": 2,
          "name": "Not Interested"
        },
        {
          "id": 3,
          "name": "No Answer"
        }
      ]
    },
    {
      "id": 2,
      "name": "Follow-up Date",
      "type": "date"
    }
  ]
}

Available custom field types

  • text: Text up to 255 characters.
  • textarea: Text up to 2500 characters.
  • wysiwyg: Text with HTML format.
  • number: Integer or decimal.
  • formatted_number: Integer or decimal that is formatted. E.g. 1,000,000.25.
  • select: Single select with options.
  • select_multi: Multiple select with options.
  • checkbox: Boolean.
  • file: Single file. (As a URL)
  • file_multi: Array of multiple files. (As URLs)
  • image: Single image. (As a URL)
  • image_multi: Array of multiple images. (As URLs)
  • address: Address. (E.g. Bellariastraße 6, 1010 Wien, Austria)
  • url: URL.
  • date: Date in YYYY-MM-DD format. (E.g. 2025-10-18)
  • datetime: Datetime in YYYY-MM-DD HH:MM:SS format. (E.g. 2025-10-18 18:24:10)
  • currency: Integer or decimal formatted as a currency. E.g. 1,000,000.25€.
  • user: Application user_id.
  • user_multi: An array of application user_id values.
  • contact: Another contact's id.
  • contact_multi: An array of multiple contact ids.

Last updated on May 9th, 2026.