CxAdmin is a Python API client for the CxEngage API. It is a work in progress and is not yet complete.
All objects are designed to mirror their CxEngage counterparts. For example, a CxList object has the exact same properties as a list on the CxEngage platform. Together with the way this program is designed, this means you can fetch items from CxEngage, manipulate them locally, and then upload them back to CxEngage, without having to worry about the API.
This API is designed to be easily expandable. If you would like to add functionality, please feel free to submit a pull request.
- [] Any object to CSV
- Any object to JSON
- Set up API client
- Get Everything
- Queues
- Lists
- Users
- Groups
- Business Hours
- Environment
- Flows
- Statistics
import CxAdmin
cx = CxAdmin.Cx(
baseURL="your_base_url", # https://eu-west-1-prod-api.cxengage.net for EU, https://api.cxengage.net for US
apiKey="your_api_key",
apiSecret="your_api_secret",
tenantID="your_tenant_id",
)
or
import CxAdmin
cx = CxAdmin.Cx.fromConfigFile("config.json")
Example config.json
{
"baseURL": "https://eu-west-1-prod-api.cxengage.net",
"apiKey": "73668f12-4da1-9991-p182-83ufb38193pa",
"apiSecret": "biglongjumblystringoflettersandnumbershere",
"tenantID": "893jwa23-85k2-895k-1562-93pot7367185"
}
from CxAdmin import Cx
import json
cx: Cx
dev = True
if dev:
cx = Cx.fromConfigFile("config.dev.json")
else:
cx = Cx.fromConfigFile("config.prod.json")
for item in cx.items:
print(item)
out = item.get()
name = str(item)[13:]
name = name[: name.index(".")]
file = open(f"output/{name}.json", "w")
output = json.dumps(out)
file.write(output)
This will fetch all items from CxEngage and save them to output/
as JSON files.
cx.queues.getQueues()
or
cx.queues.get() # same as getQueues()
cx.queues.getActiveQueues()
cx.lists.get()
cx.lists.getList(listId)
cx.lists.getListCSV(listId)
myList = cx.lists.getList(listId) # get a list
csv: list[str] = myList.toCSV() # convert to CSV, returns a list of strings
cx.users.getAllUsers()
or
cx.users.get() # same as getAllUsers()
cx.groups.getGroups()
or
cx.groups.get() # same as getGroups()
hours = cx.hours.get()
for hour in hours:
print(f"{hour.name} - {hour.getBusinessHours()})
cx.environment.getTenant()
or
cx.environment.get() # same as getTenant()
cx.environment.getRegions()
cx.flows.getFlows()
or
cx.flows.get() # same as getFlows()
cx.statistics.getInteractions(between: (datetime, datetime))