kintone の 通知 の使いどころ

kintoneの標準機能の「通知」が理解不足と感じたのでまとめてみました。

# 更新履歴

* 2022-02-10 APIで更新した時の通知について記載しました。

# 関連リンク

通知の設定についてはガイドブックで説明があります。

* [ガイドブック Vol.09 通知](https://kintone.cybozu.co.jp/material/pdf/kintone_guidebook_vol09.pdf)

kintoneの機能ごとに、どんな通知がいつ・誰に送信されるかは以下にマトリックス表でまとめられています。

* [通知が送信されるタイミングと宛先](https://jp.cybozu.help/k/ja/user/notifications/notification_type.html)


# 通知とは何か

[kintone ヘルプ](https://jp.cybozu.help/k/ja/) より引用します。

:::note info

2020年5月のアップデートで通知の閲覧期間が2週間から70日に変更されました。
https://kintone.cybozu.co.jp/update/main/2020-05.html

アプリやスペースなどkintoneに更新があると、通知が送信されます。
通知を閲覧できる期間は70日間です。送信後70日間が経過した通知は閲覧できなくなります。ただし、「あとで読む」マークを付けた通知は、送信後70日間が経過しても、マークを外すまでは閲覧できます。
:::

~~アプリ、スペース、またはピープルに更新があると、通知が送信されます。~~
~~通知の表示期間は2週間です。受信して2週間が経過した通知は表示されません。~~
~~ただし、「あとで読む」マークを付けた通知は、マークを外すまで表示され続けます。~~

 **通知** 
https://jp.cybozu.help/k/ja/user/notifications.html

# 通知設定の注意点

スペースとピープルの通知は、 [kintoneのシステム管理者](https://jp.cybozu.help/k/ja/admin/permission_admin/permissions/set_admin.html)が [kintoneシステム管理](https://jp.cybozu.help/k/ja/admin/manage_system/systemsettings.html)画面→「その他」→[「利用する機能の選択」](https://jp.cybozu.help/k/ja/admin/system_customization/feature_activ.html)のスペースとピープルの設定によっては表示されていないことがあります。

<img width="356" alt="スクリーンショット 2019-11-28 14.10.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/84a4eeb1-d1ac-6967-3fc3-86eaf6590cb2.png">
<img width="468" alt="スクリーンショット 2019-11-28 14.11.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/04203ff0-87ff-644d-62c9-26ff6ebc5829.png">


アプリとスペースの通知はメールで受信することも出来ますが、 [kintoneシステム管理](https://jp.cybozu.help/k/ja/admin/manage_system/systemsettings.html)画面→「その他」→「利用する機能の選択」の通知のメール送信の設定によってはメールの通知がされないことがあります。

* [メール通知を設定する](https://jp.cybozu.help/k/ja/user/notifications/mail_notification.html)


<img width="388" alt="スクリーンショット 2019-10-13 6.21.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/99ab0c63-5062-0bdc-0a02-d37266f762c5.png">

# 通知 あれこれ

[通知](https://jp.cybozu.help/k/ja/user/notifications.html)と言ってもアプリ、スペース、ピープル、メールとあるので分かりにくい。

## アプリの通知

### [アプリの通知](https://jp.cybozu.help/k/ja/user/app_settings/notification/app_notification.html)

* アプリにレコードが追加されたとき、編集されたとき
* レコードにコメントが書き込まれたとき
* レコードのステータスが更新されたとき
* アプリにCSVファイル等を読み込んで追加・更新されたとき
* アプリのレコードがダウンロードされたとき

### [レコードの条件通知](https://jp.cybozu.help/k/ja/user/app_settings/notification/record_condition.html)

1. レコードが追加されたときに、設定した条件に一致したとき
    * 作成日時 = 当日 → 当日にレコード追加されたときに通知
2. レコードが編集されたときに、設定した条件に一致したとき
    * レコードのステータスが変更されて条件に一致したとき
    * フィールドが指定した条件に一致したとき

### [リマインダー通知](https://jp.cybozu.help/k/ja/user/app_settings/notification/reminder.html)

* 日時系のフィールドの値を利用して、設定した条件を満たしたときに通知

## スペースの通知

例えば業務で部署ごとにスペースを作ったり、社外の方とのコミュニケーションにゲストスペースを作ることがありますが、そのスペースの機能を使ったときに通知をすることが出来ます。

[通知が送信されるタイミングと宛先](https://jp.cybozu.help/k/ja/user/notifications/notification_type.html)

#### スペースを作成したとき
スペースを作成する際に追加したメンバーに対して通知されます。

<img width="756" alt="スクリーンショット 2019-10-13 8.28.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/c99bc81f-5a8e-f327-9303-4d1d66a1739a.png">


<img width="324" alt="スクリーンショット 2019-10-13 7.49.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/e1b8e728-59f9-4ae5-33c1-e245e4560f71.png">

#### スペースの本文を編集したとき
スペースの本文に記事を投稿したときに、スペースのメンバーに対して通知されます。
<img width="1014" alt="スクリーンショット 2019-10-13 8.09.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/f0036aea-5c03-8c0d-4452-d12a7744d199.png">
<img width="317" alt="スクリーンショット 2019-10-13 8.10.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/cd1ad585-b111-602d-3b03-5a74d1e64f45.png">

#### スレッドにコメントを書き込んだとき

スペースの設定の際に、 [複数のスレッド](https://jp.cybozu.help/k/ja/user/space/using_space/add_thread.html) を使う設定をすると、スレッドが使えるようになります。

スレッドを作成した・スレッドに投稿した、またスレッドの投稿にいいねした時に通知されます。

<img width="755" alt="スクリーンショット 2019-10-13 8.54.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/b6628413-95c4-b2a8-a12f-73699cda56de.png">

## ピープルの通知

ピープルは kintoneの運用基盤の [cybozu.com](https://jp.cybozu.help/general/ja/index.html) に登録されたユーザーのプロフィールや投稿ができる個人スペースです。
ユーザーに直接メッセージを送るような使い方が出来ます。

<img width="537" alt="スクリーンショット 2019-10-13 10.17.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/4dc3ad9b-af42-abb4-b0e8-8fc6af2f3ba9.png">

### ピープルのフォロー

ピープルをフォローすると、フォローしたピープルのプロフィールに投稿があった際に通知を受信出来ます。

honda が yamaha をフォローしています。
<img width="793" alt="スクリーンショット 2019-10-13 10.18.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/e299c174-de39-9cac-fe22-f1967a8de666.png">

yamaha が自身のプロフィールに投稿すると、フォローしている honda に通知されます。
<img width="589" alt="スクリーンショット 2019-10-13 10.44.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/e92c05b1-7081-7ce7-7074-fc375ef9c2c1.png">

yamaha をフォローしている honda に通知されます。
<img width="387" alt="スクリーンショット 2019-10-13 10.45.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/bba87329-f0c2-e932-9b5b-fae8865b1d17.png">


---

# 機能別「通知」の使い方まとめ

## アプリの通知

アプリの歯車マーク → 設定タブ → 通知 から行います。
アプリに対して決まった操作が行われた時に、設定した通知先に対して通知されます。

初期設定は次の通り

1. レコードにコメント書き込みがあったとき　→　更新者・作成者に対して通知されます。
2. レコードにコメント書き込みがあったとき　→　過去にそのレコードにコメントを書き込んだユーザーに対して通知されます。

1.の意図は、例えば上司がレコードを確認して、コメントを書き込んだ時に作成者（更新者）にコメントを見て欲しいと伝えたいから。
2.の意図は、その上司のコメントに対して部下がコメントをした時に上司に届くなどが考えられます。

<img width="838" alt="スクリーンショット 2019-10-12 17.23.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/e285ee55-de72-49e5-b5d8-c7ce02db76f1.png">

<img width="407" alt="スクリーンショット 2019-10-12 16.27.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/9d1d87ff-61c2-0d02-5e96-016f511c71fc.png">

### アプリの条件通知

アプリと言ってますが、実際はレコードの追加・編集だったりして分かりにくい。

* [アプリへの操作を条件にした通知を設定する（アプリの条件通知）](https://jp.cybozu.help/k/ja/user/app_settings/notification/app_notification.html)

### 使いどころ

あまり細かい設定は出来ません。ざっくりの条件で良いときはこちら。
細かな設定が必要な時は、レコードの条件通知を使ったほうが良さそう。

 **利点** 

* 細かく設定しなくてもユーザーやグループなどに通知の設定ができる

 **難点** 

* アプリの使い方や、通知の設定により通知がバンバン飛んでくる。（上司にうるさがられるかも知れません）

 **設定対象** 

* 更新頻度があまり高くないアプリ
* 全体連絡
* 社内向けの広報アプリ

---

### レコードの条件通知 

レコードのステータスの変更やフィールドが条件を満たしたときに通知したい時はこちらを使います。

* [レコードが特定の条件を満たしたときの通知を設定する（レコードの条件通知の設定）](https://jp.cybozu.help/k/ja/user/app_settings/notification/record_condition.html)

### 使いどころ

アプリの通知設定より、細かい条件設定が出来ます。条件は複数の組み合わせが可能。

 **利点** 

* プロセス管理のステータスによって通知を設定できる。例えば稟議書アプリで、ステータスが差し戻しされた時や完了されたときに、レコード作成者に通知するなど。
* フィールドが一定の条件に一致したときに通知できる。例えば物品購入依頼アプリで金額が設定した金額を超えたときに上司に通知するなど。

 **難点** 

* 通知の設定が難しい。

 **設定対象** 

* プロセス管理を使ったアプリ
* フィールドの条件により通知したいアプリ

---

### リマインダー通知

上手く使うと便利なリマインダー通知です。
設定した日時になったら通知したいといった場合に使います。

* [日時を条件にしたリマインド通知を設定する（リマインダーの設定）](https://jp.cybozu.help/k/ja/user/app_settings/notification/reminder.html#)

#### 使いどころ

日時フィールドの期限前・後に通知したい場合など

 **設定対象** 

* イベントの開催前に忘れないように通知したい
* 助成金など計画提出後、実施期間を経て申請など長期に渡る案件を管理したい
* 営業の次回訪問日を忘れずに通知したい

#### リマインド通知の設定について

前提条件：
まず、リマインド通知は「日付・日時」のフィールドを基準として、その前後の日・時刻などで設定するために、
日付・日時フィールドを設定なしに、通知設定はできません。
日付・日時なので、時刻は選択できないので、毎日決まった時刻に〜といったバッチ的な使い方は標準では難しいです。

リマインドの条件：
・通知のタイミング → ここに通知の基準とする日付・日時フィールドを選択して、その日付・日時の何日前・後と時刻を設定します。
　日時フィールドを選択した時には、時刻に対して「絶対時刻」・「相対時刻」を選択できます。

通知の条件：
・フィールドタイプごとの条件を満たした場合の通知条件を設定します。
・おそらく、「レコードの条件通知」の通知条件と同じと思われます。（未検証です）
・設定できないフィールドタイプは「関連レコード一覧」です。（選択肢に表示されません）

注意どころ：
・要望はありそうですが、「月末」や「毎月○日」などに通知するといった設定は、現状できません。
・あくまで○日前・後といった設定だけです。

### メールの通知

アプリの通知は「メールの通知機能を利用する」をONにすることで、メールでも受信が出来ます。

* [メール通知を設定する](https://jp.cybozu.help/k/ja/user/notifications/mail_notification.html)


---

## スペース

スペースで通知を使うにはスペースの公開・非公開の設定と組み合わせて利用します。

### 基本的な使い方

 **公開スペース** 

公開スペースの場合はメンバーを自分自身にしておいて、投稿時に宛先を指定すると余計な通知が飛ばなくて良いかと思います。

* スペース・スレッドの投稿時に通知先の @宛先 を指定します

投稿者kawasaki から スペースのメンバー外のhonda に宛先を指定して投稿します。
<img width="634" alt="スクリーンショット 2019-10-13 9.49.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/bf9807ae-d886-f03e-bb40-456ee9b934c3.png">

hondaの通知ページにkawasakiからの通知が表示されます。
<img width="384" alt="スクリーンショット 2019-10-13 9.51.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/660d1a89-dc88-0f3e-cb9e-38b108381c54.png">

 **非公開スペース** 

非公開スペースの場合はメンバー以外を通知先に設定が出来ないので、通知を送るメンバーをスペースに追加しておく必要があります。

### メールの通知

スペースの通知は「メールの通知機能を利用する」をONにすることで、メールでも受信が出来ます。

* [メール通知を設定する](https://jp.cybozu.help/k/ja/user/notifications/mail_notification.html)

<img width="613" alt="スクリーンショット 2019-10-13 11.04.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/238ffa05-2374-8a61-3b85-fe622bd90237.png">


## ピープルの通知

kintoneはポータルやスペースを利用した、オープンなコミュニケーションに向いているので、個人でメッセージをやりとりするピープル機能は使い方がよく分からなかったのですが、次のような使い方ができるかと思います。

* 社内全体に向けて発信するユーザーをフォローしておく（例えば、広報やシステム管理者など）

---

# おすすめする通知の設定

個人的にこんな考え方で使うのが良いのかなと思っています。

### アプリの通知

* 分からなかったらデフォルトのままにしておく（更新者と作成者にコメントの通知）
* 運用フェーズで必要に応じて設定する

### レコードの条件通知

* プロセス管理を使うアプリに対して、プロセスの作業者に対して通知を設定
* 運用フェーズで必要に応じて設定する

### リマインダーの条件通知

* 分からなかったらデフォルトのままにしておく（何も設定しない）
* 運用フェーズで必要に応じて設定する

### スペースの通知

* 公開スペースでは、投稿時に宛先を指定してもらう（とりあえず全員Everyone指定としない）

### メールの通知

* デフォルトのまま（デフォルトでON）
* あとは運用によって切り替える

---

# 今後の更新について

* APIを使って更新した時の通知について

# kintone REST API からレコードを更新した場合の通知について

kintone REST API からレコードを更新した場合も、kintoneの通知設定に基づいて通知が配信されます。

## レコードの条件通知

kintone APIにて、レコードを更新します。

```
const body = {
  'app': kintone.app.getId(),
  'id': kintone.app.record.getId(),
  'record': {
    'status': {
      'value': '申請'
    }
  }
};

kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', body)
.then(response => {
  console.log(response)
})
.catch(error => {
  console.log(error)
})
```

スクリーンショットでは、「佐藤」さんでログインして、レコード詳細を開き、「申請・承認」フィールドを「----」から「申請」に変更しています。
![スクリーンショット 2022-02-10 18.09.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/8ec06549-0500-2e19-44ed-0034c8ee81bf.png)

レコードの条件通知は、「申請・承認」が「申請」の時に、通知したいユーザー（上記では高橋さん）に通知する設定です。
![スクリーンショット 2022-02-10 17.44.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/5dd601d4-2e2a-2604-bb57-87d5400d64e0.png)

「高橋」さんでログインした画面に通知が来ていることが確認できます。
通知元は「佐藤」さんです。
![スクリーンショット 2022-02-10 18.11.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/db27283c-422c-954b-f207-39b9ef29c32c.png)