Thanks to visit codestin.com
Credit goes to github.com

Skip to content

singer-io/tap-freshdesk

Repository files navigation

tap-freshdesk

This is a Singer tap that produces JSON-formatted data following the Singer spec.

This tap:

Streams

tickets

  • Primary keys: ['id']
  • Replication strategy: INCREMENTAL

conversations

  • Primary keys: ['id']
  • Replication strategy: INCREMENTAL

contacts

  • Primary keys: ['id']
  • Replication strategy: INCREMENTAL

companies

  • Primary keys: ['id']
  • Replication strategy: INCREMENTAL

satisfaction_ratings

  • Primary keys: ['id']
  • Replication strategy: INCREMENTAL

time_entries

  • Primary keys: ['id']
  • Replication strategy: INCREMENTAL

agents

  • Primary keys: ['id']
  • Replication strategy: FULL_TABLE

groups

  • Primary keys: ['id']
  • Replication strategy: FULL_TABLE

roles

  • Primary keys: ['id']
  • Replication strategy: FULL_TABLE

Authentication

Quick Start

  1. Install

    Clone this repository, and then install using setup.py. We recommend using a virtualenv:

    > virtualenv -p python3 venv
    > source venv/bin/activate
    > python setup.py install
    OR
    > cd .../tap-freshdesk
    > pip install -e .
  2. Get your Freshdesk API Key

    Login to your Freshdesk account, navigate to your profile settings page, and save "Your API Token", you'll need it for the next step.

  3. Create your tap's config.json file. The tap config file for this tap should include these entries: Create a JSON file called config.json containing the api token you just found and the subdomain to your Freshdesk account. The subdomain will take the format subdomain.freshdesk.com.

    {
      "api_key": "your-api-token",
      "domain": "subdomain",
      "start_date": "2017-01-17T20:32:05Z"
    }
    Optionally, also create a `state.json` file. `currently_syncing` is an optional attribute used for identifying the last object to be synced in case the job is interrupted mid-stream. The next run would begin where the last job left off.
    
    ```json
    {
        "currently_syncing": "agents",
        "bookmarks": {
            "companies": "2019-09-27T22:34:39.000000Z",
            "contacts": "2019-09-28T15:30:26.000000Z"
        }
    }
    
  4. Run the Tap in Discovery Mode This creates a catalog.json for selecting objects/fields to integrate:

    tap-freshdesk --config config.json --discover > catalog.json

    See the Singer docs on discovery mode here

  5. Run the Tap in Sync Mode (with catalog) and write out to state file

    For Sync mode:

    > tap-freshdesk --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-freshdesk --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-freshdesk --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
  6. Test the Tap

    While developing the freshdesk tap, the following utilities were run in accordance with Singer.io best practices: Pylint to improve code quality

    > pylint tap_freshdesk -d missing-docstring -d logging-format-interpolation -d too-many-locals -d too-many-arguments

    Pylint test resulted in the following score:

    Your code has been rated at 9.67/10

    To check the tap

    > tap-freshdesk --config tap_config.json --catalog catalog.json | singer-check-tap > state.json
    > tail -1 state.json > state.json.tmp && mv state.json.tmp state.json

    Unit Tests

    Unit tests may be run with the following.

    python -m pytest --verbose
    

    Note, you may need to install test dependencies.

    pip install -e .'[dev]'
    

Copyright © 2017 Stitch

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 19

Languages