Skip to main content

This library allows for you to integrate with Five9 Cloud Contact Center using Python.

Project description

|License MIT| | |PyPi Package| | |PyPi Versions|

|Build Status| | |Test Coverage| | |Code Climate|

============
Python Five9
============

This library allows you to interact with the Five9 Settings and Statistics Web
Services using Python.

* `Read The API Documentation <https://laslabs.github.io/python-five9>`_

Installation
============

Installation is easiest using Pip and PyPi::

pip install five9

If you would like to contribute, or prefer Git::

git clone https://github.com/LasLabs/python-five9.git
cd python-five9
pip install -r requirements.txt
pip install .

Usage
=====

Connect
-------

.. code-block:: python

from five9 import Five9

client = Five9('user', 'password')

Configuration Web Services
--------------------------

Documentation:

* `Five9 <http://webapps.five9.com/assets/files/for_customers/documentation/apis/config-webservices-api-reference-guide.pdf>`_
* `API Docs <https://laslabs.github.io/python-five9/AdminWebService.html>`_

Example - Get All Skills:

.. code-block:: python

client.configuration.getSkills()
# Returns
[{
'description': None,
'id': 266184L,
'messageOfTheDay': None,
'name': 'TestSkill',
'routeVoiceMails': False
}]

Example - Create a contact field to track modified time:

.. code-block:: python

client.configuration.createContactField({
'name': 'modified_at',
'displayAs': 'Invisible',
'mapTo': 'LastModifiedDateTime',
'type': 'DATE_TIME',
'system': True,
})

Example - Search for a contact by first and last name and get a list of ``dict``s
representing the result:

.. code-block:: python

criteria = client.create_criteria({
'first_name': 'Test',
'last_name': 'User',
})
result = client.configuration.getContactRecords(criteria)
# The above result is basically unusable. Parse into a list of dicts::
client.parse_response(result['fields'], result['records'])

Example - Update a contact using their first and last name as the search keys:

.. code-block:: python

contact = {
'first_name': 'Test',
'last_name': 'User',
'city': 'Las Vegas',
'state': 'NV',
'number1': '1234567890',
}
mapping = client.create_mapping(contact, keys=['first_name', 'last_name'])
client.configuration.updateCrmRecord(
record={'fields': mapping['fields']},
crmUpdateSettings={
'fieldsMapping': mapping['field_mappings'],
'skipHeaderLine': True,
'crmAddMode': 'DONT_ADD',
'crmUpdateMode': 'UPDATE_SOLE_MATCHES',
}
)

Statistics Web Services
-----------------------

Documentation:

* `Five9 <http://webapps.five9.com/assets/files/for_customers/documentation/apis/statistics-webservices-api-reference-guide.pdf>`_
* `API Docs <https://laslabs.github.io/python-five9/SupervisorWebService.html>`_

A supervisor session is required in order to perform most actions provided in the
Supervisor Web Service. Due to this, a session is implicitly created before the
supervisor is used.

The session is created with the following defaults. You can change the parameters
by changing the proper instance variable on the `Five9` object:

+----------------------+------------------------+---------------+
| Five9 Parameter | Instance Variable | Default |
+======================+========================+===============+
| `forceLogoutSession` | `force_logout_session` | `True` |
+----------------------+------------------------+---------------+
| `rollingPeriod` | `rolling_period` | `Minutes30` |
+----------------------+------------------------+---------------+
| `statisticsRange` | `statistics_range` | `CurrentWeek` |
+----------------------+------------------------+---------------+
| `shiftStart` | `shift_start_hour` | `8` |
+----------------------+------------------------+---------------+
| `timeZone` | `time_zone_offset` | `-7` |
+----------------------+------------------------+---------------+

Example Use:

.. code-block:: python

# Setup a session - required for most things
client.supervisor.getUserLimits()
# Returns
{
'mobileLimit': 0L,
'mobileLoggedin': 0L,
'supervisorLimit': 1L,
'supervisorsLoggedin': 1L
}

Known Issues / Roadmap
======================

* The supervisor session options should be represented in a class and documented,
instead of the mostly undocumented free-form dictionary mapped to instance
variables.

Credits
=======

Images
------

* LasLabs: `Icon <https://repo.laslabs.com/projects/TEM/repos/odoo-module_template/browse/module_name/static/description/icon.svg?raw>`_.

Contributors
------------

* Dave Lasley <dave@laslabs.com>

Maintainer
----------

.. image:: https://laslabs.com/logo.png
:alt: LasLabs Inc.
:target: https://laslabs.com

This module is maintained by LasLabs Inc.

.. |Build Status| image:: https://img.shields.io/travis/LasLabs/python-five9/master.svg
:target: https://travis-ci.org/LasLabs/python-five9
.. |Test Coverage| image:: https://img.shields.io/codecov/c/github/LasLabs/python-five9/master.svg
:target: https://codecov.io/gh/LasLabs/python-five9
.. |Code Climate| image:: https://img.shields.io/codeclimate/github/LasLabs/python-five9.svg
:target: https://codeclimate.com/github/LasLabs/python-five9
.. |License MIT| image:: https://img.shields.io/github/license/laslabs/python-five9.svg
:target: https://opensource.org/licenses/MIT
:alt: License: MIT
.. |PyPi Package| image:: https://img.shields.io/pypi/v/five9.svg
:target: https://pypi.python.org/pypi/five9
:alt: PyPi Package
.. |PyPi Versions| image:: https://img.shields.io/pypi/pyversions/five9.svg
:target: https://pypi.python.org/pypi/five9
:alt: PyPi Versions


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

five9-0.0.3b180.tar.gz (15.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

five9-0.0.3b180-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

five9-0.0.3b180-py2-none-any.whl (26.3 kB view details)

Uploaded Python 2

File details

Details for the file five9-0.0.3b180.tar.gz.

File metadata

  • Download URL: five9-0.0.3b180.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for five9-0.0.3b180.tar.gz
Algorithm Hash digest
SHA256 2a53da62d397a9af6c70bb832065ecccdb832bf403d2940b19d949c73c45ddc8
MD5 938334f13917f3e7ffaf552589ab903d
BLAKE2b-256 29acab033880c09cab68a4305c46db3910b556cf99c920d6d21133cc2b5dd825

See more details on using hashes here.

File details

Details for the file five9-0.0.3b180-py3-none-any.whl.

File metadata

File hashes

Hashes for five9-0.0.3b180-py3-none-any.whl
Algorithm Hash digest
SHA256 166764bb5c97cea03cba3402cb07def27b71f04b180d3df98c07970ef214f085
MD5 fa08c7c85578e2c319e1b8b8ac80f98b
BLAKE2b-256 97f7e86e73f3a33c45725c49c5f60211670ff51bf67ab1c5c33aa1d0a3572a31

See more details on using hashes here.

File details

Details for the file five9-0.0.3b180-py2-none-any.whl.

File metadata

File hashes

Hashes for five9-0.0.3b180-py2-none-any.whl
Algorithm Hash digest
SHA256 7995a82191401249e5e6d0b4c22f4956bb9f8b748ae45e920277d3dd28f1cfbe
MD5 b3166b33794a37a2df6807ecd5c05721
BLAKE2b-256 0795a2f5f50e50101f62a2e807b1b4bc5371fb00fe74eab36482a1ef89df9f3c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page