Zendesk APIを使用して組織を作成する方法:完全ガイド

Stevia Putri
Written by

Stevia Putri

Reviewed by

Stanley Nicholas

Last edited 2026 3月 2

Expert Verified

Zendesk APIを使用して組織を作成する方法:完全ガイドのバナー画像

組織(Organization)は、Zendeskが大規模な顧客関係を管理するための最も強力な機能の1つです。組織を使用すると、ユーザーをグループ化したり、チケットを自動的にルーティングしたり、サポートのやり取りの可視性を制御したりできます。Zendeskインターフェースから手動で組織を作成できますが、その真の力は、Zendesk APIを介してこのプロセスを自動化することから生まれます。

別のプラットフォームから移行する場合でも、CRMと同期する場合でも、セルフサービスのサインアップフローを構築する場合でも、Zendesk Organizations APIを介して組織を作成する方法を知ることは、本格的な実装には不可欠です。このガイドでは、認証からエッジケースの処理まで、知っておく必要のあるすべてのことを説明します。基本的なAPI呼び出しを超えて組織管理を自動化する場合は、eesel AIがワークフロー全体を処理できます。

JSONペイロードを使用して新しい組織を作成するためのZendesk Organizations APIエンドポイント
JSONペイロードを使用して新しい組織を作成するためのZendesk Organizations APIエンドポイント

開始するために必要なもの

コードに入る前に、次の前提条件が整っていることを確認してください。

  • 管理者アクセス権を持つZendeskアカウント。 APIを介して組織を作成できるのは、カスタムロールを持つ管理者とエージェントのみです。
  • APIトークン。 これは、Zendesk管理センターの「アプリと連携」>「API」>「Zendesk API」で生成する必要があります。
  • Zendeskサブドメイン。 これは、Zendesk URLの最初の部分です(例:yourcompany.zendesk.comyourcompany)。
  • HTTPリクエストを行うためのツール。 cURL、Python、JavaScriptを使用した例を示しますので、スタックに適したものを選択してください。

Zendesk APIは、メールアドレスとAPIトークンの組み合わせによる基本認証を使用します。これは、パスワードを使用するよりも安全であり、アクセスをきめ細かく制御できます。

ステップ1:Zendesk APIトークンを生成する

APIトークンは、コードがZendeskで認証するためのキーです。作成方法は次のとおりです。

  1. 管理者としてZendeskアカウントにログインします
  2. サイドバーの管理センターアイコンをクリックします
  3. アプリと連携 > API > Zendesk APIに移動します
  4. 設定タブをクリックします
  5. トークンアクセスがまだオンになっていない場合は有効にします
  6. **プラス(+)**アイコンをクリックして、新しいトークンを追加します
  7. 「組織管理API」などのわかりやすい名前を付けます
  8. トークンをすぐにコピーします(Zendeskは一度しか表示しません)

このトークンを安全に保管してください。パスワードのように扱ってください。トークンを持っている人は誰でも、APIを介してZendeskデータにアクセスできます。

プロのヒント: 1つのトークンをすべての場所で再利用するのではなく、さまざまな統合に対して個別のトークンを作成します。これにより、他のシステムを壊すことなく、必要に応じてアクセスを取り消すことが容易になります。

ステップ2:組織エンドポイントを理解する

Organizations APIは、REST規約に従います。組織を作成するには、次のURLにPOSTリクエストを行います。

https://{サブドメイン}.zendesk.com/api/v2/organizations

リクエストボディは、組織のプロパティを含むJSONオブジェクトです。最小限の作成リクエストは次のようになります。

{
  "organization": {
    "name": "Acme Corporation"
  }
}

必須フィールドはnameのみで、Zendeskアカウント全体で一意である必要があります。名前にパイプ文字(|)を含めることはできません。含めると、リクエストは失敗します。

基本を超えて、いくつかの便利なプロパティを設定できます。

