Chatworkタスク自動化ガイド: スプレッドシートで担当者管理を一新

目次

Chatworkでのタスク管理の新時代

チャットワークでのタスク管理は、チームのコミュニケーションと進行管理を一元化することで、業務の効率化に大いに役立ちます。しかし、便利な一方でいくつかの課題が存在します。ここでは、それらの一般的な課題と、それに対する解決策の一つとして、Google Apps Script(GAS)を活用した自動化のアイデアを紹介します。

タスクの重複と見落とし

まず一つ目の課題は、タスクの重複と見落としです。チャットワーク上で多くのプロジェクトやタスクが進行していると、似たようなタスクが重複して作成されたり、重要なタスクが見落とされたりすることがあります。これは、情報の過多による混乱を招き、結果として生産性の低下を引き起こします。

タスクの優先順位の設定と調整

二つ目の課題は、タスクの優先順位の設定と調整です。全てのタスクが同じように扱われると、実際には緊急かつ重要なタスクが後回しにされるリスクがあります。これは、効率的なタスク管理の観点から見ると、大きな問題です。

タスクの自動化の欠如

三つ目の課題は、タスクの自動化の欠如です。例えば、定期的な報告や繰り返し発生するタスクの手動での追加は、非常に時間がかかり、効率が悪いです。また、人的ミスを引き起こす原因にもなり得ます。

これらの問題に対する一つの解決策は、Google Apps Script(GAS)を利用して、チャットワークでのタスク管理を自動化することです。GASを使用すると、例えば定期的な報告タスクを自動で追加したり、特定の条件を満たすタスクを自動で生成したりすることが可能になります。これにより、タスクの見落としや重複を防ぎ、優先順位の高いタスクに集中する時間を増やすことができます。

GASでの自動化は、タスク管理のみならず、チームの生産性を向上させるための一歩となり得ます。今日からでも、少しのスクリプトを学ぶことで、あなたの業務フローに大きな変化をもたらすことができるでしょう。

GASと連携することのメリット

Google Apps Script(GAS)を活用することで得られるメリットは多岐にわたります。今回は特に重要な三つのポイントをピックアップしました。

  • 作業の自動化と効率化: GASを使うと、定期的なレポート生成やデータの自動集計など、繰り返し発生する作業を自動化できます。これにより、手作業による時間の浪費やヒューマンエラーを大幅に削減できるようになります。
  • カスタマイズと柔軟性: GASはGoogleのさまざまなサービス(Gmail、Google Sheets、Google Driveなど)とシームレスに連携します。これにより、ビジネスやプロジェクトの特定のニーズに合わせたカスタマイズが可能となり、より柔軟な作業フローを実現できます。
  • コストの削減: GASはGoogle Cloud Platformの一部として提供されているため、追加のソフトウェアやツールを購入する必要がありません。低コストで高度な自動化を実現できるため、特にスモールビジネスやスタートアップにとって大きなメリットとなります。

これらのメリットを活かすことで、ビジネスプロセスの効率化、作業の自動化、そしてコスト削減が実現可能となります。Google Apps Scriptは、日々の業務を改善するための強力なツールです。

スプレッドシートでのタスク担当者リストの革新

こんにちは、中の人です。
ここまでの内容はChatGPTに書いてもらいました。
文章を生成できるってすごいですよね。すごくそれっぽいです。
私が言おうとしたことも、さっぱり思いつかなかったこともしっかり書いてあります。

GASコードBefore:GASコード直接指定でChatWorkにタスク追加

さて、ここからは人間がお送りします。
タスク担当者リストをスプレッドシートにして、それを使ってChatWorkにタスク追加するGASを紹介します。

さっきまでの記事の内容を踏まえて、私はチャットワークのタスク追加を自動でできるGASを作りました。
作りましたというか、ChatGPTに書いてもらいました。
これもすごいですよね。GASが書けないのにGASを使って業務改善ができる新時代です。
最初に作ってもらったGASはこんな感じ↓

請求書を定期郵送する客先用のリマインダータスクです。
まだ担当者IDは直接指定してる状態です。

/**
 * チャットワークにタスクを追加する関数
 */
function addTaskToChatwork() {
  const TODAY = new Date();
  const CURRENT_MONTH = TODAY.getMonth() + 1; // 今月の月(1月は0から始まるので+1する)
  
  // スクリプト実行日が1月、4月、7月、10月の場合のみタスクを追加
  if ([1, 4, 7, 10].includes(CURRENT_MONTH)) {
    const LIMIT = (TODAY.getTime() / 1000).toFixed(); // タスクの期限
    const LAST_MONTH = new Date(TODAY.getFullYear(), TODAY.getMonth() - 1, TODAY.getDate());
    const TASK_CONTENT = `〇〇様の請求書作成・郵送をお願いいたします。\n~${LAST_MONTH.getMonth() + 1}月 3か月分`;

    // チャットワークAPI設定
    const TOKEN = 'xxxxxxxxxxxxxxxxxx';
    const ROOM_ID = 'xxxxxxxx';
    const TO_IDS = 'ID1,ID2,ID3';

    // APIリクエストのパラメータ
    const PARAMS = {
      headers: {"X-ChatWorkToken": TOKEN},
      method: "post",
      payload: {
        body: TASK_CONTENT,
        limit: LIMIT,
        to_ids: TO_IDS,
      },
    };

    // タスク追加APIのURL
    const URL = `https://api.chatwork.com/v2/rooms/${ROOM_ID}/tasks`;

    // タスクを追加
    UrlFetchApp.fetch(URL, PARAMS);
  } else {
    Logger.log("今月はタスクを追加しない月です。");
  }
}

