Pythonスクリプトの完了とエラーをSlack Webhookで自動通知できるようにした話。確認しに行く作業がなくなった

ようやく月次処理の自動化に成功しました。Pythonでメール送信プログラムを書いたのです。取引先60社への連絡を一気に終わらせてくれます。丸一日かかっていた作業がボタンひとつで完了します。これでもう面倒な仕事から解放されたはずでした。しかし、実際の運用で新たなストレスが生まれます。それは実行結果を何度も確認しに行く作業でした。

プログラムの実行中はパソコンの画面から目が離せません。黒い画面を眺めながらエラーの赤文字に怯えます。途中で止まっていないか数分おきに確かめました。ログファイルを開いて中身を確認する日々の始まりです。これでは手作業がなくなっただけと言えます。精神的な拘束時間はあまり変わっていないと気づきました。せっかく自動化したのに心が休まりません。これでは本末転倒だと感じたのです。

そこでスクリプトの実行結果をSlackに通知させます。完了時やエラー発生時にスマホへ知らせる仕組みです。通知が飛んでくればずっと画面を見る必要がなくなります。今回は非エンジニアの私が試行錯誤の末にたどり着きました。最もシンプルで確実な通知設定の方法について詳しくお伝えします。

自動化の裏で続く監視、集中力低下

プログラムを動かした後は自由な時間が手に入るはずでした。しかし現実はスクリプトが気になって仕事に集中できません。取引先へのメール送信は失敗が許されない業務です。一通でも漏れていないか心配でたまらなくなります。プログラムが途中で落ちていないか不安になるからです。結局作業が終わるまで何度もターミナルを覗き込みます。このように処理の進捗を追いかけてしまうのです。

数分に及んだ確認作業

以前の私は自宅でスクリプトを動かしたまま夕食を食べていました。その時もスマホのアプリで会社のパソコン画面をチェックします。家族からは「食事中くらいスマホを置いたら」と呆れられました。これでは何のための自動化なのか分かりません。便利になったはずなのに見えない鎖に繋がれています。常に監視という重苦しさを感じていたのです。

ログ確認不要!Slack通知で自動化

ログファイルを開いて一番下までスクロールします。正常終了の文字を探す作業自体は数十秒で終わるでしょう。しかしその小さな確認作業が積み重なってしまいます。結果として本来集中すべき他の業務が分断されました。画面を見に行く手間をゼロにしなければなりません。手間の削減なしに自動化の完成はないと確信したのです。通知が届くまで放置できる状態こそ真の自動化の姿と言えます。

通知機能は難易度が高いと思っていましたが、調べてみると驚くほど簡単に実装できます。SlackのIncoming Webhooksは、特定のURLにデータを送信するだけで指定したチャンネルに通知を投稿してくれます。複雑なAPIの認証手順は不要で、自分専用のURLを一つ発行してデータを投げ込むだけです。

日本語インターフェースのSlack設定画面で「Incoming Webhooks」の説明が丁寧に表示されている様子。明るいオフィスの昼下がりに撮影されたような柔らかい雰囲気。realistic screenshot style

非常にシンプルな構造であり、専門的な知識がなくても利用できます。注意点はレート制限で、1秒間に複数のメッセージを送信することはできません。ただし業務の完了通知なら制限を気にする必要はなく、安定した通知手段として活用できます。

VBA・Pythonをもっと本格的に学ぶなら

VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。

侍エンジニア 無料カウンセリングを予約する →



Slackアプリ作成とWebhook URL発行、…

まずはSlackの設定画面から専用のアプリを作成します。Slack APIの公式サイトにアクセスしましょう。新しいアプリを作成して通知先のチャンネルを決めます。このとき日本語のUIが用意されているので安心です。手順を一つずつ確認しながら進めれば迷うことはありません。ボタンをいくつかクリックするだけで設定は進んでいきます。