フィールドタイプ目的
domain_names配列ユーザーをこの組織に自動的にマッピングするメールアドレスのドメイン
external_id文字列この組織に対するシステムの固有ID
group_id整数この組織からのチケットを特定のグループに自動的に割り当てる
organization_fieldsオブジェクト定義したカスタムフィールド値
shared_ticketsブール値ユーザーが互いのチケットを見ることができるようにする
shared_commentsブール値ユーザーが互いのチケットにコメントできるようにする
tags配列組織に適用するタグ
details文字列組織に関する公開メモ
notes文字列エージェントのみに表示される非公開メモ

認証にはHTTP基本認証を使用します。メールアドレスと/token:、APIトークンを組み合わせて、結果をBase64エンコードします。ヘッダーは次のようになります。

Authorization: Basic {base64_encoded_credentials}

ステップ3:最初の組織を作成する

これを実際のコード例で実践してみましょう。各例では、実際に使用する一般的なフィールドを持つ組織を作成します。

cURLの使用

SUBDOMAIN="yourcompany"
EMAIL="admin@yourcompany.com"
TOKEN="your_api_token_here"

curl -X POST "https://${SUBDOMAIN}.zendesk.com/api/v2/organizations" \
  -H "Content-Type: application/json" \
  -u "${EMAIL}/token:${TOKEN}" \
  -d '{
    "organization": {
      "name": "Acme Corporation",
      "domain_names": ["acme.com", "acmecorp.com"],
      "external_id": "CRM-12345",
      "tags": ["enterprise", "priority"],
      "details": "Enterprise customer since 2020"
    }
  }'

Pythonの使用

import requests
import base64

subdomain = "yourcompany"
email = "admin@yourcompany.com"
token = "your_api_token_here"

credentials = base64.b64encode(
    f"{email}/token:{token}".encode()
).decode()

organization = {
    "organization": {
        "name": "Acme Corporation",
        "domain_names": ["acme.com", "acmecorp.com"],
        "external_id": "CRM-12345",
        "tags": ["enterprise", "priority"],
        "details": "Enterprise customer since 2020"
    }
}

response = requests.post(
    f"https://{subdomain}.zendesk.com/api/v2/organizations",
    headers={
        "Content-Type": "application/json",
        "Authorization": f"Basic {credentials}"
    },
    json=organization
)

if response.status_code == 201:
    created_org = response.json()["organization"]
    print(f"Created organization ID: {created_org['id']}")
    print(f"Name: {created_org['name']}")
else:
    print(f"Error: {response.status_code}")
    print(response.json())

JavaScript/Node.jsの使用

const axios = require('axios');

// Configuration
const config = {
  subdomain: 'yourcompany',
  email: 'admin@yourcompany.com',
  token: 'your_api_token_here'
};

// Organization data
const organization = {
  organization: {
    name: 'Acme Corporation',
    domain_names: ['acme.com', 'acmecorp.com'],
    external_id: 'CRM-12345',
    tags: ['enterprise', 'priority'],
    details: 'Enterprise customer since 2020'
  }
};

// Make the request
axios.post(
  `https://${config.subdomain}.zendesk.com/api/v2/organizations`,
  organization,
  {
    headers: {
      'Content-Type': 'application/json'
    },
    auth: {
      username: `${config.email}/token`,
      password: config.token
    }
  }
)
.then(response => {
  const org = response.data.organization;
  console.log(`Created organization ID: ${org.id}`);
  console.log(`Name: ${org.name}`);
})
.catch(error => {
  console.error('Error:', error.response?.data || error.message);
});

作成が成功すると、HTTP 201が返され、自動生成されたidフィールドを含む完全な組織オブジェクトが返されます。このidフィールドは、今後の更新に必要になります。

ステップ4:カスタム組織フィールドを操作する

ほとんどのZendesk実装では、カスタムフィールドを使用して、アカウント層、地域、CRM IDなどの追加の組織データを保存します。APIを介してこれらを操作する方法を次に示します。

