忙しいデザイナーの情報収集を助けるLINE BotをMakeで作ってみた

この記事で作りたいもの

LINEに欲しい情報を通知してくれる仕組み

今回は、デザイナーが日々の制作業務に追われる中でも、最新情報を無理なくキャッチアップできるようにするためのLINE Botを作成しました。

デザイン制作の仕事をしていると、様々な制作業務、関係者との調整など、日々の業務だけで手一杯になることがあります。

一方で、AIやデザインツール、業務改善に関する情報はどんどん更新されていきます。
本当はキャッチアップしたいのに、情報を探しに行く時間が取れなかったり、あとで読もうと思った記事をそのまま見失ってしまったりすることがありました。

そこで、GoogleアラートやRSSで集めた情報を、Makeを使って自動で整理し、LINEに通知する仕組みを作ってみることにしました。

何に困っていたのか

ももっぺが困っていたことは、「情報収集をしたい気持ちはあるのに、日々の制作業務の中で続けるのが難しい」ということです。

情報収集は大事だとわかっていても、毎日自分から検索したり、複数のサイトを見に行ったりするのは、意外と負担が大きいです。

特に、忙しい日ほど目の前の仕事が優先になり、学びやキャッチアップは後回しになってしまいます。

その結果、新しいツールや考え方を知る機会が減ってしまい、デザイナーとしての引き出しを増やしにくい状態になっていると感じました。

どうして作ろうと思ったのか

この課題を解決するために、「自分から情報を探しに行く」のではなく、「必要な情報が自分のところに届く」仕組みを作りたいと思いました。

情報収集そのものを頑張るのではなく、情報収集が自然に続く環境を作ることができれば、忙しい日でも無理なくキャッチアップできます。

また、今回のプロトタイプ研修では、日々の業務で感じている課題を、AIや自動化ツールを使って形にすることが大事だと感じています。

そのため、今回は「忙しいデザイナーでも最新情報を逃さず受け取れる仕組み」をテーマに、MakeとLINE Botを使ったプロトタイプ作成に挑戦しました。

このツールの目的

このLINE Botの目的は、デザイナーが日々の業務に追われていても、AI・デザイン・業務改善に関する情報をキャッチアップしやすくすることです。

具体的には、GoogleアラートやRSSで取得した情報をGoogle Sheetsに整理し、その内容をLINE Botで通知することで、気になる情報にすぐ気づける状態を目指しています。

これにより、情報収集のために毎回検索する手間を減らし、日々の学びを少しでも習慣化しやすくしたいと考えました。

どうなりたいのか

この仕組みを通して、ももっぺは「目の前の制作業務をこなすだけでなく、新しい情報を取り入れながら提案できるデザイナー」になりたいと考えています。

ただ作るだけではなく、AIや自動化の力を使って、自分の働き方やチームの業務を少しずつ改善できるようになりたいです。

今回のLINE Botは、そのための小さな一歩です。

完璧なツールではありませんが、日々の困りごとを見つけて、まずは形にしてみることに意味があると思っています。

課題解決をなんとかアウトプットしたいももっぺが、Makeを使って試行錯誤した記録として、この記事をまとめます。


今回作りたいもの

最終アウトプットのイメージです

①は「Googleアラート → Make → Sheets」のシンプルな流れ、②は「Search Rows →(Router 分岐)→ 1st: Tools→LINE / 2nd: Update a Row」、そして中央にSheetsが両シナリオをつなぐ共通の保管庫、という構成にします。

①と②の全体像を作ります。中央のSheetsを共通の保管庫にして、上が①収集、下が②通知(Router分岐の最終形)です。

Step 1:GoogleアラートのRSS URLを発行する

1)googleアラートを開きます

ブラウザでgoogle.com/alerts を開きます

2)RSS化したいアラートの右にある鉛筆(編集)アイコンをクリックします。

まだ作っていなければ、上の入力欄にキーワードを入れて新規作成してください。

3)編集パネルの「オプションを表示」を開き、「配信先」のプルダウンを「RSSフィード」に変更します。

「配信先」がグレーアウトして選択できない場合

歯車アイコンから設定ポップアップを開いて、「ダイジェスト」のチェックを外すと

配信先が選択できるようになります

4)「アラートを更新」を押して保存します。

5)アラート一覧に戻ると、そのアラートの右側にRSSアイコンが表示されます。

6)そのRSSアイコンを右クリック →「リンクのアドレスをコピー」を選びます。

https://www.google.com/alerts/feeds/... という長いURLが取れれば成功です。


