Embulk input plugin for loading Zendesk records.
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
- login_url: Login URL for Zendesk (string, required)
- auth_method:
basic
,token
, oroauth
. 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
oruser_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
isbasic
ortoken
. (string, default:null
) - password: Password. required if
auth_method
isbasic
. (string, default:null
) - token: Token. required if
auth_method
istoken
. (string, default:null
) - access_token: OAuth Access Token. required if
auth_method
isoauth
. (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
isobject_records
. - relationship_types: List custom relationship types, required if
target
isrelationship_records
. - profile_source: Profile source of user event, required if
target
isuser_events
. - user_event_source: Source of user event, required if
target
isuser_events
. - user_event_type: Type of user event, required if
target
isuser_events
. - enable_cursor_based_api: Enable to use cursor based api endpoint for tickets and users target (boolean, default:
false
)
in:
type: zendesk
login_url: https://obscura.zendesk.com
auth_method: token
username: [email protected]
token: 6wiIBWbGkBMo1mRDMuVwkw1EPsNkeUj95PIz2akv
target: tickets
includes:
- audits
- comments
start_time: "2015-01-01 00:00:00+0000"
$ ./gradlew package
$ ./gradlew checkstyle test jacocoTestReport