Helpshiftにおける個人データには、Helpshiftのサーバーに保存されている、エンドユーザーに関連するチケットの詳細とユーザー情報がすべて含まれます。Helpshiftは、GDPR要件に基づいてデータポータビリティのリクエストを自動的に作成するために使用できる、一連のREST APIを提供しています。データポータビリティのリクエストは、毎週処理されます。

データポータビリティのリクエストを開始するには、REST /hs-data APIを使用できます。APIコールを設定する際、ユーザーに関する情報の提供を求められます。リクエストが作成されると、Helpshiftはリクエストされたデータを収集する定期的なバッチ処理を自動的にスケジュールします。

保留中のデータポータビリティリクエストのステータスを監視するために、/hs-data/status APIを定期的に使用できます。リクエストが完了すると、圧縮形式のデータへの時間制限付きリンクが送信されます。

柔軟性を提供するため、ユーザーは以下の表で定義されているように、さまざまな方法で識別できます。

ユーザーの識別どのような情報が返されますか?
ユーザーは次のように識別できます:ユーザーのプロフィール情報と、ユーザーが作成した一連のチケットが返されます。チケットの情報には、メッセージ、添付ファイル、カスタムチケットフィールドなどが含まれます。

データポータビリティのリクエスト対象となるユーザーを特定したら、以下のREST APIを使用して、これらの削除リクエストを作成および監視できます。詳細については、REST APIのはじめにページをご覧ください。

パート 1: データポータビリティリクエストの作成 (POST /hs-data)

API: POST /hs-data

POST /hs-data APIは、次のようにJSON形式で「requests」オブジェクトを渡すことによって、一連のデータポータビリティリクエストを送信するために使用できます。

パラメータタイプ必須ですか?
requestsエクスポートリクエストの配列(下記参照)はい

リクエストオブジェクトには、次のプロパティが含まれています。

プロパティ

タイプ

必須

説明

財産

ストリング

はい

“user_id” OR “hs_user_id” OR “issue_id” OR “email” を使用して、提供される ID を示してください

価値

ストリング

はい

ユーザーを特定するために使用される実際の識別子(ユーザーID、HSユーザーID、チケットID、またはメールアドレス)

app_publish_id

アプリID

はい

移植リクエストが行われるアプリ – これはユーザーまたはチケットのアプリと一致する必要があります。

external_publish_id

ストリング

いいえ

データポータビリティリクエストの作成時に設定できるオプションの外部トラッキングID

パスワード

ストリング

いいえ

(オプション) 出力データは、指定されたパスワードを使用して暗号化されます。パスワードの長さは8〜64文字である必要があります。

 お伝えする必要のあるアプリ情報は、app_publish_idです。アプリ公開IDは、設定 > アプリ設定ページにあります(以下のスクリーンショット参照)。

サンプル CURL リクエスト:

curl -X POST
-H “Authorization: Basic ########”
-H “Cache-Control: no-cache” -H “Cache-Control: no-cache”
-H “Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary7MA4YWxkTrZu0gW”
-F “requests=[ { “property”: “issue_id”%2C “value”: “270”%2C “app_publish_id”: “12”%2C “external_request_id”: “my_portdb_id_123″ } ]”
「https://api.helpshift.com/v1/ashbys/hs-data/」

応答:

以下は、POSTリクエストから返されるものです。

パラメータタイプ
statusHTTPステータスコード 200、404など。
リクエストが正常に処理された場合は 200 を返し、リクエスト全体の処理に失敗した場合は 404 を返します。
bodyエクスポートリクエストの応答の配列 (下記)

レスポンスボディ:

個々のレスポンスの構造は、以下の表に示されています。

パラメータタイプ説明
hs_request_idIDポータビリティリクエストを追跡するために使用される一意のID
successT/Fポータビリティリクエストの作成が成功したかどうかを示すインジケーター
external_request_idID追跡のためにリクエストで指定された外部ID
etaDateジョブが完了する推定日
reasonStringリクエストの作成に失敗した場合、そのリクエストが失敗した理由 - ユーザーIDが無効です

パート2:ポータビリティリクエストステータスの確認

API: GET /hs-data/status

GET /hs-data/status APIは、既存のポータビリティリクエストのセットと、各リクエストの現在のステータスを返します。

フィルター:

GET /hs-data/status API は、特定のポータビリティリクエストを識別するために使用されます。少なくとも以下のいずれかのフィルターが必要です。

フィルター用途
/hs-data/status?external_request_id=value外部リクエストIDを使用して、ポータビリティリクエストのステータスを知る
/hs-data/status?hs_request_id=valuehsリクエストIDを使用して、ポータビリティリクエストのステータスを知る

応答:

本文には、1つまたは複数の応答が含まれる場合がありますのでご注意ください。

パラメータタイプ
ステータスHTTPステータスコード200、404など。
リクエストが正常に処理された場合は 200 を返し、リクエストが正常に処理されなかった場合は 404 を返します。
bodyエクスポートリクエストの応答の配列 (下記)

レスポンスボディ:

個々のレスポンスの構造は、以下の表に示されています。

パラメータタイプ説明
hs_request_idID一意に生成されたリクエストID
statusStringリクエスト処理状態を示す
external_request_idIDリクエストで指定されたサイトのトラッキングID
hs_data_urlStringデータをダウンロードするためのURL
url_valid_untilTimestamp (ISO)URLのダウンロードが有効な時間のおおよその見積もり。
reasonString失敗の理由 – たとえば、ユーザーIDまたはチケットIDが正しくない場合、不足している必須フィールドのJSONリストと、無効な形式のフィールドのリストが返されます。
etaTimestamp (ISO)到着予定時刻(ISO形式)
requestMap元のリクエスト(レスポンスに対して)
encrypted_zip?BooleanZIPファイルがパスワードで保護されているかどうかを示します。
: このフィールドは、「ステータス」の値が「完了」の場合にのみ利用可能です。

サンプル回答:

{
"ステータス": "作成済み",
“eta”: “タイムスタンプ”,
“hs_data_url”: “文字列”,
“url_valid_until”: “タイムスタンプ”,
“encrypted_zip?” : “ブール値”,
「リクエスト」: {
「プロパティ」: 「メール」
"value": "文字列",
“app_publish_id”: “文字列”,
“external_redaction_id”: “文字列”
}
}