This is a Singer tap that produces JSON-formatted data following the Singer spec.
This tap:
- Pulls raw data from NICE inContact Reporting API
- Extracts the following resources:
- Outputs the schema for each resource
- Incrementally pulls data based on the input state
Most of the streams produce data for a "reporting period" which defaults to 1 hour. Some streams require a reporting period of 5 minutes. Each incremental stream class in streams.py
has a replication_key
that the tap uses to bookmark on.
The tap is built around the NICE inContact UserHub authentication process. This guide will show the steps required to get an api_key
and api_secret
.
The tap accepts the following config items:
field | type | required | description |
---|---|---|---|
start_date |
string | yes | RFC3339 date string "2017-01-01T00:00:00Z" |
api_key |
string | yes | NICE inContact API key (see Authentication) |
api_secret |
string | yes | NICE inContact API secret (see Authentication) |
api_cluster |
string | yes | NICE inContact instance cluster. Example: "c42" |
api_version |
string | no | NICE inContact API version. Default is "21.0" |
user_agent |
string | yes | Process and email for API logging purposes. Example: tap-nice-incontact <api_user_email@your_company.com> |
auth_domain |
string | no | The NICE inContact auth domain/region to use. Default is "na1" . See Authentication for more. |
periods |
object | no | stream specific reporting periods (see below) |
Example config:
{
"start_date": "2017-01-01T00:00:00Z",
"api_key": "<NICE inContact API key>",
"api_secret": "<NICE inContact API secret>",
"api_cluster": "<NICE inContact instance cluster>",
"api_version": "<NICE inContact API version>",
"user_agent": "tap-nice-incontact <<api_user_email@your_company.com>>",
"periods": {
"skills_summary": "days",
"skills_sla_summary": "days",
"teams_performance_total": "days",
"wfm_skills_agent_performance": "days",
"wfm_agents": "days",
"wfm_agents_scorecards": "days"
}
}
For periods
the structure is as follows:
stream | reporting period |
---|---|
stream_name |
the tap supports 1 days , 1 hours , and 5 minutes |
- Install
Clone this repository, and then install using setup.py. We recommend using a virtualenv:
$ virtualenv -p python3 venv
$ source venv/bin/activate
$ pip install -e .
-
Create your tap's config.json file. Look at this table for format and required fields.
-
Run the Tap in Discovery Mode This creates a catalog.json for selecting objects/fields to integrate:
tap-nice-incontact --config config.json --discover > catalog.json
See the Singer docs on discovery mode here.
- Run the Tap in Sync Mode (with catalog) and write out to state file
For Sync mode:
$ tap-nice-incontact --config tap_config.json --catalog catalog.json >> state.json
$ tail -1 state.json > state.json.tmp && mv state.json.tmp state.json
To load to json files to verify outputs:
$ tap-nice-incontact --config tap_config.json --catalog catalog.json | target-json >> state.json
$ tail -1 state.json > state.json.tmp && mv state.json.tmp state.json
To pseudo-load to Stitch Import API with dry run:
$ tap-nice-incontact --config tap_config.json --catalog catalog.json | target-stitch --config target_config.json --dry-run >> state.json
$ tail -1 state.json > state.json.tmp && mv state.json.tmp state.json
Copyright © 2018 Stitch