タスク担当者の指定は17行目の

 const TO_IDS = 'ID1,ID2,ID3'; // 担当者のアカウントID、カンマ区切りで複数指定

ってところです。通常ならここにIDを直接入力していくとタスク担当者が指定され、自動でタスク追加したときに常にその人にタスクが割り振られることになります。

だがしかし、私は思ってしまったのです。
春は出会いと別れの季節。

部署異動、退職、入社、また急遽のヘルプなどのとき。
いくつも書いたこういうGAS、全部を書き換えていくのはダルすぎないか???

そこで考えついたのです。
そうだ!!

スプレッドシートに担当者のID一覧を作って、それをGASに読ませてタスク作ればええんや!!!!!

GASで実現するChatworkタスクの自動化

さっき言った通り、私は自力でGASを書くことができません。
だからこうした素晴らしいアイデアが浮かんだときは、

迷わずChatGPTに投げ込んでコードを書かせると决めています。

GASコードAfter:タスク担当者リストのスプレッドシートでChatWorkにタスク追加

タスク担当者のリストを、特定のスプレッドシートのB列から取ってくることってできる?
スプレッドシートとかシート名は後でこっちで指定するから、いったんそこはサンプルを入れて、コード書いてもらっていい??

もちろんできるよ!スプレッドシートから担当者のリストを取得して、そのリストを使ってタスクを追加するようにコードを修正するね。以下にそのためのサンプルコードを示すよ。

/**
 * チャットワークにタスクを追加する関数
 */
function addTaskToChatwork() {
  const SPREADSHEET_ID = 'xxxxxxxxxxxxxxxxxx'; // スプレッドシートのID
  const SHEET_NAME = 'Sheet1'; // シート名
  const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);
  const TO_IDS = sheet.getRange('B:B').getValues().flat().filter(String).join(','); // B列から担当者IDを取得してカンマ区切りの文字列に
  
  const TODAY = new Date();
  const CURRENT_MONTH = TODAY.getMonth() + 1; // 今月の月
  
  // スクリプト実行日が1月、4月、7月、10月の場合のみタスクを追加
  if ([1, 4, 7, 10].includes(CURRENT_MONTH)) {
    const LIMIT = (TODAY.getTime() / 1000).toFixed(); // タスクの期限
    const LAST_MONTH = new Date(TODAY.getFullYear(), TODAY.getMonth() - 1, TODAY.getDate());
    const TASK_CONTENT = `〇〇様の請求書作成・郵送をお願いいたします。\n~${LAST_MONTH.getMonth() + 1}月 3か月分`;
    
    // チャットワークAPI設定
    const TOKEN = 'xxxxxxxxxxxxxxxxxx';
    const ROOM_ID = 'xxxxxxxx';
    
    // APIリクエストのパラメータ
    const PARAMS = {
      headers: {"X-ChatWorkToken": TOKEN},
      method: "post",
      payload: {
        body: TASK_CONTENT,
        limit: LIMIT,
        to_ids: TO_IDS,
      },
    };
    
    // タスク追加APIのURL
    const URL = `https://api.chatwork.com/v2/rooms/${ROOM_ID}/tasks`;
    
    // タスクを追加
    UrlFetchApp.fetch(URL, PARAMS);
  } else {
    Logger.log("今月はタスクを追加しない月です。");
  }
}

できるんですね。最高です。

スプレッドシートを指定しているのは5~8行目の

 const SPREADSHEET_ID = 'xxxxxxxxxxxxxxxxxx'; // スプレッドシートのID
  const SHEET_NAME = 'Sheet1'; // シート名
  const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);
  const TO_IDS = sheet.getRange('B:B').getValues().flat().filter(String).join(','); // B列から担当者IDを取得してカンマ区切りの文字列に

この部分です。タスク担当者リストを取得して、TO_IDSっていう名前にしてますね。
ちなみにスプレッドシートは、A列を「名前」・B列を「ChatWorkID」にしています。
で、30行目の

 to_ids: TO_IDS,

ここでタスク担当者にTO_IDSを使うようにしているっていう。

ちょっとお願いしただけでコレを出してきてくれるChatGPTくんはやっぱりすごいですね。
でもこういうときは、

このアイデアを出せた自分を褒めると気分が良くなるのでおすすめです。

タスク担当者リスト、何がいいの?

皆さんもこのタスク担当者リストの便利さに恐れおののいたことと思いますが、
念のため特大推しポイントの2つをまとめておきます。

  • 複数のGASのタスク担当者が一括更新できる!!!
    →リストを使って全部のタスク追加GASを作っておけば、リストを更新すれば全ての担当者が更新されます。GASを1つ1つチェックして回る必要なし!なんて画期的!!!
  • GASに詳しくない人でも更新が可能!!!!!
    →社内にはGASを編集できる人ばかりではないはず。スプレッドシートなら更新がかけられる人が多いでしょう!都度相談を受けなくてすみます!!!!!

どうですか???すごくないですか???すごいですよね!!!
今、やってみたいと思いましたよね!!!!!

ようこそ、こちらの世界へ!
あなたのGASライフ、そしてChatGPTライフに幸多からんことを!!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

目次