コンシューマー向けの公開サーベイの作成<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } CSM には、次の 2 つのタイプのコンシューマーテーブルがあります。 csm_consumer_user:このテーブルは sys_user から拡張され、登録されたコンシューマーレコードを格納します。csm_consumer:このテーブルはsys_userテーブルから拡張されておらず、未登録のコンシューマーが格納されます。 ケーステーブルの コンシューマー フィールドはcsm_consumerテーブルを参照しており、エージェントは未登録ユーザーのケースも作成できます。 B2C ユースケースでは、ケースがクローズまたは解決された後に、コンシューマーが受けたサービスのタイプに関するフィードバックを得るために、コンシューマーにサーベイを送信する場合があります。 ServiceNow の非公開サーベイには、トリガー条件の ユーザー フィールドを、sys_userテーブルを参照するテーブルまたは参照テーブルにのみ設定できるという既知の制限があります。この制限により、csm_consumerテーブルがsys_userから拡張されておらず、コンシューマーがインスタンスにアクセスできないため、csm_consumerテーブルのレコードのサーベイレコードは作成されません。 未登録のコンシューマーにサーベイを送信するには、公開サーベイと非公開サーベイの 2 つのオプションがあります。これらのオプションについては、以下で説明します。 オプション 1:公開サーベイ [ パブリックアクセスを有効にする UI アクションをクリックして、インスタンスにログインしていないユーザーがサーベイを利用できるようにして、サーベイを一般公開します。このオプションは、サーベイをトリガーする条件に基づいてフローデザイナーまたはメール通知から送信できる静的 URL を生成します。静的 URL には、メールをトリガーしたケースレコードにサーベイをリンクする次の 2 つのパラメーターを追加できます。 sysparm_trigger_table:ケーステーブル (sn_customerservice_case)sysparm_trigger_id:フロー/メール通知をトリガーしたレコードの sysId これらのパラメーターにより、[ トリガー ID 参照フィールドにサーベイインスタンスの正しいデータが入力され、レポートまたは分析の目的で使用できます。 注意:メールからのサーベイリンクをサービスポータルビューで開くことを許可する (サーベイにのみ適用) プロパティ値を false に設定すると、サーベイレコードがサービスポータルで開かないようにできます。 オプション 2:非公開サーベイ サーベイを公開しない場合は、コンシューマーを登録し、適切なロール (sn_customerservice.consumer) をアサインする必要があります。ビジネスルールのサーベイのトリガーポイントの前に、次の操作を行います。 csm_consumerテーブルからcsm_consumer_userテーブルにレコードをコピーします。既存のトリガー条件を使用するには、この新しいレコードに対応する参照を csm_consumer テーブルの User フィールドに追加し直します。 例: function onAfter(){ var consumer = new GlideRecord('csm_consumer'); consumer.get(current.consumer); var gr = new GlideRecord("csm_consumer_user"); gr.initialize(); if(gs.nil(consumer.getValue('user'))){ gr.first_name = consumer.first_name; gr.last_name = consumer.last_name; gr.email = consumer.email; gr.user_name = consumer.email; var user = gr.insert(); consumer.user = user; consumer.update(); } (new sn_assessment_core.AssessmentCreation()).conditionTrigger(current, 'a491d4f1c311220071d07bfaa2d3ae85'); } 注: csm_consumer_user テーブルは sys_user テーブルの拡張であるため、一度だけ使用するユーザーデータで過負荷にしないことをお勧めします。このような場合は、サーベイ専用に作成されたこれらのレコードを消去するようにスケジュール済みジョブを設定します。