Skip to content

edgarrmondragon/tap-zendesk

Repository files navigation

tap-zendesk

Singer tap for Zendesk.

Built with the Meltano Tap SDK for Singer Taps.

Capabilities

  • catalog
  • state
  • discover
  • about
  • stream-maps
  • schema-flattening
  • batch

Supported Python Versions

  • 3.8
  • 3.9
  • 3.10
  • 3.11

Supported streams

Stream name API endpoint
users GET /api/v2/users

Other streams are available for sponsors.

The following streams will be made generally available when the corresponding sponsorship milestone is reached:

Stream name API endpoint Sponsorship Milestone
tickets GET /api/v2/tickets $50
groups GET /api/v2/groups $100
ticket_comments GET /api/v2/tickets/{ticket_id}/comments $500

Incremental Replication

Incremental replication is not supported. See #3.

Settings

Setting Required Default Description
subdomain True None Zendesk subdomain
auth True None Zendesk authentication method
auth.type True None See supported authenticated methods
auth.api_token - None Zendesk API token for api_token authentication
auth.email_address - None Zendesk Email for api_token authentication
start_date False None Earliest datetime to get data from
stream_maps False None Config object for stream maps capability. For more information check out Stream Maps.
stream_map_config False None User-defined config values to be used within map expressions.
flattening_enabled False None 'True' to enable schema flattening and automatically expand nested properties.
flattening_max_depth False None The max depth to flatten schemas.
batch_config False None

A full list of supported settings and capabilities is available by running: tap-zendesk --about

Source Authentication and Authorization

The following authentication methods are supported:

Planned:

Usage

You can easily run tap-zendesk by itself or in a pipeline using Meltano.

Executing the Tap Directly

tap-zendesk --version
tap-zendesk --help
tap-zendesk --config CONFIG --discover > ./catalog.json

Selected custom fields

Nested custom fields required the user to declare them in schema object of the tap catalog.

Using Meltano, this becomes simple using the schema and metadata extras:

# meltano.yml
plugins:
  extractors:
  - name: tap-zendesk

    # Add custom fields to the schema
    schema:
      users:
        user_fields:
          type: object
          properties:
            test_custom_field:
              type: [string, "null"]
            test_pii_field:
              type: [integer, "null"]

    # Select the custom fields you want to sync
    select:
      - users.*
      - "users.user_fields"
      - "users.user_fields.*"
      - "!users.user_fields.test_pii_field"

Developer Resources

Initialize your Development Environment

pipx install poetry
poetry install

Create and Run Tests

Create tests within the tests subfolder and then run:

poetry run pytest

You can also test the tap-zendesk CLI interface directly using poetry run:

poetry run tap-zendesk --help

Testing with Meltano

Note: This tap will work in any Singer environment and does not require Meltano. Examples here are for convenience and to streamline end-to-end orchestration scenarios.

Next, install Meltano (if you haven't already) and any needed plugins:

# Install meltano
pipx install meltano
# Initialize meltano within this directory
cd tap-zendesk
meltano install

Now you can test and orchestrate using Meltano:

# Test invocation:
meltano invoke tap-zendesk --version
# OR run a test `elt` pipeline:
meltano elt tap-zendesk target-jsonl

SDK Dev Guide

See the dev guide for more instructions on how to use the SDK to develop your own taps and targets.

About

Singer Tap for the Zendesk API

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages