良こんにちは、エンジニアの石川です。APIに関して紹介しようと思います。最近お客様からこちらのAPIを利用して実現出来るご要望をいくつか伺う機会ありまして執筆致しました。最近のナレッジのトピックで言えば内側に目を向けるとコンソールでの検索の利便性が向上しています。Answerという機能のパイロット版が追加されました。このように機能拡張がされており、サービスを向上するにはナレッジは欠かせない存在になるのではと思っています。APIで出来ること社内向けのナレッジを構築した後はお客様の自己解決を促すために社外向けに公開すると思います。APIを利用すれば外部サイト、別システムでも使うことが出来るようになります。APIの利用に認証は不要となっております。APIの中でも使うことが多そうな2つのAPIについて紹介いたします。検索APIまずは検索用のAPIの紹介です。こちらでSalesforceのナレッジ検索が外部システムからも使えます。ナレッジを外部システムで利用するには単純にデータ連携するだけではまともに利用することが出来ません。いうのも検索ワードに対して必要とされるナレッジを表示できなくては使えないからです。APIを利用すれば開発に時間をかけなくてもSalesforceの検索アルゴリズムを用いてナレッジが利用可能になるわけです!具体的な利用シーンを考えると製品紹介ページに関連する補足情報を埋め込んだり、botで受け付けたコメントに対応してナレッジを表示するという事も可能だと思います。APIの基本的な利用方法は以下となります。■エンドポイント外部向けにSalesforce内のリソースを公開するのでコミュニティの設定が必要です。"/services/data/v41.0/support/knowledgeArticles"がエンドポイントになります。Accept-language・・・ナレッジの言語コードを設定してください。Salesforceの日本語の文字コードは「ja」です。q・・・qにはSOQL,SOSLのクエリではなく検索ワードをそのまま入れてください。未入力の場合は他の条件で絞り込んだ結果が返されます。channel・・・App、Pkb、Csp、Prmのいずれかとなります。ナレッジレコードに設定しているチャネルが条件となります。顧客チャネル、Pkbは公開知識ベースチャネルを意味します。今回は不特定多数のユーザにナレッジを見せる想定なので対象はPkbとなります。ViewScoreのいずれかを入れてください。クエリおよび検索の関連性に使用されます。」と書いてあり、ちょっとわかりづらいですが、試したところSOSLによる関連度合いでソートした順になっていました。その他の詳細は以下をご覧ください。https://developer.salesforce.com/docs/atlas.ja-jp.212.0.api_rest.meta/api_rest/resources_knowledge_support_artlist.htmカテゴリAPIカテゴリはSalesforce内ではメタデータで保持しているようでSOQLでの取得が不可能です。カテゴリ構造を取得したい場合はこちらのAPIの出番となります。APIの基本的な利用方法は以下となります。■エンドポイント検索のAPIと同様に外部向けにSalesforce内のリソースを公開するのでコミュニティの設定が必要です。"/services/data/v41.0/support/dataCategoryGroups"がエンドポイントになります。ヘッダーAccept・・・検索APIと同様になります。Accept-language・・・トランスレーションワークベンチを用いてカテゴリ名に翻訳を設定していると指定した言語の翻訳を取得します、未指定であればマスタ言語で出力されます。固定で指定してください。topCategoriesOnly・・・trueとした場合は最上位のカテゴリのみ取得します、falseにした場合は下位の階層も取得します。その他の詳細は以下をご覧ください。https://developer.salesforce.com/docs/atlas.ja-jp.210.0.api_rest.meta/api_rest/resources_knowledge_support_dcgroups.htm実際に取得すると以下のような形式になります。JSONでも取得可能です。<dataCategoryGroups><categoryGroups><label>製品カテゴリ</label><name>Product</name><objectUsage>KnowledgeArticleVersion</objectUsage><topCategories><childCategories><childCategories><label>SkyOnDemand</label><name>SkyOnDemand</name><url>/services/data/v41.0/support/dataCategoryGroups/Product/dataCategories/SkyOnDemand?sObjectName=KnowledgeArticleVersion</url></childCategories><childCategories><label>DataSpiderCloud</label><name>DataSpiderCloud</name><url>/services/data/v41.0/support/dataCategoryGroups/Product/dataCategories/DataSpiderCloud?sObjectName=KnowledgeArticleVersion</url></childCategories><childCategories><label>DCSpider</label><name>DCSpider</name><url>/services/data/v41.0/support/dataCategoryGroups/Product/dataCategories/DCSpider?sObjectName=KnowledgeArticleVersion</url></childCategories><label>連携</label><name>Category0</name><url>/services/data/v41.0/support/dataCategoryGroups/Product/dataCategories/Category0?sObjectName=KnowledgeArticleVersion</url></childCategories><childCategories>...</childCategories><childCategories>...</childCategories><label>すべて</label><name>All</name><url>...</url></topCategories></categoryGroups></dataCategoryGroups>dataCategory.xmlデモ最後にAPIを利用したjqueryライブラリを作ったので載せておきます。APIを利用する場合はコミュニティの設定は必須となります。処理はAPIの結果を基にリスト形式で出力するようになっています。使うのであればSalesforceの静的リソースに入れて使用してください。optionには以下を設定してください。"srcURLは必須です。};faq.jshtmlはただ出力するために作ったので殺風景ですが「チョコ」に関連するナレッジをとってきています。・コミュニティの設定でサポートAPIへのゲストアクセスにチェックが必要となりますのでお忘れなく。<p>非常に甘いです。</body></html>index.html実際のページを見ると関連するナレッジの部分にリスト形式でナレッジが出ていますね。APIの説明となります。ナレッジがただの知識ベースではないことが伝われば幸いです。「カスタム通知」でPC/モバイルに通知を出し分けてみた関連するキーワードSalesforceサービスクラウドナレッジTerraSkyBaseについてTerraSkyBaseはクラウドサービスを手掛ける株式会社テラスカイのコンテンツプラットフォームです。