4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TROCCOの転送先カスタムコネクタを利用して、Zendeskのチケットにフォロワーを自動追加する

4
Posted at

はじめに

TROCCOには、標準で提供していないサービスへのデータ転送を実現する転送先カスタムコネクタという機能があります。対象サービスがREST APIを提供していれば、カスタムコネクタを使ってTROCCOからデータを転送できる可能性があります(TROCCOのカスタムコネクタの仕様を満たしている必要があります)。

この記事では、カスタムコネクタの活用例としてZendeskチケットへのフォロワーをTROCCOから自動追加する方法を紹介します。

なぜZendeskのトリガー機能を使わないのか

Zendeskにはチケットの更新をトリガーに処理を自動化する機能があります。フォロワーの追加もトリガーで実現できますが、今回はあえてこの方法を選びませんでした。その理由は、CS担当者の情報をZendeskに持ちたくなかったからです。
Zendeskのトリガーでフォロワーをチケットにアサインするには、ユーザーや組織にCS担当者の情報を登録しておく必要があります。しかし、ユーザーごとのCS担当者の情報はすでにSalesforce上で管理しており、Zendeskにも同じ情報を登録・維持するのは二重管理になってしまいます。

そこで今回は、Salesforceからユーザー情報とCS担当者情報を取得し、紐付けたうえでZendeskのチケットにフォロワーとして付与するという方法をTROCCOで実現しました。

この記事でやること・完成イメージ

具体的には以下の流れで実現します。

  1. SalesforceからユーザーとCS担当者の情報を取得してBigQueryに転送する
  2. Zendeskから昨日作成されたチケットを取得してBigQueryに転送する
  3. SalesforceのユーザーとCS担当者の情報とZendeskのチケットを紐づける
  4. 転送先カスタムコネクタを使ってチケットにフォロワーを追加する
  5. 転送先カスタムコネクタを使ってチケットに社内メモを追加する(フォロワーへの通知を送信するため)

最終的には、Zendeskの各チケットに対して、対応するCS担当者がフォロワーとして自動で追加され、メールで通知が送信される状態になります。

前提・環境

本記事の手順を試すにあたり、以下が必要です。

  • TROCCO:転送先カスタムコネクタが利用できるプラン(Advancedプラン以上)
  • ユーザー・担当者情報のマスタ:ユーザー情報とCS担当者のメールアドレスが管理されているデータソース(本記事ではSalesforceを使用していますが、他のサービスでも代替可能です)
  • BigQuery
  • Zendesk:リクエストを作成するユーザーは、事前にSalesforce上で登録されていること。登録されていないユーザーからのリクエストはフォロワー追加の対象外となります

本記事ではCS担当者の識別にメールアドレスを使用しています。担当者情報にメールアドレスが含まれていれば、Salesforce以外のデータソースでも同様の構成で実現できます。

転送先カスタムコネクタとは

TROCCOの転送先カスタムコネクタは、TROCCOが標準で提供していない転送先へのデータ転送を実現する機能です。対象サービスがREST APIを提供していれば、カスタムコネクタを使ってTROCCOからデータを転送できる可能性があります。
詳しい仕様や設定方法については、公式ドキュメントをご参照ください。

手順

1. SalesforceからユーザーとCS担当者の情報を取得してBigQueryに転送する

TROCCOでSalesforceを転送元、BigQueryを転送先として設定し、データを転送します。
取得するデータは以下の2つです。

  • TROCCOアカウントのユーザー情報:メールアドレスを含むユーザーデータ
  • CS担当者の情報:各ユーザーに紐づくCS担当者のメールアドレスと担当者情報

Zendeskのチケットにはチケット作成者のメールアドレスがセットされており、このメールアドレスをキーにSalesforceのユーザー情報と紐づけることで、対応するCS担当者を特定します。

2. Zendeskからチケット情報を取得してBigQueryに転送する

同様に、TROCCOでZendesk Supportを転送元、BigQueryを転送先として設定します。

3. SalesforceのユーザーとCS担当者の情報とZendeskのチケットを紐づける

BigQueryに転送したSalesforceのデータとZendeskのチケットデータを紐づけます。紐づけにはTROCCOのデータマート定義を使用します。データマート定義では、クエリを書いてデータを加工することができます。

クエリに関しては詳細は挙げないのですが、ポイントは以下です。

  • 日本時間で「昨日作成されたチケット」を絞り込む
    created_at BETWEEN "$day_before_yesterday$ 15:00:00" AND "$yesterday$ 15:00:00" でUTC基準の前日15時〜当日15時、つまり日本時間の翌日0時〜24時を取得しています。TROCCOのカスタム変数機能を使って日付を動的に指定しています。
  • メールアドレスでチケットのリクエスタとSalesforceのユーザーを紐づけている
    チケットのリクエスタのメールアドレスをキーに、Salesforceのユーザーと結合してCS担当者と紐づけています。これが前提・環境で説明した「弊社管理ユーザーのみ対象」という条件の実装部分です。

▼ 作成したデータマート一部抜粋(全てダミーデータです)

ticket_id cs_staff_email cs_staff_zendesk_id requester_id requester_email
100234 suzuki@sample.com 1234567890 98765 yamada@sample.co.jp
100235 tanaka@sample.com 2345678901 98766 sato@sample.co.jp
100236 null null 98767 kim@sample.co.jp
100237 suzuki@sample.com 1234567890 98768 nakamura@sample.co.jp
100238 ishida@sample.com 3456789012 98769 chen@sample.co.jp
100239 null null 98770 tanaka@sample.co.jp