Step 2:Makeのシナリオ作成

6)Makeにログインして、新しいシナリオを作る画面まで開きます

http://make.com/にアクセスして、Create a new scenarioを選択します。

7)Maximum number of returned resultsの設定

Maximum number of returned results:テスト用に 2 としておく。

8)Choose where to start を選択

  • Select the first RSS feed item:今フィードにある一番古い1件から
  • RSS feed items from after a specific date:指定した日付より新しいものから
  • All RSS feed items:今フィードにある全件を一気に処理
  • From now on:今この瞬間より後に出てくる新着だけ

「シナリオを動かし始めたとき、どこから処理を始めるか」を選ぶ画面で、今回はAll RSS feed itemsを選択して、saveを押します。

理由は、まだフィードに新着が来るのを待っていると何も取れずテストにならないので、すでにある記事を使って「ちゃんとSheetsに書き込めるか」を確認したいから。

9)Run this module onlyでテスト実行

モジュール上で右クリックします。Run this moduleを押します。

実行結果を確認します。以下のようにデータを取ることできれば成功です。

以下の項目が取れているかが重要。Google Sheetsに書き込むために使用した項目。

  • Title(記事タイトル)
  • URL(記事リンク)
  • Date created(公開日時)
  • Description(記事の要約)

ここまでできたら、続いてはGoogle Sheets側の準備に進みます。

Step 3:Google Sheets に書き込む

10)Google ドライブで新しいスプレッドシートを1つ作成します。

スプレッドシート側の「受け皿」を先に用意します。

Make から書き込む前に、空のシートに見出し行を作っておきます。

11)Google Sheets › Add a Row を追加

次に接続とシートの指定です。

12)Makeとgoolgeスプレッドシートを接続します

Create a connection」ボタンを押す。

これはMakeとGoogleアカウントをつなぐ初回認証の手続きです。

ボタンを押すと、接続名を入力する小窓が出ることがあります。そのままでもいいですが、分かりやすく「Googleアラート用」などと付けても良さそうです(今回は気が付かずそのまま進みました)

「Sign in with Google」を押します

Googleのログイン画面が開くので、スプレッドシート(Googleアラート_ログ)を置いているアカウントを選びます。

「MakeがGoogleアカウントにアクセスしようとしています」という権限確認が出ます。

チェックボックスが出たら全部にチェックを入れて「続行」「許可」を押します(Sheetsへの読み書き権限が必要なため。1つでも外れると後で書き込めません)。

許可が完了してMakeの画面に戻ります。

以下の画面になると接続成功です。

14)各項目を設定します

  • Connection:接続したいアカウントが選択されているかを確認
  • Search Method:Search by path
  • Drive:My Drive
  • Spreadsheet Name(またはファイル選択):Googleアラート_ログ
  • Sheet Name:タブ名(「シート1」など)
  • Table contains headers(見出し認識の設定):Yes
  • Use column headers as IDs of the columnsYesがおすすめ(列が「キーワード」「タイトル」など見出し名で表示されるので、データを割り当てやすいです)
  • Values in columns
    • キーワードAdobe
    • タイトル → RSSの Title を選択
    • URL → RSSの URL を選択
    • 公開日 → RSSの Date created を選択
    • 概要 → RSSの Description を選択

Save」を押して保存します。

15) 「Run once」 ボタンを押して、シナリオをテスト実行します

スプレッドシート側を確認して、添付画像のように取得できていればOKです。

重複防止&スケジュール化(自動運転化)

今のままだと実行のたびに同じ記事がどんどん増えてしまうので、ここを設定して「毎日ほっといても貯まる/重複しない」状態にします。

16)重複しないようにする(RSSモジュール側)

RSSの「Watch RSS feed items」は、本来「前回チェック以降の新着だけ」を拾う仕組みになっている。

今は手動テストのため過去記事を取り直しているが、自動運転に切り替えると、新しく出た記事だけを拾うようになります。なので基本はこのままでOK。

17)スケジュールを「1日1回」にする(シナリオ全体)

画面下のスケジュール表示が今「Every 15 minutes」になっています。

これだと無料枠(月1,000オペレーション)をすぐ使い切ってしまうので、1日1回に変えます。

  • 画面下の「Every 15 minutes」の文字(または横のトグル)をクリックします。
  • スケジュール設定画面で 「Run scenario」を 「Every day」(毎日)に変更します。
  • 実行する時刻を設定して保存します。

