あるヘルプセンターから別のヘルプセンターにコンテンツを移行する方法は多数あります。この記事では、主にヘルプセンターAPIを使用してプログラム的にコンテンツをインポートする方法に焦点を当て、既存のコンテンツを新しいヘルプセンターのナレッジベースやコミュニティに移行するプロセスの概要を説明します。また、以下の方法でコンテンツを移行することもできます。
- コピー/ペースト:数本の記事だけを移行する場合、以前のヘルプセンターからコンテンツをコピーして新しいGuide記事にペーストするのが最も早くて簡単な方法です。
- プロフェッショナルサービス:大規模または複雑な移行を行う場合は、Zendeskに移行のサポートを依頼することができます。
- パートナーアプリ:Zendeskのアプリマーケットプレイスで、Help Desk Migrationなどのパートナーアプリを探すことができます。
この記事では、次のトピックについて説明します。
ナレッジベースにコンテンツを移行する
外部システムからヘルプセンターへのコンテンツの移行は、複数のステップからなるプロセスであり、1つのステップで得たデータが次のステップで使用されます。
計画性が非常に重要です。既存のコンテンツの構造を、ヘルプセンターの3層構造にマッピングする必要があります。
作成者をZendeskユーザーとしてインポートする
まず、すべての記事の作成者を、「エージェント」というロールを持つZendeskユーザーとしてインポートする必要があります。Zendeskのエージェントは、必ずしもチケットを解決する人ではありません(「Zendesk Supportのユーザーロールの概要」を参照)。
APIを使用してZendeskユーザーを作成する方法については、「Create user(ユーザーを作成する)」を参照してください。各POSTリクエストで、role
属性を「agent」に設定することを確認します。
ユーザーの作成に成功すると、Zendeskはそのユーザーのーザーの新しいIDを含む詳細情報をJSONレスポンスで返します。
{
"user": {
"id": 9873843,
"name": "Roger Wilco",
...
}
}
ヘルプセンターで作成する各記事のauthor_id
属性を設定するためにIDが必要になるため、各ユーザーのIDを記録します。
ユーザーセグメント内の組織を使用してセクションを分離する場合は、ユーザーを作成する前に組織を作成する必要があります。その後、ユーザーを作成する際に、組織IDをユーザーに割り当てることができます(「Create organization(組織を作成する)」を参照)。ユーザーが複数の組織に所属する場合は、組織のメンバーシップを使用してユーザーレコードに組織を追加します。
ナレッジベース内にカテゴリを作成する
カテゴリはセクションの集まりです(「Create category(カテゴリを作成する)」を参照)。カテゴリを作成すると、Zendeskはそのカテゴリの新しいIDを含むJSONレスポンスを返します。
{
"category": {
"id": 37486578,
"name": "Super Hero Tricks",
"description": "This category contains a collection of Super Hero tricks",
"locale": "en-us",
"position": 2,
...
}
}
各カテゴリのIDを記録しておきます。これは、後でセクションを作成するときに、特定のカテゴリにセクションを割り当てるためにIDが必要になるからです。
ユーザーセグメントを作成する(オプション)
ヘルプセンターの特定のセクションへのアクセスを制限したい場合は、セクションにユーザーセグメントを割り当てることができます(「Create user segment(ユーザーセグメントを作成する)」を参照)。
ユーザーセグメントを作成すると、Zendeskはそのユーザーセグメントの新しいIDを含むJSONレスポンスを返します。
{
"user_segment": {
"id": 7284
"name": "VIP agents",
"user_type": "staff",
"group_ids": [12, ...],
"organization_ids": [42, ...],
"tags": ["vip"],
"created_at": "2017-05-21T20:01:12Z",
"updated_at": "2017-05-21T20:01:12Z",
"built_in": false
}
}
各ユーザーセグメントのIDを記録しておきます。後でセクションを作成するときに、セクションにアクセス制限を割り当てるためにセグメントIDが必要になるからです。
カテゴリ内にセクションを作成する
セクションは記事の集まりです(「Create section(セクションを作成する)」を参照)。各POSTリクエストでcategory_id
とuser_segment_id
(存在する場合)が設定されていることを確認します。Zendeskは、そのセクションの新しいIDを含むJSONレスポンスを返します。
{
"section": {
"id": 3457836,
"name": "Avionics",
"description": "This section contains articles on flight instruments",
"locale": "en-us",
"category_id": 3465,
...
}
}
各セクションのIDを記録しておきます。後で記事を作成するときに、記事を特定のセクションに割り当てるためにセクションIDが必要になるからです。
セクション内に記事を作成する
これまでの手順で取得したセクションIDとユーザーIDがすべて揃ったら、記事を作成できます(「Create article(記事を作成する)」を参照)。title
とbody
に加えて、各POSTリクエストにauthor_id
とsection_id
が設定されていることを確認してください。
Zendeskは、以下のようなJSONレスポンスを返します。
{
"article": {
"id": 37486578,
"author_id": 3465,
"promoted": false,
"position": 42,
"comments_disabled": true,
"section_id": 98838,
...
}
}
添付ファイルをアップロードする(必要な場合)
Amazon S3などのパブリックファイルサーバーでホストされていないインライン画像が記事に含まれている場合は、ヘルプセンターに画像をアップロードします(「Create unassociated attachment(関連付けられていない添付ファイルを作成する)」を参照)。inline
パラメータがtrue
に設定されていることを確認します。
Zendeskは添付ファイルのURL(content_url
)を含むJSONレスポンスを返します。
{
"article_attachment": {
"id": 1428,
"article_id": null,
"file_name": "icon.jpg",
"content_url": "https://company.zendesk.com/hc/article_attachments/1428/icon.jpg",
"content_type": "application/image",
"size": 58298,
"inline": true
}
}
content_url
を使用して、記事のHTML内の画像URLを更新します(「Associate attachments in bulk to article(記事に一括して添付ファイルを関連付ける)」を参照)。
記事のコメントをインポートする
コメントをインポートするには、作成者IDと記事IDが必要です。エージェントとエンドユーザーの両方がコメントの作成者になることができます(「Create comment(コメントを作成する)」を参照)。
コメントをコミュニティに移行する
コミュニティコンテンツのインポートに関する考慮事項の多くは、ナレッジベースのインポートと同じです。投稿に作成者を割り当てるには、ユーザーをインポートする必要があります。また、既存のコミュニティコンテンツの構造を、ヘルプセンターコミュニティの2層構造にマップする必要もあります。
ユーザーセグメントを作成する(オプション)
特定のトピックへのアクセスを制限する場合は、ユーザーセグメントIDが必要になります(「Create a user segment(ユーザーセグメントを作成する)」を参照)。後でトピックを作成する際に、トピックへのアクセス制限を割り当てるためにユーザーセグメントIDが必要になります。
コミュニティ内にトピックをインポートする
該当する場合は、POSTリクエストでuser_segment_id
を設定していることを確認してください(「Create topic(トピックを作成する)」を参照)。
Zendeskは、そのトピックIDを含むJSONレスポンスを返します。
{
"topic": {
"id": 115000553548,
"name": "Help Center-Tricks",
...
}
}
各トピックのIDを記録しておきます。後でトピックを作成するときに、特定のトピックに投稿を割り当てるためにトピックIDが必要になるからです。
トピック内に投稿をインポートする
title
とdetails
に加えて、各POSTリクエストにauthor_id
とtopic_id
が設定されていることを確認してください(「Create post(投稿を作成する)」を参照)。
ナレッジベースの記事とは異なり、コミュニティの投稿の作成者にはエージェントやエンドユーザーもなることができます。
投稿を作成すると、投稿の作成者に対してそのトピックのすべての更新情報の受信登録が自動的に行われ、新しい投稿が作成または更新されると通知されます。
投稿が作成されると、同じトピックのすべての受信登録者にメール通知が送られます。投稿を一括インポートするときに、受信登録者に大量の通知が届かないようにするには、POSTリクエストに値false
のnotify_subscribers
パラメータを含めます。
{
"post": {
"id": 35467,
"author_id": 89567,
"title": "Help!",
"details": "My printer is on fire!",
"notify_subscribers": false,
...
}
}
投稿内にコメントをインポートする
投稿を作成してIDを取得したら、次は関連するコメントを追加します(「Create comment(コメントを作成する)」を参照)。
一度に作成できるコメントは1つだけです。投稿のコメントを作成すると、コメントの作成者に対してそのトピックのすべての更新情報の受信登録が自動的に行われ、新しい投稿が作成または更新されると通知されます。
コメントが作成されると、同じトピックのすべての受信登録者にメール通知が送られます。受信登録者に大量の通知が届かないようにするには、POSTリクエストに値false
のnotify_subscribers
パラメータを含めます。