ビルド済みのメッセージング統合でのアカウントのリンク

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:4分
  • 仮想エージェントでは、アカウントのリンクによって、サポートされているチャットまたはメッセージアプリケーションのユーザーが ServiceNow ユーザープロファイルにマップされます。アカウントの自動リンクではメッセージングユーザーが認証されます。これにより、ユーザーは ServiceNow レコードが含まれる 仮想エージェント トピックに自動的にアクセスできるようになります。必要に応じて、ユーザーは ServiceNow アカウントとのリンクまたはリンク解除を手動で実行することもできます。

    アカウントの自動リンクの仕組み

    SlackMicrosoft Teams、および Workplace from Facebook 向けの Conversational Integration では、メッセージングユーザーを各自の ServiceNow アカウントに自動的にリンクするアカウントの自動リンクを有効にするオプションがあります。[メッセージアプリの統合] ページでアカウントの自動リンク機能を有効にすると、ユーザーが仮想エージェントとやり取りするときに ServiceNow アカウントにリンクするように求められることがありません。

    以前のリリースでは、メッセージングユーザーは ServiceNow アカウントにリンクするか、またはゲストとして続行するように求められていました。ただし、SlackMicrosoft Teams、および Workplace 向けの Conversational Integration では、アカウントの自動リンクを有効にした場合に、ユーザーがメッセージングアカウントと ServiceNow アカウントに同じメールアカウントを使用していれば、ユーザーがメッセージングアカウントを ServiceNow アカウントに手動でリンクすることはありません。自動リンク中に、仮想エージェントはメッセージングユーザーのメールアカウントを、ユーザー [sys_user] テーブルで各自のプロファイルに定義されているメールアカウントにマップします。メールアカウントが一致すると、ユーザーは自動的にリンク (認証) され、ボットとの会話を開始するときに [ServiceNow へのリンク] ボタンは表示されません。

    メッセージング統合では、ユーザーは引き続き、ボットとの会話中に logout コマンドを使用して ServiceNow アカウントとのリンクを解除できます。ただし、リンク解除後のすべての会話では、仮想エージェントからアカウントをリンクするように求められます。仮想エージェントとやり取りするときに、ServiceNow アカウントにリンクするか、ゲストユーザーとして続行するように求められます。

    アカウントの自動リンク

    ユーザーのサードパーティアカウントを ServiceNow® プロファイルに自動リンクできるようにします。

    sys_cs_provider.list でアカウントの自動リンクを有効にできます。この機能は、ユーザーに対しアカウントを手動でリンクするように指示するプロンプトをバイパスします。
    注:
    アカウントのリンクは、インスタンスへの Microsoft Teams のインストールに使用されたものと同じドメインに属するユーザーのみが可能です。他のドメインのユーザーを自動リンクするには、グローバルドメインを使用して Microsoft Teams インストールが行われるようにします。

    ナビゲーションフィルターで、「sys_cs_provider.list」と入力します。リンクする接続レコードを選択します。[アカウントのリンクを許可] ボックスをオンにしてから、表示される [ユーザーの ServiceNow プロファイルの自動リンク] ボックスをオンにします。[アカウントアクションをリンク] フィールドに、対応するアカウントリンクスクリプトを入力します。

    例:アカウント自動リンクスクリプト
    var response_body = inputs['response_body'];
    var status_code = inputs ['status_code'];
    var email_id = '';
    if(status_code>200 && status_code<=210){
        email_id = response_body && JSON.parse(response_body).userPrincipalName;
    }
    var sysUserId = null;
    
    if(email_id){
        var gr = new GlideRecord("sys_user");
        gr.addQuery("email",email_id);
        gr.query();
        while(gr.next()){
            sysUserId = gr.getUniqueValue();
        }
    }
    if(sysUserId){
        outputs['status'} = 'Success';
        outputs['userid'] = sysUserId;
    }
    else{
        outputs['status'] = 'Failure';
    }
    
    })(inputs,outputs);