Zendesk自動化APIリファレンス:実践的な開発者向けガイド

Stevia Putri

Stanley Nicholas
Last edited 2026 2月 24
Expert Verified
Zendesk自動化APIを使用すると、サポート業務を円滑に進めるための時間ベースのビジネスルールをプログラムで制御できます。トリガーがイベントの発生時に即座に発動するのに対し、自動化はスケジュールに従って実行され、1時間ごとに条件をチェックし、条件が満たされたときにアクションを実行します。
カスタム統合を構築したり、環境間でワークフローを移行したり、Zendeskを大規模に管理したりする場合は、このAPIを理解することが不可欠です。このガイドでは、認証から実際のコード例まで、自動化を効果的に実装するために必要なすべてを網羅しています。
開発リソースを持たないチームには、別の方法があります。eesel AIはZendeskに直接接続し、ノーコードインターフェースを通じて同じ自動化シナリオの多くを処理します。両方のアプローチを検討し、チームに最適なものを選択できるようにします。

Zendesk自動化について
自動化とは、特定の条件が満たされたときに1つ以上のアクションを実行する時間ベースのビジネスルールです。チケットの作成やステータスの変更などのイベントに即座に応答するトリガーとは異なり、自動化は1時間ごとに条件を評価します。
主な違いは次のとおりです。
- トリガー はイベントに即座に反応します。トリガーは、チケットが作成、更新されたとき、または特定のフィールドが変更されたときに発動します。
- 自動化 はスケジュールに従って実行されます。1時間ごとに条件をチェックし、条件が真の場合にのみアクションを実行します。
このタイミングにより、自動化は、アクションを実行する前に待機する必要があるシナリオに最適です。一般的なユースケースは次のとおりです。
- SLAアラート: チケットが24時間以内に解決されない場合にマネージャーに通知する
- チケットのエスカレーション: オープン状態が長すぎるチケットの優先度を上げたり、再割り当てしたりする
- フォローアップシーケンス: 応答のない顧客にリマインダーメールを送信する
- 古いチケットのクリーンアップ: 一定期間非アクティブな解決済みのチケットをクローズする
- エージェントのワークロードのバランス調整: 過負荷のエージェントからチケットを再割り当てする
自動化のライフサイクルは次のようになります。1時間ごとに、Zendeskは時間ベースの基準を満たすすべてのチケットに対して、すべてのアクティブな自動化を評価します。条件が一致すると、アクションが実行されます。重要なのは、条件が真のままである限り、自動化は引き続き発動するため、繰り返しのアクションを回避するように慎重に設計する必要があることです。
認証とセットアップ
API経由で自動化を作成または管理する前に、認証を設定する必要があります。Zendesk自動化APIは、HTTP Basic Authによるトークンベースの認証を使用します。
APIトークンの生成
- 管理者としてZendeskにサインインします
- 管理センター > アプリと連携機能 > API > Zendesk APIに移動します
- 設定タブをクリックします
- トークンアクセスがまだ有効になっていない場合は有効にします
- **+**ボタンをクリックして、新しいトークンを追加します
- トークンに「自動化管理」などのわかりやすい名前を付けます
- トークンをすぐにコピーします(再度表示されることはありません)
詳細なガイダンスについては、APIトークンの生成に関するZendeskドキュメントを参照してください。
認証形式
Zendesk自動化APIは、Basic認証を使用します。次の形式で資格情報をBase64エンコードする必要があります。
{email_address}/token:{api_token}
たとえば、メールアドレスがadmin@company.comで、トークンがabc123xyzの場合、エンコードします。
admin@company.com/token:abc123xyz
認証をテストするためのcurlコマンドを次に示します。
curl https://{subdomain}.zendesk.com/api/v2/automations \
-v -u {email_address}/token:{api_token}
{subdomain}をZendeskサブドメインに、{email_address}を管理者メールに、{api_token}を生成したトークンに置き換えます。
ベースURL構造
すべての自動化APIエンドポイントは、次のベースURLを使用します。
https://{subdomain}.zendesk.com/api/v2/automations
レート制限
Zendeskは、システムの安定性を維持するためにレート制限を適用します。ほとんどのエンドポイントは1分あたり700リクエストを許可していますが、これはプランとエンドポイントによって異なる場合があります。制限を超えると、429 Too Many Requestsレスポンスが返されます。これを適切に処理するために、コードに指数バックオフを実装してください。
コアAPIエンドポイント
自動化APIは、標準的なCRUD操作を提供します。最も頻繁に使用するエンドポイントを次に示します。
自動化のリスト
GET /api/v2/automations
このエンドポイントは、アカウントのすべての自動化を返します。アクティブなステータスでフィルタリングし、ソートを制御できます。
利用可能なパラメーター:
| パラメーター | タイプ | 説明 |
|---|---|---|
| active | boolean | アクティブ(true)または非アクティブ(false)な自動化にフィルタリングする |
| sort_by | string | 「alphabetical」、「created_at」、「updated_at」、「usage_1h」、「usage_24h」、または「usage_7d」でソートする |
| sort_order | string | 「asc」または「desc」 |
curlの例:
curl https://{subdomain}.zendesk.com/api/v2/automations?active=true \
-u {email_address}/token:{api_token}
自動化の表示
GET /api/v2/automations/{id}
IDで単一の自動化を取得します。
curlの例:
curl https://{subdomain}.zendesk.com/api/v2/automations/25 \
-u {email_address}/token:{api_token}
自動化の作成
POST /api/v2/automations
新しい自動化を作成します。リクエストボディには、自動化定義を含むJSONオブジェクトを含める必要があります。
新しい自動化の重要な要件:
- 少なくとも1つの時間ベースの条件が必要です
status、type、group_id、assignee_id、またはrequester_idをチェックする条件を少なくとも1つ含める必要があります- 少なくとも1つの条件を無効にするアクションが必要です(無限ループを防ぎます)
curlの例:
curl -u {email_address}/token:{api_token} \
https://{subdomain}.zendesk.com/api/v2/automations \
-H "Content-Type: application/json" -X POST -d \
'{
"automation": {
"title": "古いチケットのエスカレーション",
"all": [
{ "field": "status", "operator": "is", "value": "open" },
{ "field": "hours_since_created", "operator": "greater_than", "value": "24" }
],
"actions": [
{ "field": "priority", "value": "high" }
]
}
}'
自動化の更新
PUT /api/v2/automations/{id}
既存の自動化を変更します。変更を加えた完全な自動化オブジェクトを送信します。
自動化の削除
DELETE /api/v2/automations/{id}
自動化を完全に削除します。
ページネーション
APIは、次の2つのページネーション方法をサポートしています。
- カーソルページネーション(推奨):大規模なデータセットでパフォーマンスを向上させるには、
?page[size]=50&page[after]=cursorを使用します - オフセットページネーション: より簡単な実装には、
?page=2&per_page=50を使用します
自動化オブジェクト構造
自動化は、特定のプロパティを持つJSONオブジェクトとして表されます。この構造を理解することは、効果的な自動化を構築するための鍵です。
コアプロパティ
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
| title | string | はい | 自動化の人間が読める名前 |
| actions | array | はい | 条件が満たされたときに実行するアクション |
| conditions | object | はい | アクションを実行するために真である必要がある条件 |
| active | boolean | いいえ | 自動化が有効かどうか(デフォルト:true) |
| position | integer | いいえ | 実行順序(小さい数字が最初に実行されます) |
読み取り専用プロパティ
| プロパティ | タイプ | 説明 |
|---|---|---|
| id | integer | Zendeskによって割り当てられた一意の識別子 |
| created_at | string | 作成のISO 8601タイムスタンプ |
| updated_at | string | 最後の変更のISO 8601タイムスタンプ |
| default | boolean | これがシステムデフォルトの自動化であるかどうか |
conditionsオブジェクト
conditionsオブジェクトには、自動化が実行されるタイミングを定義する2つの配列が含まれています。
{
"conditions": {
"all": [
{ "field": "status", "operator": "is", "value": "open" },
{ "field": "hours_since_created", "operator": "greater_than", "value": "24" }
],
"any": [
{ "field": "priority", "operator": "is", "value": "high" }
]
}
}
- all: この配列内のすべての条件が真である必要があります(ANDロジック)
- any: この配列内の少なくとも1つの条件が真である必要があります(ORロジック)
actions配列
アクションは、条件が満たされたときに何が起こるかを定義します。各アクションには、フィールドと値があります。
{
"actions": [
{ "field": "priority", "value": "high" },
{ "field": "group_id", "value": "360000000000" }
]
}
完全な例
24時間以上オープンになっているチケットをエスカレートする完全な自動化オブジェクトを次に示します。
{
"automation": {
"title": "24時間以上オープンになっているチケットのエスカレート",
"active": true,
"conditions": {
"all": [
{ "field": "status", "operator": "is", "value": "open" },
{ "field": "hours_since_created", "operator": "greater_than", "value": "24" },
{ "field": "priority", "operator": "less_than", "value": "high" }
],
"any": []
},
"actions": [
{ "field": "priority", "value": "high" },
{ "field": "current_tags", "value": "escalated" }
],
"position": 1
}
}
利用可能な条件とアクション
自動化は、トリガーやマクロと多くの条件とアクションを共有していますが、独自の時間ベースの機能も備えています。完全なリファレンスについては、Zendeskアクションドキュメントを参照してください。
一般的な条件フィールド
これらのフィールドは、自動化、トリガー、およびマクロ全体で機能します。
| フィールド | 説明 | 演算子の例 |
|---|---|---|
| status | チケットステータス | is、is_not、less_than |
| priority | チケットの優先度 | is、less_than、greater_than |
| type | チケットの種類 | is、is_not |
| assignee_id | 割り当てられたエージェント | is、is_not |
| group_id | 割り当てられたグループ | is、is_not |
| requester_id | チケットリクエスタ | is、is_not |
| current_tags | チケットのタグ | includes、not_includes |
| via | チケットの送信元チャネル | is、is_not |
時間ベースの条件(自動化固有)
これらの条件は自動化に固有であり、時間ベースのワークフローを有効にします。
| フィールド | 説明 |
|---|---|
| hours_since_created | チケットが作成されてからの時間 |
| hours_since_updated | 最後の更新からの時間 |
| hours_since_assigned | チケットが割り当てられてからの時間 |
| hours_since_requester_updated | リクエスタが最後に更新してからの時間 |
| hours_since_agent_updated | エージェントが最後に更新してからの時間 |
| hours_since_due_date | 期日までの時間または期日からの時間 |
条件演算子
| 演算子 | 説明 |
|---|---|
| is | 完全一致 |
| is_not | 一致しない |
| less_than | 数値的またはアルファベット順に小さい |
| greater_than | 数値的またはアルファベット順に大きい |
| includes | 値を含む(タグ、リストの場合) |
| not_includes | 値を含まない |
共有アクション
これらのアクションは、自動化、トリガー、およびマクロで機能します。
| フィールド | 説明 | 値の例 |
|---|---|---|
| status | チケットステータスの変更 | "open"、"pending"、"solved"、"closed" |
| priority | 優先度の設定 | "low"、"normal"、"high"、"urgent" |
| type | チケットの種類の設定 | "question"、"incident"、"problem"、"task" |
| assignee_id | エージェントへの割り当て | エージェントIDまたは"current_user" |
| group_id | グループへの割り当て | グループID |
| set_tags | すべてのタグを置き換える | "tag1 tag2 tag3" |
| current_tags | タグの追加 | "new_tag" |
| remove_tags | タグの削除 | "old_tag" |
自動化固有のアクション
| フィールド | 説明 |
|---|---|
| notification_user | ユーザーにメールを送信する |
| notification_group | グループにメールを送信する |
| notification_target | 外部ターゲットに送信する |
| notification_webhook | Webhookをトリガーする |
| satisfaction_score | 満足度調査を送信する |
実践的な実装例
実際の自動化シナリオを、完全なコード例とともに見ていきましょう。
例1:24時間以上オープンになっているチケットの自動エスカレーション
この自動化は、オープン状態が長すぎるチケットの優先度を上げ、エスカレートされたタグを追加します。
リクエスト:
curl -u {email_address}/token:{api_token} \
https://{subdomain}.zendesk.com/api/v2/automations \
-H "Content-Type: application/json" -X POST -d \
'{
"automation": {
"title": "24時間以上オープンになっているチケットのエスカレート",
"active": true,
"conditions": {
"all": [
{ "field": "status", "operator": "is", "value": "open" },
{ "field": "hours_since_created", "operator": "greater_than", "value": "24" },
{ "field": "priority", "operator": "less_than", "value": "high" }
]
},
"actions": [
{ "field": "priority", "value": "high" },
{ "field": "current_tags", "value": "escalated" }
]
}
}'
レスポンス:
{
"automation": {
"id": 3600123456789,
"title": "24時間以上オープンになっているチケットのエスカレート",
"active": true,
"conditions": {
"all": [
{ "field": "status", "operator": "is", "value": "open" },
{ "field": "hours_since_created", "operator": "greater_than", "value": "24" },
{ "field": "priority", "operator": "less_than", "value": "high" }
]
},
"actions": [
{ "field": "priority", "value": "high" },
{ "field": "current_tags", "value": "escalated" }
],
"position": 1,
"created_at": "2026-02-24T10:00:00Z",
"updated_at": "2026-02-24T10:00:00Z"
}
}
例2:48時間後に保留中のチケットのリマインダーメールを送信する
この自動化は、チケットが2日間保留になっている場合に、リクエスタにメールを送信します。
curl -u {email_address}/token:{api_token} \
https://{subdomain}.zendesk.com/api/v2/automations \
-H "Content-Type: application/json" -X POST -d \
'{
"automation": {
"title": "リマインダー:保留中のチケット48時間",
"active": true,
"conditions": {
"all": [
{ "field": "status", "operator": "is", "value": "pending" },
{ "field": "hours_since_updated", "operator": "greater_than", "value": "48" }
]
},
"actions": [
{
"field": "notification_user",
"value": ["requester_id", "ご依頼に対応中です", "チケットは48時間保留中です。追加情報があればご返信ください。"]
}
]
}
}'
例3:72時間非アクティブな解決済みのチケットをクローズする
この自動化は、解決済みのチケットを自動的にクローズすることで、チケットキューをクリーンに保つのに役立ちます。
curl -u {email_address}/token:{api_token} \
https://{subdomain}.zendesk.com/api/v2/automations \
-H "Content-Type: application/json" -X POST -d \
'{
"automation": {
"title": "72時間後に解決済みのチケットを自動クローズする",
"active": true,
"conditions": {
"all": [
{ "field": "status", "operator": "is", "value": "solved" },
{ "field": "hours_since_updated", "operator": "greater_than", "value": "72" }
]
},
"actions": [
{ "field": "status", "value": "closed" }
]
}
}'
例4:優先ルーティングのためにVIPチケットにタグを付ける
この自動化は、特別な処理のためにVIP顧客からのチケットにタグを付けます。
curl -u {email_address}/token:{api_token} \
https://{subdomain}.zendesk.com/api/v2/automations \
-H "Content-Type: application/json" -X POST -d \
'{
"automation": {
"title": "VIP顧客チケットにタグを付ける",
"active": true,
"conditions": {
"all": [
{ "field": "current_tags", "operator": "includes", "value": "vip_customer" }
],
"any": [
{ "field": "status", "operator": "is", "value": "new" },
{ "field": "status", "operator": "is", "value": "open" }
]
},
"actions": [
{ "field": "priority", "value": "high" },
{ "field": "current_tags", "value": "vip_priority" }
]
}
}'
テストとデバッグ
自動化を本番環境にデプロイする前に、徹底的にテストする必要があります。
Zendesk APIコンソールの使用
Zendeskは、コードを記述せずにリクエストをテストできる開発者ドキュメントにAPIコンソールを提供しています。これは、JSON構造と認証を確認するのに役立ちます。
Postmanを使用したテスト
Zendeskは、自動化エンドポイントを含む公式のPostmanコレクションを管理しています。このコレクションをインポートして、ユーザーフレンドリーなインターフェースでエンドポイントをテストします。また、利用可能なすべてのエンドポイントの詳細については、Zendesk APIリファレンスドキュメントを参照してください。
一般的なエラーレスポンス
| HTTPステータス | 意味 | 一般的な原因 |
|---|---|---|
| 200 OK | 成功 | リクエストが正常に完了しました |
| 201 Created | 作成済み | 自動化が正常に作成されました |
| 400 Bad Request | 無効なリクエスト | 不正な形式のJSON、必須フィールドの欠落 |
| 401 Unauthorized | 認証に失敗しました | 無効な資格情報またはトークン |
| 403 Forbidden | アクセス拒否 | ユーザーに管理者/エージェント権限がありません |
| 404 Not Found | リソースが見つかりません | 自動化IDが存在しません |
| 422 Unprocessable | 検証に失敗しました | 無効な条件またはアクション |
| 429 Too Many Requests | レート制限 | リクエストが多すぎます。バックオフで再試行してください |
自動化の実行の検証
自動化が正しく実行されているかどうかを確認するには:
- チケットイベントを表示して、アクティビティログで自動化アクションを確認します
- 自動化をリストするときに
usage_24hサイドロードを使用して、実行回数を確認します - 自動化の
updated_atタイムスタンプをチェックして、アクティブであることを確認します
公開前に条件をテストする
簡単に識別できる一意のタグを持つテスト自動化を作成します。本番環境にロールアウトする前に、テストチケットに適用して結果を監視します。
レート制限とベストプラクティス
ベストプラクティスに従うことで、信頼性が高く、保守可能な自動化を構築できます。
レート制限の管理
Zendeskのデフォルトのレート制限は、ほとんどのエンドポイントで1分あたり700リクエストです。この制限に達した場合:
- コードに指数バックオフを実装します
- 大量の自動化をリストするには、カーソルページネーションを使用します
- 適切な場合は、結果をキャッシュします
- 可能な場合は、操作をバッチ処理します
自動化の位置と実行順序
自動化は、位置の順序で、最も低いものから最も高いものへと実行されます。時間的制約のある自動化をシーケンスの早い段階に配置して、迅速に実行されるようにします。
自動化ループの回避
最も一般的な自動化の間違いは、無限ループを作成することです。常に条件を変更するアクションを含めてください。
status: openをチェックする場合は、アクションでステータスを変更しますpriority: lowをチェックする場合は、優先度を変更します- 一意のタグを追加し、その不在をチェックします
APIとネイティブビルダーの使い分け
次のような場合は、APIを使用します。
- 複数のZendeskインスタンスで自動化を管理する必要がある場合
- 自動化構成のバージョン管理を行う場合
- 外部データに基づいて自動化をプログラムで作成する場合
- Terraformなどのインフラストラクチャ・アズ・コードツールと統合する場合
次のような場合は、Zendeskのネイティブ自動化ビルダーを使用します。
- 1つのZendeskインスタンスのみを管理する場合
- 自動化がめったに変更されない場合
- 視覚的なインターフェースを好む場合
代替手段:eesel AIによるノーコード自動化
APIベースの自動化の構築と保守には、開発リソース、テストインフラストラクチャ、および継続的なメンテナンスが必要です。多くのチームにとって、このオーバーヘッドは現実的ではありません。

