Googleフォーム×Slack×LINEで申し込み管理を効率化!通知連携の仕組みを公開

IT全般
スポンサーリンク

はじめに

前回のブログでは、Googleフォームで申し込みが送信されたタイミングでSlackに通知を送る仕組みをご紹介しました。

これは情報共有の即時化に役立ちましたが、Slackを使っていない関係者(講師・学生など)には情報が届かないという新たな課題が残りました。

今回はその課題を解決すべく、Slackに加えてLINEグループにも自動で通知が届くよう機能を拡張しました。

LINEでの通知方法には思わぬ落とし穴もあり、少し苦戦したポイントもあります。
本記事ではその内容をまとめてご紹介します。

背景:LINEでの通知ニーズと通知ミス

Googleフォームでイベントや講座の申し込みを受け付けていたところ、次のような課題が発生していました。

  • 定員を超える申し込みがあっても、通知に気づかず後から対応になる
  • Slackに通知は来るが、LINEしか見ていないメンバーが情報を見逃す

ふだん使ってるLINEに通知が届くといいんだけどなぁ

そこで、フォーム送信時にSlackとLINEの両方にリアルタイムで通知を送る仕組みが必要だと判断しました。

最初に試した方法:broadcastでは届かない?

LINE Messaging APIには、Botから一斉に通知を送れる broadcast というAPIがあります。
まずはこちらを試してみました。

UrlFetchApp.fetch("https://api.line.me/v2/bot/message/broadcast", {
  method: 'post',
  headers: {
    Authorization: 'Bearer ' + lineToken,
  },
  payload: JSON.stringify({
    messages: [{ type: "text", text: message }]
  })
});

しかし実際には、LINEグループに通知が届きませんでした。

原因はLINEの仕様にあります。broadcast は一見便利そうですが、以下のような制限があります。

  • Botが「参加状態」になっていないグループには通知されない
  • グループの通知設定やミュート状態によりブロックされる場合がある
  • 「友だち」や「参加中グループ」が曖昧な状態ではそもそも送信対象にならない

つまり、broadcastは確実性に欠けるということがわかりました。

解決策:push APIでグループIDを指定して送信

そこで、push API に切り替えました。push では通知先を明示的に指定できるため、確実にLINEグループへ通知を届けることができます。

UrlFetchApp.fetch("https://api.line.me/v2/bot/message/push", {
  method: 'post',
  headers: {
    Authorization: 'Bearer ' + lineToken,
  },
  payload: JSON.stringify({
    to: GROUP_ID,
    messages: [{ type: "text", text: message }]
  })
});


この GROUP_ID は、Botが招待されたグループで発言があった際にWebhook経由で取得可能です。
取得方法は、参考サイト(下部に掲載)をご覧ください。

実装内容まとめ

今回実装した通知処理では、Googleフォームからの回答をトリガーに以下を自動実行します。

  • スプレッドシートにデータを記録
  • SlackチャンネルにWebhook経由で通知
  • LINEグループにPush APIで通知

通知メッセージには、以下のような情報を含めています。

  • 学校名
  • 選択されたコース(初心者/経験者)
  • 現在の各コースの申込人数(集計)

これにより、SlackとLINEの両方で申し込み状況をリアルタイムに共有できるようになりました。

導入効果

  • SlackユーザーもLINEユーザーも、同じ情報を即座に把握できるように
  • 申込状況の確認がすぐにでき、定員超過や講師割り当ての対応がスムーズに
  • 情報の伝達漏れがほぼゼロに!

特にLINEしか使っていなかった講師からは「即座に通知が来て安心」「前回より分かりやすい」と高評価をいただいています。

LINE Messaging APIの料金について

今回、LINEグループへの通知には LINE Messaging APIの「Push API」 を利用しました。

このAPIは、柔軟に通知先(ユーザーIDやグループID)を指定できるため便利ですが、送信数に応じた課金があるため注意が必要です。

LINE公式アカウントの料金体系(2025年6月時点)

プラン名月額料金無料メッセージ数超過時の従量課金
フリープラン無料200通/月送信不可(上限に達すると自動停止)
ライトプラン¥5,0005,000通/月¥5/通
スタンダードプラン¥15,00045,000通/月¥3/通〜(段階制)

※「1通」とは、Botから1ユーザーにメッセージを1件送信した場合を指します。

■ グループ送信時の注意点:「送信 = メンバー全員分カウント」

たとえば、LINEのグループにメッセージを送信する場合、LINE APIでは以下のようにグループ内の全メンバー数がカウント対象になります。

例)10人のグループに1通送信すると…
  • 送信したメッセージは「10通分」としてカウントされる
  • 仮に1日3回送信すると、それだけで「30通分」消費
  • フリープラン(月200通)では、1週間程度で上限に達する可能性

この仕様は、Botの通知がグループ内のすべてのLINEユーザーに対して同時に配信されるためです。たとえグループに対して1回送信するだけでも、ユーザー数分のコストが発生する点にご注意ください。

■ 実運用での対策例

工夫目的
通知回数を1日1回に制限無駄な送信を防止
SlackとLINEを併用し、役割分担LINEは最低限の情報、Slackで詳細確認
グループを細分化して送信対象を絞るカウント対象人数を減らす
通知内容を1通で完結できるよう構成Flex Messageなどの活用も検討

■ LINE送信数の把握と上限対策

  • Googleスプレッドシートで月ごとの送信件数を自動記録
  • GASで送信回数をカウントし、上限が近づいたらSlackに警告を送ることも可能です
  • 有料プランに移行するタイミングの判断材料になります

LINE APIは便利だが「送信数=人数分」カウントされる点に注意

LINEは手軽で強力な通知ツールですが、グループ送信時には想像以上にメッセージ数を消費する可能性があります。

頻度や対象を工夫し、Slackなど他のツールと併用する設計がコストと効率の両立には重要です。

まとめ

GoogleフォームとSlack・LINEの連携は、実は意外とシンプルです。

ただし、LINEに関しては broadcastではなくpushを使うのが正解 ということが分かりました。

今後は、通知内容の見やすさ向上(Flex Messageの活用など)や、通知対象の切り替え(チームごとに異なるグループへ送信など)にも取り組んでいく予定です。

関連リンク

コメント

タイトルとURLをコピーしました