広告

【Googleドキュメント】Monday.com連携でレポート自動化!ダッシュボードからの抽出

【Googleドキュメント】Monday.com連携でレポート自動化!ダッシュボードからの抽出
🛡️ 超解決

Monday.comのダッシュボードで管理しているプロジェクトの進捗状況やタスクの完了率を、毎回手動でGoogleドキュメントにコピー&ペーストしていませんか。手作業では時間がかかるうえに、更新忘れや転記ミスも発生しやすいものです。この記事では、Monday.comのAPIとGoogle Apps Scriptを組み合わせて、ダッシュボードのデータを自動的にGoogleドキュメントに抽出し、レポートを自動作成する方法を解説します。連携の仕組みを理解すれば、定型的なレポート作成から解放され、重要な分析に時間を割けるようになります。

【要点】Monday.comとGoogleドキュメントのレポート自動連携手順

  • Monday.comのAPIキーを取得する: 管理画面の「管理者」→「API」から発行し、認証情報をApps Scriptに保存します。
  • Apps Scriptでボードデータを取得する: UrlFetchAppを使ってGraphQLクエリを送信し、ダッシュボードの数値をJSONで受け取ります。
  • Googleドキュメントに書き込む: DocumentAppでテーブルや段落を生成し、取得したデータを自動整形してレポートを完成させます。

ADVERTISEMENT

Monday.comとGoogleドキュメント連携の仕組み

Monday.comは作業管理プラットフォームであり、豊富なAPIを公開しています。このAPIを介してボード上のアイテム、ステータス、数値列などのデータをプログラムで取得できます。一方、GoogleドキュメントはGoogle Apps Script(JavaScriptベース)を使って文書の生成・編集が可能です。両者を組み合わせることで、Monday.comのデータを自動で取得し、フォーマット済みのレポートをGoogleドキュメントに作成できます。連携の流れは、APIキーの発行、スクリプトの作成、定期的な実行(トリガー設定)の3ステップです。初心者でもコピー&ペーストで応用できるよう、基本構文を中心に解説します。

Monday.com連携でレポートを自動化する手順

  1. Monday.comでAPIキーを発行する
    Monday.comにログインし、右上のプロフィールアイコンから「管理者」を開きます。左メニューの「API」を選択し、「API v2」タブで「生成」ボタンをクリックしてAPIキーを作成します。発行されたキーはコピーして安全な場所に保管してください。このキーがスクリプトとMonday.comを接続する認証情報になります。
  2. GoogleドキュメントとApps Scriptを準備する
    Googleドライブで新しいGoogleドキュメントを作成し、任意のファイル名を付けます。メニューから「拡張機能」→「Apps Script」を開き、スクリプトエディタを起動します。プロジェクト名を「MondayReport」などに変更し、コードを記述する準備を整えます。
  3. APIキーをスクリプトに保存する
    スクリプトエディタの左側にある「プロジェクトの設定」歯車アイコンをクリックし、「スクリプトプロパティ」の「プロパティを追加」を選択します。プロパティ名に「MONDAY_API_KEY」、値に先ほど取得したAPIキーを入力します。これにより、コード内にキーを直接記述せず安全に利用できます。
  4. Monday.comからデータを取得する関数を作成する
    スクリプトエディタのコード.gsに以下の関数を記述します。この関数は指定したボードIDのアイテム名とステータスを取得し、JSONとして返します。
    function getMondayData() {
      const apiKey = PropertiesService.getScriptProperties().getProperty('MONDAY_API_KEY');
      const boardId = '1234567890'; // 実際のボードIDに置き換えてください
      const query = `query { boards(ids: ${boardId}) { items { name column_values { title text } } } }`;
      const options = {
        'method': 'post',
        'headers': {
          'Authorization': apiKey,
          'Content-Type': 'application/json'
        },
        'payload': JSON.stringify({ query: query })
      };
      const response = UrlFetchApp.fetch('https://api.monday.com/v2', options);
      return JSON.parse(response.getContentText()).data.boards[0].items;
    }

    ボードIDはMonday.comで該当ボードを開いたときのURLの「boards/」の後の数字部分です。

  5. 取得したデータをドキュメントに書き込む
    以下の関数を追加します。この関数はGoogleドキュメントにテーブルを作成し、Monday.comのアイテム名とステータスを埋め込みます。
    function writeReport() {
      const doc = DocumentApp.getActiveDocument();
      const body = doc.getBody();
      body.clear(); // 既存の内容をクリア
      const items = getMondayData();
      const table = body.appendTable();
      const headerRow = table.appendTableRow();
      headerRow.appendTableCell('アイテム名');
      headerRow.appendTableCell('ステータス');
      items.forEach(item => {
        const row = table.appendTableRow();
        row.appendTableCell(item.name);
        const status = item.column_values.find(cv => cv.title === 'ステータス');
        row.appendTableCell(status ? status.text : 'なし');
      });
    }

    この関数を実行すると、現在のドキュメントにテーブルが生成されます。

  6. トリガーを設定して定期実行する
    毎週月曜の朝に自動でレポートを更新したい場合、トリガーを設定します。スクリプトエディタの左側時計アイコン「トリガー」をクリックし、「トリガーを追加」を選択します。関数に「writeReport」、イベントのソースを「時間主導型」、時間ベースのトリガーのタイプを「週のタイマー」、曜日を「月曜日」、時刻を「午前9時~10時」などに設定します。これで設定完了です。

