業務自動化で脱・手作業!一人事務のDX活用術 | RPA・自動化ツール

業務自動化で脱・手作業!一人事務のDX活用ブログ|RPA・自動化ツールで業務をもっとラクに、もっとスマートに

【社内コミュニケーション活性化】Chatwork 発言ランキング BOT を作ろう

【社内コミュニケーション活性化】Chatwork 発言ランキング BOT を作ろう

リモートワークが一般的になり、社内コミュニケーションの重要性がますます高まっています。特に、オンラインでのやり取りが中心の職場では、社員同士の会話が減り、孤独感を感じることもあるでしょう。そんな時、ユーモアのある仕組みを導入することで、コミュニケーションの活性化につながります。

今回は、Google Apps Script(GAS)を使って「Chatwork 発言ランキング BOT」を作成する方法をご紹介します。社内の会話を盛り上げるツールとして、ぜひ活用してみてください。


Chatwork 発言ランキング BOT とは?

このBOTは、Chatwork の特定のルーム内での発言回数を自動で集計し、週に一度ランキングを発表する仕組みです。発言数に応じて称号を付与することで、楽しみながら社内のチャットを活性化できます。

ランキングの称号一覧

順位 称号 説明
1位 👑 今週の発言王 最も発言した人
2位 🥈 影のフィクサー 2番目に発言が多い人
3位 🥉 キレ者 3番目に発言が多い人
4位以下(10回以上発言) ✨ 堅実派 しっかり発言している人

この BOT を導入することで、社員同士の会話を促進し、業務の効率化にもつながるかもしれません。


Chatwork 発言ランキング BOT の作り方

必要なもの

  • Google Apps Script(GAS)

  • Chatwork API トーク(Chatwork の API を利用するため)

  • Chatwork のルーム ID(集計対象のルーム)

GAS のコード

以下のスクリプトGoogle Apps Script に記述し、必要な情報を設定してください。

function postWeeklyChatworkRanking() {
  const API_TOKEN = "YOUR_CHATWORK_API_TOKEN";
  const ROOM_ID = "YOUR_CHATWORK_ROOM_ID";
  const LAST_DAYS = 7; // 1週間分の発言を集計
  
  // 1. 過去7日間のメッセージを取得
  const messages = getChatworkMessages(API_TOKEN, ROOM_ID, LAST_DAYS);
  
  // 2. 発言回数をユーザーごとに集計
  const ranking = countMessagesByUser(messages);
  
  // 3. 称号をつけてランキングメッセージを作成
  const rankingMessage = generateRankingMessage(ranking);
  
  // 4. Chatworkに投稿
  postToChatwork(API_TOKEN, ROOM_ID, rankingMessage);
}

function getChatworkMessages(apiToken, roomId, days) {
  const url = `https://api.chatwork.com/v2/rooms/${roomId}/messages?force=1`;
  const options = {
    method: "GET",
    headers: { "X-ChatWorkToken": apiToken },
    muteHttpExceptions: true,
  };
  const response = UrlFetchApp.fetch(url, options);
  const messages = JSON.parse(response.getContentText());
  
  // 過去◯日分のメッセージだけを抽出
  const threshold = new Date();
  threshold.setDate(threshold.getDate() - days);
  return messages.filter(m => new Date(m.send_time * 1000) >= threshold);
}

function countMessagesByUser(messages) {
  const counts = {};
  messages.forEach(msg => {
    const userId = msg.account.account_id;
    counts[userId] = (counts[userId] || 0) + 1;
  });
  return Object.entries(counts).sort((a, b) => b[1] - a[1]);
}

function generateRankingMessage(ranking) {
  if (ranking.length === 0) return "今週の発言はありませんでした…🥲";
  
  let message = "🏆 *今週の発言ランキング!* 🏆\n";
  const titles = ["👑 今週の発言王", "🥈 影のフィクサー", "🥉 キレ者"];
  
  ranking.forEach((user, index) => {
    const [userId, count] = user;
    const title = titles[index] || "✨ 堅実派";
    message += `${title}: [picon:${userId}] (${count}回)\n`;
  });
  return message;
}

function postToChatwork(apiToken, roomId, message) {
  const url = `https://api.chatwork.com/v2/rooms/${roomId}/messages`;
  const payload = { body: message };
  const options = {
    method: "POST",
    headers: { "X-ChatWorkToken": apiToken },
    payload: payload,
    muteHttpExceptions: true,
  };
  UrlFetchApp.fetch(url, options);
}

設定手順

  1. YOUR_CHATWORK_API_TOKENYOUR_CHATWORK_ROOM_ID を適切な値に変更
    ※チャットワークのトークンとルームIDの取得方法は下記を参照ください

    keiridx.net

  2. GAS のトリガーを設定し、毎週月曜9時に実行 するように設定

  3. スクリプトを実行し、Chatwork にランキングが投稿されることを確認


まとめ

この BOT を活用すれば、Chatwork 上での発言を可視化し、コミュニケーションの促進につなげることができます。ランキング形式にすることで、ゲーム感覚でチャットの活性化が図れるのもポイントです。

ぜひ、あなたの職場でも「今週の発言王」を決めてみてはいかがでしょうか?

あなたの会社の社内コミュニケーションを、ちょっと楽しくするツールとしてお試しください!

▼ 役に立ったらブックマークお願いします!

【社内コミュニケーション活性化】Chatwork 発言ランキング BOT を作ろう

【社内コミュニケーション活性化】Chatwork 発言ランキング BOT を作ろう

人気ブログランキング

【社内コミュニケーション活性化】Chatwork 発言ランキング BOT を作ろう

現役公認会計士が解説!GASで自動化する経営管理【電子書籍】[ 稲垣 大輔 ]

価格:1980円
(2025/2/21 11:54時点)
感想(0件)

 

【社内コミュニケーション活性化】Chatwork 発言ランキング BOT を作ろう

プログラム未経験者でもOK!! 業務効率化/自動化のためのGoogle Apps Script [ 事務職たらこ ]

価格:2420円
(2025/2/21 11:56時点)
感想(0件)