# キャンペーンのNQL例

{% hint style="info" %}
[キャンペーンプログラムの開始](https://docs.nexthink.com/platform/ja/user-guide/campaigns/managing-campaigns/launching-campaign-programs) ドキュメントを参照して、計画、承認、テスト、および組織内でのキャンペーン開始に関するガイドラインを確認してください。
{% endhint %}

このNQLクエリ例のリストは、キャンペーンに関連するユーザーを選択するのに役立ちます。 以下のクエリを確認し、あなたのユースケースに最も近いクエリをコピーし、適宜調整してください。

## スケジュールされたキャンペーンでターゲットにするユーザーへのクエリ例\ <a href="#campaignsnqlexamples-examplequeriestotargetusersinscheduledcampaigns" id="campaignsnqlexamples-examplequeriestotargetusersinscheduledcampaigns"></a>

<details>

<summary>特定の都市のすべてのユーザーを取得します。</summary>

{% code lineNumbers="true" %}

```
users
| where ad.city == "Lausanne"
```

{% endcode %}

</details>

<details>

<summary>昨晩24時間でデバイス上で動作していたCollector (xTray) を持つユーザーを取得します。</summary>

{% code lineNumbers="true" %}

```
users
| include execution.events during past 24h
| where binary.name == "nxtray*"
| compute c1 = binary.name.count()
| where c1 > 0
```

{% endcode %}

</details>

<details>

<summary>MS TeamsまたはZoomを昨日インストールしたユーザーを取得します。</summary>

{% code lineNumbers="true" %}

```
users
| with package.installations during past 1d
| where package.name in [ "MS Teams", "Zoom" ]
```

{% endcode %}

</details>

<details>

<summary>特定の部署のユーザーを取得します。</summary>

{% code lineNumbers="true" %}

```
users
| where ad.department == "Finance"
```

{% endcode %}

</details>

<details>

<summary>過去7日以内に3回システムクラッシュしたデバイスを使用した最後のユーザーを取得します。</summary>

{% code lineNumbers="true" %}

```
devices past 7d
| with device_performance.system_crashes past 7d
| compute nb_crashes = count()
| where nb_crashes >= 3
| with session.events past 7d
| compute user_sid = user.sid.last()
| list user_sid
```

{% endcode %}

</details>

<details>

<summary>IT部門以外の最後のユーザーで、バッテリー健康度が悪いユーザーを取得します。</summary>

{% code lineNumbers="true" %}

```
devices past 7d
| where remote_action.get_battery_status.execution.outputs.BatteryHealth < 0.3
| with session.events past 7d
| where user.ad.department != "*IT*"
| compute user_sid = user.sid.last()
| list user_sid
```

{% endcode %}

</details>

<details>

<summary>DEXキャンペーンをスケジュールします</summary>

従業員のランダムなサンプルを選択して感情データを継続的に収集するには、以下のクエリを設定してください。 `#dex_campaign_name` をキャンペーンの **NQL ID** に置き換え、以下の `50` に設定されている制限を調整して、キャンペーンが毎時ターゲットにする新しいユーザーの数を指定してください。

次のことに注意してください:

* [全般タブ](https://docs.nexthink.com/platform/ja/user-guide/managing-campaigns/creating-campaigns#accessing-campaign-edit-page) で **スケジュール** トリガー方法を定義します。
* キャンペーンを受け取る対象者が再度受け取る[最小日数](#target-employees-will-receive-the-campaign)を提供し、「再度」 を選択します。
* NQLクエリを使用する前に、少なくとも一度はキャンペーンを保存してください。 これにより、システムがキャンペーンを認識し、NQLクエリを検証する際の`_Table does not exist_` エラーを回避します。

{% code lineNumbers="true" %}

```
users
| include campaign.#dex_campaign_name.responses
| compute number_of_requests = count()
| sort number_of_requests asc
| limit 50
```

{% endcode %}

</details>

## キャンペーン結果を検査するためのクエリ例\ <a href="#campaignsnqlexamples-examplequeriestoinspectcampaignresults" id="campaignsnqlexamples-examplequeriestoinspectcampaignresults"></a>

<details>

<summary>すべての回答</summary>

`Remote Work Demo`キャンペーンのすべての回答を、ユーザーの `username`, `time`, `state` および `state_details` とともに表示します。

{% code lineNumbers="true" %}

```
campaign.responses
| where campaign.name == "Remote Work Demo"
| list user.name, response.time, state, state_details
```

{% endcode %}

</details>

<details>

<summary>要約ビュー</summary>

`Remote Work Demo`キャンペーン応答のサマリービュー。`trigger_method`, `time`, `state`, `state_details` およびユーザーごとの回答数に関する情報。

{% code lineNumbers="true" %}

```
campaign.responses
| where campaign.name == "Remote Work Demo"
|list response.trigger_method, user.name, response.time, campaign.response.first_planned, campaign.response.first_targeted, campaign.response.first_displayed, state, state_details, response.number_of_answered_questions
```

{% endcode %}

</details>

<details>

<summary>状態ごとの応答数</summary>

`Remote Work Demo`キャンペーンのユーザーごとの`state`および`state_details`に基づく応答数をカウントします。

{% code lineNumbers="true" %}

```
campaign.responses
| where campaign.name == "Remote Work Demo"
| summarize cnt = count() by user.name, campaign.response.state, campaign.response.state_details 
| list user.name, cnt, campaign.response.state, campaign.response.state_details   
```

{% endcode %}

</details>

<details>

<summary>特定のユーザーの応答数をカウント</summary>

特定のユーザーの `campaign`, `state` および `state_details` 別のキャンペーン応答をカウントします。

{% code lineNumbers="true" %}

```
campaign.responses
| where user.name == "johndoe@DOMAIN"
| summarize cnt = count() by campaign.name, user.name, campaign.response.state, campaign.response.state_details   
| list user.name, campaign.name, cnt, campaign.response.state, campaign.response.state_details 
```

{% endcode %}

</details>

<details>

<summary>過去の状態</summary>

`Remote Work Demo`キャンペーンの応答の履歴状態を表示します。

{% code lineNumbers="true" %}

```
campaign.responses
| where campaign.name == "Remote Work Demo"
| list response.historical_time, response.historical_state, response.historical_state_details
```

{% endcode %}

</details>

<details>

<summary>応答済みまたは辞退された応答の数をカウント</summary>

`#my_campaign` NQL ID を持つキャンペーンの、応答済みまたは辞退された応答の数をカウントします。

{% code lineNumbers="true" %}

```
campaign.#my_campaign.responses
| where state in [answered, declined]
| summarize cnt_responses = request_id.count() by state
| list state, cnt_responses
```

{% endcode %}

</details>

<details>

<summary>質問選択ごとの応答数をカウント</summary>

`vpn_quality` 質問IDを持つ1つ選択、意見尺度、またはNPS質問の質問選択ごとの応答数をカウントします。

{% code lineNumbers="true" %}

```
campaign.#my_campaign.responses
| summarize cnt = request_id.count() by answers.vpn_quality.label, state, state_details
| sort cnt desc
```

{% endcode %}

</details>

<details>

<summary>特定のキャンペーンに回答したユーザーのリスト</summary>

`#my_campaign` NQL ID のキャンペーンに回答したユーザーをリストします。

{% code lineNumbers="true" %}

```
campaign.#my_campaign.responses
| where state == answered
| list user.name, state, state_details, number_of_answered_questions
```

{% endcode %}

</details>

<details>

<summary>特定の選択肢で回答したユーザーのリスト</summary>

`how_often` NQL IDを持つ質問で `always` とラベル付けされた選択肢で回答したユーザーを、`#my_campaign` NQL IDを持つキャンペーンでリストします。

{% code lineNumbers="true" %}

```
campaign.#my_campaign.responses during past 30d
| where answers.how_often.label = "always"
| list user.name, time
```

{% endcode %}

</details>

<details>

<summary>感情キャンペーンへの最終回答を持つユーザーのリスト</summary>

`#service_sentiment` NQL ID 指定の感情キャンペーンにおける `sentiment` 質問 ID の最終回答を持つすべてのユーザーをリストします（ある場合）。

{% code lineNumbers="true" %}

```
users
| include campaign.#service_sentiment.responses
| where state == answered
| compute last_satisfaction = answers.sentiment.label.last(), last_answer_on_device = device.name.last()
| list user.name, last_satisfaction, last_answer_on_device
```

{% endcode %}

</details>

<details>

<summary>特定の値を持つパラメトリックキャンペーンの最終回答を持つユーザーのリスト</summary>

`issue_type` ID を持つパラメータの値が `Incident` の場合に、`#ticket_satisfaction` NQL ID を持つパラメトリックキャンペーンで `sentiment` 質問 ID の最終回答とコメントを持つユーザーをリストします。

{% code lineNumbers="true" %}

```
users
| with campaign.#ticket_satisfaction.responses
| where state == answered and parameters.issue_type == "Incident"
| compute last_satisfaction = answers.sentiment.label.last(), last_comment = answers.sentiment.comment.last(), ticket_number = parameters.ticket_number.last()
| list ticket_number, last_satisfaction, last_comment, user.name
```

{% endcode %}

</details>