設定の途中でIncoming Webhooksをオンにします。すると自分専用のWebhook URLが生成されるはずです。これがPythonからメッセージを送信する際の宛先になります。発行されたURLは非常に長い英数字の羅列です。これを漏らすと誰でも自分のSlackに投稿できてしまいます。そのため慎重に取り扱う必要があると感じました。このURLをコピーして手元に控えておきましょう。

URL通知の感動とセキュリティ

初めてURLを発行したときは半信半疑でした。本当にこれだけで通知が届くのか分からなかったからです。しかしテスト送信ボタンを押した瞬間にスマホが鳴ります。Slackに通知が届いたときは思わず感動してしまいました。難しいコードを書かなくても設定できるのが魅力です。URLさえあれば自分の思い通りに通知をコントロールできます。このとき確かな手応えを感じた瞬間でした。

URLはPythonのコードに直接書いてはいけません。コードを共有した際に誰でも悪用できてしまい、公開時も大変危険です。スクリプトと同じフォルダに.envファイルを作り、URLを環境変数として保存しましょう。

Visual Studio Codeで「.env」ファイルを開き、SLACK_WEBHOOK_URLという変数名の横に長いURLが記述されている。日本語の文字が含まれる。screenshot style

Pythonからは専用のライブラリを使ってファイルを読み込みます。プログラム内にURLが出てこないため、コード共有時も安全です。本番環境とテスト環境で通知先を切り替えるときも、環境変数なら簡単に対応できます。セキュリティ対策は複雑に考えず、大事な鍵を別の引き出しにしまうくらいの感覚で十分です。

Python通知、簡単コードとシンプルな学び

いよいよPythonのコードを書いていきましょう。使うのはインターネット経由で通信する有名なライブラリです。標準でインストールされていない場合はあらかじめ準備してください。通知を送るための関数は驚くほど短く済みました。たった4行のコードを書くだけで送信処理の完成です。あっという間に実装が終わってしまいます。

具体的にはJSON形式というデータの塊を作ります。それを特定の命令でURLに投げつけるだけで完了です。中身はテキストというキーにメッセージをセットします。非常にシンプルな構造なのが嬉しいポイントと言えるでしょう。これなら初心者の私でも何をやっているか手に取るように分かります。複雑なライブラリを使いこなす必要はありません。最小限の道具だけで十分だったのです。

シンプル選択と一行通知の威力

最初はもっと複雑なSlack用のライブラリを使おうとしました。しかし設定の多さに挫折しそうになります。そこでただ送信するだけという基本に立ち返りました。するとあっけないほど簡単に動作してくれたのです。道具は多機能であれば良いというわけではありません。自分の実力で完全に理解できるシンプルなものが一番使いやすいです。この事実を痛感した経験になりました。

通知用の関数ができたらメインの処理の最後に付け加えます。メール送信完了の関数を呼び出すだけで、最後まで無事に走り抜けたことを知らせてくれます。

Pythonのメイン処理の末尾に、notify_slack()という関数が呼び出されているコード。周りにはコメントアウトで日本語の注釈が入っている。realistic photo style

この一行の威力を最初に感じたのは別の部屋で打ち合わせをしていた時でした。その裏で60社へのメール送信を動かしていたのです。打ち合わせ中にスマホが震えて、Slackの通知で完了を知りました。PCの前に戻らなくても進捗が分かるのは本当に心強いものです。メッセージに現在時刻を含める工夫もしたので、いつ処理が終わったのか正確に把握できるようになりました。一行のコードが自分の業務を支える強力なパートナーに変わったのは、その瞬間でした。

Slack連携によるエラー詳細把握

完了通知以上に重要なのがエラー発生時の通知です。エラーで止まったのに気づかず放置してしまうと、大きな時間のロスになります。プログラム全体を特定の構文で囲み、エラーが発生したときはその内容をSlackへ送信させましょう。

