No release in over 3 years
Low commit activity in last 3 years
Loads records from Zendesk.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.0
~> 12.0
 Project Readme

Build Status Code Climate Test Coverage Gem Version

Zendesk input plugin for Embulk

Embulk input plugin for loading Zendesk records.

Overview

Required Embulk version >= 0.9.6.

NOTE This plugin don't support JSON type columns e.g. custom fields, tags, etc for now. But they will be supported soon.

  • Plugin type: input
  • Resume supported: no
  • Cleanup supported: no
  • Guess supported: no

Configuration

  • login_url: Login URL for Zendesk (string, required)
  • auth_method: basic, token, or oauth. For more detail on zendesk document. (string, required)
  • 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)
  • includes: Will fetch sub resources. For example, ticket has ticket_audits, ticket_comments. See below example config. (array, default: [])
  • username: The user name a.k.a. email. Required if auth_method is basic or token. (string, default: null)
  • password: Password. required if auth_method is basic. (string, default: null)
  • token: Token. required if auth_method is token. (string, default: null)
  • access_token: OAuth Access Token. required if auth_method is oauth. (string, default: null)
  • start_time: Start export from this time if present. (string, default: null)
  • retry_limit: Try to retry this times (integer, default: 5)
  • retry_initial_wait_sec: Wait seconds for exponential backoff initial value (integer, default: 4)
  • 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)
  • 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)
  • 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.
  • 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.
  • 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.
  • object_types: List custom object types, required if target is object_records.
  • relationship_types: List custom relationship types, required if target is relationship_records.
  • profile_source: Profile source of user event, required if target is user_events.
  • user_event_source: Source of user event, required if target is user_events.
  • user_event_type: Type of user event, required if target is user_events.
  • enable_cursor_based_api: Enable to use cursor based api endpoint for tickets and users target (boolean, default: false)

Example

in:
  type: zendesk
  login_url: https://obscura.zendesk.com
  auth_method: token
  username: jdoe@example.com
  token: 6wiIBWbGkBMo1mRDMuVwkw1EPsNkeUj95PIz2akv
  target: tickets
  includes:
    - audits
    - comments
  start_time: "2015-01-01 00:00:00+0000"

Build

$ ./gradlew package

Test

$ ./gradlew checkstyle test jacocoTestReport