「Daily(毎日)」「Time 1: 10:00」「Time zone: Asia/Tokyo(日本時間)」と、毎朝10時に1回だけ動く設定です。

Activate scenarioを押して完了です。

①収集フローは自動運転まで完成しました。

LINEにメッセージが届くための設定(自動でLINEに通知)

18)LINE側でチャネルアクセストークンを取得します

LINE側で「Bot(公式アカウント)」を用意して、Makeとつなぐためのトークンを取得します。

LINE Developersコンソールにアクセスして設定を行います。

Messaging APIチャネルの作成まで完了させます。

https://developers.line.biz/console

チャネルアクセストークンを取得します。文字列を控えておきます。

19)新しいシナリオを作る

Makeの「Create a new scenario」を押します。

1本目と区別できるよう、名前を「LINE通知」などに変えておくとよいです。

20)「LINE」モジュールを置いて接続テストする

検索窓に「LINE」と入力し、LINEアイコンを選択します。

モジュール一覧から「Send a Broadcast Message」を選びます。

Send a Broadcast Message」を選択する理由は以下です。

  • 「そのBotを友だち追加している全員に送る」方式。送信先の指定が不要です
  • User ID取得の手間を省きたい

Connectionの「Add」を押します。

接続名(「LINE通知用」など)を入れる

Channel access token の欄に、先ほど控えたチャネルアクセストークンを貼り付けます。

「Save」を押します

Messages の下の「+ Add item」をクリックします。

すると「Type」を選ぶ欄が出ます。

Text」を選びます。 Text の入力欄が現れるので、動作確認用に固定文を入れます。 ⇒テスト通知です。Makeから届きました。

Notification Disabled は「No」のままでOK(Noにすると通知音が鳴ります=気がつけます)。

Save」で確定します。

シナリオを保存したらRun onceを押してテスト送信します。

スマホのLINE:「テスト通知です。Makeから届きました。」がしっかり届いている。
Make側: Initialization → Operation 1 → Commit → Finalization と全部緑チェックになっている。

上記の添付画像のようになれば、MakeからLINEへ送る設定が通りました!

なぜ Push ではなく Broadcast を使うのか

LINE の送信方法には Push(特定の1人に送る)と Broadcast(友だち全員に送る)があります。最初は Push で作ろうとしましたが、Push は送信先として「User ID」という個人ごとの長いIDが必要で、これが管理画面のどこにも表示されず、別途取得する手間がかかります。

今回は自分専用(友だちは自分だけ)なので、「友だち全員に送る」Broadcast を使えば、結果的に自分だけに届きます。送信先の指定が不要になり、設定がぐっとシンプルになるため、Broadcast を選びました。

※将来、複数人に配る場合は、人によって出し分けたいかどうかで Push / Broadcast を選び直します。

続いては、この固定文を Sheetsの実際の新着記事に差し替える

「その日の新着をまとめて1通で通知する」方式で設定していきます。(無料枠にも優しいし、通知も埋もれない方式)

スケジュール(1日1回)→ Google Sheets「Search Rows」(今日の新着を読む)→ Text Aggregator(複数記事を1つの文章にまとめる)→ LINE「Broadcast」(まとめて送信)

ここで設計上、ひとつ整理が必要です。今日の新着だけ」をどう見分けるか、がポイントになる

「まとめて1通」の通知シナリオを組み立てます。

21)Google Sheets「Search Rows」を追加

  • Makeの「LINE通知」シナリオを開きます。
  • LINEモジュール(緑)の左側に新しいモジュールを足します。
    • 画面下の「+」アイコンから追加します
  • 追加するアプリは Google Sheets、モジュールは 「Search Rows」 を選びます。

モジュールの設定を行います

  • Connection:先ほどと同じものを選択します
  • Search Method / Spreadsheet ID:先ほどと同じ「Googleアラート_ログ」を指定します
  • Sheet Name:シート1
  • Table contains headers:Yes
  • Filter:「通知済」列が空の行だけを拾う条件を設定します。
    • フィールド:通知済
    • 演算子:Does not exist(または「Is empty」「空である」に相当するもの)
  • Limit:とりあえず 10 など(1日の新着想定数で十分な数)。

確認します。「Search Rows」だけを 右クリック →「Run this module only」 でテストしてみます。

「Total number of bundles: 4」 を見ます。これが「取得した行数=4件」を意味します。

これで「まだ通知していない記事を読み出す」部分ができました。

この4件を1つのメッセージ文にまとめる処理(Text Aggregator)を、Search RowsとLINEの間に挟みます。

