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連携でレポートを自動化する手順
- Monday.comでAPIキーを発行する
Monday.comにログインし、右上のプロフィールアイコンから「管理者」を開きます。左メニューの「API」を選択し、「API v2」タブで「生成」ボタンをクリックしてAPIキーを作成します。発行されたキーはコピーして安全な場所に保管してください。このキーがスクリプトとMonday.comを接続する認証情報になります。 - GoogleドキュメントとApps Scriptを準備する
Googleドライブで新しいGoogleドキュメントを作成し、任意のファイル名を付けます。メニューから「拡張機能」→「Apps Script」を開き、スクリプトエディタを起動します。プロジェクト名を「MondayReport」などに変更し、コードを記述する準備を整えます。 - APIキーをスクリプトに保存する
スクリプトエディタの左側にある「プロジェクトの設定」歯車アイコンをクリックし、「スクリプトプロパティ」の「プロパティを追加」を選択します。プロパティ名に「MONDAY_API_KEY」、値に先ほど取得したAPIキーを入力します。これにより、コード内にキーを直接記述せず安全に利用できます。 - 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/」の後の数字部分です。
- 取得したデータをドキュメントに書き込む
以下の関数を追加します。この関数は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 : 'なし'); }); }この関数を実行すると、現在のドキュメントにテーブルが生成されます。
- トリガーを設定して定期実行する
毎週月曜の朝に自動でレポートを更新したい場合、トリガーを設定します。スクリプトエディタの左側時計アイコン「トリガー」をクリックし、「トリガーを追加」を選択します。関数に「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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
SPONSORED
Googleドキュメントの人気記事ランキング
- 【Googleドキュメント】文字間隔(字間)を調整する方法!カーニングの代替手段
- 【Googleドキュメント】ルビ(ふりがな)を振る方法!代替ツールとアドオンの活用
- 【Googleドキュメント】上付き・下付き文字の入力方法!ショートカットと手動切替
- 【Googleドキュメント】縦書き表示を実現する方法!代替ツールと回避策
- 【Googleドキュメント】Docs→Wordへエクスポート!docx出力での書式維持
- 【Googleドキュメント】PDFからDocsへ変換する方法!OCR取り込みと精度
- 【Googleドキュメント】図表番号の自動採番!Figure 1, Table 2 の連番
- 【Googleドキュメント】インデントを正確に調整する方法!ルーラーとタブストップの使い方
- 【Googleドキュメント】表内の文字を縦中央揃えにする方法!セル内配置
- 【Googleドキュメント】音声入力が認識されない時の対処!マイク権限の確認
