旧バージョンのカスタムオブジェクトを使用している場合、引き続きオブジェクト、レコード、リレーションシップにアクセスできます。旧バージョンのカスタムオブジェクトの継続的な使用を支援するすべてのリソースには、「旧バージョン」と表示されています。 「旧バージョン」ラベルのないカスタムオブジェクトドキュメントは、新しいカスタムオブジェクトエクスペリエンスにのみ適用されます。
Zendeskでは、チケットやユーザー、組織など、カスタマーのデータを保存および処理するためのさまざまなタイプのネイティブデータオブジェクトが提供されますが、組織が必要とする可能性のあるすべてのタイプのデータオブジェクトが提供されるわけではありません。たとえば、新しいチケットが届くたびに、チケットをカタログ内の製品に関連付けて、さまざまな製品を使用する際のカスタマーのエクスペリエンスをより詳細に把握したい場合があるかもしれません。旧バージョンのカスタムオブジェクトを使用すると、Zendeskで新しいオブジェクトタイプのブループリントを作成し、ブループリントに基づいてオブジェクトレコードを作成できます。
この記事では、次のトピックについて説明します。
旧バージョンのカスタムオブジェクトについて
旧バージョンのカスタムオブジェクトは、製品やサービス契約、カスタマーの訪問など、ほぼあらゆるものを表すことができます。旧バージョンのカスタムオブジェクトは、Zendeskの管理センターで、またはAPIを使用して作成できます。そして、作成した旧バージョンのカスタムオブジェクトを使用して、ビジネスニーズに合わせてZendeskアカウントをカスタマイズできます。各オブジェクトに適用される権限を指定することで、旧バージョンのカスタムオブジェクトへのアクセスを制御することができます。
このガイドでは、管理センターで旧バージョンのカスタムオブジェクトを定義する方法を示します。ここでは、民泊ビジネスを例に挙げています。お客様は、民泊サービス会社のサポートチームに電話をかけるかチャットを開始して、民泊施設に関する問題を報告できます。報告を受けたサポートチームは、問題に関するチケットを作成します。この民泊サービス会社では、Supportの各チケットを民泊施設に関連付けて、エージェントがより良いカスタマーサービスを提供できるようにしたいと考えています。また、この情報を使用して、各施設でのカスタマーエクスペリエンスをより詳しく把握し、施設の改善を図りたいと考えています。
管理センターの旧バージョンのカスタムオブジェクトについて説明している次のビデオでは、インターフェイスが新しくなっていることに注目してください。
旧バージョンのカスタムオブジェクトの拡張機能(6:02)
旧バージョンのカスタムオブジェクトの制限事項
旧バージョンのカスタムオブジェクトおよびレコードには、以下の制限が適用されます。
- 作成できる旧バージョンのカスタムオブジェクトは1アカウントあたり最大50個です。
- Support Enterprise、Suite TeamおよびGrowth:10万個
- Suite Professional:25万個
- Suite Enterprise:100万個
- Suite Enterprise Plus:2,500万個
旧バージョンのカスタムオブジェクトを有効にする
旧バージョンのカスタムオブジェクトは、2023年9月より前にこの機能を有効にしたアカウントのみが利用できます。Zendeskでカスタムデータを使い始めたばかりの方は、新しいカスタムオブジェクトのエクスペリエンスをご覧ください。
旧バージョンのカスタムオブジェクトタイプを定義する
民泊サービス会社の場合は、民泊施設ごとに、その施設を表す旧バージョンのカスタムオブジェクトレコードを1つ作成する必要があります。会社が新たに民泊施設を契約する際には、その施設を表すオブジェクトレコードを追加するだけです。
民泊施設は、特定の属性を共有します。たとえば、各施設には住所や週払い料金、ベッドルームの室数などの属性があります。各属性の値は、施設ごとに異なります。たとえば、リスボンにある民泊施設では、ベッドルームが2部屋で、宿泊料週600ドルです。一方、アスペンにある施設ではベッドルームが3部屋で、宿泊料週1,100ドルです。
同様に、同じタイプ(例:「rental property」タイプ)のSunshineカスタムオブジェクトはすべて、同一の属性を共有します。旧バージョンのカスタムオブジェクトの属性は、「オブジェクトタイプ」と呼ばれるブループリントで定義されます。
技術上は、オブジェクトタイプは、属性を記述する「キー」と「スキーマ」から構成されます。キーは、オブジェクトタイプを識別するのに使用される名前です。オブジェクトタイプを作成するときには、「オブジェクト名」フィールドにキーを入力します。例えば、「rental_property」のように記述します。
民泊施設のあらゆる属性を定義できます。ここでは、例を簡単にするために、「rental_property」というキーを持つ新しいカスタムオブジェクトに次の属性を使用することにします。
名前 | タイプ | 必須 | コメント |
---|---|---|---|
id | 文字列 | 〇 | 会社が民泊施設に割り当てる一意のID |
bedrooms | 数値 | × | ベッドルームの室数 |
address | 文字列 | × | 民泊施設の住所 |
country | 文字列 | × | 民泊施設のある国 |
cleaning_service | 文字列 | × | 現地での清掃サービス |
cleaning_service_phone | 文字列 | × | 現地の清掃サービスの連絡先電話番号 |
pets_allowed | ブール値 | 〇 | その民泊施設でペットの帯同が許可されているかどうか |
これがスキーマです。なお、スキーマには、特定の民泊施設に関する情報は含まれません。スキーマはその情報が記述されているだけです。詳しくは「Creating a schema for a legacy custom object(旧バージョンのカスタムオブジェクトのスキーマの作成)」を参照してください。
旧バージョンのカスタムオブジェクトタイプを定義するには
- 管理センターで、サイドバーの「
オブジェクトとルール」をクリックし、「カスタムオブジェクト」>「旧バージョンのオブジェクト」を選択します。
- 「オブジェクトを追加」をクリックします。
- 「オブジェクト名」に、オブジェクトのキーとして「rental_property」と入力します。
さらに、キーは次の要件を満たす必要があります。
- 一意であること
- 英数字(a〜z、0〜9)、アンダースコア(_)およびダッシュ(-)のみを含むこと
- 文字列の長さが2文字以上、32文字以内であること
- 「プロパティを追加」をクリックして、新しいプロパティを定義します。
- 右パネルの「プロパティを追加」フォームに、以下の値を入力します。
- 名前 - ID
- タイプ - string
- 説明 - Unique identifier assigned by the business to the rental property
- 必須 - チェックする
- スキーマの構築を続行する場合は、「プロパティを追加」をクリックします。
- 「プロパティを追加」フォームに2番目のプロパティの値を入力します。
- スキーマテーブルに他のプロパティを追加するには、「プロパティを追加」のクリックを続けます。
- 「保存」をクリックします。
再び開くと、旧バージョンのオブジェクトタイプが以下のように表示されます。
オブジェクトを保存したら、ロールベースのアクセス権限を設定して、オブジェクトまたはリレーションシップレコードに対するエージェントおよびエンドユーザーの権限を定義できます。「旧バージョンのオブジェクトのロールと権限を設定する」を参照してください。
旧バージョンのオブジェクトレコードを追加する
管理センターでrental_propertyオブジェクトタイプを作成したら、組織の開発者はSunshine APIを使用し、会社の各民泊施設の旧バージョンのカスタムオブジェクトレコードを作成できます。さらに、APIを使用して、それらのオブジェクトレコードを読み取り、更新、削除することができます。旧バージョンのオブジェクトレコードは、定義されたプロパティを持つデータベースレコードにすぎません。
開発者が民泊施設のレコードを作成するためのAPIリクエストに含めるデータは、定義したオブジェクトタイプによって定義されます。「rental_property」タイプの場合は、「id」、「bedrooms」、「address」、「country」、「cleaning_service」、および「cleaning_service_phone」です。たとえば、
{
"data": {
"type": "rental_property",
"attributes": {
"id": "fr-021",
"bedrooms": 2,
"address": "11 rue Laurier, Saint-Tropez",
"country": "France"
"cleaning_service": "tropez-nettoyage"
"cleaning_service_phone": "011.33.06.55.47.54.74 "
}
}
}
後からレコードを取得する場合は、開発者は複数の異なるエンドポイントを使用してそれらのレコードを取得します。APIドキュメントの「Legacy Object Records(旧バージョンのオブジェクトレコード)」を参照してください。
別の清掃サービス業者と新たに契約するなどして、民泊サービス会社が民泊施設に変更を加えた場合は、開発者はUpdate legacy object recordエンドポイントを使用して、当該民泊施設のオブジェクトレコードを更新できます。
会社が民泊施設との契約を解消した場合は、Delete legacy object recordエンドポイントを使用します。
会社が新たな民泊施設と契約をした場合は、Create legacy object recordエンドポイントを使用します。
旧バージョンのカスタムオブジェクトでデータをモデリングする
民泊施設のデータをより意味のある方法で活用するには、「rental_property」タイプと他のオブジェクトタイプの間にリレーションシップを確立します。たとえば、特定の民泊施設に関する情報は、その施設についてゲストが送信したチケットに関連付けられていない限り、施設管理者にとってあまり有用ではありません。なお、チケットは、Zendeskの別のオブジェクトタイプにすぎません。
カスタムオブジェクトは、オブジェクトタイプ間のいくつかのリレーションシップをサポートします。
-
1対1 - 両方のオブジェクトタイプは、リレーションシップの両端に1つのレコードのみを持つことができます。たとえば、チケットは1つの民泊施設にのみ関連付けられ、民泊施設は1つのチケットにのみ関連付けられます。これは、民泊サービスの例では実行可能なオプションではありません。1つの民泊施設に、複数のチケットが関係することもあるからです。
-
1対多 - 最初のオブジェクトタイプの各オブジェクトは、2番目のオブジェクトタイプのオブジェクトに関係しないか、1つと関係するか、複数と関係します。たとえば、民泊施設は、どのチケットとも関係しないか、1つのチケットとのみ関係するか、複数のチケットと関係することができます。
-
多対多 - 最初のオブジェクトタイプの各オブジェクトは、2番目のオブジェクトタイプのどれにも関係しないか、1つのみと関係するか、または多くのオブジェクトに関係します。かつ、2番目のオブジェクトタイプの各オブジェクトは、最初のオブジェクトタイプのどれにも関係しないか、1つのみと関係するか、または多くのオブジェクトに関係します。1対多のリレーションシップタイプを2つ使用して、多対多のリレーションシップタイプを定義します。
リレーションシップとは、次の項目間の関係性です。
- 2つの旧バージョンのカスタムオブジェクトタイプ(「rental_property」と「guest_contract」オブジェクトタイプの間など)
- 1つの旧バージョンのカスタムオブジェクトタイプとZendeskのオブジェクトタイプ(チケット、ユーザー、記事、組織、グループ、またはチャット)のいずれか
- 2つのZendesk標準オブジェクトタイプ
旧バージョンのリレーションシップタイプを定義する
オブジェクトタイプがオブジェクトレコードを作成するためのブループリントであるように、リレーションシップタイプは2つの特定のオブジェクトタイプ間のリレーションシップレコードを作成するためのブループリントです。民泊サービスの例では、カスタムの「rental_property」オブジェクトタイプとZendeskチケットの標準オブジェクトタイプの間に「rental property has many ticket」リレーションシップタイプを定義します。
Zendesk Sellを使用すると、リード、取引、取引先などのZendesk Sellオブジェクト間にリレーションシップを作成することもできます。
リレーションシップタイプを定義しても、2つの特定のレコード間の関連付けは作成されません。これは単に、リレーションシップを説明するものです。リレーションシップタイプを定義した後、特定のチケットを特定の民泊施設に関連付けるリレーションシップレコードを作成できます。各レコードにおいて1つのチケットが1つの民泊施設に関連付けられている状態で、リレーションシップレコードが蓄積されると、各民泊施設の問題のより明確な状況をつかむことができます。Sunshineは、定義したリレーションシップタイプに基づいて、民泊施設ごとにチケットをグループ化できます。1つの民泊施設には多数のチケットがあります。
旧バージョンのリレーションシップタイプを作成するには
- 管理センターで、サイドバーの「
オブジェクトとルール」をクリックし、「カスタムオブジェクト」>「リレーションシップ」を選択します。
- 「リレーションシップタイプを追加」をクリックします。
- 「リレーションシップ名」に、「rental_prop_has_many_tickets」と入力します。
さらに、キーは次の要件を満たす必要があります。
- 一意であること
- 英数字(a〜z、0〜9)、アンダースコア(_)およびダッシュ(-)のみを含むこと
- 文字列の長さが2文字以上、32文字以内であること
- メニューから次の値を選択します。
- ソース - rental_property
- タイプ - 1対多
- ターゲット - zen:ticket
ページは次のようになります。
- 「保存」をクリックします。
旧バージョンのカスタムオブジェクトの関連レコードを関連付ける
リレーションシップタイプを定義したら、そのリレーションシップタイプに基づいて関連レコードの関連付けを開始できます。
リレーションシップレコード(リレーションシップタイプではありません)を作成して、あるオブジェクトタイプのレコードを別のオブジェクトタイプのレコードに関連付けます。民泊サービス会社の場合は、特定のチケットと特定の民泊施設間のリレーションシップレコードを作成できます。
関連レコードは、2つの関連するオブジェクトレコードのIDとそれらのリレーションシップタイプで構成されます。関連レコードには、宿泊者の問題や民泊施設に関する実際の情報は含まれていません。含まれているのは、チケットレコードのIDと民泊施設レコードのIDのみです。SunshineはこれらのIDを使用して関連レコードを取得します。
関連レコードは、作成した関連タイプによって管理されます。「rental_property_has_many_tickets」という名前の1対多タイプで、各チケットは1つの民泊施設にのみ関連付けることができますが、各民泊施設は、多くのチケットに関連付けることができます。
リレーションシップレコードを作成するには、チームの開発者がCreate Relationship Recordの作成エンドポイントにPOSTリクエストを行います。リクエストに含めるJSONオブジェクトには、リレーションシップタイプと「ソース」オブジェクトおよび「ターゲット」オブジェクトのIDを指定する必要があります。たとえば、
{
"data": {
"relationship_type": "rental_property_has_many_tickets",
"source": "1c771ee0-2c3f-11e7-bf60-e5c3f630b5aa",
"target": "zen:ticket:35437746"
}
}
関連レコードを取得する
チームの開発者は、List Relationship Records by Object Recordを使用して、リレーションシップレコードを取得できます。たとえば、開発者は、「5d0daa84-aec0-11e7-9a70-416881d66b6d」というレコードIDを持つ民泊施設のすべての関連チケットを取得できます。
応答の例:
{
"data": [
{
"id": "c5477230-2e98-11e7-acd9-9dbd5d6450d8",
"target": "zen:ticket:35438118",
"ref": "/api/v2/tickets/35438118"
},
{
"id": "5d3484b5-aec6-11e7-9a70-a12d6a7d800c",
"target": "zen:ticket:35437746",
"ref": "/api/v2/tickets/35437746"
}
],
"links": {
"previous":null,
"next":null
}
}
この例では、民泊施設には「35438118」と「35437746」の2つのチケットが関連付けられています。この情報を使用してチケットを表示できます。
まとめ
カスタムオブジェクトとリレーションシップレコードを使用して、実際の問題を解決したり、既存のプロセスを改善したり、カスタマーの状況をより詳細に把握したりできます。たとえば、チームの開発者は、民泊施設のカスタムオブジェクトを使用して、チケットに対応するエージェントに民泊施設の詳細を表示するZendeskアプリを構築できます。
また、エージェントがチケットのステータスを「新規」から「オープン」に変更すると、アプリはチケットと民泊施設を関連付けるリレーションシップレコードを作成できます。次に、Sunshine APIを使用して、各民泊施設のすべてのチケットをリストするレポートを生成し、その情報を使用して民泊施設の改善を図ることができます。
旧バージョンのオブジェクトのロールと権限を設定する
旧バージョンのカスタムオブジェクトを作成する場合、オブジェクトスキーマを保存した後に、権限を設定することができます。オブジェクトスキーマを保存すると「権限」タブにデフォルトの権限セットが表示されます。旧バージョンのオブジェクトのデフォルトの権限は、エージェントには全権限(作成、読み取り、更新、削除)を与えていますが、エンドユーザーには一切の権限を許可していません。
旧バージョンのカスタムオブジェクトのロールと権限を設定するには
- 管理センターで、サイドバーの「
オブジェクトとルール」をクリックし、「カスタムオブジェクト」>「旧バージョンのオブジェクト」を選択します。
- 「オブジェクトを追加」をクリックするか、既存のオブジェクトを選択して編集します。
- 「権限」タブをクリックします。
- 「エージェント」ロールまたは「エンドユーザー」ロールを選択し、権限を定義します。
- 「エージェント」パネルまたは「エンドユーザー」パネルで、エージェントまたはエンドユーザーに対して有効にしたい権限を選択します。
「作成」、「読み取り」、「更新」、「削除」から選択します。
- 「保存」をクリックします。
旧バージョンのオブジェクトが保存されたことを示すメッセージが表示され、更新された権限がテーブルに表示されます。
カスタムオブジェクトタイプとリレーションシップタイプを削除する
管理センターではカスタムオブジェクトタイプまたはリレーションシップタイプを削除できますが、カスタムオブジェクトレコードまたはリレーションシップレコードは削除できません。このセクションでは、カスタムオブジェクトタイプまたはリレーションシップタイプを管理センターで削除する方法について説明します。オブジェクトのタイプ/リレーションシップに既存のリレーションシップまたはレコードが関連付けられている場合は、それらのオブジェクトのタイプ/リレーションシップを削除することはできません。カスタムオブジェクトレコードまたはリレーションシップレコードを削除するには、Sunshine APIを使用します。
カスタムオブジェクトタイプを削除するには
- 管理センターで、サイドバーの「
オブジェクトとルール」をクリックし、「カスタムオブジェクト」>「オブジェクト」を選択します。
- 削除するカスタムオブジェクトタイプにカーソルを合わせて、タイプの横にあるごみ箱アイコンをクリックします。
- 確認メッセージが表示されたら、「削除」をクリックして削除を確定します。
リレーションシップタイプを削除するには
- 管理センターで、サイドバーの「
オブジェクトとルール」をクリックし、「カスタムオブジェクト」>「リレーションシップ」を選択します。
- 削除するリレーションシップタイプにカーソルを合わせて、タイプの横にあるごみ箱アイコンをクリックします。
- 確認メッセージが表示されたら、「削除」をクリックして削除を確定します。
11件のコメント
Dane
0
Paul Moran
Hi, we've just created a new sandbox of our production instance. The production instance has legacy objects and I wanted to duplicate the setup by creating legacy objects in the sandbox, but I'm unable to do so because of the Sept 23 restriction. Is there any way of creating legacy objects, maybe using the api? We will migrate to the new objects, but it's going to take a while to do that!
0
Dane
As it turns out, this feature is not yet supported. Please refer to Object type schema updating rules.
0
Shunei Chou
Hi, is it possible to define an attribute that only allows unqiue values, like a primary key on a retional database table.
0
Steven Aranaga
Is it possible to delete a property from a custom object? If you accidentally name one incorrectly, there is no way to get rid of it without re-creating the entire custom object? I only see these options:
1
Christopher Kennedy
0
Roland Hill
Thanks Christopher Kennedy - I must have overlooked that function. This will save me a lot of time. Appreciate the feedback.
0
Christopher Kennedy
It's possible to create a batch of object records by creating a Custom Objects Job. The successful Jobs API request queues an asynchronous job that creates the object records supplied in the request.
0
Roland Hill
Hi,
Is it possible to use the API to POST records to many objects?
I can successfully use the API to create a record against a single object, but haven't yet been able to "bulk" load records.
Many thanks.
0
Brett Bowser
I chatted with our PM and it looks like they are no longer accepting EAP registrations at this time. They are currently working on revamping Custom Objects as a whole which would remove the need to have an app in place so stay tuned as more information becomes available.
I'd also recommend following our Announcements page to stay up to date on product releases.
Hope this helps!
2
サインインしてコメントを残してください。