Zendesk APIでユーザーを作成する方法:完全ガイド

Stevia Putri
執筆者

Stevia Putri

最終更新 March 2, 2026

専門家による検証済み
Zendesk APIでユーザーを作成する方法:完全ガイドのバナー画像

大規模なユーザーアカウントの管理は、最初は単純ですが、すぐに複雑になるタスクの1つです。新規買収からの顧客のオンボーディング、内部データベースからのユーザーの同期、またはセルフサービス登録フローの構築など、最終的にはZendesk(ゼンデスク)ユーザーをプログラムで作成する必要があります。

Zendesk Users API は、これを行うためのツールを提供します。これは、個々のユーザーの作成から、一度に数千人を一括インポートするまですべてを処理するRESTful(レストフル) APIです。このガイドでは、実際に動作させるための実践的な手順を、スタックに適応できる動作するコード例とともに説明します。

ユーザーの作成だけでなく、より多くのことを自動化したい場合は、eesel AI のようなツールを使用すると、チケットのルーティングからAI(人工知能)による応答まで、サポート自動化の全範囲を処理できます。

カスタマーサービスプラットフォームのインターフェースを紹介するZendeskのランディングページ。
カスタマーサービスプラットフォームのインターフェースを紹介するZendeskのランディングページ。

必要なもの

API(エーピーアイ)呼び出しを開始する前に、以下を確認してください。

  • 管理者アクセス権を持つZendeskアカウント 管理者のみがAPIトークンを作成し、API経由でユーザーを管理できます。
  • APIトークンまたはOAuth(オーオース)認証情報 これらを生成する方法については後述します。
  • REST API(レストエーピーアイ)の基本的な知識 POST(ポスト)リクエストとは何かを知っておく必要があります。
  • 開発環境 cURL(カール)、Python(パイソン)、またはNode.js(ノードジェイエス)で問題ありません。

ステップ1:API認証の設定

Zendesk(ゼンデスク)は、APIアクセス用にAPIトークンとOAuth(オーオース)の2つの主要な認証方法をサポートしています。ほとんどのサーバー間統合では、APIトークンの方が実装が簡単です。

APIトークンの生成

  1. 管理者としてZendesk(ゼンデスク)アカウントにサインインします。
  2. 管理センターに移動します(歯車アイコンをクリックし、「管理センターに移動」をクリックします)。
  3. アプリと連携機能APIZendesk APIに移動します。
  4. 設定タブをクリックし、トークンアクセスが有効になっていることを確認します。
  5. APIトークンタブに切り替え、APIトークンを追加をクリックします。
  6. 「User Sync Integration(ユーザー同期連携)」のようなわかりやすい名前を入力します。
  7. トークンをすぐにコピーします Zendesk(ゼンデスク)は一度しか表示しません。
APIトークンを追加ボタンとAPIトークンリストを示すZendesk管理センターAPIトークン設定ページ
APIトークンを追加ボタンとAPIトークンリストを示すZendesk管理センターAPIトークン設定ページ

認証ヘッダーのフォーマット

