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

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

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

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

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

    メッセージング統合では、ユーザーはボットの会話中に ログアウト コマンドを使用して、 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);