エラー内容は長くなりがちなので、500文字程度に制限する処理も加えました。専用の関数でエラーの詳細を取得するのです。プログラムのどこでエラーが出たのか、どんな理由で停止したのかが把握できます。これを通知メッセージに含めれば、Slackを見るだけで原因を特定できます。

Slackの画面に、赤いアイコンと共にエラー内容が日本語で通知されている様子。エラー発生箇所が分かりやすく表示されている。UI mockup style

エラー内容は長くなりがちなので、500文字程度に制限する処理も加えました。最低限の情報があれば現場で判断するには十分です。すぐに把握できる体制があれば、自動化ツール運用の不安が劇的に解消されます。

Chatwork通知のAPI設定とルームID活用

私の職場でもChatworkを使っている部署が多いです。通知の仕組みはSlackとほぼ同じでした。管理画面からAPIトークンを発行し、ヘッダー情報に含めてデータを送信します。Slackとはコードの書き方が異なりますが、URLに送信するという本質は同じです。

Chatworkの「サービス連携」画面でAPI発行のタブが開かれ、APIトークンの文字列が一部隠れた状態で表示され、日本語のインターフェースとなっている。UI mockup style

Chatwork独自のポイントは投稿先のルームIDを指定することです。ブラウザで開いたときのURLの数字から確認できます。コードを一度書いてしまえば、あとは関数を呼び出すだけで通知が届きます。私の職場では部署によってツールが分かれていたため、SlackとChatworkの両方に対応させました。環境によって通知先を使い分けることで、チーム全体の連携も円滑になりました。

心の余裕と業務品質を守る通知機能

通知機能の導入で、PCの画面を確認する手間がなくなりました。おかげで通知が届くまで他の業務に集中でき、無駄な待機時間が消滅し、心に余裕を持って仕事に向き合えるようになったのです。

通知機能を導入して一週間が経った頃の出来事です。外出中に重大なエラー通知がスマホに届きました。私は急いで近くのカフェに入ります。エラー内容から推測してデータを一行修正して解決できました。もし通知がなければ帰社するまでエラーに気づきません。翌朝まで作業が遅れていたはずです。通知機能は単なる便利ツールではありません。自分の業務品質を守るための盾なのだと強く実感しました。

複数プラットフォームへの通知は、関数を一つの仕組みにまとめておくと安心です。通知先が変わっても対応しやすくなるからです。自動化とは処理の実行だけでなく、確認やトラブル対応も含めた全体設計なのだと学びました。

画面を見に行かない贅沢をぜひ体験してください。通知機能の便利さを一度知ると、もう戻れません。自分のコードが遠くのスマホを鳴らす感動をぜひ実装して味わってください。



無料プレゼント

Excel業務を自動化する前に確認するチェックリスト(PDF)

自動化していい作業かどうか、VBAかPythonか、最初に避けるべき落とし穴。実務でよく迷うポイントを1枚にまとめました。メールアドレスだけで受け取れます。

無料でチェックリストを受け取る

¥980 ミニキット

コピペで動かせる3スクリプト+自動化チェックリスト

最新ファイルの自動選択・部署名ゆれの正規化・CSV文字コード確認の3本セット。今週の作業を1つだけ楽にするための最小キットです。

ミニキットを見る(¥980)

関連リンクとチェックリスト

関連書籍

Python業務自動化関連書籍を、手元で見返せる形にしておきたい場合

Pythonやデータ処理の自動化は、作りながら同じ基礎を何度も確認する場面が多いです。手元で見返せる本があると、調べ直しの時間を減らしやすいです。

Python業務自動化関連書籍をAmazonで探す

学習サービスとアンケート

このスキルを活かしてさらに前へ進むなら

PythonやExcel自動化スキルを持ったまま、ITエンジニアとして転職したい方には「EBAエデュケーション」が選択肢です。企業が求めるエンジニア像に合わせたカリキュラムで、実務直結のスキルを習得できます。

ITエンジニア転職・EBAエデュケーション →

[アンケート] この記事は役に立ちましたか?


1問だけ回答する