この記事では、Googleフォームに回答が届いたら、LINEにリアルタイムで通知するn8nワークフローの作り方を解説します。
このようなフローはGAS(Google Apps Script)でも実現できます。
しかし、n8nを使うことでAIとの連携、メールの自動返信など、より拡張性があるワークフローを構築することができます。
じっさい、この記事ではメールの自動返信もワークフローに組み込みます。
※Googleフォームはスプレッドシートと自動的に連携できるのでn8nで組み込む必要はありません
今回作るワークフローの全体像は以下です↓
このワークフローは、通知先をSlackなどに変更することも可能です。
今回のワークフローは、たとえば
「アンケートが届いたらすぐに顧客対応したい」
といったケースで活躍します。
ぜひ、ご自身の業務に合わせてカスタマイズしてみてください!
STEP⓪ 準備するものを紹介
はじめに、今回のワークフローを作成するために必要なものを紹介します。
必要なのは以下の5つです。
- Googleフォーム → アンケート収集に使います
- Gmailアカウント → お礼メールの送信に使います
- LINE公式アカウント → LINEの通知先のユーザーIDを取得するのに使います
- LINEの通知先のユーザーID → n8nからの通知設定に使います
- LINEのチャネルアクセストークン → n8nからの通知設定に使います
必要なものが多いので、補足しますね。
GoogleフォームはシンプルなものでOK
Googleフォームはこちらの公式サイトで無料で作れます。
あくまでもテストなので、1個か2個の質問で構成されたシンプルなもので問題ありません。
今回のワークフローを作るにあたり、私は以下のフォームを作りました↓
セミナーの感想の求めるアンケート風のフォームです。
LINEの通知先のユーザーID取得に公式アカウントが必要
ちょっと手間なのがLINE公式アカウントと、LINEの通知先のユーザーIDです。
LINE公式アカウントはLINEの通知先のユーザーIDを取得するのに使います。
LINE公式アカウントはこちらから無料でつくれます。
「3分でかんたん作成!」とありますが、私も作ってみましたが本当に簡単に作れました!
n8nからは友達とのID交換で使うLINE IDには通知できません。
よって、LINEのユーザーIDを取得しなくてはなりません。
LINEのユーザーIDは「個体を識別する番号」くらいに考えてください。
「LINEのユーザーIDを取得する方法がわからない・・・」
という方向けの記事を用意しています。
リンクは以下↓
LINEのユーザーIDも、n8nで以下のワークフローを作ることで取得できます。
とても簡単ですので、ぜひリンク先記事を参考にして作ってみてください。
LINEのチャネルアクセストークンの入手方法
LINEのチャネルアクセストークンはLINE公式アカウントを持っていれば取得できます。
取得方法は以下の記事が参考になりますので、記事を見ながら取得してください。
長期アクセストークンの発行・確認方法
STEP① Webhookノードを追加する
ここからは、n8nの設定に移ります。
はじめにWebhookノードを追加します。
Webhookノードを使う理由
Webhookとは
「特定のイベントが起きたとき、別の場所に自動で通知を送る仕組み」
のことです。
今回は、このWebhookノードを使うことで、以下の流れを実現します。
- Googleフォームで回答が送信される
- n8nが「回答が届いた」という通知とデータを受け取る
このような事が可能になります。
さらに補足すると、過去のn8n入門講座で使用したSchedule Triggerノードとは異なり、Webhookノードはリアルタイムでデータを受信できます。
さらに、Webhookノードはデータ受信機能もあります。
なので、今回のようなリアルタイムでデータを扱いたい時はWebhookノードを使います。
Webhookノードの追加と設定
下の画像を参考にして、真っ白なワークフローにWebhookノードを追加してください。
Webhookノードは以下のように設定してください。
- HTTP Method:POST
- Path:form-response
- Respond:Immediately
設定が完了したらワークフローを保存します。
そしてワークフロー全体を「アクティブ」にしてください。
ここまでで、Googleのフォームからの通知とデータの受け皿ができました!
STEP② Google Apps ScriptでWebhookにデータを送る
GoogleフォームはGoogleスプレッドシートなどと簡単に連携できる、とても便利なサービスです。
けれど、n8nと連携するにはGAS(Google Apps Script)を使う必要があります。
先ほど用意したn8nのWebhookノードに通知するにはGASの設定が必要、というわけですね。
Google Apps Scriptを用意する
GAS(Google Apps Script)を用意しましょう。
GASは JavaScriptと似ています。
つまりプログラミング言語の一種です。
「プログラミングはできない・・・」
と思った方、安心してください。
いまは無料のChatGPTを使えばGASもすぐ書けます。
この講座で使うGASもChatGPTで書きました。
コードは以下です↓
function onFormSubmit(e) {
const response = e.values;
const webhookUrl = "〇〇〇〇〇〇〇〇";
const payload = {
timestamp: response[0],
name: response[1],
email: response[2],
message: response[3]
};
const options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload)
};
UrlFetchApp.fetch(webhookUrl, options);
}
このコードの中にある〇〇〇〇〇〇〇〇の部分は独自のURLを入れなくてはなりません。
独自のURLはステップ①で追加したWebhookで取得できます。
場所は最上部ですね。
URLが表示されてるはずなので(下の画像を参考)、〇〇〇〇〇〇〇〇の部分にコピペしてください。
スプレッドシートにスクリプトを貼り付ける
GASが用意できたら、そのスクリプトをGoogleフォームと連携しているスプレッドシートに貼り付けます。
Googleフォームと連携したスプレッドシートは以下の流れで作れます。
- Googleフォームを開き「回答」をクリック
- 「スプレッドシートにリンク」をクリック
- 「新しいスプレッドシートを作成」を選び「作成」をクリック
これでGoogleフォームと連携したスプレッドシートが作られます。
次は、そのスプレッドシートにGASを登録します。
連携したスプレッドシートを開き、以下の操作をしてください。
- 「拡張機能」をクリック
- 「App Script」をクリック
次の画面で先ほど紹介したスクリプトを貼ります。
貼ったら、保存ボタンをクリックして保存してください。
URLを貼る場所や保存ボタンは以下の画像を参考にしてください。
トリガーを追加する
次は「トリガー」を追加します。
以下の操作をしてください。
- サイドバーにある「トリガー」をクリック
- 右下の「トリガーを追加」をクリック
次の画面では以下の2箇所を設定してください。
- 実行する関数を選択:onFormSubmit
- イベントの種類を選択:フォーム送信時
設定したら右下の「保存」をクリック。
トリガー保存時にGoogleアカウントとの連携を求められたら許可してください。
これでGoogle Apps Script関連の設定は完了です。
STEP②の設定で、Googleフォームに回答があるたびにSTEP①で設定したWebhookが起動するようになりました!
STEP③ HTTP RequestノードでLINEへの通知を設定
これまでの作業で、以下の流れが完成しました。
- Googleフォームに回答が入力される
- 回答内容がリアルタイムでWebhookノードに送信される
ここからは、このデータを使ってLINEに通知を送る設定をします。
ワークフローのイメージは
Webhookノード → HTTP Requestノード → LINE
となります。
Webhookノードの右側にHTTP Requestノードを追加したら、以下の2箇所をまず設定します。
- Method:POST
- URL :https://api.line.me/v2/bot/message/push
次は以下の3点を設定します。
- Send Headers:ON
- Name:Authorization
- Value:Bearer XXXXX(LINEチャネルトークンの値)
3つ目のValueのXXXXXの部分には、LINE Developersコンソールで取得したLINEチャネルトークンを入れてください。
Bearerとトークンとの間に半角スペースを入れるのも忘れないようにしましょう。
ちょっとややこしいので、下の画像を参考にして設定してください。
加えて、以下の2つを設定します。
- Name:Content-Type
- Value:application/json
次で、HTTP Requestノードの設定は最後です。
- Send Body:ON
- Body Content Type:Raw
- Content Type:application/json
- Body:以下のスクリプトを挿入してください
{
"to": "通知したいLINEのユーザーIDを入れる(「U」で始まります)",
"messages": [
{
"type": "text",
"text": "Googleフォームに入力がありました。内容を確認して対応してください。"
}
]
}
HTTP Requestノードの設定は以上です。
ワークフローを保存してください。
ここで、きちんと動くかテストしましょう。
ワークフローを「Active」にし「Execute workflow」をクリックしてください。
クリックすると以下のような表示になるはずです。
この画面になっているうちに、作ったGoogleフォームでアンケートを入力し、送信してください。
私の場合、以下のようなLINEの通知がリアルタイムで届き、無事に自動化できていることが確認できました。
最後のSTEP④に進みます。
STEP④ Gmailから回答者にお礼メールを送信
最後に、Googleフォームへの入力があったら、Gmailからお礼メールを送信するよう設定します。
以下の動画を参考にして、GmailのSend a messageノードを追加してください。
ノードを追加したら、Gmailの送信元となるアカウントをn8nを連携させます。
「Credential to connect with」
の部分で連携処理をしてください。
n8nとGoogleアカウントの連携方法については以下の記事で詳しく解説しています。
次は、Send a messageノードで以下のように設定してください。
- to:{{ $(‘Webhook’).item.json.body.name }}
- Subject:お礼メールの件名を入れる
- Message:お礼メールの本文を入れる
これで設定は完了です。
ワークフローを起動してるタイミングにGoogleフォームに入力してください。
そうすれば、以下のようなGmailが届いてるはずです。
n8n入門講座第5弾の解説は以上です。
今回のワークフローはワークフローの構築よりも、ワークフローを繋げるために必要な設定の方が大変でしたね。。。
ただ、このような設定は1度すれば使い回すことができます。
無駄にはなりませんので、今回は設定を別のワークフロー作りに活用してください!
第5弾以外のn8n入門講座はこちら
この記事で紹介した第5弾以外の、n8n入門講座を一覧で紹介します。
どれもn8n初心者向けのワークフローですので、ぜひ参考にしてください。
