Skip to content

LasLabs/python-five9

Repository files navigation

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.

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

from five9 import Five9

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

Configuration Web Services

Documentation:

Example - Get All Skills:

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

Example - Create a contact field to track modified time:

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:

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:

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:

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:

# 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

Contributors

Maintainer

LasLabs Inc.

This module is maintained by LasLabs Inc.

Releases

No releases published

Packages

No packages published

Languages