連携手順で陥りやすい注意点と対処法

APIキーの有効期限切れでデータが取得できない

Monday.comのAPIキーには有効期限がありませんが、アカウントのパスワード変更などで無効になる場合があります。エラーが発生したら、最初にAPIキーを再発行してスクリプトプロパティを更新してください。また、スクリプトプロパティへの保存ミス(スペル違い)にも注意しましょう。

GraphQLクエリでエラーが出る

Monday.comのAPIはGraphQLを採用しています。クエリの構文が間違っていると「400 Bad Request」が返ります。公式ドキュメントで正しいクエリを確認するか、API Playground(https://developer.monday.com/api-explorer)でテストすることをおすすめします。特にボードIDや列名のタイポに注意してください。

列のタイトルが日本語だと取得できない

column_valuesのtitleは日本語でも取得できますが、Monday.comのUI上での表示名と実際のtitleが異なることがあります。一度ログ出力で確認するか、column_valuesをすべて表示させて正しいtitleを特定してください。

大量データで処理がタイムアウトする

Apps Scriptの実行時間は6分が上限です。ボードのアイテム数が多すぎる場合は、クエリにlimitとpageを指定して分割取得するか、トリガーの間隔を短くして一度に処理するデータ量を減らしましょう。

ADVERTISEMENT

手動レポートと自動レポートの比較

項目 手動レポート 自動レポート(本連携)
作成時間(週1回) 30分~1時間 0分(自動実行)
更新ミス 発生しやすい プログラムで正確
カスタマイズ性 自由自在 スクリプト次第で柔軟
初期設定の手間 不要 1~2時間程度
リアルタイム性 出力時点のデータ トリガー実行時点のデータ

まとめ

Monday.comのAPIとGoogle Apps Scriptを組み合わせることで、ダッシュボードのデータを自動的にGoogleドキュメントへ抽出し、定型的なレポート作成を完全に自動化できます。最初の設定には1~2時間かかりますが、その後の毎週の作業時間を大幅に削減できるため、長期的には大きな効率化につながります。さらに応用として、グラフの挿入や条件付き書式をスクリプトで追加すれば、より見やすいレポートに仕上げられます。ぜひあなたのプロジェクトのボードに合わせてクエリを調整し、レポート自動化を実現してください。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

SPONSORED