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:SSformat. - communication_date (string): The actual date and time the communication took place in
YYYY-MM-DD HH:MM:SSformat. - 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
nullif 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 to1.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 inYYYY-MM-DD HH:MM:SSformat, ornullfor no lower limit.max(string): The maximum date inYYYY-MM-DD HH:MM:SSformat, ornullfor no upper limit.
communication_date(object): Filter by the actual communication date range. Must include:min(string): The minimum date inYYYY-MM-DD HH:MM:SSformat, ornullfor no lower limit.max(string): The maximum date inYYYY-MM-DD HH:MM:SSformat, ornullfor 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.
| Field | Type | Required | Description |
|---|---|---|---|
channel | int | Yes | The channel ID. |
user_id | int | Yes | The agent's user ID. |
contact_id | int | Yes | The contact ID. |
store_id | int | Yes | The office/store ID. |
type | string | Yes | Direction: incoming or outgoing. |
communication_date | string | Yes | Date/time of the communication in YYYY-MM-DD HH:MM:SS format. |
request_id | int | No | ID of a linked buyer request. Must belong to the specified contact_id. |
comments | string | No | Notes or summary of the communication. |
tags | array of int | No | List of tag IDs to associate. |
listings | array of int | No | List 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-DDformat. (E.g.2025-10-18) - datetime: Datetime in
YYYY-MM-DD HH:MM:SSformat. (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_idvalues. - contact: Another contact's id.
- contact_multi: An array of multiple contact ids.

