Claude Codeとやり取りしながら仕事をしていると、自然とタスクが増える。「あとでこれをやる」「次回の打ち合わせで確認する」「このクライアントへの提案書を来週までに作る」。
問題は、このタスクが「頭の中にある」か「チャットの流れの中に埋まっている」かのどちらかになることだ。Notionを開くか、スプレッドシートを開いてタスクを入力する、という2ステップが毎回必要になる。忙しいときほど、この2ステップが面倒で後回しになる。
「Claudeとのやり取りの中から直接タスクを登録できたら」というニーズがあった。同時に「外出中にLINEからもタスクを追加できたら」という需要もあった。この2つを一つのシステムに統合したのが、Claude×GAS×LINEのタスク自動登録システムだ。
最初に作ったのはClaude→GASの連携
Claude Codeのターミナルからタスクを登録できる仕組みを先に作った。
構成はシンプルだ。GASでWeb Appを作成し、Googleスプレッドシートにタスクを追記するエンドポイントを用意する。Claude Codeから「タスク追加」という指示があれば、PythonでそのエンドポイントにPOSTする。
タスクのデータ構造は次の通りだ。
- タスク内容:何をするか
- 依頼者:誰からの依頼か(Claudeターミナルからの場合は「Claude Terminal」固定)
- 期限:いつまでか(省略可)
- 優先度:高/中/低(省略可)
- 懸念点:注意事項や不安な点(省略可)
- 担当者:誰がやるか(省略可)
期限がある場合は、Googleカレンダーにも終日イベントとして自動登録する。これで「スプレッドシートを見忘れていたが、カレンダーには出ていた」という二重のセーフネットができた。
curlが使えないという予期しない問題
実装中に想定外の問題にぶつかった。GASのWeb Appへの投稿をcurlコマンドで行おうとしたら、うまくいかなかった。
原因はGASのリダイレクト仕様だ。GASのWeb AppにPOSTリクエストを送ると、一度リダイレクトが発生する。curlはリダイレクト後のPOSTをGETに変換してしまう。つまり、curlでPOSTしてもGASはGETとして受け取り、doPostではなくdoGetが呼ばれてしまう。
解決策はPythonでの送信だった。urllib.requestを使ってPOSTを送ると、リダイレクト後もPOSTのまま処理される。
この制約はGASのWeb Appを使う上での重要な知識だ。curlで動かないとき、curlの問題ではなくGASのリダイレクト仕様が原因であることが多い。
LINEからも同じシートに集約する仕組み
Claude Codeからの登録が動くようになってから、次のフェーズに入った。外出中にLINEからタスクを追加できる仕組みだ。
LINEからのタスク追加は、LINE公式アカウントとGASを連携させる。LINEにメッセージを送ると、GASのdoPost関数が受け取り、スプレッドシートに追記する。
重要な設計判断は「同じスプレッドシートに書き込む」ことだった。Claude Codeから登録したタスクとLINEから登録したタスクが同じシートに並ぶ。管理の一元化だ。どこから登録しても、確認は一箇所でよい。
Slackへの通知も追加した。タスクが登録されるたびに、Slackの指定チャンネルに通知が飛ぶ。優先度に応じて絵文字を変える(高=🔴、中=🟡、低=🟢)。画面を開かなくても、Slackを見れば新しいタスクが入ったことがわかる。
期限リマインダーで「見落とし」を防ぐ
スプレッドシートにタスクを溜めても、見なければ意味がない。この問題を解決するために、期限リマインダー機能を追加した。
GASのトリガーで毎日決まった時刻にsendDeadlineReminders関数を実行する。スプレッドシートを走査して、期限が3日以内のタスクをSlackに通知する。
「3日前に通知」は意図的な設定だ。当日リマインドでは対応できないタスクがある。3日前なら大抵のタスクは間に合う。
完成した仕組みの全体像
このシステムが完成してからの運用は、次のようなフローになった。
PC作業中にClaudeとやり取りしていて「あとで〇〇をやる」という話になったとき、すぐに「タスク追加: 内容 / 期限 / 優先度」という形式で伝える。ClaudeがPythonでGASに送信し、スプレッドシートとカレンダーに自動登録される。Slackにも通知が来る。
外出中に「あ、これもやらないと」と思いついたとき、LINEに「〇〇する 来週まで」と送る。GASが受け取り、同じスプレッドシートに追記される。
どちらのルートから入力しても、一つのスプレッドシートに集約されている。確認・管理の場所は一つだ。
業務自動化で大切にしたこと
このシステムを作る中で実感したことがある。業務自動化は「難しいツールを導入すること」ではないということだ。
大事なのは「すでに使っているものの延長線上に作る」ことだ。LINEはすでに毎日使っている。Googleスプレッドシートはすでに使っている。Claudeはすでに使っている。これらを繋いだだけだ。新しいツールを覚える必要はなかった。
自動化のハードルが上がる理由の多くは「新しいツールへの移行コスト」だ。既存の習慣にそのまま乗っかれる設計にすれば、継続しやすい。
まとめ
Claude×GAS×LINEのタスク自動登録システムは、「どこから入力しても同じ場所に集まる」という設計原則から生まれた。curlが使えないという躓きや、LINEとClaudeの統合、期限リマインダーの追加を経て、日常的に使える形になった。
graciautoでは業務自動化システムの設計・構築を支援しています。「こんなことを自動化したい」というご要望はお気軽にご相談ください。