[一部非推奨]Zendeskチケット起票時に、チケットやユーザーデータを元に文章を作成してAPIで社内メモに追加する
やること
- トリガの JSON ボディで動的コンテンツを参照
- 動的コンテンツ内でチケットやユーザーデータを参照
- [非推奨]Webhook のエンドポイントに Update Ticket のエンドポイントを指定
参考
質問
トリガや自動化を使用してチケットを更新したいと思っています。更新したいチケット属性では、ビジネスルールを使用してアクセスできません。Support APIを使用して、更新を正常に行うことはできます。トリガや自動化で、API経由でチケットを更新するWebhookに通知することはできますか?
回答
いいえ、このワークフローはお勧めできません。またサポートされていません。チケットがビジネスルールとAPIによって同時に更新されると、エラーが発生しやすくなります。このような状況が発生した場合、「競合状態」と呼ばれます。
実装
動的コンテンツを作成
コンテンツは以下のように指定します。(一部抜粋)
**組織メモ**
{%if ticket.organization.notes == "" %}特になし
{% else %}{{ticket.organization.notes}}
{% endif %}
**ユーザーメモ**
{%if ticket.requester.notes == "" %}特になし
{% else %}{{ticket.requester.notes}}
{% endif %}
動的コンテンツで作成されたプレースホルダをメモしておきます
{{dc.trigger-private_memo-notes_organization_requester}}
Webhook を作成
- 接続方法:トリガまたは自動化
- 名前:任意
- エンドポイントURL:https://サブドメイン.zendesk.com/api/v2/tickets/{{ticket.id}}.json
- リクエスト方法:PUT
- リクエスト形式:JSON
- 認証:基本認証(任意)
- APIトークンで認証する場合は、ユーザー名の最後に/tokenを追加する
トリガの作成
以下のようなトリガを作成します。
- トリガ名:※任意
- 説明:※任意
- カテゴリ:※任意
条件
以下の条件をすべて満たす
- ブランド = ※任意
- フォーム = ※任意
- タグ 少なくとも次の1つを含む kakeitest
- チケット = 更新された
以下のいずれかの条件を満たす
- タグ 次のいずれも含まない kakeitest-done
アクション
- タグを追加 kakeitest-done
- アクティブなWebhookに通知 ※先程作成したWebhook
- JSONボディ ※以下参照
{
"ticket": {
"comment": {
"body": "{{dc.trigger-private_memo-notes_organization_requester}}",
"public": false
}
}
}
補足
- トリガの多重起動防止のために、アクション時にkakeitest-doneというタグを付与しています
- JSONボディ内で、作成した動的コンテンツのプレースホルダ({{dc.trigger-private_memo-notes_organization_requester}})を入力しています。
テスト
テストチケットを開き、組織とユーザープロフィールのメモに「テスト」と記載
トリガの条件に合う形でチケット更新。すると想定通りのメッセージが社内メモに追加された
テストチケットを開き、組織とユーザープロフィールのメモをブランクにする
トリガの条件に合う形でチケット更新。すると想定通りのメッセージが社内メモに追加された
冒頭にも記載しましたが、このやり方は公式サポートされておらず、ビジネスルールとAPIの競合が発生してエラーが発生する場合があるそうです。一方でリスク承知の上にはなりますが、今回のようにチケット作成時にLambdaを挟まずに独自の社内メモを投稿できるのは個人的に魅力的だなと思いました。(Lambdaを挟んでもエラーが発生するリスクはあります)
今後のZendeskが同等機能を公式提供してくれることに期待です。
質問
トリガや自動化を使用してチケットを更新したいと思っています。更新したいチケット属性では、ビジネスルールを使用してアクセスできません。Support APIを使用して、更新を正常に行うことはできます。トリガや自動化で、API経由でチケットを更新するWebhookに通知することはできますか?
回答
いいえ、このワークフローはお勧めできません。またサポートされていません。チケットがビジネスルールとAPIによって同時に更新されると、エラーが発生しやすくなります。このような状況が発生した場合、「競合状態」と呼ばれます。