22)Text Aggregator を追加

Google SheetsとLINEモジュールの間に、Toolsの中にあるText aggregatorを設定します

設定内容は以下

  • Source Module:「Google Sheets – Search Rows」を選びます(どのモジュールの繰り返しをまとめるか)。
  • Row separator:プルダウンから「New row」を選びます(記事ごとに改行で区切る指定。これを忘れると全部つながってしまいます)。
    • 「Advanced settings」をONにすると出てくるこれで「4件の記事を1つの文章にまとめる」処理が完成しました。
  • Text:1記事あたりの表示の形を作る

これで「4件の記事を1つの文章にまとめる」処理が完成です。

残りは最後の1ステップ、LINEモジュールの中身を「固定文」から「このまとめ文」に差し替えるだけです。

最後の仕上げ:LINEに「まとめ文」を渡す

一番右の LINE(Send a Broadcast Message) モジュールをダブルクリックで開きます。

Messages の中の Text 欄を見ます。

今は「テスト通知です。Makeから届きました。」という固定文が入っているはずです。

その固定文を消します。 空にした Text 欄をクリックすると、右側に項目リストが出ます。

今度はそこに「Tools – Text aggregator」の項目(Text、まとめた文章)があるはずなので、それをクリックして挿入します。

お好みで、まとめ文の前に見出しを付けると分かりやすいです。例えば Text欄の先頭に手入力で: 【Googleアラート新着】
(改行)
そのあとに Text aggregator の「Text」タグ 「OK / Save」で保存します。

シナリオに重複防止(通知済フラグ)を足す

今の通知シナリオは「通知済(F)が空の行」を読んで通知します。

でも通知したあとF列に印をつけていないので、このままだと毎日同じ記事が何度も届いてしまいます

通知したらF列に『済』を書き込む」処理を足します。

Update a RowをSearch Rowsに接続する

Google Sheets(Update a Row)を新規作成します。

先頭モジュールのGoogle Sheets(Search Rows)と接続し、Toolモジュールと分岐させます。

各項目を設定します

基本設定を確認・入力します(前回入れたものが残っているはず)。

  • Connection:先ほどと同じものを選択します
  • Spreadsheet:先ほどと同じ「Googleアラート_ログ」を指定します
  • Sheet Name:シート1
  • Table contains headers:Yes
  • Row number:入力欄をクリックします。今度は右側のリストに「Google Sheets – Search Rows」が表示されるはずです。その中の「行番号(Row number)」を選んで挿入します。
  • Values(列の値):列の入力欄のうち、「通知済(F)」の欄にだけ と手入力します。A〜Eの他の列はすべて空のままにしてください(空にすれば既存の値が保持されます)。

つまずきポイント:Update a Row の置き場所

最初、Update a Row を LINE モジュールの「後ろ」に置いて作ろうとしたところ、Row number(行番号)の項目に「Search Rows」が出てこない、という壁にぶつかりました。

原因は、間に挟まっている Text aggregator が「複数の行を1つの文章にまとめてしまう」ことです。まとめた後では、もう1行ずつの行番号が分からなくなっているため、Update a Row から参照できなくなっていました。

解決策は、Update a Row を LINE の後ろではなく、Router で Search Rows の直後に分岐させて置くこと。こうすると Search Rows の行番号がそのまま渡るので、行ごとに「済」を書き込めるようになります。

これで「読んだ行のF列に『済』を書き込む」処理が完成しました。重複防止の仕組みが整いました。

全体テストします

1回目のrun once 実行

シナリオは添付画像の状態になっている、この状態でrun once実行します。

以下ができていれば理想どおりです。

  • LINE通知:4件の記事がきれいにまとまって届いた
  • F列(通知済):2〜5行目すべてに「」が入った

2回目のrun once実行

ここで問題なのが以下のエラーが表示される

エラーの内容は「rowNumber(行番号)が空っぽで、Update a Rowが実行できない」と出る。

理由は、今回は通知すべき新着が0件だったからです。

Add filterを押して、フィルターを設定する

Add filterを押すと、Makeが自動でちょうどいいフィルターを用意してくれています。

  • Label:Only continue when mapped value exists(値があるときだけ続行)
  • ConditionRow number / Exists(行番号が存在するとき)

このままSaveを押します。

これで、Google Sheets 2nd側のフィルター、保存できましたね。

これでUpdate a Rowのエラーは止まります。

run onceでシナリオ実行

1回目のrun once

