| weight | 23 |
|---|---|
| category | messaging |
| subcategory | agent-chat-api |
| title | RTM pushes |
| tagline | The reference of LiveChat RTM API pushes. |
| desc | This document contains a reference of LiveChat RTM API pushes. |
| apiVersion | 3.6 |
| robots | noindex |
This document contains a reference of pushes available in the LiveChat Agent Chat API. Similarly to webhooks, pushes notify you when specific events occur. They're usually generated as result of RTM API actions, but it's also possible to receive them in result of Web API actions.
Here's what you need to know about pushes:
- They are generated primarily by RTM API actions, but also by Web API actions.
- They notify you when specific events occur.
- Can be delivered only in the websocket transport.
- You don't need to register pushes to receive them.
- Their equivalents in Web API are webhooks. Pushes and webhooks have similar payloads.
- There are no retries for pushes. To determine if a user has seen an event, compare the event's
created_atparameter with the user'sevents_seen_up_tofield.
<CodeResponse title={'general push format'}>
{
"version": "<api_version>",
"request_id": "<request_id>", // optional, applies only to the requester
"action": "<action>",
"type": "push",
"payload": {
// optional payload
}
}
Indicates about a chat coming with a new thread. The push payload contains the whole chat data structure. If the chat was started with some initial events, the thread object contains them.
<CodeResponse title={'Sample push payload'}>
{
"requester_id": "smith@example.com",
"chat": {
"id": "PJ0MRSHTDG",
"users": [
// array of "User" objects
],
"properties": {
"0805e283233042b37f460ed8fbf22160": {
"string_property": "string value"
}
// ...
},
"thread": {
// "Thread" object
},
},
"transferred_from": {
"group_ids": [ 1 ],
"agent_ids": [ "agent@example.com" ]
}
}Indicates that a chat was deactivated by closing the currently open thread.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"user_id": "b7eff798-f8df-4364-8059-649c35c9ed0c" // optional
}| Field | Notes |
|---|---|
user_id |
Missing if a thread was closed by the router. |
Indicates that a chat was deleted.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG"
}Indicates that a thread was deleted.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8"
}Indicates that several threads from a specific date range or with the same tag were deleted.
<CodeResponse title={'Sample push payload'}>
{
"date_from": "2017-10-12T15:19:21.010200Z",
"date_to": "2019-10-12T15:19:21.010200Z",
"tag": "bug_report"
}Indicates about the update of a user's access to a particular chat. It contains the updated access data structure.
<CodeResponse title={'Sample push payload'}>
{
"id": "PJ0MRSHTDG",
"access": {
"group_ids": [0, 1]
}
}| Field | Notes |
|---|---|
id |
Chat ID |
access |
The updated chat access data structure |
Indicates that a chat was transferred to a different group or to an agent.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"requester_id": "jones@example.com",
"reason": "manual",
"transferred_to": {
"group_ids": [ 19 ],
"agent_ids": ["smith@example.com"],
},
"queue": {
"position": 42,
"wait_time": 1337,
"queued_at": "2019-12-09T12:01:18.909000Z"
}
}| Field | Notes |
|---|---|
thread_id |
Present if the chat is active. |
transferred_to |
IDs of the groups and agents the chat is assigned to after the transfer. |
reason * |
Indicates why the chat was transferred. |
queue |
Present if the chat is queued after the transfer. |
*)
Possible reasons: manual, inactive, assigned, unassigned, other.
Indicates that a user (customer or agent) was added to a chat.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"user": {
// "User > Customer" or "User > Agent" object
},
"reason": "manual",
"requester_id": "smith@example.com"
}| Field | Notes |
|---|---|
thread_id |
Present when a user was added to an active chat. |
reason |
Why the user was added. |
requester_id |
Present if the user was added by an agent. |
Indicates that a user (customer or agent) was removed from a chat.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"user_id": "agent@example.com",
"reason": "manual",
"requester_id": "smith@example.com"
}| Field | Notes |
|---|---|
thread_id |
Present when a user was removed from an active chat. |
reason |
Why the user was removed. |
requester_id |
Present if the user was removed by an agent. |
Indicates about an incoming event sent to a chat.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"event": {
"id": "Q20163UAHO_2",
"created_at": "2019-12-05T07:27:08.820000Z",
"visibility": "all",
"type": "message",
"properties": {
"0805e283233042b37f460ed8fbf22160": {
"string_property": "string value"
}
},
"text": "Hello",
"author_id": "b7eff798-f8df-4364-8059-649c35c9ed0c"
}
}Indicates that an event was deleted.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "123-123-123-123",
"thread_id": "E2WDHA8A",
"event_id": "E2WDHA8A_4"
}Indicates that an event was updated.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "123-123-123-123",
"thread_id": "E2WDHA8A",
"event": {
// "Event" object
}
}Indicates about an incoming rich message postback. The push payload contains the info on the postback itself, as well as the chat it was sent in.
<CodeResponse title={'Sample push payload'}>
{
"user_id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"event_id": "a0c22fdd-fb71-40b5-bfc6-a8a0bc3117f7",
"postback": {
"id": "action_yes",
"toggled": true
}
}Indicates about those chat properties that were updated.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"properties": {
"rating": {
"score": 1,
"comment": "Well done!"
}
// ...
}
}| Field | Notes |
|---|---|
properties |
This is not a full properties object. This push shows only the properties that have been recently updated. |
Indicates about those chat properties that were deleted.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"properties": {
"rating": ["score", "comment"]
},
// ...
}| Field | Notes |
|---|---|
properties |
This is not a full properties object. This push shows only the properties that have been recently updated. |
Indicates about those thread properties that were updated.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"properties": {
"rating": {
"score": 1,
"comment": "Well done!"
}
// ...
}
}| Field | Notes |
|---|---|
properties |
This is not a full properties object. This push shows only the properties that have been recently updated. |
Indicates about those thread properties that were deleted.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"properties": {
"rating": ["score", "comment"]
},
// ...
}
}| Field | Notes |
|---|---|
properties |
This is not a full properties object. This push shows only the properties that have been recently updated. |
Indicates about those event properties that were updated.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"event_id": "2_E2WDHA8A",
"properties": {
"rating": {
"score": 1,
"comment": "Well done!"
}
}
}| Field | Notes |
|---|---|
properties |
This is not a full properties object. This push shows only the properties that have been recently updated. |
Indicates about those event properties that were deleted.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"event_id": "2_E2WDHA8A",
"properties": {
"rating": ["score", "comment"]
},
// ...
}| Field | Notes |
|---|---|
properties |
This is not a full properties object. This push shows only the properties that have been recently updated. |
Indicates that a chat thread was tagged.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"tag": "bug_report"
}Indicates that a chat thread was untagged.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"tag": "bug_report"
}Indicates about customers the agent should be aware of. It's sent after login.
<CodeResponse title={'Sample push payload'}>
{
"customer_monitoring_level": "invited",
"customers": [{
// "Customer" user object
}]
}Indicates that a new or returning customer is available to the agent. It's sent when:
- a new customer registers.
- a customer, who previously left the tracked website, returns.
- an already followed customer, who was temporarily unavailable to the agent, becomes available again (for example, the customer was transferred between groups).
<CodeResponse title={'Sample push payload'}>
{
// "Customer" user object
}Indicates that customer's data changed. The push payload contains the updated fields.
<CodeResponse title={'Sample push payload'}>
{
"id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"name": "Thomas Anderson",
"email": "t.anderson@example.com",
"avatar": "https://example.com/avatars/1.jpg",
"phone_number": "+14155552671",
"type": "customer",
"session_fields": [{
"custom_key": "custom_value"
}, {
"another_custom_key": "another_custom_value"
}],
"omnichannel": {
"fb_messenger": [
{
"id": "4f0ad8d8-1b7e-4519-8400-fa955eb11d12",
"name": "Anderson"
}
],
"twilio": [
{
"phone_number": "+14155552671"
}
]
}
}Indicates that a customer moved to another page of the website.
<CodeResponse title={'Sample push payload'}>
{
"customer_id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"visit_id": 42,
"opened_at": "2017-10-12T15:19:21.010200Z",
"url": "https://www.livechat.com/",
"title": "LiveChat - Homepage"
}Indicates that the customer's statistics were updated.
<CodeResponse title={'Sample push payload'}>
{
"customer_id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"statistics": {
"chats_count": 9,
"threads_count": 13,
"visits_count": 14,
"page_views_count": 15,
"greetings_accepted_count": 0,
"greetings_converted_count": 0,
"tickets_count": 6,
"tickets_inbox_count": 6,
"tickets_archive_count": 0,
"tickets_spam_count": 0,
"tickets_trash_count": 0,
"orders_count": 15,
"last_visit_started_at": "2025-10-17T13:37:15Z"
}
}Indicates that a customer was banned for a specified number of days.
<CodeResponse title={'Sample push payload'}>
{
"customer_id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"ban": {
"days": 5
}
}Indicates that a customer is no longer available to the agent.
<CodeResponse title={'Sample push payload'}>
{
"id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"transferred_to": {
"group_ids": [1]
},
"followed": true
}Indicates that a customer left the tracked website.
<CodeResponse title={'Sample push payload'}>
{
"id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"left_at": "2017-10-12T15:19:21.010200Z"
}Indicates that number of customers matching subscription changed. This push is sent periodically once limits are reached.
<CodeResponse title={'Sample push payload'}>
{
"b7eff798f8df43648059649c35c9ed0c": 123,
"a0c22fddfb7140b5bfc6a8a0bc3117f7": 321
}Indicates that a ticket was created for a tracked customer.
<CodeResponse title={'Sample push payload'}>
{
"customer_id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"ticket_id": "0c04cb99-817a-4935-9d62-137c89a74388",
"silo": "inbox",
"created_at": "2019-12-05T07:27:08.820000Z"
}Indicates that a ticket was deleted for a tracked customer.
<CodeResponse title={'Sample push payload'}>
{
"customer_id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"ticket_id": "0c04cb99-817a-4935-9d62-137c89a74388"
}Indicates that an agent's or bot agent's status was changed.
<CodeResponse title={'Sample push payload'}>
{
"agent_id": "smith@example.com",
"status": "accepting_chats"
}Indicates that an agent was disconnected. The payload contains the reason of the agent's disconnection.
<CodeResponse title={'Sample push payload'}>
{
"reason": "misdirected_request",
"data": {
// optional
"region": "fra"
}
}Based on the received reason we suggest a different reaction.
| Type | Notes | Suggested behavior |
|---|---|---|
agent_disconnected_by_server |
Agent has been disconnected by the server. | Don't reconnect. |
agent_logged_out_remotely |
Agent has been logged out remotely. | Don't reconnect. |
access_token_revoked |
Agent access token has been revoked. | Don't reconnect. |
connection_evicted |
Sent to the connection that's replaced by a newly established one, and the new connection exceeded the limit of possible connections. | Don't reconnect. |
access_token_expired |
Access token lifetime has elapsed. | Reconnect and generate a new access token. |
connection_timeout |
Has not received ping from the client for some time, or it's been too long since the connection was authorized. |
Reconnect. |
internal_error |
Internal error. | Reconnect. |
license_expired |
License has expired. | Don't reconnect. |
license_not_found |
License with the specified ID doesn't exist. | Don't reconnect. |
misdirected_connection * |
Agent connected to the server in the wrong region. | Don't reconnect. |
unsupported_version |
Connecting to an unsupported version of the agent API. | Don't reconnect. |
too_many_connections |
Agent reached the max. number of connections. | Don't reconnect. |
too_many_unauthorized_connections |
Agent reached the max. number of unauthorized connections. | Reconnect. |
role_permissions_changed |
Role permissions have been changed. | Reconnect. |
*)
Also, misdirected_connection returns the correct region value in the optional data object.
With this piece of information, the client is able to figure out where it should be connected.
Indicates that a new agent account was created. The payload contains the full state of the agent data structure, including empty fields.
<CodeResponse title={'Sample push payload'}>
{
"id": "smith@example.com",
"name": "Agent Smith",
"role": "viceowner",
"awaiting_approval": false,
"groups": [
{
"id": 5,
"priority": "first"
},
{
"id": 2,
"priority": "last"
},
{
"id": 1,
"priority": "normal"
}
],
"notifications": [
"new_visitor",
"new_goal",
"visitor_is_typing"
],
"email_subscriptions": [
"weekly_summary"
],
"work_scheduler": {
"timezone": "Europe/Warsaw",
"schedule": [
{
"day": "monday",
"enabled": true,
"start": "08:30",
"end": "12:30"
},
{
"day": "monday",
"enabled": true,
"start": "13:30",
"end": "16:30"
}
]
}
}Indicates that an agent's account was approved and is now active.
<CodeResponse title={'Sample push payload'}>
{
"id": "smith@example.com"
}Indicates that an agent's configuration changed. Contains only the updated properties.
<CodeResponse title={'Sample push payload'}>
{
"id": "smith@example.com",
"work_scheduler": {
"timezone": "Europe/Warsaw",
"schedule": [
{
"day": "monday",
"enabled": true,
"start": "08:30",
"end": "12:30"
},
{
"day": "monday",
"enabled": true,
"start": "13:30",
"end": "16:30"
},
{
"day": "friday",
"enabled": true,
"start": "07:30",
"end": "21:30"
}
]
}
}Indicates that an agent's account was suspended.
<CodeResponse title={'Sample push payload'}>
{
"id": "smith@example.com"
}Indicates that an agent's account was unsuspended.
<CodeResponse title={'Sample push payload'}>
{
"id": "smith@example.com"
}Indicates that an agent's account was deleted.
<CodeResponse title={'Sample push payload'}>
{
"id": "smith@example.com"
}Indicates that auto access rules were modified. The payload contains an array of all changes done as result of adding, updating, or deleting auto access rule. The resulting payload can contain multiple objects depending on the action:
- for the added auto access rule, the payload contains the complete state of the auto access rule data structure, including empty fields.
- for the updated auto access rule, the payload contains only the updated properties.
- for the deleted auto access rule, the payload confirms the deletion.
<CodeResponse title={'Sample push payload after adding auto access rule'}>
[
{
"id": "dc70916fdc9d02ea0bcdee5b2fa64717",
"next_id": "b1cd0bfea640f671694110c6ae34356f",
"status": "updated"
},
{
"id": "b1cd0bfea640f671694110c6ae34356f",
"description": "",
"access": {
"groups": [
0
]
},
"conditions": {
"url": {
"values": [
{
"value": "https://www.auto-access.test",
"exact_match": false
}
]
},
"domain": {
"values": [
{
"value": "https://www.auto-access.test",
"exact_match": true
}
]
},
"geolocation": {
"values": [
{
"country": "United States",
"country_code": "US",
"region": "California",
"city": "Mountain View"
}
]
}
},
"next_id": "",
"status": "added"
}
]<CodeResponse title={'Sample push payload after updating auto access rule'}>
[
{
"id": "b1cd0bfea640f671694110c6ae34356f",
"description": "Auto access updated",
"next_id": "dc70916fdc9d02ea0bcdee5b2fa64717",
"status": "updated"
},
{
"id": "dc70916fdc9d02ea0bcdee5b2fa64717",
"next_id": "",
"status": "updated"
}
]
<CodeResponse title={'Sample push payload after deleting auto access rule'}>
[
{
"id": "b1cd0bfea640f671694110c6ae34356f",
"next_id": "",
"status": "updated"
},
{
"id": "dc70916fdc9d02ea0bcdee5b2fa64717",
"status": "deleted"
}
]Indicates that a new bot was added. The payload contains the full state of the bot data structure, including empty fields.
<CodeResponse title={'Sample push payload'}>
{
"id": "5c9871d5372c824cbf22d860a707a578",
"name": "Bot Name",
"default_group_priority": "first",
"groups": [
{
"id": 0,
"priority": "normal"
}
],
"owner_client_id": "asXdesldiAJSq9padj"
}Indicates that a bot's configuration changed. Contains only the updated properties.
<CodeResponse title={'Sample push payload'}>
{
"id": "5c9871d5372c824cbf22d860a707a578",
"name": "New Bot Name",
}Indicates that a bot was deleted.
<CodeResponse title={'Sample push payload'}>
{
"id": "5c9871d5372c824cbf22d860a707a578"
}Indicates that a group was created within a license. The payload contains the full state of the group data structure, including empty fields.
<CodeResponse title={'Sample push payload'}>
{
"id": 42,
"name": "Sales",
"language_code": "en",
"agent_priorities": {
"agent@example.com": "normal",
"other_agent@example.com": "first"
}
}Indicates that a group was deleted within a license.
<CodeResponse title={'Sample push payload'}>
{
"id": 42
}Indicates that a group was updated within a license. The push payload only includes the updated fields.
<CodeResponse title={'Sample push payload'}>
{
"id": 42,
"name": "Sales"
}Indicates that a tag was created within a license. The payload contains the full state of the tag data structure, including empty fields.
<CodeResponse title={'Sample push payload'}>
{
"name": "docs_feedback",
"group_ids": [ 0, 42 ],
"created_at": "2019-12-09T12:01:18.909000Z",
"author_id": "smith@example.com"
}Indicates that a tag was deleted within a license.
<CodeResponse title={'Sample push payload'}>
{
"name": "docs_feedback"
}Indicates that a tag was updated within a license.
<CodeResponse title={'Sample push payload'}>
{
"name": "docs_feedback",
"group_ids": [ 0, 42 ]
}Indicates that the statuses of groups that the agent has access to were updated. The push payload only includes the updated fields.
Possible statuses: accepting_chats, not_accepting_chats, offline.
<CodeResponse title={'Sample push payload'}>
{
"groups": [
{
"id": 0,
"status": "offline"
}
]
}Indicates about those license properties that were updated.
<CodeResponse title={'Sample push payload'}>
{
"properties": {
"0805e283233042b37f460ed8fbf22160": {
"string_property": "string value"
}
}
}Indicates about those group properties that were updated.
<CodeResponse title={'Sample push payload'}>
{
"group_id": 1,
"properties": {
"0805e283233042b37f460ed8fbf22160": {
"string_property": "string value"
}
}
}Indicates that one of the chat users (an agent or a bot agent) is currently preparing a response. The message hasn't been sent yet.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"author_id": "smith@example.com",
"sent_at": "2025-07-16T12:34:56.909000Z",
"title": "Thinking...",
"description": "Fetching data from the Billing API...",
"custom_id": "31-0C-1C-07-DB-16"
}Indicates that one of the chat users (an agent or a bot agent) is currently typing a message. The message hasn't been sent yet. The push payload contains the typing indicator object.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"typing_indicator": {
"author_id": "smith@example.com",
"visibility": "all",
"timestamp": 1574245378,
"is_typing": true
}
}Indicates that a customer is currently typing a message. The push payload contains the sneak peek object.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"sneak_peek": {
"author_id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"text": "Hello",
"timestamp": 1574245378
}
}Indicates that a user has seen events up to a specific time.
<CodeResponse title={'Sample push payload'}>
{
"user_id": "b7eff798-f8df-4364-8059-649c35c9ed0c",
"chat_id": "PJ0MRSHTDG",
"seen_up_to": "2017-10-12T15:19:21.010200Z"
}Indicates about messages sent via the multicast method or by the system.
<CodeResponse title={'Sample push payload'}>
{
"author_id": "smith@example.com",
"content": {
"example": {
"nested": "json"
}
},
"type": "type1"
}| Field | Required | Notes |
|---|---|---|
author_id |
No | Present only if the push was generated by the Multicast method and not sent from the server. |
content |
Yes | |
type |
No |
Indicates that a chat has been unfollowed. Useful in multiple connection scenarios, where one app/integration needs to know that another one unfollowed the chat.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG"
}New positions and wait times for queued chats.
<CodeResponse title={'Sample push payload'}>
[{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"queue": {
"position": 42,
"wait_time": 1337
}
}, {
"chat_id": "PJ0VRSATDS",
"thread_id": "K60QPKSON9",
"queue": {
"position": 43,
"wait_time": 1373
}
}]Indicates that a customer was unfollowed. Useful in multiple connection scenarios, where one app/integration needs to know that another one unfollowed the customer.
<CodeResponse title={'Sample push payload'}>
{
"id": "b7eff798-f8df-4364-8059-649c35c9ed0c"
}Indicates that a thread summary was generated and set.
<CodeResponse title={'Sample push payload'}>
{
"chat_id": "PJ0MRSHTDG",
"thread_id": "K600PKZON8",
"summary": {
"status": "ok",
"text": "• Customer asks about currently available discount codes. \n• Agent suggests subscribing to the newsletter. \n• Customer thanks the agent and says goodbye.",
"updated_at": "2025-12-09T12:01:18.909000Z"
}
}