まず、どのようなカスタムフィールドが存在するかを知る必要があります。これらは、Zendesk管理センターのオブジェクトとルール > 組織 > フィールドで確認するか、APIを介して取得できます。

curl "https://{サブドメイン}.zendesk.com/api/v2/organization_fields" \
  -u "{email}/token:{token}"

各カスタムフィールドには、一意のキー(account_tierregionなど)があります。組織を作成または更新するときは、これらをorganization_fieldsオブジェクトに含めます。

{
  "organization": {
    "name": "Acme Corporation",
    "organization_fields": {
      "account_tier": "enterprise",
      "region": "north_america",
      "crm_id": "CRM-12345",
      "contract_value": 50000
    }
  }
}

値の形式は、フィールドタイプによって異なります。

  • テキストフィールド: 文字列値
  • ドロップダウンフィールド: オプションタグの値(表示名ではない)
  • 数値フィールド: 数値(文字列ではない)
  • 日付フィールド: ISO 8601形式(2024-01-15
  • チェックボックスフィールド: ブール値(trueまたはfalse

一般的なユースケース: CRMから組織データを同期します。プライマリシステムでアカウントの詳細が変更されるたびに、Zendeskに更新をプッシュするWebhookまたはスケジュールされたジョブを設定します。これにより、サポートエージェントは最新の情報を使用して作業できます。

カスタム組織フィールドマッピングを使用したCRMからZendeskへのデータ同期ワークフローを示すインフォグラフィック
カスタム組織フィールドマッピングを使用したCRMからZendeskへのデータ同期ワークフローを示すインフォグラフィック

ステップ5:エラーとエッジケースを処理する

本番環境のコードでは、問題が発生した場合の処理が必要です。発生する可能性のある最も一般的なエラーを次に示します。

401 Unauthorized(認証されていません)

これは、認証情報が無効であることを意味します。以下を確認してください。

  • APIトークンが正しく、取り消されていないこと
  • メールアドレスがトークンを所有するアカウントと一致すること
  • 正しい形式を使用していること:email/token:token/token:の部分に注意)

422 Unprocessable Entity(処理できないエンティティ)

リクエストは理解されましたが、処理できませんでした。一般的な原因:

  • 重複した名前: 組織名は一意である必要があります。最初に既存の組織を確認してください。
  • 無効な文字: 名前にパイプ文字(|)を含めることはできません。
  • 必須フィールドの欠落: nameフィールドは必須です。
  • 無効なカスタムフィールド値: ドロップダウン値が定義されたオプションと正確に一致していることを確認してください。

429 Too Many Requests(リクエストが多すぎます)

Zendeskのレート制限に達しました。Organizations APIでは、1分あたり700リクエストが許可されています。組織を一括で作成する必要がある場合は、リクエスト間に遅延を追加します。

import time

for org_data in organizations:
    response = requests.post(url, json=org_data, auth=auth)
    if response.status_code == 429:
        # Wait and retry
        time.sleep(1)
        response = requests.post(url, json=org_data, auth=auth)
    # Process response...
    time.sleep(0.1)  # Be nice to the API

ベストプラクティス: 統合を構築するときは、常にレスポンスステータスコードを確認し、429エラーに対して指数バックオフを実装してください。失敗したリクエストをログに記録して、後で再試行できるようにします。

API統合の失敗とレート制限回復戦略を示す包括的なエラー処理デシジョンツリー
API統合の失敗とレート制限回復戦略を示す包括的なエラー処理デシジョンツリー

eesel AIを使用した組織管理の自動化

組織を手動で管理することは、規模が大きくなるにつれて困難になります。顧客ベースが拡大するにつれて、Zendesk組織をCRM、請求システム、およびその他のツールと同期させ続けることは、大きな運用上の負担になります。

ここで、私たちがお手伝いできます。eesel AIでは、Zendeskと直接統合し、組織ベースのワークフローを自動化できるAIチームメイトを構築しました。

Zendesk統合オプションを含む複数の接続されたナレッジソースを示すeesel AIダッシュボード
Zendesk統合オプションを含む複数の接続されたナレッジソースを示すeesel AIダッシュボード

お客様がeesel AIを組織でどのように使用しているかを次に示します。

  • 自動組織割り当て: チケットが届くと、AIはCRMでリクエスターを検索し、Zendeskで組織を作成または更新し、組織のプロパティに基づいてチケットを適切なチームにルーティングできます。
  • スマートエスカレーション: 組織のカスタムフィールド(アカウント層やSLAレベルなど)を読み取り、エンタープライズ顧客からのチケットを自動的にエスカレーションできます。
  • 組織を認識した応答: AIは、契約条件、専任のアカウントマネージャー、または以前の問題など、組織固有の詳細を参照する返信を作成します。

カスタムAPI統合の構築とは異なり、eesel AIは既存のデータとワークフローから学習します。必要なことを平易な英語で説明すると(「組織層がエンタープライズの場合は、アカウントマネージャーをCCする」など)、AIがAPI呼び出し、エラー処理、およびロジックを処理します。

AI Copilotがエージェントのレビュー用に返信を作成することから始めて、自信を深めるにつれて完全な自動化にレベルアップできます。ほとんどのチームは2か月以内に回収できます。

サポートチケットワークフローの自動化の可能性予測を示すeesel AIシミュレーション機能
サポートチケットワークフローの自動化の可能性予測を示すeesel AIシミュレーション機能

Zendesk Organizations APIを使用した構築を開始する

これで、Zendeskで組織をプログラムで作成および管理するために必要なものがすべて揃いました。主な手順をまとめましょう。

  1. Zendesk管理センターからAPIトークンを生成します
  2. 組織データを使用して、/api/v2/organizationsへのPOSTリクエストを構造化します
  3. JSONレスポンスを処理して、作成された組織のIDを取得します
  4. カスタムフィールドを使用して、組織固有のデータを保存します
  5. 本番環境のコードに対して適切なエラー処理を実装します

Organizations APIはほんの始まりにすぎません。組織の更新、重複の統合、組織メンバーシップの管理、および組織ベースのビジネスルールの設定も可能です。

一括インポートや他のシステムとの双方向同期などの高度なユースケースでは、AI搭載ソリューションがチームの時間を節約できるかどうかを検討してください。eesel AIを7日間無料でお試しいただき、自動化がサポート業務をどのように変革できるかをご確認ください。

よくある質問

このエンドポイントは、HTTP基本認証を使用します。メールアドレスと`/token:`、APIトークンを組み合わせてBase64エンコードし、Authorizationヘッダーに含めます。形式は`Authorization: Basic {base64(email/token:api_token)}`です。
技術的には可能ですが、APIトークンの使用を強くお勧めします。トークンは、メインアカウントのパスワードとは独立して取り消すことができるため、より安全です。また、さまざまな統合に対して個別の認証情報を作成できます。
APIは、名前がすでに使用されていることを示すメッセージとともに、422 Unprocessable Entityエラーを返します。組織名は、Zendeskアカウント全体で一意である必要があります。
リクエストボディに、カスタムフィールドキーと一致するキーと、各フィールドタイプに適した形式の値を持つorganization_fieldsオブジェクトを含めます。フィールドキーは、管理センターの「組織」>「フィールド」で確認できます。
はい、Organizations APIには、1分あたり700リクエストのレート制限があります。これを超えると、429 Too Many Requestsレスポンスが返されます。本番環境の統合には、指数バックオフと再試行ロジックを実装してください。
はい。自動マッピングするメールアドレスのドメインを含むdomain_names配列をリクエストに含めます。一致するメールアドレスを持つユーザーがチケットを送信すると、その組織に自動的に追加されます。

この記事を共有

Stevia undefined

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.