Module livechat.customer.web.api.v33
Module containing Customer Web API client class in v3.3.
Expand source code
''' Module containing Customer Web API client class in v3.3. '''
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
class CustomerWebV33(HttpClient):
''' Customer Web API Class containing methods in version 3.3. '''
def __init__(self,
license_id: int,
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)):
if all([access_token, isinstance(access_token, str)]):
super().__init__(access_token, base_url, http2, proxies, verify,
disable_logging, timeout)
else:
raise ValueError(
'Incorrect or missing `access_token` argument (should be of type str.)'
)
self.api_url = f'https://{base_url}/v3.3/customer/action'
if isinstance(license_id, int):
self.license_id = license_id
self.query_string = f'?license_id={str(license_id)}'
else:
raise ValueError(
'Incorrect or missing `license_id` argument (should be of type int.)'
)
# Chats
def list_chats(self,
limit: int = None,
sort_order: str = None,
page_id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns summaries of the chats a Customer participated in.
Args:
limit (int): Limit of results per page. Default: 10, maximum: 25.
sort_order (str): Possible values: asc, desc (default).
Chat summaries are sorted by the creation date of its last thread.
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{self.query_string}',
json=payload,
headers=headers)
def list_threads(self,
chat_id: str = None,
limit: str = None,
sort_order: str = None,
page_id: str = None,
min_events_count: int = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns threads that the current Customer has access to in a given chat.
Args:
chat_id (str): ID of the chat for which threads are to be listed.
limit (str): Limit of results per page. Default: 10, maximum: 25.
sort_order (str): Possible values: asc, desc (default).
Chat summaries are sorted by the creation date of its last thread.
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.
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{self.query_string}',
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 Customer 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{self.query_string}',
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{self.query_string}',
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{self.query_string}',
json=payload,
headers=headers)
def deactivate_chat(self,
id: str = 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): ID of chat to be deactivated.
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{self.query_string}',
json=payload,
headers=headers)
# Configuration
def get_dynamic_configuration(self,
group_id: int = None,
url: str = None,
channel_type: str = None,
test: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns the dynamic configuration of a given group.
It provides data to call Get Configuration and Get Localization.
Args:
group_id (int): The ID of the group that you want to get a dynamic configuration for. ID of the default group is used if not provided.
url (str): The URL that you want to get a dynamic configuration for.
channel_type (str): The channel type that you want to get a dynamic configuration for.
test (bool): Treats a dynamic configuration request as a test.
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.get(
f'{self.api_url}/get_dynamic_configuration{self.query_string}',
params=payload,
headers=headers)
def get_configuration(self,
group_id: int = None,
version: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns the configuration of a given group in a given version. Contains data based on which the Chat Widget can be built.
Args:
group_id (int): The ID of the group that you want to get a configuration for.
version (str): The version that you want to get a configuration for.
Returned from Get Dynamic Configuration as the config_version parameter.
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.get(
f'{self.api_url}/get_configuration{self.query_string}',
params=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): The 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{self.query_string}',
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{self.query_string}',
files=file,
headers=headers)
def send_rich_message_postback(self,
chat_id: str = None,
event_id: str = None,
postback: dict = None,
thread_id: str = 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.
event_id (str): ID of the event related to the rich message postback.
postback (dict): Object containing postback data (id, toggled).
thread_id (str): ID of the thread to send rich message postback to.
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{self.query_string}',
json=payload,
headers=headers)
def send_sneak_peek(self,
chat_id: str = None,
sneak_peek_text: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Sends a sneak peek to a chat.
Args:
chat_id (str): ID of the chat to send a sneak peek to.
sneak_peek_text (str): Sneak peek text.
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_sneak_peek{self.query_string}',
json=payload,
headers=headers)
# Localization
def get_localization(self,
group_id: int = None,
language: str = None,
version: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns the localization of a given language and group in a given version. Contains translated phrases for the Chat Widget.
Args:
group_id (int): ID of the group that you want to get a localization for.
language (str): The language that you want to get a localization for.
version (str): The version that you want to get a localization for.
Returned from `get_dynamic_configuration` as the `localization_version` parameter.
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.get(
f'{self.api_url}/get_localization{self.query_string}',
params=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.
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_chat_properties{self.query_string}',
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{self.query_string}',
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{self.query_string}',
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{self.query_string}',
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{self.query_string}',
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{self.query_string}',
json=payload,
headers=headers)
def list_license_properties(self,
namespace: str = None,
name: str = None,
headers: dict = None) -> httpx.Response:
''' Returns the properties of a given license. It only returns the properties a Customer has access to.
Args:
namespace (str): Property namespace to retrieve.
name (str): Property name.
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. '''
params = {}
if namespace:
params['namespace'] = namespace
if name:
params['name'] = name
params['license_id'] = self.license_id
return self.session.get(f'{self.api_url}/list_license_properties',
params=params,
headers=headers)
def list_group_properties(self,
group_id: int = None,
namespace: str = None,
name: str = None,
headers: dict = None) -> httpx.Response:
''' Returns the properties of a given group. It only returns the properties a Customer has access to.
Args:
group_id (int): ID of the group you want to return the properties of.
namespace (str): Property namespace to retrieve.
name (str): Property name.
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. '''
params = {}
if namespace:
params['namespace'] = namespace
if name:
params['name'] = name
if group_id is not None:
params['id'] = str(group_id)
params['license_id'] = self.license_id
return self.session.get(f'{self.api_url}/list_group_properties',
params=params,
headers=headers)
# Customers
def get_customer(self,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns the info about the Customer requesting it.
Args:
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.
'''
return self.session.post(
f'{self.api_url}/get_customer{self.query_string}',
json={} if payload is None else payload,
headers=headers)
def update_customer(self,
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:
name (str): Name of the customer.
email (str): Email of the customer.
avatar (str): The 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{self.query_string}',
json=payload,
headers=headers)
def set_customer_session_fields(self,
session_fields: list = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Updates Customer's session fields.
Args:
session_fields (list): An array of custom object-enclosed key:value pairs.
Respects the order of items. Max keys: 100.
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_customer_session_fields{self.query_string}',
json=payload,
headers=headers)
# Status
def list_group_statuses(self,
all: bool = None,
group_ids: list = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns object with info about current routing statuses of agent groups.
One of the optional parameters needs to be included in the request.
Args:
all (bool): If set to True, you will get statuses of all the groups.
group_ids (list): A table of groups' IDs
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_group_statuses{self.query_string}',
json=payload,
headers=headers)
# Other
def check_goals(self,
session_fields: list = None,
group_id: int = None,
page_url: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Customer can use this method to trigger checking if goals were achieved.
Then, Agents receive the information. You should call this method to provide goals parameters for the server
when the customers limit is reached. Works only for offline Customers.
Args:
session_fields (list): An array of custom object-enclosed key:value pairs.
group_id (int): Group ID to check the goals for.
page_url (str): URL of the page to check the goals for.
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}/check_goals{self.query_string}',
json=payload,
headers=headers)
def get_form(self,
group_id: int = None,
type: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns an empty ticket form of a prechat or postchat survey.
Args:
group_id (int): ID of the group from which you want the form.
type (str): Form type; possible values: prechat or postchat.
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_form{self.query_string}',
json=payload,
headers=headers)
def get_predicted_agent(self,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Gets the predicted Agent - the one the Customer will chat with when the chat starts.
To use this method, the Customer needs to be logged in, which can be done via the `login` method.
Args:
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.
'''
return self.session.post(
f'{self.api_url}/get_predicted_agent{self.query_string}',
json={} if payload is None else payload,
headers=headers)
def get_url_info(self,
url: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Returns the info on a given URL.
Args:
url (str): Valid website URL.
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_url_info{self.query_string}',
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): ID of the chat to update `seen_up_to`.
seen_up_to (str): 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{self.query_string}',
json=payload,
headers=headers)
def accept_greeting(self,
greeting_id: int = None,
unique_id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Marks an incoming greeting as seen.
Args:
greeting_id (int): ID of the greeting configured within the license to accept.
unique_id (str): ID of the greeting to accept. You can get it from the `incoming_greeting` push.
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}/accept_greeting{self.query_string}',
json=payload,
headers=headers)
def cancel_greeting(self,
unique_id: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Cancels a greeting (an invitation to the chat).
For example, Customers could cancel greetings by minimalizing the chat widget with a greeting.
Args:
unique_id (str): ID of the greeting to cancel. You can get it from the `incoming_greeting` push.
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}/cancel_greeting{self.query_string}',
json=payload,
headers=headers)
def request_email_verification(self,
callback_uri: str = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Requests the verification of the customer's email address by sending them a verification email
with the identity confirmation link.
Args:
callback_uri (str): URI to be called after the customer confirms their email address.
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}/request_email_verification{self.query_string}',
json=payload,
headers=headers)
Classes
class CustomerWebV33 (license_id: int, 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))
-
Customer Web API Class containing methods in version 3.3.
Expand source code
class CustomerWebV33(HttpClient): ''' Customer Web API Class containing methods in version 3.3. ''' def __init__(self, license_id: int, 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)): if all([access_token, isinstance(access_token, str)]): super().__init__(access_token, base_url, http2, proxies, verify, disable_logging, timeout) else: raise ValueError( 'Incorrect or missing `access_token` argument (should be of type str.)' ) self.api_url = f'https://{base_url}/v3.3/customer/action' if isinstance(license_id, int): self.license_id = license_id self.query_string = f'?license_id={str(license_id)}' else: raise ValueError( 'Incorrect or missing `license_id` argument (should be of type int.)' ) # Chats def list_chats(self, limit: int = None, sort_order: str = None, page_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns summaries of the chats a Customer participated in. Args: limit (int): Limit of results per page. Default: 10, maximum: 25. sort_order (str): Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread. 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{self.query_string}', json=payload, headers=headers) def list_threads(self, chat_id: str = None, limit: str = None, sort_order: str = None, page_id: str = None, min_events_count: int = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns threads that the current Customer has access to in a given chat. Args: chat_id (str): ID of the chat for which threads are to be listed. limit (str): Limit of results per page. Default: 10, maximum: 25. sort_order (str): Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread. 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. 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{self.query_string}', 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 Customer 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{self.query_string}', 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{self.query_string}', 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{self.query_string}', json=payload, headers=headers) def deactivate_chat(self, id: str = 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): ID of chat to be deactivated. 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{self.query_string}', json=payload, headers=headers) # Configuration def get_dynamic_configuration(self, group_id: int = None, url: str = None, channel_type: str = None, test: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the dynamic configuration of a given group. It provides data to call Get Configuration and Get Localization. Args: group_id (int): The ID of the group that you want to get a dynamic configuration for. ID of the default group is used if not provided. url (str): The URL that you want to get a dynamic configuration for. channel_type (str): The channel type that you want to get a dynamic configuration for. test (bool): Treats a dynamic configuration request as a test. 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.get( f'{self.api_url}/get_dynamic_configuration{self.query_string}', params=payload, headers=headers) def get_configuration(self, group_id: int = None, version: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the configuration of a given group in a given version. Contains data based on which the Chat Widget can be built. Args: group_id (int): The ID of the group that you want to get a configuration for. version (str): The version that you want to get a configuration for. Returned from Get Dynamic Configuration as the config_version parameter. 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.get( f'{self.api_url}/get_configuration{self.query_string}', params=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): The 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{self.query_string}', 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{self.query_string}', files=file, headers=headers) def send_rich_message_postback(self, chat_id: str = None, event_id: str = None, postback: dict = None, thread_id: str = 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. event_id (str): ID of the event related to the rich message postback. postback (dict): Object containing postback data (id, toggled). thread_id (str): ID of the thread to send rich message postback to. 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{self.query_string}', json=payload, headers=headers) def send_sneak_peek(self, chat_id: str = None, sneak_peek_text: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends a sneak peek to a chat. Args: chat_id (str): ID of the chat to send a sneak peek to. sneak_peek_text (str): Sneak peek text. 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_sneak_peek{self.query_string}', json=payload, headers=headers) # Localization def get_localization(self, group_id: int = None, language: str = None, version: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the localization of a given language and group in a given version. Contains translated phrases for the Chat Widget. Args: group_id (int): ID of the group that you want to get a localization for. language (str): The language that you want to get a localization for. version (str): The version that you want to get a localization for. Returned from `get_dynamic_configuration` as the `localization_version` parameter. 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.get( f'{self.api_url}/get_localization{self.query_string}', params=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. 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_chat_properties{self.query_string}', 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{self.query_string}', 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{self.query_string}', 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{self.query_string}', 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{self.query_string}', 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{self.query_string}', json=payload, headers=headers) def list_license_properties(self, namespace: str = None, name: str = None, headers: dict = None) -> httpx.Response: ''' Returns the properties of a given license. It only returns the properties a Customer has access to. Args: namespace (str): Property namespace to retrieve. name (str): Property name. 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. ''' params = {} if namespace: params['namespace'] = namespace if name: params['name'] = name params['license_id'] = self.license_id return self.session.get(f'{self.api_url}/list_license_properties', params=params, headers=headers) def list_group_properties(self, group_id: int = None, namespace: str = None, name: str = None, headers: dict = None) -> httpx.Response: ''' Returns the properties of a given group. It only returns the properties a Customer has access to. Args: group_id (int): ID of the group you want to return the properties of. namespace (str): Property namespace to retrieve. name (str): Property name. 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. ''' params = {} if namespace: params['namespace'] = namespace if name: params['name'] = name if group_id is not None: params['id'] = str(group_id) params['license_id'] = self.license_id return self.session.get(f'{self.api_url}/list_group_properties', params=params, headers=headers) # Customers def get_customer(self, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the info about the Customer requesting it. Args: 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. ''' return self.session.post( f'{self.api_url}/get_customer{self.query_string}', json={} if payload is None else payload, headers=headers) def update_customer(self, 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: name (str): Name of the customer. email (str): Email of the customer. avatar (str): The 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{self.query_string}', json=payload, headers=headers) def set_customer_session_fields(self, session_fields: list = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates Customer's session fields. Args: session_fields (list): An array of custom object-enclosed key:value pairs. Respects the order of items. Max keys: 100. 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_customer_session_fields{self.query_string}', json=payload, headers=headers) # Status def list_group_statuses(self, all: bool = None, group_ids: list = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns object with info about current routing statuses of agent groups. One of the optional parameters needs to be included in the request. Args: all (bool): If set to True, you will get statuses of all the groups. group_ids (list): A table of groups' IDs 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_group_statuses{self.query_string}', json=payload, headers=headers) # Other def check_goals(self, session_fields: list = None, group_id: int = None, page_url: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Customer can use this method to trigger checking if goals were achieved. Then, Agents receive the information. You should call this method to provide goals parameters for the server when the customers limit is reached. Works only for offline Customers. Args: session_fields (list): An array of custom object-enclosed key:value pairs. group_id (int): Group ID to check the goals for. page_url (str): URL of the page to check the goals for. 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}/check_goals{self.query_string}', json=payload, headers=headers) def get_form(self, group_id: int = None, type: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns an empty ticket form of a prechat or postchat survey. Args: group_id (int): ID of the group from which you want the form. type (str): Form type; possible values: prechat or postchat. 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_form{self.query_string}', json=payload, headers=headers) def get_predicted_agent(self, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Gets the predicted Agent - the one the Customer will chat with when the chat starts. To use this method, the Customer needs to be logged in, which can be done via the `login` method. Args: 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. ''' return self.session.post( f'{self.api_url}/get_predicted_agent{self.query_string}', json={} if payload is None else payload, headers=headers) def get_url_info(self, url: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the info on a given URL. Args: url (str): Valid website URL. 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_url_info{self.query_string}', 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): ID of the chat to update `seen_up_to`. seen_up_to (str): 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{self.query_string}', json=payload, headers=headers) def accept_greeting(self, greeting_id: int = None, unique_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Marks an incoming greeting as seen. Args: greeting_id (int): ID of the greeting configured within the license to accept. unique_id (str): ID of the greeting to accept. You can get it from the `incoming_greeting` push. 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}/accept_greeting{self.query_string}', json=payload, headers=headers) def cancel_greeting(self, unique_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Cancels a greeting (an invitation to the chat). For example, Customers could cancel greetings by minimalizing the chat widget with a greeting. Args: unique_id (str): ID of the greeting to cancel. You can get it from the `incoming_greeting` push. 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}/cancel_greeting{self.query_string}', json=payload, headers=headers) def request_email_verification(self, callback_uri: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Requests the verification of the customer's email address by sending them a verification email with the identity confirmation link. Args: callback_uri (str): URI to be called after the customer confirms their email address. 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}/request_email_verification{self.query_string}', json=payload, headers=headers)
Ancestors
- livechat.utils.http_client.HttpClient
Methods
def accept_greeting(self, greeting_id: int = None, unique_id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Marks an incoming greeting as seen.
Args
greeting_id
:int
- ID of the greeting configured within the license to accept.
unique_id
:str
- ID of the greeting to accept. You can get it from the
incoming_greeting
push. 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 accept_greeting(self, greeting_id: int = None, unique_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Marks an incoming greeting as seen. Args: greeting_id (int): ID of the greeting configured within the license to accept. unique_id (str): ID of the greeting to accept. You can get it from the `incoming_greeting` push. 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}/accept_greeting{self.query_string}', json=payload, headers=headers)
def cancel_greeting(self, unique_id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Cancels a greeting (an invitation to the chat). For example, Customers could cancel greetings by minimalizing the chat widget with a greeting.
Args
unique_id
:str
- ID of the greeting to cancel. You can get it from the
incoming_greeting
push. 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 cancel_greeting(self, unique_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Cancels a greeting (an invitation to the chat). For example, Customers could cancel greetings by minimalizing the chat widget with a greeting. Args: unique_id (str): ID of the greeting to cancel. You can get it from the `incoming_greeting` push. 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}/cancel_greeting{self.query_string}', json=payload, headers=headers)
def check_goals(self, session_fields: list = None, group_id: int = None, page_url: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Customer can use this method to trigger checking if goals were achieved. Then, Agents receive the information. You should call this method to provide goals parameters for the server when the customers limit is reached. Works only for offline Customers.
Args
session_fields
:list
- An array of custom object-enclosed key:value pairs.
group_id
:int
- Group ID to check the goals for.
page_url
:str
- URL of the page to check the goals for.
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 check_goals(self, session_fields: list = None, group_id: int = None, page_url: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Customer can use this method to trigger checking if goals were achieved. Then, Agents receive the information. You should call this method to provide goals parameters for the server when the customers limit is reached. Works only for offline Customers. Args: session_fields (list): An array of custom object-enclosed key:value pairs. group_id (int): Group ID to check the goals for. page_url (str): URL of the page to check the goals for. 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}/check_goals{self.query_string}', json=payload, headers=headers)
def deactivate_chat(self, id: str = 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
- ID of chat to be deactivated.
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, 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): ID of chat to be deactivated. 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{self.query_string}', 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{self.query_string}', 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{self.query_string}', 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{self.query_string}', 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 Customer 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 Customer 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{self.query_string}', json=payload, headers=headers)
def get_configuration(self, group_id: int = None, version: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns the configuration of a given group in a given version. Contains data based on which the Chat Widget can be built.
Args
group_id
:int
- The ID of the group that you want to get a configuration for.
version
:str
- The version that you want to get a configuration for. Returned from Get Dynamic Configuration as the config_version parameter.
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_configuration(self, group_id: int = None, version: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the configuration of a given group in a given version. Contains data based on which the Chat Widget can be built. Args: group_id (int): The ID of the group that you want to get a configuration for. version (str): The version that you want to get a configuration for. Returned from Get Dynamic Configuration as the config_version parameter. 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.get( f'{self.api_url}/get_configuration{self.query_string}', params=payload, headers=headers)
def get_customer(self, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns the info about the Customer requesting it.
Args
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, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the info about the Customer requesting it. Args: 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. ''' return self.session.post( f'{self.api_url}/get_customer{self.query_string}', json={} if payload is None else payload, headers=headers)
def get_dynamic_configuration(self, group_id: int = None, url: str = None, channel_type: str = None, test: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns the dynamic configuration of a given group. It provides data to call Get Configuration and Get Localization.
Args
group_id
:int
- The ID of the group that you want to get a dynamic configuration for. ID of the default group is used if not provided.
url
:str
- The URL that you want to get a dynamic configuration for.
channel_type
:str
- The channel type that you want to get a dynamic configuration for.
test
:bool
- Treats a dynamic configuration request as a test.
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_dynamic_configuration(self, group_id: int = None, url: str = None, channel_type: str = None, test: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the dynamic configuration of a given group. It provides data to call Get Configuration and Get Localization. Args: group_id (int): The ID of the group that you want to get a dynamic configuration for. ID of the default group is used if not provided. url (str): The URL that you want to get a dynamic configuration for. channel_type (str): The channel type that you want to get a dynamic configuration for. test (bool): Treats a dynamic configuration request as a test. 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.get( f'{self.api_url}/get_dynamic_configuration{self.query_string}', params=payload, headers=headers)
def get_form(self, group_id: int = None, type: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns an empty ticket form of a prechat or postchat survey.
Args
group_id
:int
- ID of the group from which you want the form.
type
:str
- Form type; possible values: prechat or postchat.
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_form(self, group_id: int = None, type: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns an empty ticket form of a prechat or postchat survey. Args: group_id (int): ID of the group from which you want the form. type (str): Form type; possible values: prechat or postchat. 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_form{self.query_string}', json=payload, headers=headers)
def get_localization(self, group_id: int = None, language: str = None, version: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns the localization of a given language and group in a given version. Contains translated phrases for the Chat Widget.
Args
group_id
:int
- ID of the group that you want to get a localization for.
language
:str
- The language that you want to get a localization for.
version
:str
- The version that you want to get a localization for.
Returned from
get_dynamic_configuration
as thelocalization_version
parameter. 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_localization(self, group_id: int = None, language: str = None, version: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the localization of a given language and group in a given version. Contains translated phrases for the Chat Widget. Args: group_id (int): ID of the group that you want to get a localization for. language (str): The language that you want to get a localization for. version (str): The version that you want to get a localization for. Returned from `get_dynamic_configuration` as the `localization_version` parameter. 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.get( f'{self.api_url}/get_localization{self.query_string}', params=payload, headers=headers)
def get_predicted_agent(self, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Gets the predicted Agent - the one the Customer will chat with when the chat starts. To use this method, the Customer needs to be logged in, which can be done via the
login
method.Args
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_predicted_agent(self, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Gets the predicted Agent - the one the Customer will chat with when the chat starts. To use this method, the Customer needs to be logged in, which can be done via the `login` method. Args: 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. ''' return self.session.post( f'{self.api_url}/get_predicted_agent{self.query_string}', json={} if payload is None else payload, headers=headers)
def get_url_info(self, url: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns the info on a given URL.
Args
url
:str
- Valid website URL.
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_url_info(self, url: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns the info on a given URL. Args: url (str): Valid website URL. 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_url_info{self.query_string}', json=payload, headers=headers)
def list_chats(self, limit: int = None, sort_order: str = None, page_id: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns summaries of the chats a Customer participated in.
Args
limit
:int
- Limit of results per page. Default: 10, maximum: 25.
sort_order
:str
- Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread.
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, limit: int = None, sort_order: str = None, page_id: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns summaries of the chats a Customer participated in. Args: limit (int): Limit of results per page. Default: 10, maximum: 25. sort_order (str): Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread. 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{self.query_string}', json=payload, headers=headers)
def list_group_properties(self, group_id: int = None, namespace: str = None, name: str = None, headers: dict = None) ‑> httpx.Response
-
Returns the properties of a given group. It only returns the properties a Customer has access to.
Args
group_id
:int
- ID of the group you want to return the properties of.
namespace
:str
- Property namespace to retrieve.
name
:str
- Property name.
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_group_properties(self, group_id: int = None, namespace: str = None, name: str = None, headers: dict = None) -> httpx.Response: ''' Returns the properties of a given group. It only returns the properties a Customer has access to. Args: group_id (int): ID of the group you want to return the properties of. namespace (str): Property namespace to retrieve. name (str): Property name. 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. ''' params = {} if namespace: params['namespace'] = namespace if name: params['name'] = name if group_id is not None: params['id'] = str(group_id) params['license_id'] = self.license_id return self.session.get(f'{self.api_url}/list_group_properties', params=params, headers=headers)
def list_group_statuses(self, all: bool = None, group_ids: list = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns object with info about current routing statuses of agent groups. One of the optional parameters needs to be included in the request.
Args
all
:bool
- If set to True, you will get statuses of all the groups.
group_ids
:list
- A table of groups' IDs
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_group_statuses(self, all: bool = None, group_ids: list = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns object with info about current routing statuses of agent groups. One of the optional parameters needs to be included in the request. Args: all (bool): If set to True, you will get statuses of all the groups. group_ids (list): A table of groups' IDs 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_group_statuses{self.query_string}', json=payload, headers=headers)
def list_license_properties(self, namespace: str = None, name: str = None, headers: dict = None) ‑> httpx.Response
-
Returns the properties of a given license. It only returns the properties a Customer has access to.
Args
namespace
:str
- Property namespace to retrieve.
name
:str
- Property name.
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_license_properties(self, namespace: str = None, name: str = None, headers: dict = None) -> httpx.Response: ''' Returns the properties of a given license. It only returns the properties a Customer has access to. Args: namespace (str): Property namespace to retrieve. name (str): Property name. 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. ''' params = {} if namespace: params['namespace'] = namespace if name: params['name'] = name params['license_id'] = self.license_id return self.session.get(f'{self.api_url}/list_license_properties', params=params, headers=headers)
def list_threads(self, chat_id: str = None, limit: str = None, sort_order: str = None, page_id: str = None, min_events_count: int = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Returns threads that the current Customer has access to in a given chat.
Args
chat_id
:str
- ID of the chat for which threads are to be listed.
limit
:str
- Limit of results per page. Default: 10, maximum: 25.
sort_order
:str
- Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread.
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.
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, limit: str = None, sort_order: str = None, page_id: str = None, min_events_count: int = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Returns threads that the current Customer has access to in a given chat. Args: chat_id (str): ID of the chat for which threads are to be listed. limit (str): Limit of results per page. Default: 10, maximum: 25. sort_order (str): Possible values: asc, desc (default). Chat summaries are sorted by the creation date of its last thread. 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. 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{self.query_string}', 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
- ID of the chat to update
seen_up_to
. seen_up_to
:str
- 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): ID of the chat to update `seen_up_to`. seen_up_to (str): 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{self.query_string}', json=payload, headers=headers)
def request_email_verification(self, callback_uri: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Requests the verification of the customer's email address by sending them a verification email with the identity confirmation link.
Args
callback_uri
:str
- URI to be called after the customer confirms their email address.
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 request_email_verification(self, callback_uri: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Requests the verification of the customer's email address by sending them a verification email with the identity confirmation link. Args: callback_uri (str): URI to be called after the customer confirms their email address. 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}/request_email_verification{self.query_string}', 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{self.query_string}', 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
- The 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): The 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{self.query_string}', json=payload, headers=headers)
def send_rich_message_postback(self, chat_id: str = None, event_id: str = None, postback: dict = None, thread_id: str = 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.
event_id
:str
- ID of the event related to the rich message postback.
postback
:dict
- Object containing postback data (id, toggled).
thread_id
:str
- ID of the thread to send rich message postback to.
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, event_id: str = None, postback: dict = None, thread_id: str = 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. event_id (str): ID of the event related to the rich message postback. postback (dict): Object containing postback data (id, toggled). thread_id (str): ID of the thread to send rich message postback to. 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{self.query_string}', json=payload, headers=headers)
def send_sneak_peek(self, chat_id: str = None, sneak_peek_text: str = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Sends a sneak peek to a chat.
Args
chat_id
:str
- ID of the chat to send a sneak peek to.
sneak_peek_text
:str
- Sneak peek text.
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_sneak_peek(self, chat_id: str = None, sneak_peek_text: str = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Sends a sneak peek to a chat. Args: chat_id (str): ID of the chat to send a sneak peek to. sneak_peek_text (str): Sneak peek text. 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_sneak_peek{self.query_string}', json=payload, headers=headers)
def set_customer_session_fields(self, session_fields: list = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Updates Customer's session fields.
Args
session_fields
:list
- An array of custom object-enclosed key:value pairs. Respects the order of items. Max keys: 100.
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_customer_session_fields(self, session_fields: list = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Updates Customer's session fields. Args: session_fields (list): An array of custom object-enclosed key:value pairs. Respects the order of items. Max keys: 100. 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_customer_session_fields{self.query_string}', 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{self.query_string}', 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. 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_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. 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_chat_properties{self.query_string}', json=payload, headers=headers)
def update_customer(self, 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
name
:str
- Name of the customer.
email
:str
- Email of the customer.
avatar
:str
- The 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, 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: name (str): Name of the customer. email (str): Email of the customer. avatar (str): The 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{self.query_string}', 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{self.query_string}', 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{self.query_string}', 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{self.query_string}', files=file, headers=headers)