はじめに
n8n.とは
n8n(エヌ・エイト・エヌ)は、異なるアプリケーション間でデータのやり取りを自動化するオープンソースのワークフロー自動化ツールです。ビジュアルインターフェースを使用してAPIや外部サービスと簡単に連携できます。
やりたいこと
- Googleフォームからファイルがアップロードされる
- リンクされているスプレッドシートが更新される
- アップロードされたCSVファイルを読み込む
Googleフォームとスプレッドシートの作成
事前準備として、Googleフォームとスプレッドシートを作成する
Googleフォームの作成
フォルダの作成
Googleフォームの作成
作成したフォルダに移動し、+新規
から Google フォーム
をクリック
Googleフォームの編集
スプレッドシートを作成
作成されたスプレッドシートが表示される
シート横の+
をクリックし、追加で転記
シートを作成する
確認
作成したフォルダに以下のファイルが作成されているのが確認できる
Googleフォームからアップロードしてみる
プレビューを開く
Googleフォームの画面上部右側のプレビュー
アイコンをクリック
ファイルを追加
csvファイルを追加
適当なcsvファイルもしくはサンプル.csvをダウンロードして使用してください
登録
事前準備が完了したので、n8nの登録から始めます
n8nの公式ウェブサイト にアクセス
アカウントを作成する
必要事項を入力する
表示される質問に答える
連携するアプリケーションを選択
今回は「Google Sheets」「Gmail」「Google Drive」を選択
メンバーを設定
登録完了
ワークフロー作成
n8nのワークフローを作成していく
トリガーをノードを作成する
トリガーとなるワークフローを選択
Add first step...
->googlesheets
と検索し、選択
トリガーの条件を選択
今回はOn Row Added Or Updated
(行の追加か更新が行われたら)を選択
認証情報を設定
認証情報を作成
Google Sheets Trigger
の画面が開くので、Select Credential
をクリックし、- Create New Credential-
を選択
Client ID
Client Secret
を入力する
OAuth同意画面が表示されるので、Client ID
とClient Secret
を入力する
※ OAuth Redirect URLは、GoogleCloudPlatformの設定で使用します。
認証
Client ID
とClient Secret
を入力するとSign in with Google
ボタンが表示されるので、クリック
接続成功
接続成功すれば、画面上部にAccount connected
と表示される
Document
とSheet
の選択
認証接続が成功しており、必要なAPIを有効にしていれば、Document
とSheet
は事前準備で作成したフォルダとスプレッドシートが選択できる
選択後、Fetch Test Event
をクリック
接続が上手く行けば、右側に取得したデータが表示される
canvasにノードが追加されている
新しいノードを設定する
同じスプレッドシート内にシートを追加するノードを作成する
ノードの追加
Google Sheets Trigger
の右につながっている+
をクリック
Google Sheets Trigger
を追加したときと同じように、googlesheets
を検索し、クリック
アクションを選択する
今回はAppend or update row in sheet
(行を追加or更新)を選択
Mapptin Column Mode
とColumn to Match On
を設定する
今回はそれぞれMap Automatically
(自動マッピング)、タイムスタンプ
に設定し、Test step
をクリック
スプレッドシートを確認すると、転記シートにちゃんと入力されています
ワークフローの作成はこれで終了です
動作確認
実際にGoogleフォームでファイルがアップロードされれば、転記
シートが更新されるのか確認します。
ワークフローをAcriveにする
これで、Googleフォームでアップロードされたら動作するようになりました
Googleフォームでアップロードする
Googleフォームのプレビュー画面を表示し、csvファイルをアップロード
少し時間がかかって...
転記
シートが更新されました
※ 自動で追加されたrow_number
change_type
は気にしないでください
これで動作確認ができました
最後に
n8nを使って、Googleフォームからアップロードされたデータをスプレッドシートに転記することができました。
基本的な動作は理解できたので、csvの中身を取得するなど応用的な動作も試してみたいと思います。
参考記事
最初は以下の記事で実装することができました。ありがとうございます。
- 初めてn8nに触れる人向け!簡単ワークフロー「Googleスプレッドシートを取得してみよう」
- [TIPS]n8nでGoogleのOAuth2認証を利用するためにGoogleCloudPlatformの設定手順を解説
※ 以下はGoogleCloudPlatformの説明です。
GoogleCloudPlatformの設定
GoogleCloudPlatform のサイトに移動し、Gmailアカウントでログインします。利用規則の同意が求められたら、同意して続行してください
プロジェクトの作成
GoogleColudPlatformはプロジェクトという単位で管理しているので、最初にプロジェクトの作成が必要です
プロジェクト作成
OAuth同意画面の設定
OAuth同意画面を開く
OAuth同意画面作成
アプリ登録の編集[OAuth同意画面]
下記必須項目を入力して、保存して次へ
をクリック
アプリ登録の編集[スコープ]
アプリ登録の編集[テストユーザー]
アプリ登録の編集[概要の画面表示]
以下の概要画面が表示されたらOAuth同意画面の登録は完了です
認証情報を作成
OAuthクライアントID作成画面を表示する
画面左メニューの認証情報
->+認証情報を作成
->OAuthクライアントID
をクリック
OAuthクライアントIDを作成する
下記を設定し、作成
をクリック
- アプリケーションの種類:ウェブアプリケーション
- 名前:自由
承認済みのリダイレクトURI:n8nのOAuthRedirect URL
作成完了
作成されたクライアントID
とクライアントシークレット
をn8nのCredential(認証情報)に入力します
※ クライアントID
とクライアントシークレット
は、画面左メニューAPIとサービス
->認証情報
からも確認できます
操作するサービス(API)を選択する
APIライブラリ から API を有効にする
操作したいAPIを検索する
今回はGoogle Drive API
Gmail API
Google Sheets API
を有効にします
続けてGmail API
とGoogle Sheets API
を有効にする
以上でGoogle Cloud Platformの設定は完了です