プロジェクト管理に使える Python 自動化入門
Notion / Slack / Google Sheets の API を組み合わせ、タスク集計や通知を自動化する実例。初心者向け。
週次の進捗まとめ、Slack への定型通知、タスクの一括登録。こうした繰り返し作業は Python でスッキリ自動化できます。本記事では学生プロジェクトでそのまま使える 3 つの実例を紹介します。
準備するもの
- Python 3.10 以降
- 各サービスの API トークン (Notion, Slack Incoming Webhook, Google サービスアカウント)
- 秘密情報を管理する
.env+python-dotenv
Example 1: Notion DB の週次集計
notion-client で DB からページを取得し、ステータス別にカウントして Markdown で出力します。
from notion_client import Client
import os, collections
client = Client(auth=os.environ["NOTION_TOKEN"])
pages = client.databases.query(database_id=os.environ["NOTION_DB"]).get("results")
counter = collections.Counter(
p["properties"]["Status"]["select"]["name"] for p in pages if p["properties"]["Status"]["select"]
)
for status, n in counter.items():
print(f"- {status}: {n}")
Example 2: Slack への日次リマインド
Incoming Webhook なら requests で 3 行です。GitHub Actions の cron で毎朝 9 時に実行すれば立派なリマインダ。
import requests
requests.post(
os.environ["SLACK_WEBHOOK"],
json={"text": ":sunny: おはようございます。今日のタスクを確認しましょう"},
)
Example 3: Google Sheets への行追加
サービスアカウント認証 + gspread でスプレッドシートに計測データを書き込む例。ログを集約してダッシュボードのデータソースにできます。
運用のコツ
- べき等性を意識する: 何度実行しても重複が増えないように
- エラー時に通知を出す: Slack の別チャンネルに詰まったら気付ける仕組みを
- クレデンシャルは必ず環境変数か Secrets Manager で管理する
自動化は時間を生むだけでなく、誰がやっても同じ結果になる再現性を担保してくれます。