🔥

📚 Notion × LINE Bot × Flex Message でつくる課題リマインダー

に公開

まずは完成イメージをどうぞ👇

こんにちは、大学で課題に追われる生活をしているものです。

今回は Notion で管理している課題を、自作の LINE Bot でおしゃれに通知するリマインダーを作りました。
通知の見た目・仕組みともに全力で取り組んだので、同じように「LINEでいい感じにリマインドしたい!」と思ってる人の参考になれば嬉しいです 🙌


🎯 やりたかったこと

  • Notion に登録した課題を LINE で通知したい
  • 提出期限が近いものだけ通知
  • 完了済みの課題は通知スキップ
  • Flex Message で見た目よく通知
  • あと◯日で提出も表示

🛠 構成

  • Notion API + Integration
  • Google Apps Script(GAS)
  • LINE Messaging API
  • LINE Flex Message(carousel)

🧱 Notionの課題DB構成

カラム名 種類 用途
名前 タイトル型 課題名(第1回レポートなど)
授業 Relation型 授業DBとつなげる
提出期限 日付型 締切日
タイプ セレクト型 未着手/対応中/完了🙌 など

実際の写真

💥 ハマったところ & 解決法

❌ relationが空になる

Notionでは授業DBと課題DBをrelationでつなげてるのに、GASからは relation: [] になってる現象…。

原因: Integrationが課題DBしか見えてない
解決法: 授業DBにもIntegrationを共有する!


❌ 授業名が取れない

relationから取れるのは id だけ。授業名(タイトル)を出したい!

解決法: /v1/pages/{id} で授業ページを取得 → titleプロパティを動的に取得!


✨ Flex Messageの構成(1件分)

  • 📚 ヘッダー:固定タイトル
  • 授業名(太字・青)
  • 課題名(小さめ)
  • 提出日(📅 + 曜日付き)+ あと◯日(⏰)
📚 課題リマインド
ゼミナール3
第1回レポート
📅 2025/4/24(木)|⏰ あと3日

複数あると、スワイプできるように carousel で横に並びます!


🧪 実装のポイント

  • titleプロパティは自動検出 → 授業DBが変わっても壊れない
  • 曜日を表示:(月) のように整形
  • あと◯日 は提出日と今日の差分から算出
  • タイプ === 完了 🙌 は通知対象から除外

✅ 作ってよかった点

  • 毎朝8時にLINEが届く安心感
  • 提出忘れがほぼゼロに!
  • フォーマット統一されてて見やすい
  • 課題の「気づき遅れ」がなくなった

🚀 今後やりたいこと

  • 提出ボタン追加 → Notion側の「完了 🙌」を自動チェック(Webhook)
  • 課題のリンクボタン付きに

🙌 最後に

「Notionで課題管理してる人」「通知Bot作ってみたい人」「Flex Message使ってみたい人」にとって、この記事が参考になれば幸いです!

Discussion