0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【kintone】レコードに投稿されたコメントをslack通知する

Last updated at Posted at 2024-06-10

はじめに

kintoneでレコードに対してコメントをすると、kintone上では通知が来ます。コメント内容をslackの特定チャンネルに通知する方法を試しました。

どのような背景があって作成したのか?

コミュニケーションツールにはslack、CRMにはkintoneを使用しています。
kintoneレコードのコメントに投稿される内容に意外と重要なものが多く、これまではコメントをした人しか内容を把握しておらず他メンバーは検知にムラがありました。情報格差が起きないよう、チームメンバーが見ることのできるslackチャンネルに通知し即確認できるようにしました。

コード

kintoneに設定しているscriptです。どなたかの参考になれば。。。🙇‍♂
素人が書いているscriptなので書き方がイマイチな箇所があると思いますが、何かあればコメントいただけますと幸いです。

test.js
(function() {
  'use strict';

    var triggerEvents = [
        // レコード詳細画面を表示した後のイベント
        "app.record.detail.show"
    ];

    kintone.events.on(triggerEvents, function(event) {
      
      // 書き込むボタンのクリックイベント
      document.querySelector("button.ocean-ui-comments-commentform-submit").onclick = function(){
        
        // コメント投稿者を取得
        var commentUser = kintone.getLoginUser();
        // kintoneレコードのURLを取得
        var thisUrl = "https://graffer.cybozu.com/k/" + kintone.app.getId() + "/show#record=" + kintone.app.record.getId();
        var webhookUrl = "";
        var payload;
        // コメント内容を取得
         var commentValue = document.querySelector(".ocean-editor-seamless").textContent;

        //コメントが入力されている場合
        if(commentValue !== ""){
          // テキストを生成
          payload = {
            "text": "レコード「<" + thisUrl + "|" + event.record.customerName.value + ">」" + "に、" + commentUser.name + " から以下のコメントが投稿されました!\n"
                      + "```" + commentValue + "```" 
          };
          return new kintone.Promise(function(resolve, reject) {
            kintone.proxy(webhookUrl, "POST", {}, payload, function(body, status, headers) {
                console.log(status, body);            
                    resolve(event);
            });
          });
        }
        return event;
      };
  });
})();

説明

document.querySelector("button.ocean-ui-comments-commentform-submit").onclick
コメントが書き込まれた際のイベントをトリガーの一要素にしています。

kintone.getLoginUser(); ⇒ 投稿者のユーザー名
document.querySelector(".ocean-editor-seamless").textContent ⇒ コメント内容
を取得して通知することでslack内で完結するようにしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?