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_records(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.3b118.tar.gz (14.0 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.3b118-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

five9-0.0.3b118-py2-none-any.whl (24.1 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for five9-0.0.3b118.tar.gz
Algorithm Hash digest
SHA256 51d451cb5ba3aa57b5136279fad40778257ea21ebd03ebcd972cf05f70cf40ae
MD5 5fefed0e805b91891edfb57267a317f7
BLAKE2b-256 e15a9ab0a010906dcf196c1b5b5286109e87d1d20e539204e7c2406f6c7fbcfe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for five9-0.0.3b118-py3-none-any.whl
Algorithm Hash digest
SHA256 4a22962bbf422b62f594937a8b90d23cdf709d7a4ab24dcdab1d421fc308e072
MD5 2e691a2a14911541d2620cd3197676ae
BLAKE2b-256 79658fb535efecb1cbfae7bb83d3c89b97b54cc92f9529beb5a11ef90f81e4ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for five9-0.0.3b118-py2-none-any.whl
Algorithm Hash digest
SHA256 7537e0bc437caf7987239235a36d41c4a53741254491d19c4325cff4948428e6
MD5 662aa5b904ca2455043cbce84a7b48ac
BLAKE2b-256 f1619d26c3e7b5482a71fe5b03bb0b050108ee34c550d9bcdecd188891ca84ac

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