Module livechat.agent.web.api.v36
Agent Web client implementation for v3.6.
Expand source code
''' Agent Web client implementation for v3.6. '''
# pylint: disable=W0613,R0913,W0622,C0103,W0221
from __future__ import annotations
import typing
import httpx
from livechat.utils.helpers import prepare_payload
from livechat.utils.http_client import HttpClient
from livechat.utils.structures import AccessToken
# pylint: disable=R0903
class AgentWebV36(HttpClient):
''' Agent Web API Class containing methods in version 3.6. '''
def __init__(self,
access_token: typing.Union[AccessToken, str],
base_url: str,
http2: bool,
proxies=None,
verify: bool = True,
disable_logging: bool = False,
timeout: float = httpx.Timeout(15)):
super().__init__(access_token, base_url, http2, proxies, verify,
disable_logging, timeout)
self.api_url = f'https://{base_url}/v3.6/agent/action'
# Chats
def list_chats(self,
filters: dict = None,
sort_order: str = None,
limit: int = None,
page_id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns summaries of the chats an Agent has access to.
Args:
filters (dict): Possible request filters. Mustn't change between
requests for subsequent pages. Otherwise,
the behavior is undefined.
sort_order (str): Possible values: asc, desc (default).
Chat summaries are sorted by the creation
date of its last thread.
limit (int): Limit of results per page. Default: 10, maximum: 100.
page_id (str): ID of the page with paginated results.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided
for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/list_chats',
json=payload,
headers=headers)
def list_threads(self,
chat_id: str = None,
sort_order: str = None,
limit: str = None,
page_id: str = None,
min_events_count: int = None,
filters: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns threads that the current Agent has access to in a given chat.
Args:
chat_id (str): ID of the chat for which threads are to be listed.
sort_order (str): Possible values: asc, desc (default).
limit (str): Limit of results per page. Default: 3, maximum: 100.
page_id (str): ID of the page with paginated results.
min_events_count (int): Range: 1-100;
Specifies the minimum number of events
to be returned in the response.
filters (dict): Possible request filters.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/list_threads',
json=payload,
headers=headers)
def get_chat(self,
chat_id: str = None,
thread_id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns a thread that the current Agent has access to in a given chat
Args:
chat_id (str): ID of the chat for which thread is to be returned.
thread_id (str): ID of the thread to show. Default: the latest thread (if exists)
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/get_chat',
json=payload,
headers=headers)
def list_archives(self,
filters: dict = None,
page_id: str = None,
sort_order: str = None,
limit: str = None,
highlights: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns a list of the chats an Agent has access to.
Together with a chat, the events of one thread from this chat are returned.
Args:
filters (dict): Possible request filters.
page_id (str): ID of the page with paginated results.
sort_order (str): Possible values: asc, desc (default).
Chat summaries are sorted by the creation date
of its last thread.
limit (str): Limit of results per page. Default: 10, maximum: 100.
highlights (dict): Use it to highlight the match of filters.query.
To enable highlights with default parameters,
pass an empty object.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/list_archives',
json=payload,
headers=headers)
def start_chat(self,
chat: dict = None,
active: bool = None,
continuous: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Starts a chat.
Args:
chat (dict): Dict containing chat properties, access and thread.
active (bool): When set to False, creates an inactive thread; default: True.
continuous (bool): Starts chat as continuous (online group is not required); default: False.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/start_chat',
json=payload,
headers=headers)
def resume_chat(self,
chat: dict = None,
active: bool = None,
continuous: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Restarts an archived chat.
Args:
chat (dict): Dict containing chat properties, access and thread.
active (bool): When set to False, creates an inactive thread; default: True.
continuous (bool): Starts chat as continuous (online group is not required); default: False.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/resume_chat',
json=payload,
headers=headers)
def deactivate_chat(self,
id: str = None,
ignore_requester_presence: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Deactivates a chat by closing the currently open thread.
Sending messages to this thread will no longer be possible.
Args:
id (str): Chat ID to deactivate.
ignore_requester_presence (bool): If `True`, allows requester to deactivate chat
without being present in the chat's users list.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/deactivate_chat',
json=payload,
headers=headers)
def follow_chat(self,
id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Marks a chat as followed. All changes to the chat will be sent to the requester
until the chat is reactivated or unfollowed. Chat members don't need to follow
their chats. They receive all chat pushes regardless of their follower status.
Args:
id (str): ID of chat to be followed.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/follow_chat',
json=payload,
headers=headers)
def unfollow_chat(self,
id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Removes the requester from the chat followers. After that, only key changes
to the chat (like transfer_chat or close_active_thread) will be sent
to the requester. Chat members cannot unfollow the chat.
Args:
id (str): ID of chat to be unfollowed.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/unfollow_chat',
json=payload,
headers=headers)
# Chat access
def transfer_chat(self,
id: str = None,
target: dict = None,
ignore_agents_availability: bool = None,
ignore_requester_presence: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Transfers a chat to an agent or a group.
Args:
id (str): chat ID
target (dict): If missing, chat will be transferred within the current group.
ignore_agents_availability (bool): If `True`, always transfers chats. Otherwise, fails
when unable to assign any agent from the requested groups.
ignore_requester_presence (bool): If `True`, allows requester to transfer chat
without being present in the chat's users list.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/transfer_chat',
json=payload,
headers=headers)
# Chat users
def add_user_to_chat(self,
chat_id: str = None,
user_id: str = None,
user_type: str = None,
visibility: str = None,
ignore_requester_presence: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Adds a user to the chat. You can't add more than one customer user
type to the chat.
Args:
chat_id (str): chat ID.
user_id (str): user ID.
user_type (str): Possible values: agent or customer.
visibility (str): Determines the visibility of events sent by
the agent. Possible values: `all` or `agents`.
ignore_requester_presence (bool): If `True`, allows requester to add user to chat
without being present in the chat's users list.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/add_user_to_chat',
json=payload,
headers=headers)
def remove_user_from_chat(self,
chat_id: str = None,
user_id: str = None,
user_type: str = None,
ignore_requester_presence: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Removes a user from chat.
Args:
chat_id (str): chat ID.
user_id (str): user ID.
user_type (str): Possible values: agent or customer.
ignore_requester_presence (bool): If `True`, allows requester to remove user from chat
without being present in the chat's users list.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/remove_user_from_chat',
json=payload,
headers=headers)
# Events
def send_event(self,
chat_id: str = None,
event: dict = None,
attach_to_last_thread: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Sends an Event object. Use this method to send a message by specifying the Message event type in the request.
The method updates the requester's `events_seen_up_to` as if they've seen all chat events.
Args:
chat_id (int): ID of the chat that you to send a message to.
event (dict): Event object.
attach_to_last_thread (bool): The flag is ignored for active chats.
For inactive chats:
True – the event will be added to the last thread;
False – the request will fail. Default: False.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/send_event',
json=payload,
headers=headers)
def upload_file(self,
file: typing.BinaryIO = None,
headers: dict = None) -> httpx.Response:
''' Uploads a file to the server as a temporary file. It returns a URL that expires
after 24 hours unless the URL is used in `send_event`.
Args:
file (typing.BinaryIO): File-like object with file to upload (Maximum size: 10MB).
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
return self.session.post(f'{self.api_url}/upload_file',
files=file,
headers=headers)
def send_rich_message_postback(self,
chat_id: str = None,
thread_id: str = None,
event_id: str = None,
postback: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Sends a rich message postback.
Args:
chat_id (str): ID of the chat to send rich message postback to.
thread_id (str): ID of the thread to send rich message postback to.
event_id (str): ID of the event related to the rich message postback.
postback (dict): Object containing postback data (id, toggled).
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/send_rich_message_postback',
json=payload,
headers=headers)
# Properties
def update_chat_properties(self,
id: str = None,
properties: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Updates chat properties.
Args:
id (str): ID of the chat you to set a property for.
properties (dict): Chat properties to set.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/update_chat_properties',
json=payload,
headers=headers)
def delete_chat_properties(self,
id: str = None,
properties: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Deletes chat properties.
Args:
id (str): ID of the chat you want to delete properties of.
properties (dict): Chat properties to delete.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/delete_chat_properties',
json=payload,
headers=headers)
def update_thread_properties(self,
chat_id: str = None,
thread_id: str = None,
properties: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Updates chat thread properties.
Args:
chat_id (str): ID of the chat you to set properties for.
thread_id (str): ID of the thread you want to set properties for.
properties (dict): Thread properties to set.
You should stick to the general properties format and include namespace, property name and value.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/update_thread_properties',
json=payload,
headers=headers)
def delete_thread_properties(self,
chat_id: str = None,
thread_id: str = None,
properties: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Deletes chat thread properties.
Args:
chat_id (str): ID of the chat you want to delete the properties of.
thread_id (str): ID of the thread you want to delete the properties of.
properties (dict): Thread properties to delete.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/delete_thread_properties',
json=payload,
headers=headers)
def update_event_properties(self,
chat_id: str = None,
thread_id: str = None,
event_id: str = None,
properties: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Updates event properties.
Args:
chat_id (str): ID of the chat you to set properties for.
thread_id (str): ID of the thread you want to set properties for.
event_id (str): ID of the event you want to set properties for.
properties (dict): Thread properties to set.
You should stick to the general properties format and include namespace, property name and value.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/update_event_properties',
json=payload,
headers=headers)
def delete_event_properties(self,
chat_id: str = None,
thread_id: str = None,
event_id: str = None,
properties: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Deletes event properties.
Args:
chat_id (str): ID of the chat you to delete the properties for.
thread_id (str): ID of the thread you want to delete the properties for.
event_id (str): ID of the event you want to delete the properties for.
properties (dict): Event properties to delete.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/delete_event_properties',
json=payload,
headers=headers)
# Thread tags
def tag_thread(self,
chat_id: str = None,
thread_id: str = None,
tag: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Tags thread.
Args:
chat_id (str): ID of the chat you want to add a tag to.
thread_id (str): ID of the thread you want to add a tag to.
tag (str): Tag name.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/tag_thread',
json=payload,
headers=headers)
def untag_thread(self,
chat_id: str = None,
thread_id: str = None,
tag: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Untags thread.
Args:
chat_id (str): ID of the chat you want to remove a tag from.
thread_id (str): ID of the thread you want to remove a tag from.
tag (str): Tag name.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/untag_thread',
json=payload,
headers=headers)
# Customers
def get_customer(self,
id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns the info about the Customer with a given id.
Args:
id (str): customer id
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/get_customer',
json=payload,
headers=headers)
def create_customer(self,
name: str = None,
email: str = None,
avatar: str = None,
session_fields: list = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Creates a new Customer user type.
Args:
name (str): Customer's name.
email (str): Customer's email.
avatar (str): URL of the Customer's avatar
session_fields (list): An array of custom object-enclosed key:value pairs.
Respects the order of items.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/create_customer',
json=payload,
headers=headers)
def update_customer(self,
id: str = None,
name: str = None,
email: str = None,
avatar: str = None,
session_fields: list = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Updates Customer's properties.
Args:
id (str): ID of the Customer.
name (str): Customer's name.
email (str): Customer's email.
avatar (str): URL of the Customer's avatar.
session_fields (list): An array of custom object-enclosed key:value pairs.
Respects the order of items.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/update_customer',
json=payload,
headers=headers)
def ban_customer(self,
id: str = None,
ban: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Bans the customer for a specific period of time. It immediately
disconnects all active sessions of this customer and does not accept
new ones during the ban lifespan.
Args:
id (str): ID of the Customer.
ban (dict): Ban object containing the number of days that
the Customer will be banned.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/ban_customer',
json=payload,
headers=headers)
def follow_customer(self,
id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Marks a customer as followed. As a result, the requester (an agent)
will receive the info about all the changes related to that customer
via pushes. Once the customer leaves the website or is unfollowed,
the agent will no longer receive that information.
Args:
id (str): ID of the Customer.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/follow_customer',
json=payload,
headers=headers)
def unfollow_customer(self,
id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Removes the agent from the list of customer's followers. Calling this
method on a customer the agent's chatting with will result in success,
however, the agent will still receive pushes about the customer's data
updates. The unfollowing will take effect once the chat ends.
Args:
id (str): ID of the Customer.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/unfollow_customer',
json=payload,
headers=headers)
# Status
def set_routing_status(self,
status: str = None,
agent_id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Changes the status of an Agent or a Bot Agent.
Args:
status (str): For Agents: accepting_chats or not_accepting_chats;
for Bot Agents: accepting_chats, not_accepting_chats, or offline
agent_id (str): If not specified, the requester's status will be updated.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/set_routing_status',
json=payload,
headers=headers)
def list_routing_statuses(self,
filters: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns the current routing status of each agent selected by the provided filters.
Args:
filters (dict): Possible request filters.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/list_routing_statuses',
json=payload,
headers=headers)
# Other
def mark_events_as_seen(self,
chat_id: str = None,
seen_up_to: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Updates `seen_up_to` value for a given chat.
Args:
chat_id (str): Chat to mark events.
seen_up_to (str): Date up to which mark events - RFC 3339 date-time format
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/mark_events_as_seen',
json=payload,
headers=headers)
def send_typing_indicator(self,
chat_id: str = None,
visibility: str = None,
is_typing: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Sends typing indicator.
Args:
chat_id (str): ID of the chat that to send the typing indicator to.
visibility (str): Possible values: `all`, `agents`.
is_typing (bool): A flag that indicates if you are typing.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/send_typing_indicator',
json=payload,
headers=headers)
def multicast(self,
recipients: dict = None,
content: typing.Any = None,
type: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Sends a multicast (chat-unrelated communication).
Args:
recipients (dict): Object containing filters related to multicast recipients.
content (typing.Any): A JSON message to be sent.
type (str): Multicast message type.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/multicast',
json=payload,
headers=headers)
def list_agents_for_transfer(self,
chat_id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns the list of Agents you can transfer a chat to.
Args:
chat_id (str): ID of the chat you want to transfer.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/list_agents_for_transfer',
json=payload,
headers=headers)
def logout(self,
agent_id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Logs the Agent out.
Args:
agent_id (str): Login of the agent to logout.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server’s response to an HTTP request. '''
if payload is None:
payload = prepare_payload(locals())
return self.session.post(f'{self.api_url}/logout',
json=payload,
headers=headers)
Classes
class AgentWebV36 (access_token: typing.Union[AccessToken, str], base_url: str, http2: bool, proxies=None, verify: bool = True, disable_logging: bool = False, timeout: float = Timeout(timeout=15))
-
Agent Web API Class containing methods in version 3.6.
Expand source code
class AgentWebV36(HttpClient): ''' Agent Web API Class containing methods in version 3.6. ''' def __init__(self, access_token: typing.Union[AccessToken, str], base_url: str, http2: bool, proxies=None, verify: bool = True, disable_logging: bool = False, timeout: float = httpx.Timeout(15)): super().__init__(access_token, base_url, http2, proxies, verify, disable_logging, timeout) self.api_url = f'https://{base_url}/v3.6/agent/action' # Chats def list_chats(self, filters: dict = None, sort_order: str = None, limit: int = None, page_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns summaries of the chats an Agent has access to. Args: filters (dict): Possible request filters. Mustn't change between requests for subsequent pages. Otherwise, the behavior is undefined. sort_order (str): Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread. limit (int): Limit of results per page. Default: 10, maximum: 100. page_id (str): ID of the page with paginated results. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_chats', json=payload, headers=headers) def list_threads(self, chat_id: str = None, sort_order: str = None, limit: str = None, page_id: str = None, min_events_count: int = None, filters: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns threads that the current Agent has access to in a given chat. Args: chat_id (str): ID of the chat for which threads are to be listed. sort_order (str): Possible values: asc, desc (default). limit (str): Limit of results per page. Default: 3, maximum: 100. page_id (str): ID of the page with paginated results. min_events_count (int): Range: 1-100; Specifies the minimum number of events to be returned in the response. filters (dict): Possible request filters. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_threads', json=payload, headers=headers) def get_chat(self, chat_id: str = None, thread_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns a thread that the current Agent has access to in a given chat Args: chat_id (str): ID of the chat for which thread is to be returned. thread_id (str): ID of the thread to show. Default: the latest thread (if exists) payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/get_chat', json=payload, headers=headers) def list_archives(self, filters: dict = None, page_id: str = None, sort_order: str = None, limit: str = None, highlights: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns a list of the chats an Agent has access to. Together with a chat, the events of one thread from this chat are returned. Args: filters (dict): Possible request filters. page_id (str): ID of the page with paginated results. sort_order (str): Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread. limit (str): Limit of results per page. Default: 10, maximum: 100. highlights (dict): Use it to highlight the match of filters.query. To enable highlights with default parameters, pass an empty object. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_archives', json=payload, headers=headers) def start_chat(self, chat: dict = None, active: bool = None, continuous: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Starts a chat. Args: chat (dict): Dict containing chat properties, access and thread. active (bool): When set to False, creates an inactive thread; default: True. continuous (bool): Starts chat as continuous (online group is not required); default: False. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/start_chat', json=payload, headers=headers) def resume_chat(self, chat: dict = None, active: bool = None, continuous: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Restarts an archived chat. Args: chat (dict): Dict containing chat properties, access and thread. active (bool): When set to False, creates an inactive thread; default: True. continuous (bool): Starts chat as continuous (online group is not required); default: False. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/resume_chat', json=payload, headers=headers) def deactivate_chat(self, id: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Deactivates a chat by closing the currently open thread. Sending messages to this thread will no longer be possible. Args: id (str): Chat ID to deactivate. ignore_requester_presence (bool): If `True`, allows requester to deactivate chat without being present in the chat's users list. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/deactivate_chat', json=payload, headers=headers) def follow_chat(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Marks a chat as followed. All changes to the chat will be sent to the requester until the chat is reactivated or unfollowed. Chat members don't need to follow their chats. They receive all chat pushes regardless of their follower status. Args: id (str): ID of chat to be followed. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/follow_chat', json=payload, headers=headers) def unfollow_chat(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Removes the requester from the chat followers. After that, only key changes to the chat (like transfer_chat or close_active_thread) will be sent to the requester. Chat members cannot unfollow the chat. Args: id (str): ID of chat to be unfollowed. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/unfollow_chat', json=payload, headers=headers) # Chat access def transfer_chat(self, id: str = None, target: dict = None, ignore_agents_availability: bool = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Transfers a chat to an agent or a group. Args: id (str): chat ID target (dict): If missing, chat will be transferred within the current group. ignore_agents_availability (bool): If `True`, always transfers chats. Otherwise, fails when unable to assign any agent from the requested groups. ignore_requester_presence (bool): If `True`, allows requester to transfer chat without being present in the chat's users list. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/transfer_chat', json=payload, headers=headers) # Chat users def add_user_to_chat(self, chat_id: str = None, user_id: str = None, user_type: str = None, visibility: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Adds a user to the chat. You can't add more than one customer user type to the chat. Args: chat_id (str): chat ID. user_id (str): user ID. user_type (str): Possible values: agent or customer. visibility (str): Determines the visibility of events sent by the agent. Possible values: `all` or `agents`. ignore_requester_presence (bool): If `True`, allows requester to add user to chat without being present in the chat's users list. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/add_user_to_chat', json=payload, headers=headers) def remove_user_from_chat(self, chat_id: str = None, user_id: str = None, user_type: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Removes a user from chat. Args: chat_id (str): chat ID. user_id (str): user ID. user_type (str): Possible values: agent or customer. ignore_requester_presence (bool): If `True`, allows requester to remove user from chat without being present in the chat's users list. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/remove_user_from_chat', json=payload, headers=headers) # Events def send_event(self, chat_id: str = None, event: dict = None, attach_to_last_thread: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends an Event object. Use this method to send a message by specifying the Message event type in the request. The method updates the requester's `events_seen_up_to` as if they've seen all chat events. Args: chat_id (int): ID of the chat that you to send a message to. event (dict): Event object. attach_to_last_thread (bool): The flag is ignored for active chats. For inactive chats: True – the event will be added to the last thread; False – the request will fail. Default: False. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/send_event', json=payload, headers=headers) def upload_file(self, file: typing.BinaryIO = None, headers: dict = None) -> httpx.Response: ''' Uploads a file to the server as a temporary file. It returns a URL that expires after 24 hours unless the URL is used in `send_event`. Args: file (typing.BinaryIO): File-like object with file to upload (Maximum size: 10MB). headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' return self.session.post(f'{self.api_url}/upload_file', files=file, headers=headers) def send_rich_message_postback(self, chat_id: str = None, thread_id: str = None, event_id: str = None, postback: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends a rich message postback. Args: chat_id (str): ID of the chat to send rich message postback to. thread_id (str): ID of the thread to send rich message postback to. event_id (str): ID of the event related to the rich message postback. postback (dict): Object containing postback data (id, toggled). payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/send_rich_message_postback', json=payload, headers=headers) # Properties def update_chat_properties(self, id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates chat properties. Args: id (str): ID of the chat you to set a property for. properties (dict): Chat properties to set. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/update_chat_properties', json=payload, headers=headers) def delete_chat_properties(self, id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Deletes chat properties. Args: id (str): ID of the chat you want to delete properties of. properties (dict): Chat properties to delete. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/delete_chat_properties', json=payload, headers=headers) def update_thread_properties(self, chat_id: str = None, thread_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates chat thread properties. Args: chat_id (str): ID of the chat you to set properties for. thread_id (str): ID of the thread you want to set properties for. properties (dict): Thread properties to set. You should stick to the general properties format and include namespace, property name and value. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/update_thread_properties', json=payload, headers=headers) def delete_thread_properties(self, chat_id: str = None, thread_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Deletes chat thread properties. Args: chat_id (str): ID of the chat you want to delete the properties of. thread_id (str): ID of the thread you want to delete the properties of. properties (dict): Thread properties to delete. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/delete_thread_properties', json=payload, headers=headers) def update_event_properties(self, chat_id: str = None, thread_id: str = None, event_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates event properties. Args: chat_id (str): ID of the chat you to set properties for. thread_id (str): ID of the thread you want to set properties for. event_id (str): ID of the event you want to set properties for. properties (dict): Thread properties to set. You should stick to the general properties format and include namespace, property name and value. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/update_event_properties', json=payload, headers=headers) def delete_event_properties(self, chat_id: str = None, thread_id: str = None, event_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Deletes event properties. Args: chat_id (str): ID of the chat you to delete the properties for. thread_id (str): ID of the thread you want to delete the properties for. event_id (str): ID of the event you want to delete the properties for. properties (dict): Event properties to delete. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/delete_event_properties', json=payload, headers=headers) # Thread tags def tag_thread(self, chat_id: str = None, thread_id: str = None, tag: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Tags thread. Args: chat_id (str): ID of the chat you want to add a tag to. thread_id (str): ID of the thread you want to add a tag to. tag (str): Tag name. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/tag_thread', json=payload, headers=headers) def untag_thread(self, chat_id: str = None, thread_id: str = None, tag: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Untags thread. Args: chat_id (str): ID of the chat you want to remove a tag from. thread_id (str): ID of the thread you want to remove a tag from. tag (str): Tag name. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/untag_thread', json=payload, headers=headers) # Customers def get_customer(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the info about the Customer with a given id. Args: id (str): customer id payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/get_customer', json=payload, headers=headers) def create_customer(self, name: str = None, email: str = None, avatar: str = None, session_fields: list = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Creates a new Customer user type. Args: name (str): Customer's name. email (str): Customer's email. avatar (str): URL of the Customer's avatar session_fields (list): An array of custom object-enclosed key:value pairs. Respects the order of items. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/create_customer', json=payload, headers=headers) def update_customer(self, id: str = None, name: str = None, email: str = None, avatar: str = None, session_fields: list = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates Customer's properties. Args: id (str): ID of the Customer. name (str): Customer's name. email (str): Customer's email. avatar (str): URL of the Customer's avatar. session_fields (list): An array of custom object-enclosed key:value pairs. Respects the order of items. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/update_customer', json=payload, headers=headers) def ban_customer(self, id: str = None, ban: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Bans the customer for a specific period of time. It immediately disconnects all active sessions of this customer and does not accept new ones during the ban lifespan. Args: id (str): ID of the Customer. ban (dict): Ban object containing the number of days that the Customer will be banned. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/ban_customer', json=payload, headers=headers) def follow_customer(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Marks a customer as followed. As a result, the requester (an agent) will receive the info about all the changes related to that customer via pushes. Once the customer leaves the website or is unfollowed, the agent will no longer receive that information. Args: id (str): ID of the Customer. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/follow_customer', json=payload, headers=headers) def unfollow_customer(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Removes the agent from the list of customer's followers. Calling this method on a customer the agent's chatting with will result in success, however, the agent will still receive pushes about the customer's data updates. The unfollowing will take effect once the chat ends. Args: id (str): ID of the Customer. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/unfollow_customer', json=payload, headers=headers) # Status def set_routing_status(self, status: str = None, agent_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Changes the status of an Agent or a Bot Agent. Args: status (str): For Agents: accepting_chats or not_accepting_chats; for Bot Agents: accepting_chats, not_accepting_chats, or offline agent_id (str): If not specified, the requester's status will be updated. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/set_routing_status', json=payload, headers=headers) def list_routing_statuses(self, filters: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the current routing status of each agent selected by the provided filters. Args: filters (dict): Possible request filters. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_routing_statuses', json=payload, headers=headers) # Other def mark_events_as_seen(self, chat_id: str = None, seen_up_to: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates `seen_up_to` value for a given chat. Args: chat_id (str): Chat to mark events. seen_up_to (str): Date up to which mark events - RFC 3339 date-time format payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/mark_events_as_seen', json=payload, headers=headers) def send_typing_indicator(self, chat_id: str = None, visibility: str = None, is_typing: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends typing indicator. Args: chat_id (str): ID of the chat that to send the typing indicator to. visibility (str): Possible values: `all`, `agents`. is_typing (bool): A flag that indicates if you are typing. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/send_typing_indicator', json=payload, headers=headers) def multicast(self, recipients: dict = None, content: typing.Any = None, type: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends a multicast (chat-unrelated communication). Args: recipients (dict): Object containing filters related to multicast recipients. content (typing.Any): A JSON message to be sent. type (str): Multicast message type. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/multicast', json=payload, headers=headers) def list_agents_for_transfer(self, chat_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the list of Agents you can transfer a chat to. Args: chat_id (str): ID of the chat you want to transfer. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_agents_for_transfer', json=payload, headers=headers) def logout(self, agent_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Logs the Agent out. Args: agent_id (str): Login of the agent to logout. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/logout', json=payload, headers=headers)
Ancestors
- livechat.utils.http_client.HttpClient
Methods
def add_user_to_chat(self, chat_id: str = None, user_id: str = None, user_type: str = None, visibility: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Adds a user to the chat. You can't add more than one customer user type to the chat.
Args
chat_id
:str
- chat ID.
user_id
:str
- user ID.
user_type
:str
- Possible values: agent or customer.
visibility
:str
- Determines the visibility of events sent by
the agent. Possible values:
all
oragents
. ignore_requester_presence
:bool
- If
True
, allows requester to add user to chat without being present in the chat's users list. payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def add_user_to_chat(self, chat_id: str = None, user_id: str = None, user_type: str = None, visibility: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Adds a user to the chat. You can't add more than one customer user type to the chat. Args: chat_id (str): chat ID. user_id (str): user ID. user_type (str): Possible values: agent or customer. visibility (str): Determines the visibility of events sent by the agent. Possible values: `all` or `agents`. ignore_requester_presence (bool): If `True`, allows requester to add user to chat without being present in the chat's users list. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/add_user_to_chat', json=payload, headers=headers)
def ban_customer(self, id: str = None, ban: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Bans the customer for a specific period of time. It immediately disconnects all active sessions of this customer and does not accept new ones during the ban lifespan.
Args
id
:str
- ID of the Customer.
ban
:dict
- Ban object containing the number of days that the Customer will be banned.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def ban_customer(self, id: str = None, ban: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Bans the customer for a specific period of time. It immediately disconnects all active sessions of this customer and does not accept new ones during the ban lifespan. Args: id (str): ID of the Customer. ban (dict): Ban object containing the number of days that the Customer will be banned. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/ban_customer', json=payload, headers=headers)
def create_customer(self, name: str = None, email: str = None, avatar: str = None, session_fields: list = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Creates a new Customer user type.
Args
name
:str
- Customer's name.
email
:str
- Customer's email.
avatar
:str
- URL of the Customer's avatar
session_fields
:list
- An array of custom object-enclosed key:value pairs. Respects the order of items.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def create_customer(self, name: str = None, email: str = None, avatar: str = None, session_fields: list = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Creates a new Customer user type. Args: name (str): Customer's name. email (str): Customer's email. avatar (str): URL of the Customer's avatar session_fields (list): An array of custom object-enclosed key:value pairs. Respects the order of items. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/create_customer', json=payload, headers=headers)
def deactivate_chat(self, id: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Deactivates a chat by closing the currently open thread. Sending messages to this thread will no longer be possible.
Args
id
:str
- Chat ID to deactivate.
ignore_requester_presence
:bool
- If
True
, allows requester to deactivate chat without being present in the chat's users list. payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def deactivate_chat(self, id: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Deactivates a chat by closing the currently open thread. Sending messages to this thread will no longer be possible. Args: id (str): Chat ID to deactivate. ignore_requester_presence (bool): If `True`, allows requester to deactivate chat without being present in the chat's users list. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/deactivate_chat', json=payload, headers=headers)
def delete_chat_properties(self, id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Deletes chat properties.
Args
id
:str
- ID of the chat you want to delete properties of.
properties
:dict
- Chat properties to delete.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def delete_chat_properties(self, id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Deletes chat properties. Args: id (str): ID of the chat you want to delete properties of. properties (dict): Chat properties to delete. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/delete_chat_properties', json=payload, headers=headers)
def delete_event_properties(self, chat_id: str = None, thread_id: str = None, event_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Deletes event properties.
Args
chat_id
:str
- ID of the chat you to delete the properties for.
thread_id
:str
- ID of the thread you want to delete the properties for.
event_id
:str
- ID of the event you want to delete the properties for.
properties
:dict
- Event properties to delete.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def delete_event_properties(self, chat_id: str = None, thread_id: str = None, event_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Deletes event properties. Args: chat_id (str): ID of the chat you to delete the properties for. thread_id (str): ID of the thread you want to delete the properties for. event_id (str): ID of the event you want to delete the properties for. properties (dict): Event properties to delete. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/delete_event_properties', json=payload, headers=headers)
def delete_thread_properties(self, chat_id: str = None, thread_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Deletes chat thread properties.
Args
chat_id
:str
- ID of the chat you want to delete the properties of.
thread_id
:str
- ID of the thread you want to delete the properties of.
properties
:dict
- Thread properties to delete.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def delete_thread_properties(self, chat_id: str = None, thread_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Deletes chat thread properties. Args: chat_id (str): ID of the chat you want to delete the properties of. thread_id (str): ID of the thread you want to delete the properties of. properties (dict): Thread properties to delete. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/delete_thread_properties', json=payload, headers=headers)
def follow_chat(self, id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Marks a chat as followed. All changes to the chat will be sent to the requester until the chat is reactivated or unfollowed. Chat members don't need to follow their chats. They receive all chat pushes regardless of their follower status.
Args
id
:str
- ID of chat to be followed.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def follow_chat(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Marks a chat as followed. All changes to the chat will be sent to the requester until the chat is reactivated or unfollowed. Chat members don't need to follow their chats. They receive all chat pushes regardless of their follower status. Args: id (str): ID of chat to be followed. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/follow_chat', json=payload, headers=headers)
def follow_customer(self, id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Marks a customer as followed. As a result, the requester (an agent) will receive the info about all the changes related to that customer via pushes. Once the customer leaves the website or is unfollowed, the agent will no longer receive that information.
Args
id
:str
- ID of the Customer.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def follow_customer(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Marks a customer as followed. As a result, the requester (an agent) will receive the info about all the changes related to that customer via pushes. Once the customer leaves the website or is unfollowed, the agent will no longer receive that information. Args: id (str): ID of the Customer. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/follow_customer', json=payload, headers=headers)
def get_chat(self, chat_id: str = None, thread_id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns a thread that the current Agent has access to in a given chat
Args
chat_id
:str
- ID of the chat for which thread is to be returned.
thread_id
:str
- ID of the thread to show. Default: the latest thread (if exists)
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def get_chat(self, chat_id: str = None, thread_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns a thread that the current Agent has access to in a given chat Args: chat_id (str): ID of the chat for which thread is to be returned. thread_id (str): ID of the thread to show. Default: the latest thread (if exists) payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/get_chat', json=payload, headers=headers)
def get_customer(self, id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns the info about the Customer with a given id.
Args
id
:str
- customer id
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def get_customer(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the info about the Customer with a given id. Args: id (str): customer id payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/get_customer', json=payload, headers=headers)
def list_agents_for_transfer(self, chat_id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns the list of Agents you can transfer a chat to.
Args
chat_id
:str
- ID of the chat you want to transfer.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def list_agents_for_transfer(self, chat_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the list of Agents you can transfer a chat to. Args: chat_id (str): ID of the chat you want to transfer. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_agents_for_transfer', json=payload, headers=headers)
def list_archives(self, filters: dict = None, page_id: str = None, sort_order: str = None, limit: str = None, highlights: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns a list of the chats an Agent has access to. Together with a chat, the events of one thread from this chat are returned.
Args
filters
:dict
- Possible request filters.
page_id
:str
- ID of the page with paginated results.
sort_order
:str
- Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread.
limit
:str
- Limit of results per page. Default: 10, maximum: 100.
highlights
:dict
- Use it to highlight the match of filters.query. To enable highlights with default parameters, pass an empty object.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def list_archives(self, filters: dict = None, page_id: str = None, sort_order: str = None, limit: str = None, highlights: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns a list of the chats an Agent has access to. Together with a chat, the events of one thread from this chat are returned. Args: filters (dict): Possible request filters. page_id (str): ID of the page with paginated results. sort_order (str): Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread. limit (str): Limit of results per page. Default: 10, maximum: 100. highlights (dict): Use it to highlight the match of filters.query. To enable highlights with default parameters, pass an empty object. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_archives', json=payload, headers=headers)
def list_chats(self, filters: dict = None, sort_order: str = None, limit: int = None, page_id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns summaries of the chats an Agent has access to.
Args
filters
:dict
- Possible request filters. Mustn't change between requests for subsequent pages. Otherwise, the behavior is undefined.
sort_order
:str
- Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread.
limit
:int
- Limit of results per page. Default: 10, maximum: 100.
page_id
:str
- ID of the page with paginated results.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def list_chats(self, filters: dict = None, sort_order: str = None, limit: int = None, page_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns summaries of the chats an Agent has access to. Args: filters (dict): Possible request filters. Mustn't change between requests for subsequent pages. Otherwise, the behavior is undefined. sort_order (str): Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread. limit (int): Limit of results per page. Default: 10, maximum: 100. page_id (str): ID of the page with paginated results. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_chats', json=payload, headers=headers)
def list_routing_statuses(self, filters: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns the current routing status of each agent selected by the provided filters.
Args
filters
:dict
- Possible request filters.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def list_routing_statuses(self, filters: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the current routing status of each agent selected by the provided filters. Args: filters (dict): Possible request filters. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_routing_statuses', json=payload, headers=headers)
def list_threads(self, chat_id: str = None, sort_order: str = None, limit: str = None, page_id: str = None, min_events_count: int = None, filters: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns threads that the current Agent has access to in a given chat.
Args
chat_id
:str
- ID of the chat for which threads are to be listed.
sort_order
:str
- Possible values: asc, desc (default).
limit
:str
- Limit of results per page. Default: 3, maximum: 100.
page_id
:str
- ID of the page with paginated results.
min_events_count
:int
- Range: 1-100; Specifies the minimum number of events to be returned in the response.
filters
:dict
- Possible request filters.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def list_threads(self, chat_id: str = None, sort_order: str = None, limit: str = None, page_id: str = None, min_events_count: int = None, filters: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns threads that the current Agent has access to in a given chat. Args: chat_id (str): ID of the chat for which threads are to be listed. sort_order (str): Possible values: asc, desc (default). limit (str): Limit of results per page. Default: 3, maximum: 100. page_id (str): ID of the page with paginated results. min_events_count (int): Range: 1-100; Specifies the minimum number of events to be returned in the response. filters (dict): Possible request filters. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/list_threads', json=payload, headers=headers)
def logout(self, agent_id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Logs the Agent out.
Args
agent_id
:str
- Login of the agent to logout.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def logout(self, agent_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Logs the Agent out. Args: agent_id (str): Login of the agent to logout. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/logout', json=payload, headers=headers)
def mark_events_as_seen(self, chat_id: str = None, seen_up_to: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Updates
seen_up_to
value for a given chat.Args
chat_id
:str
- Chat to mark events.
seen_up_to
:str
- Date up to which mark events - RFC 3339 date-time format
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def mark_events_as_seen(self, chat_id: str = None, seen_up_to: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates `seen_up_to` value for a given chat. Args: chat_id (str): Chat to mark events. seen_up_to (str): Date up to which mark events - RFC 3339 date-time format payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/mark_events_as_seen', json=payload, headers=headers)
def multicast(self, recipients: dict = None, content: typing.Any = None, type: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Sends a multicast (chat-unrelated communication).
Args
recipients
:dict
- Object containing filters related to multicast recipients.
content
:typing.Any
- A JSON message to be sent.
type
:str
- Multicast message type.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def multicast(self, recipients: dict = None, content: typing.Any = None, type: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends a multicast (chat-unrelated communication). Args: recipients (dict): Object containing filters related to multicast recipients. content (typing.Any): A JSON message to be sent. type (str): Multicast message type. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/multicast', json=payload, headers=headers)
def remove_user_from_chat(self, chat_id: str = None, user_id: str = None, user_type: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Removes a user from chat.
Args
chat_id
:str
- chat ID.
user_id
:str
- user ID.
user_type
:str
- Possible values: agent or customer.
ignore_requester_presence
:bool
- If
True
, allows requester to remove user from chat without being present in the chat's users list. payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def remove_user_from_chat(self, chat_id: str = None, user_id: str = None, user_type: str = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Removes a user from chat. Args: chat_id (str): chat ID. user_id (str): user ID. user_type (str): Possible values: agent or customer. ignore_requester_presence (bool): If `True`, allows requester to remove user from chat without being present in the chat's users list. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/remove_user_from_chat', json=payload, headers=headers)
def resume_chat(self, chat: dict = None, active: bool = None, continuous: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Restarts an archived chat.
Args
chat
:dict
- Dict containing chat properties, access and thread.
active
:bool
- When set to False, creates an inactive thread; default: True.
continuous
:bool
- Starts chat as continuous (online group is not required); default: False.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def resume_chat(self, chat: dict = None, active: bool = None, continuous: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Restarts an archived chat. Args: chat (dict): Dict containing chat properties, access and thread. active (bool): When set to False, creates an inactive thread; default: True. continuous (bool): Starts chat as continuous (online group is not required); default: False. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/resume_chat', json=payload, headers=headers)
def send_event(self, chat_id: str = None, event: dict = None, attach_to_last_thread: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Sends an Event object. Use this method to send a message by specifying the Message event type in the request. The method updates the requester's
events_seen_up_to
as if they've seen all chat events.Args
chat_id
:int
- ID of the chat that you to send a message to.
event
:dict
- Event object.
attach_to_last_thread
:bool
- The flag is ignored for active chats. For inactive chats: True – the event will be added to the last thread; False – the request will fail. Default: False.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def send_event(self, chat_id: str = None, event: dict = None, attach_to_last_thread: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends an Event object. Use this method to send a message by specifying the Message event type in the request. The method updates the requester's `events_seen_up_to` as if they've seen all chat events. Args: chat_id (int): ID of the chat that you to send a message to. event (dict): Event object. attach_to_last_thread (bool): The flag is ignored for active chats. For inactive chats: True – the event will be added to the last thread; False – the request will fail. Default: False. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/send_event', json=payload, headers=headers)
def send_rich_message_postback(self, chat_id: str = None, thread_id: str = None, event_id: str = None, postback: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Sends a rich message postback.
Args
chat_id
:str
- ID of the chat to send rich message postback to.
thread_id
:str
- ID of the thread to send rich message postback to.
event_id
:str
- ID of the event related to the rich message postback.
postback
:dict
- Object containing postback data (id, toggled).
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def send_rich_message_postback(self, chat_id: str = None, thread_id: str = None, event_id: str = None, postback: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends a rich message postback. Args: chat_id (str): ID of the chat to send rich message postback to. thread_id (str): ID of the thread to send rich message postback to. event_id (str): ID of the event related to the rich message postback. postback (dict): Object containing postback data (id, toggled). payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/send_rich_message_postback', json=payload, headers=headers)
def send_typing_indicator(self, chat_id: str = None, visibility: str = None, is_typing: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Sends typing indicator.
Args
chat_id
:str
- ID of the chat that to send the typing indicator to.
visibility
:str
- Possible values:
all
,agents
. is_typing
:bool
- A flag that indicates if you are typing.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def send_typing_indicator(self, chat_id: str = None, visibility: str = None, is_typing: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends typing indicator. Args: chat_id (str): ID of the chat that to send the typing indicator to. visibility (str): Possible values: `all`, `agents`. is_typing (bool): A flag that indicates if you are typing. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/send_typing_indicator', json=payload, headers=headers)
def set_routing_status(self, status: str = None, agent_id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Changes the status of an Agent or a Bot Agent.
Args
status
:str
- For Agents: accepting_chats or not_accepting_chats; for Bot Agents: accepting_chats, not_accepting_chats, or offline
agent_id
:str
- If not specified, the requester's status will be updated.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def set_routing_status(self, status: str = None, agent_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Changes the status of an Agent or a Bot Agent. Args: status (str): For Agents: accepting_chats or not_accepting_chats; for Bot Agents: accepting_chats, not_accepting_chats, or offline agent_id (str): If not specified, the requester's status will be updated. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/set_routing_status', json=payload, headers=headers)
def start_chat(self, chat: dict = None, active: bool = None, continuous: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Starts a chat.
Args
chat
:dict
- Dict containing chat properties, access and thread.
active
:bool
- When set to False, creates an inactive thread; default: True.
continuous
:bool
- Starts chat as continuous (online group is not required); default: False.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def start_chat(self, chat: dict = None, active: bool = None, continuous: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Starts a chat. Args: chat (dict): Dict containing chat properties, access and thread. active (bool): When set to False, creates an inactive thread; default: True. continuous (bool): Starts chat as continuous (online group is not required); default: False. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/start_chat', json=payload, headers=headers)
def tag_thread(self, chat_id: str = None, thread_id: str = None, tag: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Tags thread.
Args
chat_id
:str
- ID of the chat you want to add a tag to.
thread_id
:str
- ID of the thread you want to add a tag to.
tag
:str
- Tag name.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def tag_thread(self, chat_id: str = None, thread_id: str = None, tag: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Tags thread. Args: chat_id (str): ID of the chat you want to add a tag to. thread_id (str): ID of the thread you want to add a tag to. tag (str): Tag name. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/tag_thread', json=payload, headers=headers)
def transfer_chat(self, id: str = None, target: dict = None, ignore_agents_availability: bool = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Transfers a chat to an agent or a group.
Args
id
:str
- chat ID
target
:dict
- If missing, chat will be transferred within the current group.
ignore_agents_availability
:bool
- If
True
, always transfers chats. Otherwise, fails when unable to assign any agent from the requested groups. ignore_requester_presence
:bool
- If
True
, allows requester to transfer chat without being present in the chat's users list. payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def transfer_chat(self, id: str = None, target: dict = None, ignore_agents_availability: bool = None, ignore_requester_presence: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Transfers a chat to an agent or a group. Args: id (str): chat ID target (dict): If missing, chat will be transferred within the current group. ignore_agents_availability (bool): If `True`, always transfers chats. Otherwise, fails when unable to assign any agent from the requested groups. ignore_requester_presence (bool): If `True`, allows requester to transfer chat without being present in the chat's users list. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/transfer_chat', json=payload, headers=headers)
def unfollow_chat(self, id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Removes the requester from the chat followers. After that, only key changes to the chat (like transfer_chat or close_active_thread) will be sent to the requester. Chat members cannot unfollow the chat.
Args
id
:str
- ID of chat to be unfollowed.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def unfollow_chat(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Removes the requester from the chat followers. After that, only key changes to the chat (like transfer_chat or close_active_thread) will be sent to the requester. Chat members cannot unfollow the chat. Args: id (str): ID of chat to be unfollowed. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/unfollow_chat', json=payload, headers=headers)
def unfollow_customer(self, id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Removes the agent from the list of customer's followers. Calling this method on a customer the agent's chatting with will result in success, however, the agent will still receive pushes about the customer's data updates. The unfollowing will take effect once the chat ends.
Args
id
:str
- ID of the Customer.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def unfollow_customer(self, id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Removes the agent from the list of customer's followers. Calling this method on a customer the agent's chatting with will result in success, however, the agent will still receive pushes about the customer's data updates. The unfollowing will take effect once the chat ends. Args: id (str): ID of the Customer. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/unfollow_customer', json=payload, headers=headers)
def untag_thread(self, chat_id: str = None, thread_id: str = None, tag: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Untags thread.
Args
chat_id
:str
- ID of the chat you want to remove a tag from.
thread_id
:str
- ID of the thread you want to remove a tag from.
tag
:str
- Tag name.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def untag_thread(self, chat_id: str = None, thread_id: str = None, tag: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Untags thread. Args: chat_id (str): ID of the chat you want to remove a tag from. thread_id (str): ID of the thread you want to remove a tag from. tag (str): Tag name. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/untag_thread', json=payload, headers=headers)
def update_chat_properties(self, id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Updates chat properties.
Args
id
:str
- ID of the chat you to set a property for.
properties
:dict
- Chat properties to set.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def update_chat_properties(self, id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates chat properties. Args: id (str): ID of the chat you to set a property for. properties (dict): Chat properties to set. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/update_chat_properties', json=payload, headers=headers)
def update_customer(self, id: str = None, name: str = None, email: str = None, avatar: str = None, session_fields: list = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Updates Customer's properties.
Args
id
:str
- ID of the Customer.
name
:str
- Customer's name.
email
:str
- Customer's email.
avatar
:str
- URL of the Customer's avatar.
session_fields
:list
- An array of custom object-enclosed key:value pairs. Respects the order of items.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def update_customer(self, id: str = None, name: str = None, email: str = None, avatar: str = None, session_fields: list = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates Customer's properties. Args: id (str): ID of the Customer. name (str): Customer's name. email (str): Customer's email. avatar (str): URL of the Customer's avatar. session_fields (list): An array of custom object-enclosed key:value pairs. Respects the order of items. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/update_customer', json=payload, headers=headers)
def update_event_properties(self, chat_id: str = None, thread_id: str = None, event_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Updates event properties.
Args
chat_id
:str
- ID of the chat you to set properties for.
thread_id
:str
- ID of the thread you want to set properties for.
event_id
:str
- ID of the event you want to set properties for.
properties
:dict
- Thread properties to set. You should stick to the general properties format and include namespace, property name and value.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def update_event_properties(self, chat_id: str = None, thread_id: str = None, event_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates event properties. Args: chat_id (str): ID of the chat you to set properties for. thread_id (str): ID of the thread you want to set properties for. event_id (str): ID of the event you want to set properties for. properties (dict): Thread properties to set. You should stick to the general properties format and include namespace, property name and value. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/update_event_properties', json=payload, headers=headers)
def update_thread_properties(self, chat_id: str = None, thread_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Updates chat thread properties.
Args
chat_id
:str
- ID of the chat you to set properties for.
thread_id
:str
- ID of the thread you want to set properties for.
properties
:dict
- Thread properties to set. You should stick to the general properties format and include namespace, property name and value.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def update_thread_properties(self, chat_id: str = None, thread_id: str = None, properties: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates chat thread properties. Args: chat_id (str): ID of the chat you to set properties for. thread_id (str): ID of the thread you want to set properties for. properties (dict): Thread properties to set. You should stick to the general properties format and include namespace, property name and value. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.post(f'{self.api_url}/update_thread_properties', json=payload, headers=headers)
def upload_file(self, file: typing.BinaryIO = None, headers: dict = None) ‑> httpx.Response
-
Uploads a file to the server as a temporary file. It returns a URL that expires after 24 hours unless the URL is used in
send_event
.Args
file
:typing.BinaryIO
- File-like object with file to upload (Maximum size: 10MB).
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server’s response to an HTTP request.
Expand source code
def upload_file(self, file: typing.BinaryIO = None, headers: dict = None) -> httpx.Response: ''' Uploads a file to the server as a temporary file. It returns a URL that expires after 24 hours unless the URL is used in `send_event`. Args: file (typing.BinaryIO): File-like object with file to upload (Maximum size: 10MB). headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server’s response to an HTTP request. ''' return self.session.post(f'{self.api_url}/upload_file', files=file, headers=headers)