{"id":27627209,"url":"https://github.com/treasure-data/embulk-input-zendesk","last_synced_at":"2025-04-23T13:53:35.500Z","repository":{"id":3647594,"uuid":"49929425","full_name":"treasure-data/embulk-input-zendesk","owner":"treasure-data","description":"Embulk Input Plugin for Zendesk","archived":false,"fork":false,"pushed_at":"2025-03-26T10:02:29.000Z","size":663,"stargazers_count":8,"open_issues_count":3,"forks_count":12,"subscribers_count":87,"default_branch":"master","last_synced_at":"2025-03-26T11:22:28.832Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.treasuredata.com/articles/data-connector-zendesk","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/treasure-data.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-19T05:44:26.000Z","updated_at":"2024-11-08T04:23:35.000Z","dependencies_parsed_at":"2024-10-23T09:17:45.092Z","dependency_job_id":"5776d160-bb6f-488d-b950-00628ca1546b","html_url":"https://github.com/treasure-data/embulk-input-zendesk","commit_stats":{"total_commits":298,"total_committers":14,"mean_commits":"21.285714285714285","dds":0.6610738255033557,"last_synced_commit":"3eed950f81ab1da59f279b5980f77f75b468462e"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treasure-data%2Fembulk-input-zendesk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treasure-data%2Fembulk-input-zendesk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treasure-data%2Fembulk-input-zendesk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/treasure-data%2Fembulk-input-zendesk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/treasure-data","download_url":"https://codeload.github.com/treasure-data/embulk-input-zendesk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250444216,"owners_count":21431607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-23T13:53:34.552Z","updated_at":"2025-04-23T13:53:35.492Z","avatar_url":"https://github.com/treasure-data.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/treasure-data/embulk-input-zendesk.svg?branch=master)](https://travis-ci.org/treasure-data/embulk-input-zendesk)\n[![Code Climate](https://codeclimate.com/github/treasure-data/embulk-input-zendesk/badges/gpa.svg)](https://codeclimate.com/github/treasure-data/embulk-input-zendesk)\n[![Test Coverage](https://codeclimate.com/github/treasure-data/embulk-input-zendesk/badges/coverage.svg)](https://codeclimate.com/github/treasure-data/embulk-input-zendesk/coverage)\n[![Gem Version](https://badge.fury.io/rb/embulk-input-zendesk.svg)](https://badge.fury.io/rb/embulk-input-zendesk)\n\n# Zendesk input plugin for Embulk\n\nEmbulk input plugin for loading [Zendesk](https://www.zendesk.com/) records.\n\n## Overview\n\nRequired Embulk version \u003e= 0.9.6.\n\n**NOTE** This plugin don't support JSON type columns e.g. custom fields, tags, etc for now. But they will be supported soon.\n\n* **Plugin type**: input\n* **Resume supported**: no\n* **Cleanup supported**: no\n* **Guess supported**: no\n\n## Configuration\n\n- **login_url**: Login URL for Zendesk (string, required)\n- **auth_method**: `basic`, `token`, or `oauth`. For more detail on [zendesk document](https://developer.zendesk.com/rest_api/docs/core/introduction#security-and-authentication). (string, required)\n- **target**: Which export Zendesk resource. Currently supported are `tickets`, `ticket_events`, `users`, `organizations`, `ticket_fields`, `ticket_forms`, `ticket_metrics`, `scores`, `recipients`, `object_records`, `relationship_records` or `user_events`. (string, required)\n- **includes**: Will fetch sub resources. For example, ticket has ticket_audits, ticket_comments. See below example config. (array, default: `[]`)\n- **username**: The user name a.k.a. email. Required if `auth_method` is `basic` or `token`. (string, default: `null`)\n- **password**: Password. required if `auth_method` is `basic`. (string, default: `null`)\n- **token**: Token. required if `auth_method` is `token`. (string, default: `null`)\n- **access_token**: OAuth Access Token. required if `auth_method` is `oauth`. (string, default: `null`)\n- **start_time**: Start export from this time if present. (string, default: `null`)\n- **retry_limit**: Try to retry this times (integer, default: 5)\n- **retry_initial_wait_sec**: Wait seconds for exponential backoff initial value (integer, default: 4)\n- **incremental**: If false, `start_time` in next.yml would not be updated that means you always fetch all of data from Zendesk with statically conditions. If true, `start_time` would be updated in next.yml. (bool, default: `true`)\n- **dedup**: Zendesk incremental API is not designed to protect against duplication. In order to de-dup records, plugin has to cache fetched IDs in memory. If you're importing a large dataset (eg. tens of millions of records), it can lead to OOM error, depends on your configured heap size. In such cases, you can set this option to `false`, but keep in mind that result may contain duplicated records. (bool, default: `true`)\n- **app_marketplace_integration_name**: Invisible to user, only requires to be a part of the Zendesk Apps Marketplace. This should be used to name of the integration.\n- **app_marketplace_org_id**: Invisible to user, only requires to be a part of the Zendesk Apps Marketplace. This should be the Organization ID for your organization from the new developer portal.\n- **app_marketplace_app_id**: Invisible to user, only requires to be a part of the Zendesk Apps Marketplace. This is the “App ID” that will be assigned to you when you submit your app.\n- **object_types**: List custom object types, required if `target` is `object_records`.\n- **relationship_types**: List custom relationship types, required if `target` is `relationship_records`.\n- **profile_source**: Profile source of user event, required if `target` is `user_events`.\n- **user_event_source**: Source of user event, required if `target` is `user_events`.\n- **user_event_type**: Type of user event, required if `target` is `user_events`.   \n- **enable_cursor_based_api**: Enable to use cursor based api endpoint for tickets and users target (boolean, default: `false`)\n\n## Example\n\n```yaml\nin:\n  type: zendesk\n  login_url: https://obscura.zendesk.com\n  auth_method: token\n  username: jdoe@example.com\n  token: 6wiIBWbGkBMo1mRDMuVwkw1EPsNkeUj95PIz2akv\n  target: tickets\n  includes:\n    - audits\n    - comments\n  start_time: \"2015-01-01 00:00:00+0000\"\n```\n\n\n## Build\n\n```\n$ ./gradlew package\n```\n\n## Test\n\n```\n$ ./gradlew checkstyle test jacocoTestReport\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreasure-data%2Fembulk-input-zendesk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftreasure-data%2Fembulk-input-zendesk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftreasure-data%2Fembulk-input-zendesk/lists"}