Zendesk コネクタ

Zendesk Support インスタンスを Tajo 経由で Brevo に接続し、統合された顧客サポートデータ、チケットベースのセグメンテーション、満足度スコアリング、サポートトリガーによるマーケティング自動化を実現します。

概要

プロパティ
プラットフォームZendesk
カテゴリサポート
セットアップの複雑さ
公式統合はい
同期データチケット、ユーザー、組織、イベント
API ベース URLhttps://{subdomain}.zendesk.com/api/v2

機能

  • ユーザー同期 - Zendesk のエンドユーザーとエージェントを Brevo 連絡先と同期
  • チケットトラッキング - サポート認識型マーケティングセグメンテーション用にチケットデータを同期
  • 組織マッピング - B2B ワークフロー用に連絡先を組織に関連付け
  • 満足度スコア - CSAT と NPS データを Brevo 属性に同期
  • チケットイベント - 自動化トリガー用にチケット作成、解決、エスカレーションをトラッキング
  • ヘルプセンター統合 - 記事ビューと検索行動をトラッキング
  • マルチチャンネルサポート - メール、チャット、音声、メッセージングチャンネルからデータを同期
  • カスタムフィールド - Zendesk のカスタムチケットおよびユーザーフィールドを Brevo にマッピング

前提条件

開始する前に、以下を準備してください。

  1. Zendesk Support アカウント(Team、Professional、または Enterprise)
  2. Zendesk インスタンスへの管理者アクセス
  3. 設定済みの API トークンまたは OAuth アプリ
  4. API アクセス可能な Brevo アカウント
  5. Tajo アカウント

認証

API トークン認証

迅速なセットアップのためにメール/トークン認証を使用します。

Terminal window
curl https://{subdomain}.zendesk.com/api/v2/users.json \
-u {email}/token:{api_token} \
-H "Content-Type: application/json"

Zendesk Admin > Apps and Integrations > APIs > Zendesk API から API トークンを生成します。

OAuth 2.0

委任ユーザーアクセスを伴うマルチインスタンス統合には OAuth を使用します。

Terminal window
# 認可 URL
https://{subdomain}.zendesk.com/oauth/authorizations/new?
response_type=code&
client_id={client_id}&
redirect_uri={redirect_uri}&
scope=read%20write

必要なスコープ

read # すべてのリソースへの読み取りアクセス
write # すべてのリソースへの書き込みアクセス
tickets:read # チケットを読み取る(細かい)
users:read # ユーザーを読み取る(細かい)
organizations:read # 組織を読み取る(細かい)

設定

基本セットアップ

connectors:
zendesk:
enabled: true
subdomain: "yourcompany"
auth:
api_token: "${ZENDESK_API_TOKEN}"
# データ同期オプション
sync:
users: true
tickets: true
organizations: true
satisfaction_ratings: true
# Brevo リストの割り当て
lists:
all_customers: 30
active_tickets: 31
satisfied_customers: 32

フィールドマッピング

Zendesk ユーザーフィールドを Brevo 連絡先属性にマッピングします。

デフォルトマッピング

Parameter Type Description
email required
string

ユーザーのメールアドレス(一意識別子)

name optional
string

フルネーム、FIRSTNAME/LASTNAME に分割

phone optional
string

WhatsApp/SMS 用の SMS 属性にマッピング

organization_id optional
integer

B2B マッピング用の関連組織

role optional
string

ユーザーロール(end-user、agent、admin)

tags optional
array

Zendesk のユーザータグ

ticket_restriction optional
string

チケットアクセスレベル

custom_fields optional
object

カスタムユーザーフィールド値

カスタムフィールドマッピング

field_mapping:
# 標準フィールド
email: email
name: FULLNAME
phone: SMS
# サポートメトリクス
open_tickets: OPEN_TICKETS
total_tickets: TOTAL_TICKETS
avg_satisfaction: CSAT_SCORE
last_ticket_date: LAST_SUPPORT_DATE
# 組織フィールド
organization.name: COMPANY_NAME
organization.tags: COMPANY_TAGS
# カスタムフィールド
user_fields.customer_type: CUSTOMER_TYPE
user_fields.account_tier: ACCOUNT_TIER

API エンドポイント

Ticketing API

メソッドエンドポイント説明
GET/api/v2/ticketsチケットを一覧取得
POST/api/v2/ticketsチケットを作成
PUT/api/v2/tickets/{id}チケットを更新
GET/api/v2/tickets/{id}チケットを表示
GET/api/v2/search.json?query={query}チケットを検索

Users API

メソッドエンドポイント説明
GET/api/v2/usersユーザーを一覧取得
POST/api/v2/usersユーザーを作成
PUT/api/v2/users/{id}ユーザーを更新
GET/api/v2/users/{id}ユーザーを表示
GET/api/v2/users/search.json?query={query}ユーザーを検索

Organizations API

