Singer Tap for the Zendesk API
APACHE-2.0 License
tap-zendesk
Singer tap for Zendesk.
Built with the Meltano Tap SDK for Singer Taps.
catalog
state
discover
about
stream-maps
schema-flattening
batch
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 is not supported. See https://github.com/edgarrmondragon/tap-zendesk/issues/3.
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
The following authentication methods are supported:
Planned:
You can easily run tap-zendesk
by itself or in a pipeline using Meltano.
tap-zendesk --version
tap-zendesk --help
tap-zendesk --config CONFIG --discover > ./catalog.json
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"
pipx install poetry
poetry install
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
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
See the dev guide for more instructions on how to use the SDK to develop your own taps and targets.