Zendesk Users output plugin for Embulk
NOTE: I don't proactively maintain this repo. I will do when I have time. So, feel free to folk if you want.
Embulk output plugin for Zendesk to update Zendesk User infomation. Fro more details, see https://developer.zendesk.com/rest_api/docs/core/users#content
This plugin's feature is limited, which allows you to update Zendesk User's tags and user_fileds.
Overview
- Plugin type: output
- Load all or nothing: no
- Resume supported: no
- Cleanup supported: no
Configuration
- login_url: Login URL for Zendesk (string, required)
-
auth_method: Zendesk auth method (string, default:
token
) - username: Zendesk Username (string, required)
- token: Zendesk API Token (string, required if auth_method is token)
-
method: control whether to update the existing user or create new user(not supported) (string, default:
update
) -
id_column: column name for user's id (long, default:
id
) -
tags_column: column name for tags. Each tag is separated by comma (
string
, optional, default:null
, overwrote) -
user_fields_column: column name for Values of custom fields in the user's profile. (json, optional, default:
null
)
The following fields are supported at only upsert
method
-
name_column: column name for user's name (
string
, default:""
) -
phone_column: column name for user's phone number (string, default:
null
) -
email_column: column name for user's email (
string
, default:null
) -
external_id_column: column name for external_id (
long
, default:null
) -
role_column: column name for user's role (
long
, default:null
)
Example
Config
in:
type: config
columns:
- {name: id, type: long}
- {name: tags, type: json}
- {name: user_fields, type: json}
values:
- - [ 1194094257, ["tag1", "tag2"], { "field0": "Support description", "field01": "2013-02-27T20:35:55Z" } ]
- [ 9811482788, ["tag3"], { "field0": "Support description" } ]
out:
type: zendesk_users
login_url: https://obscura.zendesk.com
auth_method: token
username: test@example.com
token: xxxxxxxxxx
method: update
id_column: id
tags_column: tags
user_fields_column: user_fields
in:
type: config
columns:
- {name: id, type: long}
- {name: tags, type: json}
- {name: user_fields, type: json}
- {name: name, type: string}
- {name: phone, type: string}
- {name: email, type: string }
- {name: external_id, type: long}
- {name: role, type: long}
values:
- - [ 9811482788, ["tag1", "tag2"], { "xxxx": "Support description", "date": "2013-02-27T20:35:55Z" }, 'name testing', '000-000-000', 'toru+3@xxxxx-data.com', 111, 2859697]
- [ 0001010, ["tag3"], { "xxxx": "Support description" }, 'name testing2', '000-0000001', 'toru+4@xxxxx-data.com', 113, 2859707]
out:
type: zendesk_users
login_url: https://xxxx.zendesk.com
auth_method: token
username: xxxx
token: xxxxx
method: upsert
id_column: id
tags_column: tags
user_fields_column: user_fields
name_column: name
phone_column: phone
email_column: email
external_id_column: external_id
role_column: role
Data
- tags_column requires string data containing terms which separated by comma; Ex.
attention,attack,test
- user_fields_column requires JSON data. For more details about available keys, See https://developer.zendesk.com/rest_api/docs/core/user_fields#json-format
Build
$ rake