メソッドエンドポイント説明
GET/api/v2/organizations組織を一覧取得
POST/api/v2/organizations組織を作成
GET/api/v2/organizations/{id}/users組織メンバーを一覧取得

Satisfaction Ratings API

メソッドエンドポイント説明
GET/api/v2/satisfaction_ratings満足度評価を一覧取得
GET/api/v2/satisfaction_ratings/{id}評価を表示

イベント

チケットイベント

イベントトリガーユースケース
ticket.created新しいチケットが送信サポート確認
ticket.updatedチケットステータス変更ステータス通知
ticket.solvedチケットが解決済みとしてマークCSAT 調査トリガー
ticket.reopened解決済みチケットが再開エスカレーションアラート

ユーザーイベント

イベントトリガーユースケース
user.created新しいユーザー登録サポートへようこそ
user.updatedユーザープロファイル変更属性同期
user.mergedユーザーがマージ重複排除

満足度イベント

イベントトリガーユースケース
satisfaction_rating.createdCSAT が送信フィードバック処理
satisfaction_rating.bad否定的評価リカバリーアウトリーチ
satisfaction_rating.good肯定的評価支持者キャンペーン

コード例

コネクタの初期化

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Zendesk を接続
await tajo.connectors.connect('zendesk', {
subdomain: 'yourcompany',
apiToken: process.env.ZENDESK_API_TOKEN
});

ユーザーとチケットを同期

// ユーザーとチケットデータのフル同期
await tajo.connectors.sync('zendesk', {
type: 'full',
resources: ['users', 'tickets', 'organizations'],
since: '2023-01-01'
});
// 同期ステータスを確認
const status = await tajo.connectors.status('zendesk');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// usersSynced: 8400,
// ticketsSynced: 34200,
// organizationsSynced: 1200
// }

Zendesk Webhook の処理

app.post('/webhooks/zendesk', async (req, res) => {
const signature = req.get('X-Zendesk-Webhook-Signature');
// Webhook 署名を検証
if (!verifyZendeskSignature(req.body, signature)) {
return res.status(401).send('Unauthorized');
}
await tajo.connectors.handleWebhook('zendesk', {
type: req.body.type,
ticketId: req.body.ticket_id,
userId: req.body.user_id,
payload: req.body
});
res.status(200).send('OK');
});

レート制限

Zendesk のレート制限はプランによって異なります。

プランレート制限詳細
Team200 リクエスト/分API トークン単位
Professional400 リクエスト/分API トークン単位
Enterprise700 リクエスト/分API トークン単位
High Volume アドオン2,500 リクエスト/分API トークン単位

追加の制限:

  • Search API: 匿名で 6 リクエスト/分、認証済みで 100/分
  • 増分エクスポート: 10 リクエスト/分
  • Batch API: バッチリクエストあたり 100 レコード
  • Webhook 配信: 指数バックオフによる自動リトライ

レート制限ヘッダー

X-Rate-Limit-RemainingRetry-After ヘッダーを監視して API 使用量を管理してください。

トラブルシューティング

一般的な問題

問題原因解決策
401 UnauthorizedAPI トークンが無効Zendesk Admin でトークンを再生成
403 Forbidden権限不足エージェントまたは管理者ロール要件を確認
ユーザーが同期されないユーザーがエンドユーザーではなくエージェント同期設定で role によりフィルタ
Webhook を受信できないトリガー/ターゲットが未設定Zendesk Admin で Webhook ターゲットを設定
検索結果が空インデックス遅延検索インデックス更新のため 1〜2 分待つ

デバッグモード

詳細ロギングを有効化:

connectors:
zendesk:
debug: true
log_level: verbose
log_webhooks: true

接続テスト

Terminal window
tajo connectors test zendesk
# ✓ API 接続成功
# ✓ ユーザー読み取り可能
# ✓ チケット読み取り可能
# ✓ 組織読み取り可能
# ✓ Webhook 設定済み

ベストプラクティス

  1. 増分エクスポートを使用する - 大規模データ同期には Incremental API を使用
  2. エンドユーザーのみフィルタリング - Brevo 連絡先同期からエージェントと管理者を除外
  3. CSAT データを同期する - 顧客健全性セグメンテーションに満足度スコアを使用
  4. 組織をマッピングする - B2B マーケティングキャンペーンに組織データを活用
  5. Webhook リトライを実装する - 一時的な障害を適切に処理
  6. サイドローディングを使用する - リクエスト数を減らすため API レスポンスに関連レコードを含める

セキュリティ

  • API トークン認証 - 管理者メールに紐付けられたトークンベースアクセス
  • OAuth 2.0 - スコープ制御付きのトークンベース委任アクセス
  • Webhook 署名 - Webhook ペイロードの HMAC 署名検証
  • TLS 暗号化 - すべての API 通信は HTTPS で暗号化
  • IP 許可リスト - IP 範囲で API アクセスを制限

関連リソース

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AIアシスタント

こんにちは!ドキュメントについて何でもお聞きください。