新着あり(「Googleアラート_ログ」F列が空)→ まとめてLINE通知 + F列に「済」入力

2回目のrun once

新着なし(0件)→ 「■」だけ届く(エラーなし)

以上でシナリオ全体は成功です。完成しました🎉

いよいよ本当に最後の仕上げ──スケジュール設定&有効化

Step:スケジュール設定

画面下の「Every 15 minutes」をクリックします。

  • Run scenarioDaily(毎日)
  • Time10:30
    • Googleアラートの収集が朝10時で設定しているため、通知はそのにします。収集→蓄積→通知の順になるよう、10:30 あたりがおすすめです(10時の収集が終わってから通知が走るので、その日の新着をちゃんと拾えます)。
  • Time zone が「Asia/Tokyo」になっているか確認します。

保存します。

保存後に「Activate scenario」(有効化しますか?)と聞かれたら「Activate scenario」を押します。

シナリオ有効化の確認

画面下のトグルが ON(緑) になっていればOKです。

🎉完成!

完成した仕組み(自動運転中)

  • ①収集(毎朝10:00):Googleアラート → Make → Sheetsに自動蓄積
  • ②通知(毎朝10:30):Sheetsの新着 → まとめてLINE通知 + 通知済みフラグで重複防止

①が新着を集めて、その30分後に②がLINEに届ける——という流れを、何もしなくても毎日やってくれます

10:30にLINE通知が来るかを確認してみた

自動運転の初回、ちゃんと10:30に届来ました、まずそこは成功です。

問題発覚しました🥺

ただ、なんだか中身がおかしいです🥺ここで問題発覚しました。

届いた2件はどちらもAIの話(Forbes JAPAN)で、Adobeとは関係なさそうです。

E列(概要)に小さく <b>adobe</b> というタグが入っています

<b>〜</b> はGoogleアラートが「検索キーワードに一致した部分」を太字にするためのタグです。つまり、この2記事は本文のどこかに「Adobe」という単語が含まれているから、Adobeのアラートに引っかかってきた、ということです。

フレーズ・除外指定で精度を上げるなどの対応が必要です。

一旦は、試運転なので、今度やってみたいことに書き留めておきます。

今後やってみたいこと

シナリオを作成する過程での気づきをメモします。今回は、アウトプットのスケジュール優先としましたが、もっと使い勝手を良くするためには、以下の課題があると思う。

  1. 複数フィード拡張(AI・Figma・Claudeなど他キーワードも追加)
    • 今は試運転なので「Adobe」のみのワードで設定していますが、複数ワードも処理できるようなシナリオにしたい。
  2. データ整形(公開日を日本時間表記に/概要のHTMLタグ除去)
  3. ボタン検索(LINEから過去分を引き出すリッチメニュー)
    • 見たい記事のワードを検索して確認できるような仕組みにしたい
  4. 仲間たちへの配布(その際は重複防止をもう少し複雑な処理へ変更する必要がありそう)
  5. 0件の日は「■」も送らないようにする(通知の完全スキップ)
    • 今回は試運転として、新着が0件の日に「■」だけのメッセージが届くのを許容しました。これは、Text aggregator が「0件でも空のデータを1つ作る」性質があり、それがLINEに送られてしまうためです。
    • 本来は「新着があるときだけ通知し、0件の日は何も送らない」のが理想です。実現するには、LINE の直前に「中身が空でないときだけ送る」フィルターを追加するなどの対応が必要になります。次の改善ポイントとして残しておきます。
  6. ワードの精度を上げる
    • 試運転中に、キーワードを「Adobe」に設定しているのに、Adobeと関係のないAI記事が通知されることがありました。原因を調べると、記事に使われている画像が Adobe Stock(stock.adobe.com)の素材で、その画像URLに「adobe」という文字が含まれているため、Googleアラートが「Adobe関連」と誤判定して拾っていました。記事本文ではなく、挿絵の配信元だけで引っかかっていた形です。
    • 対策として、次のような調整が考えられます。
    • ・Googleアラートのキーワードに除外指定を加える(例:Adobe -stock.adobe.com)→ Adobe Stock由来の誤ヒットを減らす
    • ・キーワードをダブルクォートで囲んで完全一致に近づける(例:"Adobe"
    • ・精度より網羅を優先して、ある程度の誤ヒットは許容する
    • なお、キーワードを変更するとGoogleアラートのRSS URLが変わる場合があり、その際は①のMakeシナリオにRSS URLを入れ直す必要があります。次の改善ポイントとして残しておきます。