eesel AIは、代替アプローチを提供します。コードを記述する代わりに、eesel AIをZendeskインスタンスに接続し、自然言語の指示を通じて自動化を構成します。
アプローチの比較を次に示します。
| 側面 | Zendesk API | eesel AI |
|---|---|---|
| セットアップ時間 | 数時間から数日 | 数分 |
| 必要な技術スキル | 開発者 | なし |
| メンテナンス | コードの更新、テスト | 自動更新 |
| 柔軟性 | 完全なAPI制御 | 構築済みのアクション |
| テスト | 手動、ステージングが必要 | 組み込みのシミュレーション |
eesel AIを使用すると、APIベースの自動化と同様の結果を達成できます。
- 自動エスカレーション: コンテンツと感情に基づいて緊急チケットをルーティングする
- フォローアップ: 手動構成なしでコンテキストに応じたリマインダーを送信する
- チケットの衛生: 自動タグ付け、重複の統合、および古いチケットのクローズ
- スマートルーティング: 専門知識とワークロードに基づいてチケットを割り当てる
主な違いは、eesel AIが既存のチケットとナレッジベースから学習するため、明示的なプログラミングなしでビジネスコンテキストを理解することです。JSONではなく、プレーンな英語で動作を定義します。
チームに自動化が必要だが、開発リソースがない場合は、eesel AIがZendeskとどのように統合されるかを調べてください。セットアップには数日ではなく数分かかり、公開前にすべてをテストできます。AIとITILフレームワークに関するガイドで、AIを活用したサポートの詳細をご覧ください。

Zendesk自動化APIの概要
Zendesk APIを通じて自動化を構築するための基盤ができました。主な概念をまとめましょう。
- 自動化は、1時間ごとに実行される時間ベースのルールです
- 少なくとも1つの時間ベースの条件と1つの無効化アクションが必要です
- 認証は、Basic認証でAPIトークンを使用します
- APIは、自動化を管理するための標準的なCRUD操作を提供します
- 本番環境にデプロイする前に、常に徹底的にテストしてください
次のステップ:
- Zendesk管理センターでAPIトークンを生成します
- 簡単なリストリクエストで認証をテストします
- サンドボックス環境でテスト自動化を作成します
- 条件とアクションを反復処理します
- 監視を配置して本番環境にデプロイします
開発オーバーヘッドなしで自動化を検討しているチーム向けに、eesel AIはZendeskに直接接続し、同じシナリオの多くを処理するノーコードの代替手段を提供します。動作方法を確認したり、[価格](https://www.eesel.
よくある質問
この記事を共有

Article by
Stevia Putri
Stevia Putri is a marketing generalist at eesel AI, where she helps turn powerful AI tools into stories that resonate. She’s driven by curiosity, clarity, and the human side of technology.





