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.3b171.tar.gz (15.3 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.3b171-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

five9-0.0.3b171-py2-none-any.whl (26.2 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for five9-0.0.3b171.tar.gz
Algorithm Hash digest
SHA256 7b5a53d3b123a8cc859fff95fb460281383e76764ff579f36e9bc90cb3a5233d
MD5 042ae38b9849a84390b2d54637129d66
BLAKE2b-256 bfffc908cda4a038611dd870b747ea6a6f8e90f39ca0c6a81e837ece9a6f89cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for five9-0.0.3b171-py3-none-any.whl
Algorithm Hash digest
SHA256 2811494a1db1c4373ee60c13d14da4b4edd23cbc7561354400755b0e01fc037c
MD5 1e122c5065962ec5a4345d1ab54213ea
BLAKE2b-256 b13082d1e3ce115803f5af82825821322dbf810eee546cb1add062a08078d39f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for five9-0.0.3b171-py2-none-any.whl
Algorithm Hash digest
SHA256 23bde4b121843d62b02a48bc2e0d1b665a86f7474ec35e201ed26c41fed85654
MD5 14a8b9471395aeeed19a60c8a8b35dff
BLAKE2b-256 b9c91627835328de7dc8af9f0954ef3a1ad2aa684a3fbcb85acddf059e2fa36a

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