現在のプランを確認
Suite Team、Growth、Professional、EnterpriseまたはEnterprise Plus
Support + Guide ProfessionalまたはEnterprise

あるヘルプセンターから別のヘルプセンターへコンテンツの移行には複数の選択肢があります。この記事では、主にヘルプセンターAPIを使用したコンテンツのプログラムによるインポートに焦点を当て、既存のコンテンツを新しいヘルプセンターへ移行するプロセスの概要を説明します。また、以下の方法でコンテンツを移行することも可能です。

  • コピー&ペースト:いくつかの記事だけを移行する場合、最も手軽で簡単な方法は、以前のヘルプセンターのコンテンツをコピーし、新しい記事に貼り付けることです。
  • プロフェッショナルサービス:大規模な移行や複雑な移行を行う場合、Zendeskに依頼することができます。
  • パートナーアプリ:Zendeskアプリケマーケットプレイスで、Help Desk Migrationなどのパートナーアプリを探すことができます。

この記事では、次のトピックについて説明します。

  • コンテンツをナレッジベースへ移行する
    • 記事の作成者をZendeskユーザーとしてインポートする
    • ナレッジベース内にカテゴリを作成する
    • ユーザーセグメントを作成する(オプション)
    • カテゴリ内にセクションを作成する
    • セクション内に記事を作成する
    • 添付ファイルをアップロードする(必要な場合)
    • 記事のコメントをインポートする
  • コンテンツをコミュニティへ移行する
    • ユーザーセグメントを作成する(オプション)
    • コミュニティ内にトピックをインポートする
    • トピック内に投稿をインポートする
    • 投稿内にコメントをインポートする

コンテンツをナレッジベースへ移行する

外部システムからヘルプセンターへコンテンツを移行するには、各ステップのデータが次のステップで必要となる複数のステップを経るプロセスが必要です。

計画は極めて重要です。旧バージョンのコンテンツの構造をヘルプセンターの3層構造に対応させる必要があります。

記事の作成者をZendeskユーザーとしてインポートする

まず、すべての記事の作成者を「エージェント」のロールを持つZendeskユーザーとしてインポートする必要があります。(「Zendesk Supportのユーザーロールの概要」を参照)

ZendeskユーザーをAPI経由で作成できます(「Create user」を参照)。各POSTリクエストで role 属性を "agent" に設定します。

ユーザーの作成に成功すると、Zendeskはユーザーの新しいIDを含むユーザーの詳細をJSON応答で返します。
{
  "user": {
    "id":   9873843,
    "name": "Roger Wilco",
    ...
  }
}

ヘルプセンターで作成する各記事の author_id 属性を設定するために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」を参照)。category_id と user_segment_id(ある場合)を各POSTリクエストで設定していることを確認してください。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 に加えて、author_id と section_id を各POSTリクエストに確実に設定します。
メモ:すべての作成者は、自分の記事を自動的に受信登録します。ヘルプセンターがアクティブになっている場合、記事が作成されると、作成者はメール通知を受け取ります。
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 user segment」を参照)。後でトピックを作成する際、トピックにアクセス制限を割り当てるためにユーザーセグメントIDが必要になります。

コミュニティ内にトピックをインポートする

該当する場合は、POSTリクエストに user_segment_id を必ず設定します(「Create topic」トピックを参照)。

Zendeskは、トピックIDを含むJSON応答を返します。

{
  "topic": {
    "id":   115000553548,
    "name": "Help Center-Tricks",
    ...
  }
}

各トピックのIDを記録しておきます。後で記事を作成するときに、特定のトピックに投稿を割り当てるためにトピックIDが必要になるからです。

トピック内に投稿をインポートする

title と details に加えて、author_id と topic_id を各POSTリクエストに確実に設定します(「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 パラメータを含めます。

Powered by Zendesk