事前準備:転送先カスタムコネクタの作成

転送先カスタムコネクタの詳しい作成方法については、こちらの記事をご参照ください。
ここでは設定手順を簡単に紹介します。

4-1. 転送先カスタムコネクタを作成する

TROCCOの管理画面から転送先カスタムコネクタを新規作成します。ベースURLにはZendesk Support APIのベースURLを設定します。
Zendesk_1.png

4-2. 接続情報を作成する

ZendeskのAPIトークンを使って接続情報を作成します。APIトークンはZendeskの管理画面から発行できます。
APIトークンを発行したら、{email_address}/token:{api_token} でBase64エンコードしてTROCCOに登録してください。

4-3. フォロワー追加用のエンドポイントを追加する

作成したカスタムコネクタにフォロワーを追加するためのエンドポイントを設定します。Zendeskのチケット更新APIを使用し、チケットIDとフォロワーに設定するCS担当者のメールアドレスを含めるリクエストテンプレートを定義します。

このように書くと複数チケットのフォロワーをまとめて更新することができます。
followersには、[{"user_id":zendesk_user_id,"action":"put"}] が入ります。

{
  "tickets": [
    {% for row in rows %}
    {
      "id": {{ row.ticket_id }},
      "followers": {{ row.followers }}
    }{% unless forloop.last %},{% endunless %}
    {% endfor %}
  ]
}

4-4. 社内メモ追加用のエンドポイントを追加する

同様に、社内メモを追加するためのエンドポイントを設定します。先ほどと同じAPIを利用して、リクエストテンプレートを以下のように定義して社内メモを追加しました。
チケットIDは転送元のレコードごとに切り替え、社内メモ(comment)は一律「CS担当者フォロー対応」と入力されるようにしました。

{
  "tickets": [
    {% for row in rows %}
    {
      "id": {{ row.ticket_id }},
      "comment": {"body": "CS担当者フォロー対応","public": false}
    }{% unless forloop.last %},{% endunless %}
    {% endfor %}
  ]
}

4. 転送先カスタムコネクタを使ってチケットにフォロワーを追加する

BigQueryを転送元、4-3で作成したカスタムコネクタを転送先として設定し、Zendeskのチケットにフォロワーを追加します。
転送元のBigQueryの設定項目のSQLは以下のように入力します。手順3で作成したデータマートを参照します。

SELECT
    ticket_id,
    TO_JSON_STRING(
        [STRUCT(cs_staff_zendesk_user_id AS user_id, 'put' AS action)]
    ) AS followers
FROM `project.dataset.datamart_table`
WHERE cs_staff_zendesk_user_id IS NOT NULL

WHERE cs_staff_zendesk_user_id IS NOT NULL で、CS担当者が特定できなかったチケットを除外しています。また TO_JSON_STRING を使って、ZendeskのAPIが受け付けるJSON形式にフォロワー情報を変換しています。action: 'put' はフォロワーの追加を意味します。4-3で定義したリクエストテンプレートに合う形で整形しました。

5. 転送先カスタムコネクタを使ってチケットに社内メモを追加する

BigQueryを転送元、4-4で作成したカスタムコネクタを転送先として設定し、フォロワーへの通知を送信するため、チケットに社内メモを追加します。

転送元のBigQueryの設定項目のSQLは以下のように入力します。手順3で作成したデータマートを参照します。

SELECT
    ticket_id
FROM `project.dataset.datamart_table`
WHERE cs_staff_zendesk_user_id IS NOT NULL

手順4と同様に WHERE cs_staff_zendesk_user_id IS NOT NULL でCS担当者が特定できなかったチケットを除外しています。社内メモの追加に必要なのはチケットIDのみのため、ticket_id だけを取得しています。

6. ワークフローを設定してスケジュール実行する

手順1〜5で設定した転送設定・データマートを、TROCCOのワークフロー機能を使って一連の流れとして実行できるようにします。

スクリーンショット 2026-05-28 15.39.54.png

ワークフローにはスケジュール実行の設定もできるため、毎日自動で実行されるように設定します。これにより、前日に作成されたZendeskのチケットに対して、毎朝自動でCS担当者がフォロワーとして追加され、通知される仕組みが完成します。

動作確認

ジョブを実行後、Zendeskのチケット画面を開き、以下の3点を確認します。

  • フォロワー欄に対応するCS担当者が表示されていること
  • 社内メモ欄に「CS担当者フォロー対応」が追加されていること
  • フォロワーに追加されたユーザーに対してメールが送信されていること

上記が確認できれば設定は完了です。

スクリーンショット 2026-05-28 16.07.19.png

まとめ

今回は、TROCCOの転送先カスタムコネクタを使って、ZendeskのチケットにCS担当者をフォロワーとして自動追加する仕組みを構築しました。
Zendeskのトリガーを使わずに、Salesforce上で一元管理している担当者情報をそのまま活用できたことで、データの二重管理を避けつつ自動化を実現できました。
転送先カスタムコネクタはREST APIを提供しているサービスであれば幅広く活用できます。「TROCCOに対応していないサービスだから転送できない」と思っていたサービスへのデータ転送も、カスタムコネクタで実現できるかもしれません。ぜひ一度試してみてください。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?