unote 書けば書くほどに

kintoneからMicrosoft Teamsにwebhookで通知を送る | ATC構築サービス

kintoneとMicrosoft Teamsを連携させてチャットで通知を送ろう!| コムデックラボ


Teamsに新規投稿があるとメールで通知する方法 | asyano.jp

Teams 通知機能を使いこなそう (基本の設定) | 株式会社イルミネート・ジャパン

メンション通知

// メンション通知
function createPostContent(memberName, memberEmail) {
return {
type: "message",
attachments: [
{
contentType: "application/vnd.microsoft.card.adaptive",
content: {
type: "AdaptiveCard",
body: [
{
type: "TextBlock",
text: `Hello ${memberName}.`,
},
],
$schema: "http://adaptivecards.io/schemas/adaptive-card.json",
version: "1.0",
msteams: {
entities: [
{
type: "mention",
text: `${memberName}`,
mentioned: {
id: memberEmail,
name: `${memberName}`,
},
},
],
},
},
},
],
};
}

// ②のスクリプトとの統合
(function () {
"use strict";
kintone.events.on("app.record.create.submit.success", function (e) {
var thisUrl =
"https://{サブドメイン名}.cybozu.com/k/" +
kintone.app.getId() +
"/show#record=" +
e.recordId;
var webhookUrl = "{Incoming WebhookのURL}";

// kintoneのフィールドからメンバー情報を取得
var memberName = e.record.メンバー名.value; // メンバー名のフィールドコードに置き換える
var memberEmail = e.record.メンバーのメールアドレス.value; // メールアドレスのフィールドコードに置き換える

// 通知メッセージを作成
var teamsContent = createPostContent(memberName, memberEmail);
var textMessage =
'URL:' +
thisUrl +
"

" +
"「案件管理」にレコードが追加されました。
" +
"会社名:" +
e.record.会社名.value +
"
" +
"部署名:" +
e.record.部署名.value +
"
" +
"先方担当者:" +
e.record.先方担当者.value +
"
" +
"製品名:" +
e.record.製品名.value;

// ペイロードを統合
var payload = {
type: "message",
attachments: [
{
contentType: "application/vnd.microsoft.card.adaptive",
content: teamsContent,
},
],
};

payload.attachments.push({
contentType: "text/html",
content: textMessage,
});

// kintoneのWebhookを利用して通知を送信
return new kintone.Promise(function (resolve, reject) {
kintone.proxy(
webhookUrl,
"POST",
{},
payload,
function (body, status, headers) {
console.log(status, body);
resolve(e);
}
);
});
});
})();