Zendesk(ゼンデスク)は、APIトークンでBasic(ベーシック)認証を使用します。形式は次のとおりです。

  • ユーザー名: /tokenが付加されたZendesk(ゼンデスク)のメールアドレス(例:you@company.com/token
  • パスワード: APIトークン自体

これらの認証情報をBase64(ベース64)でエンコードし、Authorization(オーソリゼーション)ヘッダーに含めます。

curl https://your-subdomain.zendesk.com/api/v2/users.json \ -u you@company.com/token:your_api_token_here

またはPython(パイソン)で:

import requests from requests.auth import HTTPBasicAuth subdomain = "your-subdomain" email = "you@company.com" token = "your_api_token_here" auth = HTTPBasicAuth(f"{email}/token", token) headers = {"Content-Type": "application/json"} url = f"https://{subdomain}.zendesk.com/api/v2/users.json" response = requests.get(url, auth=auth, headers=headers) print(response.json())

セキュリティのベストプラクティス

  • APIトークンを環境変数に保存し、コードには絶対に保存しないでください。
  • トークンを定期的にローテーションします 古いものを削除し、新しいものを生成します。
  • 各トークンが何に使用されるかを把握できるように、わかりやすいトークン名を使用します。
  • 連携機能が廃止されたら、トークンを削除します。
  • 管理者のトークンを使用するのではなく、制限された権限を持つ専用のサービスユーザーを作成することを検討してください。
適切なトークン管理プラクティスを通じてZendesk認証情報を保護する安全なワークフロー。
適切なトークン管理プラクティスを通じてZendesk認証情報を保護する安全なワークフロー。

ステップ2:単一のユーザーを作成する

ユーザーを作成する最も簡単な方法は、POST /api/v2/usersエンドポイントを使用することです。少なくとも、名前を提供する必要があります。

必須およびオプションのパラメーター

パラメータ必須説明
nameはいユーザーのフルネーム
emailいいえプライマリメールアドレス(アイデンティティを作成)
roleいいえend-user(デフォルト)、agent、またはadmin
organization_idいいえ割り当てる組織のID
external_idいいえこのユーザーのシステムの一意の識別子
verifiedいいえメール検証をスキップするには、trueに設定します

ユーザーロールについて

Zendesk(ゼンデスク)には、3つの組み込みロールがあります。

  • end-user: チケットを送信する顧客(ロールが指定されていない場合のデフォルト)
  • agent: チケットを処理するサポートスタッフ
  • admin: 完全な管理アクセス

Enterprise(エンタープライズ)プランの場合、custom_role_idパラメーターを使用して、カスタムエージェントロールを割り当てることもできます。カスタムロールは、最初に管理センターで作成する必要があることに注意してください API経由で作成することはできません。

コード例

cURL(カール):

curl https://your-subdomain.zendesk.com/api/v2/users.json \ -d '{"user": {"name": "Jane Smith", "email": "jane@example.com", "role": "end-user"}}' \ -H "Content-Type: application/json" \ -X POST \ -u you@company.com/token:your_api_token

Python(パイソン):

import requests import json from requests.auth import HTTPBasicAuth subdomain = "your-subdomain" auth = HTTPBasicAuth("you@company.com/token", "your_api_token") headers = {"Content-Type": "application/json"} user_data = { "user": { "name": "Jane Smith", "email": "jane@example.com", "role": "end-user", "external_id": "user_12345" } } response = requests.post( f"https://{subdomain}.zendesk.com/api/v2/users.json", auth=auth, headers=headers, json=user_data ) if response.status_code == 201: user = response.json()["user"] print(f"Created user {user['id']}: {user['name']}") else: print(f"Error: {response.status_code} - {response.text}")

JavaScript(ジャバスクリプト)(Node.js(ノードジェイエス)とaxios(アクシオス)を使用):

const axios = require('axios'); const subdomain = 'your-subdomain'; const email = 'you@company.com'; const token = 'your_api_token'; const userData = { user: { name: 'Jane Smith', email: 'jane@example.com', role: 'end-user', external_id: 'user_12345' } }; axios.post( `https://${subdomain}.zendesk.com/api/v2/users.json`, userData, { auth: { username: `${email}/token`, password: token }, headers: { 'Content-Type': 'application/json' } } ) .then(response => { const user = response.data.user; console.log(`Created user ${user.id}: ${user.name}`); }) .catch(error => { console.error('Error:', error.response?.data || error.message); });

レスポンスの解釈

作成が成功すると、ユーザーオブジェクトとともにHTTP 201 Created(作成済み)が返されます。

{ "user": { "id": 9873843, "name": "Jane Smith", "email": "jane@example.com", "role": "end-user", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "active": true, "verified": false } }

ステップ3:ユーザーの作成または更新(アップサート)

すでに存在するユーザーを作成しようとするとどうなりますか?標準の作成エンドポイントは422エラーを返します。外部システムから定期的にユーザーをインポートする同期シナリオでは、代わりにcreate_or_updateエンドポイントを使用します。

create_or_updateを使用する場合

以下の場合にPOST /api/v2/users/create_or_updateを使用します。

  • 外部データベースからユーザーを同期している場合
  • べき等な操作(同じリクエストで同じ結果が生成される)が必要な場合
  • 作成前にユーザーが存在するかどうかを確認したくない場合

マッチングの仕組み

Zendesk(ゼンデスク)は、以下によってユーザーを照合します。

  1. 外部ID 提供されている場合、これが優先されます。
  2. メールアドレス 外部IDの一致が見つからない場合

レスポンスコード

ステータス意味
201 Created新しいユーザーが作成されました
200 OK既存のユーザーが更新されました

実践的な例:外部システムからの同期

import requests from requests.auth import HTTPBasicAuth auth = HTTPBasicAuth("you@company.com/token", "your_api_token") headers = {"Content-Type": "application/json"} external_users = [ {"name": "Jane Smith", "email": "jane@example.com", "external_id": "usr_001"}, {"name": "John Doe", "email": "john@example.com", "external_id": "usr_002"} ] for external_user in external_users: user_data = {"user": external_user} response = requests.post( "https://your-subdomain.zendesk.com/api/v2/users/create_or_update.json", auth=auth, headers=headers, json=user_data ) if response.status_code == 201: print(f"Created: {external_user['email']}") elif response.status_code == 200: print(f"Updated: {external_user['email']}") else: print(f"Failed: {external_user['email']} - {response.text}")
作成または更新する前に、既存のレコードに対してユーザーを照合するアップサートロジック。
作成または更新する前に、既存のレコードに対してユーザーを照合するアップサートロジック。

ステップ4:複数のユーザーを一括で作成する

数百または数千のユーザーを作成する必要がある場合、個々のAPI(エーピーアイ)呼び出しは非効率的です。Zendesk(ゼンデスク)は、リクエストごとに最大100人のユーザーを受け入れる一括エンドポイントを提供します。

エンドポイントと制限

  • エンドポイント: POST /api/v2/users/create_many
  • 制限: リクエストごとに100人のユーザー
  • 有効化: 一括インポートはZendesk(ゼンデスク)サポートによって有効にする必要があります(403エラーが発生した場合は、サポートに連絡してください)。

job_statusレスポンスについて

単一ユーザーの作成とは異なり、一括操作は非同期です。API(エーピーアイ)はjob_statusオブジェクトですぐに応答し、実際の作成はバックグラウンドで行われます。

{ "job_status": { "id": "82de0b044094f0c67893ac9fe64f1a99", "status": "queued", "total": 50, "progress": 0, "url": "https://your-subdomain.zendesk.com/api/v2/job_statuses/82de0b044094f0c67893ac9fe64f1a99" } }

ジョブステータスURL(ユーアールエル)をポーリングして、進行状況を追跡します。

def check_job_status(job_url): response = requests.get(job_url, auth=auth) job = response.json()["job_status"] print(f"Status: {job['status']}, Progress: {job['progress']}/{job['total']}") if job["status"] == "completed": for result in job.get("results", []): print(f" {result['action']}: User {result['id']} - {result['status']}") return job["status"] import time while check_job_status(job_url) != "completed": time.sleep(5)

一括処理が理にかなっている場合

シナリオアプローチ
1〜50人のユーザー個々のAPI(エーピーアイ)呼び出し
50〜10,000人のユーザーバッチ処理による一括API(エーピーアイ)
10,000人以上のユーザーインポート支援についてはZendesk(ゼンデスク)にお問い合わせください

一括作成の例

users_to_create = [ {"name": "User One", "email": "user1@example.com", "role": "end-user"}, {"name": "User Two", "email": "user2@example.com", "role": "end-user"}, # ... 最大100人のユーザー ] response = requests.post( "https://your-subdomain.zendesk.com/api/v2/users/create_many.json", auth=auth, headers=headers, json={"users": users_to_create} ) if response.status_code == 200: job = response.json()["job_status"] print(f"Job queued: {job['id']}") else: print(f"Error: {response.status_code} - {response.text}")

一般的なエラーとトラブルシューティング

適切なコードを使用しても、問題が発生する可能性があります。最も一般的な問題の処理方法を次に示します。

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

認証情報が無効です。確認してください:

  • メールアドレスは正しいですか?
  • ユーザー名に/tokenを追加しましたか?
  • API(エーピーアイ)トークンはまだアクティブですか(削除されていませんか)?
  • 正しいサブドメインを使用していますか?

403 Forbidden(禁止)

このアクションを実行する権限がありません。一般的な原因:

  • API(エーピーアイ)トークンは管理者ではなく、エージェントに属しています。
  • 一括インポートがアカウントで有効になっていません(Zendesk(ゼンデスク)サポートにお問い合わせください)。
  • 十分な権限なしに管理者ユーザーを作成しようとしています。

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

リクエストデータが無効です。確認してください:

  • nameフィールドは存在しますか?(必須です)
  • メール形式は有効ですか?
  • ロールはend-useragentadminのいずれかですか?
  • organization_idは存在しますか?

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

Zendesk(ゼンデスク)のレート制限に達しました。API(エーピーアイ)は、待機する秒数を示すRetry-Afterヘッダーを返します。コードに指数バックオフを実装します。

import time def api_call_with_retry(url, auth, headers, json_data, max_retries=3): for attempt in range(max_retries): response = requests.post(url, auth=auth, headers=headers, json=json_data) if response.status_code == 429: retry_after = int(response.headers.get('Retry-After', 60)) print(f"Rate limited. Waiting {retry_after} seconds...") time.sleep(retry_after) continue return response raise Exception("Max retries exceeded")

重複するメールエラー

「メールアドレスはすでに使用されています」という422エラーが表示された場合は、次のいずれかを行います。

  • 代わりにcreate_or_updateエンドポイントを使用します。
  • 最初にGET /api/v2/users/search?query=email@example.comでユーザーが存在するかどうかを確認します。
API(エーピーアイ)の失敗の原因をすばやく特定するのに役立つHTTPステータスコードを視覚化しました。
API(エーピーアイ)の失敗の原因をすばやく特定するのに役立つHTTPステータスコードを視覚化しました。

ユーザー管理自動化のベストプラクティス

Zendesk Users API(ゼンデスクユーザーAPI)を使用した後、一貫してうまく機能するパターンを次に示します。

べき等性にはexternal_idを使用する

常に、内部ユーザーID(アイディー)にマッピングするexternal_idを含めます。これにより、操作がべき等になり、同期が簡素化されます。

user_data = { "user": { "name": "Jane Smith", "email": "jane@example.com", "external_id": f"internal_db_{internal_user_id}" } }

確認ステータスを設定してメール確認をスキップする

信頼できるソース(独自のデータベースなど)からユーザーを作成する場合は、verified: trueを設定して、Zendesk(ゼンデスク)が確認メールを送信しないようにします。

user_data = { "user": { "name": "Jane Smith", "email": "jane@example.com", "verified": True # 確認メールをスキップ } }

カスタムロールを正しく処理する

カスタムロールはEnterprise(エンタープライズ)機能です。割り当てるには:

  1. 最初に管理センターでカスタムロールを作成します。
  2. ロールのURL(ユーアールエル)またはAPI(エーピーアイ)からcustom_role_idを取得します。
  3. role: "agent"custom_role_id: 12345の両方を設定します。

適切なエラー処理を実装する

API(エーピーアイ)呼び出しが成功することを前提としないでください。呼び出しをtry/except(トライ/エクセプト)ブロックでラップし、特定のエラーケースを処理します。

try: response = requests.post(url, auth=auth, headers=headers, json=data) response.raise_for_status() except requests.exceptions.HTTPError as e: if response.status_code == 422: errors = response.json().get("details", {}) print(f"Validation error: {errors}") else: raise

認証情報を安全に保存する

API(エーピーアイ)トークンをハードコードしないでください。環境変数を使用します。

import os ZENDESK_SUBDOMAIN = os.environ.get("ZENDESK_SUBDOMAIN") ZENDESK_EMAIL = os.environ.get("ZENDESK_EMAIL") ZENDESK_TOKEN = os.environ.get("ZENDESK_TOKEN")

より広範な自動化のニーズを検討する

ユーザーの作成を自動化している場合は、サポート業務の拡大を管理している可能性があります。Zendesk API(ゼンデスクAPI)はユーザー管理を処理しますが、チケットの処理、ルーティング、および応答も自動化する必要がある場合があります。eesel AI はZendesk(ゼンデスク)と統合して、チケットの分類とタグ付けからAI(人工知能)による応答の作成まで、これらのワークフローを自動的に処理します。

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

Zendesk(ゼンデスク)ワークフローの自動化を開始する

これで、Zendesk(ゼンデスク)ユーザーをプログラムで作成するための基盤ができました。ユーザー同期連携の構築、オンボーディングの自動化、大規模な顧客ベースの管理など、Users API(ユーザーAPI)は必要な制御を提供します。

このガイドのパターン 認証、単一作成、アップサート、および一括操作 は、ほとんどの現実世界のシナリオをカバーしています。セットアップを検証するには、単一ユーザーのエンドポイントから開始し、スケールが増加したら一括操作に移行します。

ユーザーの作成を超えて自動化したい場合は、AI(人工知能)がサポートワークフロー全体をどのように合理化できるかを検討してください。eesel AI はZendesk(ゼンデスク)と統合して、チケットのトリアージ、応答の作成、インテリジェントなルーティングを処理し、手作業を減らしながら応答時間を改善します。カスタマーサービス向けのAIエージェント を調べて、自動化がサポートスタック全体にどのように拡張できるかを確認できます。

ヘルプデスクワークフローを支援するためにドキュメントでトレーニングするeesel AIを示すスクリーンショット。
ヘルプデスクワークフローを支援するためにドキュメントでトレーニングするeesel AIを示すスクリーンショット。

よくある質問

はい。ユーザーを作成する際に、ユーザーオブジェクトに「'verified': true」を含めます。これにより、メールが確認済みとしてマークされ、確認メールがスキップされます。
Users APIは、ユーザーアカウントを管理します(作成、更新、削除)。Requests APIは、エンドユーザーが自分のチケットを作成および表示するためのものです。管理ユーザーの管理には、Users APIを使用します。
Users APIを介してプライマリメールを直接更新することはできません。代わりに、User Identities APIを使用して新しいメールアイデンティティを追加し、それをプライマリにします。
はい。ユーザーを作成するときに「identities」配列を使用して、複数のメールアドレスを含めます。
管理者権限、または「エンドユーザーを管理できる」または「チームメンバーを管理できる」権限を含むカスタムロールを持つエージェント権限が必要です。
はい。Zendeskはプランに基づいてレート制限を適用します。制限に達すると、APIは再試行するタイミングを示すRetry-Afterヘッダーとともに429ステータスを返します。

Share this article

Stevia Putri

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.

Related Posts

All posts →
Zendeskイベントサポートのバナー画像:2026年のチケット追跡完全ガイド
Zendesk AI

Zendeskイベントサポート:2026年のチケット追跡完全ガイド

チケットイベントログ、APIアクセス、実践的なトラブルシューティングワークフローを網羅したこの包括的なガイドで、Zendeskイベントサポートをマスターしましょう。

Stevia PutriStevia PutriMar 6, 2026
Zendeskの緊急アラートを設定する方法:2026年完全ガイドのバナー画像
Zendesk AI

Zendeskの緊急アラートを設定する方法:2026年完全ガイド

Zendeskで緊急チケットアラートを設定するための実用的なガイド。ネイティブトリガーから、eesel AIによるAI搭載の自動化まで。

Stevia PutriStevia PutriMar 6, 2026
Zendeskの会話履歴へのアクセスとエクスポート方法:完全ガイドのバナー画像
Zendesk AI

Zendeskの会話履歴へのアクセスとエクスポート方法:完全ガイド

Zendeskの会話履歴の管理に関する実践的なガイド。エクスポート方法、ChatとMessagingのプラットフォーム間の違い、および一般的な制限事項に対するソリューションが含まれています。

Stevia PutriStevia PutriMar 5, 2026
Zendeskのメールからチケットへの設定方法:完全ガイドのバナー画像
Zendesk AI

Zendeskのメールからチケットへの設定方法:完全ガイド

顧客からのメールをZendeskのチケットに変換するための実用的なガイドです。ネイティブアドレス、外部メールの転送、自動化ルールについて説明します。

Stevia PutriStevia PutriMar 5, 2026
2026年、フードデリバリー企業はどのようにZendeskをカスタマーサポートに活用しているかのバナー画像
Zendesk AI

2026年、フードデリバリー企業はどのようにZendeskをカスタマーサポートに活用しているか

大手フードデリバリー企業が、Zendeskのオムニチャネルプラットフォームを活用して、顧客、レストラン、配達員をサポートし、高いCSATスコアを維持する方法をご紹介します。

Stevia PutriStevia PutriMar 5, 2026
Zendeskプロアクティブチャットのバナー画像:2026年完全設定ガイド
Zendesk AI

Zendeskプロアクティブチャット:2026年完全設定ガイド

Zendeskプロアクティブチャットの設定と最適化に関する包括的なガイド。基本的な構成から、実際のビジネス成果を促進する高度なユースケースまでを網羅します。

Stevia PutriStevia PutriMar 5, 2026
旅行・宿泊業界におけるZendeskのカスタマーサービス活用法のバナー画像
Zendesk AI

旅行・宿泊業界におけるZendeskのカスタマーサービス活用法

予約管理からAIを活用したサポート自動化まで、旅行業界のカスタマーサービスにおけるZendeskの活用に関する完全ガイドです。

Stevia PutriStevia PutriMar 5, 2026
Zendeskウィジェットをメールに設定する方法:2026年完全ガイドのバナー画像
Zendesk AI

Zendeskウィジェットをメールに設定する方法:2026年完全ガイド

Zendeskウェブウィジェットのメール機能を設定するための実用的なガイド。お問い合わせフォーム、オフラインフォーム、メールの到達性に関するベストプラクティスが含まれます。

Stevia PutriStevia PutriMar 5, 2026
Zendesk営業時間外サポートの設定方法:2026年完全ガイドのバナー画像
Zendesk AI

Zendesk営業時間外サポートの設定方法:2026年完全ガイド

Zendeskで営業時間外サポートを設定するための実用的なガイド。営業時間の設定、オーバーフローコールルーティング、時間ベースの自動化について説明します。

Stevia PutriStevia PutriMar 4, 2026

AIチームメイトを採用する準備はできましたか?

数分でセットアップ。クレジットカード不要。

無料で始める