Googleフォームに体験申込が入ったら、Chatに知らせてkintoneの顧客台帳にも入れる。決済サービスから入金のメールが届いたら、スプレッドシートの月謝の表に入金を付ける。こうした「Googleの中で起きたことを、Googleの外へ流す」処理は、n8nで組むと見通しがよくなります。この記事では、n8nにGoogleの認証情報を入れるところから、フォームとGmailをきっかけにしたワークフローを2本作るところまでを、サンプル料理教室の例で通しで書きます。n8nはすでに動いている(n8n Cloudか、自分のサーバーに入れたもの)前提です。
この記事の内容
先に決めること
n8nとGoogleをつなぐ前に、次の5つを決めます。後から変えると認証情報を作り直すことになります。
n8nをどこで動かすか
n8n Cloudを使っているなら、Gmail・Sheets・Drive・Calendar・Chatなど対応するノードでは「Managed OAuth2」が選べます。認証情報の画面で「Sign in with Google」を押すだけで、Google Cloudの設定は要りません。自分のサーバーに入れたn8n(セルフホスト)ではこれが使えないので、Google Cloudで自分のOAuthクライアントを作ります。この記事の手順の大半は、セルフホストでの作り方です。
どのアカウントでつなぐか
認証したGoogleアカウントの権限で、n8nがシートを読み、メールを読みます。代表や受付の個人アカウントでつなぐと、その人が退職してアカウントを止めた日にワークフローが全部止まります。実際に運用していると、これがいちばん多い止まり方です。サンプル料理教室では、自動化用のアカウント automation@sample-cooking.example を1つ作り、必要なシートとフォルダだけをこのアカウントに共有します。ユーザーを1人増やすので、その分のGoogle Workspaceの料金はかかります。
OAuthかサービスアカウントか
n8nの公式ドキュメントは、たいていの用途でOAuth2を勧めています。サービスアカウントはGoogle Cloudで作る「人ではないアカウント」で、ログインの画面を通さずに使えますが、設定は込み入ります。小さな会社では、自動化用アカウントでOAuth2をつなぐのがいちばん手早く、つまずきも少なくなります。サービスアカウントを選ぶ場面は後の節に書きます。
OAuthの「対象」を内部にするか外部にするか
Google Cloudで同意画面を作るとき、対象(Audience)を「Internal(内部)」か「External(外部)」から選びます。Google Workspaceの会社なら内部を選びます。外部で「テスト中」のままにすると、認証が7日で切れます(後で詳しく書きます)。
きっかけを拾う方法
n8nがGoogleの変化に気づく方法は2つあります。
- n8nが定期的に見に行く(ポーリング)。Google Sheets TriggerやGmail Triggerがこれで、数分おきに新しい行やメールを確かめます。コードは要りませんが、気づくまでに見に行く間隔ぶん遅れます
- Google側からn8nに知らせる。GASでフォームの送信時にn8nのWebhookのURLを呼びます。ほぼ即時に動きますが、GASを数行書きます
体験申込の通知のように数分遅れても困らないものはポーリングで十分です。申込直後に自動で返信したいときはWebhookにします。
GASとn8nの使い分け
Google Apps Script(GAS)も、フォームの送信やシートの編集をきっかけに処理を書けます。どちらで組むかは、処理がGoogleの中で終わるかどうかで分けます。
| やりたいこと | 向くほう | 理由 |
|---|---|---|
| フォームの回答に確認メールを返す | GAS | Googleの中で完結し、送信直後に動く |
| 予約一覧からカレンダーに予定を入れる | GAS | Googleのサービス同士で、認証の準備が要らない |
| 月末に請求書のPDFを作ってGmailで送る | GAS | ドキュメント・ドライブ・Gmailがすべて中にある |
| 申込をkintoneやSlackに入れる | n8n | 外のサービスの認証情報をn8nで一か所にまとめられる |
| 入金メールを読んで表に付け、Chatにも知らせる | どちらでも | 3つ以上のサービスをまたぐならn8nが追いやすい |
| LINE・kintone・Googleを1本の流れでつなぐ | n8n | 実行の履歴が画面で見られ、どこで落ちたか分かる |
| 1日に数万件を処理する | どちらも注意 | GASは実行時間、n8nはサーバーの性能に上限がある |
GASは追加の費用がかからず、Googleの中なら認証もほぼ要りません。一方で、外のサービスのAPIキーをスクリプトのあちこちに持つことになり、止まったときにどの処理で落ちたかを追うのが手間です。n8nは実行ごとの入出力が「Executions」に残るので、外とつなぐ処理はn8nに寄せたほうが後の面倒が減ります。サンプル料理教室では、確認メールとカレンダー登録はGAS、外へ流す処理はn8nと決めています。
サンプル料理教室で作るワークフロー
この記事で作るものと、必要な認証情報の一覧です。
| ワークフロー | きっかけ | 流れる先 | 必要な認証情報 |
|---|---|---|---|
| 体験申込の通知と台帳登録 | 予約一覧のシートに行が増えた | Chatの受付スペース・Slack・kintoneの顧客台帳 | Google Sheets Trigger用のOAuth2、kintoneのAPIトークン、Slack |
| 入金メールの取り込み | Gmailに入金通知メールが届いた | 月謝のシート・Chatの経理スペース | Gmail用のOAuth2、Google Sheets用のOAuth2 |
| 失敗の通知 | どちらかのワークフローが失敗した | Chatの管理スペース | なし(Webhookで送る) |
Google側で有効にするAPIは、Google Sheets API・Google Drive API・Gmail APIの3つです。Sheets Triggerは変化を見つけるのにドライブの版の履歴を読むので、Sheetsだけ有効にしても動きません。
Googleの認証情報を作る(セルフホストのn8n)
ここからはn8nの公式ドキュメントの手順どおりです。Google Cloud Consoleには、自動化用アカウント automation@sample-cooking.example でログインして作業します。
Google Cloudでプロジェクトを作り、APIを有効にする
- Google Cloud Consoleを開き、上部のプロジェクトの選択欄から「新しいプロジェクト」を選ぶ
- プロジェクト名に
sample-cooking-n8nのように分かる名前を入れ、組織がsample-cooking.exampleになっていることを確かめて「作成」を押す - 上部の選択欄で、作ったプロジェクトが選ばれていることを確かめる
- 「APIとサービス」→「ライブラリ」を開く
- 「Google Sheets API」を検索して開き、「有効にする」を押す
- 同じように「Google Drive API」と「Gmail API」を有効にする

OAuth同意画面を作る
- 「APIとサービス」→「OAuth同意画面」を開く。Google Auth Platformの概要が開く
- 「概要」タブで「開始」を押す
- アプリ名に
sample-cooking n8n、ユーザーサポートメールに管理者のアドレスを入れて「次へ」 - 対象で「内部」を選んで「次へ」
- 連絡先のメールアドレスを入れて「次へ」
- ユーザーデータに関するポリシーに同意して「続行」、「作成」を押す
- 左のメニューで「ブランディング」を開く
- 「承認済みドメイン」で「ドメインを追加」を押し、n8nを置いているドメイン(例
n8n.sample-cooking.example)を入れる - 「保存」を押す

「内部」が選べないときは、プロジェクトが組織に属していないか、個人のGmailアカウントで作業しています。組織を選び直してプロジェクトを作り直します。
OAuthクライアントIDを作ってn8nに入れる
- n8nで「Credentials」から新しい認証情報を作り、種類に「Google Sheets Trigger OAuth2 API」を選ぶ
- 認証情報の画面に出ている「OAuth Redirect URL」をコピーする(例
https://n8n.sample-cooking.example/rest/oauth2-credential/callback) - Google Cloud Consoleに戻り、「APIとサービス」→「認証情報」を開く
- 「認証情報を作成」→「OAuthクライアントID」を選ぶ
- アプリケーションの種類で「ウェブ アプリケーション」を選ぶ
- 名前を
n8nのように分かるものに変える - 「承認済みのリダイレクトURI」に、手順2でコピーしたURLを貼る。
httpsとhttp、ポート番号まで一字も違わないようにする - 「作成」を押す
- 表示されたクライアントIDとクライアントシークレットを、n8nの認証情報の画面の「Client ID」「Client Secret」に貼る
- 「Sign in with Google」を押し、自動化用アカウントでログインして許可する
- 「Save」を押す

同じクライアントIDとシークレットで、「Gmail OAuth2 API」「Google Sheets OAuth2 API」の認証情報も作れます。ノードの種類ごとに認証情報を1つずつ作り、それぞれ「Sign in with Google」を押します。
n8n Cloudなら
n8n Cloudでは、認証情報の画面で認証の種類に「Managed OAuth2」を選び、「Sign in with Google」を押すだけです。上のGoogle Cloudの手順は要りません。対応しているのはCalendar・Chat・Docs・Drive・Gmail・Sheetsと、それぞれのトリガーなどです(2026年10月時点)。対応していないノードを使うときだけ「Custom OAuth2」に切り替えて、上の手順で作ります。
サービスアカウントを使う場合
サービスアカウントが向くのは、共有ドライブのファイルを読み書きするだけで、Gmailは使わない場合です。作り方は次のとおりです。
- 「APIとサービス」→「認証情報」で「認証情報を作成」→「サービスアカウント」を選ぶ
- 名前とIDを入れて「作成して続行」を押す。ロールは付けなくてよいので「完了」を押す
- 作ったサービスアカウントを開き、「キー」タブで「鍵を追加」→「新しい鍵を作成」を選ぶ
- 「JSON」を選んで「作成」を押す。JSONのファイルがダウンロードされる
- n8nで「Google Service Account API」の認証情報を作り、JSONの
client_emailを「Service Account Email」に、private_keyを引用符を除いて「Private Key」に貼る - 「Save」を押す
- 読ませたい共有ドライブやシートを、サービスアカウントのメールアドレスに「編集者」か「閲覧者」で共有する
注意点が3つあります。2025年4月15日より後に作ったサービスアカウントはマイドライブにアクセスできず、共有ドライブだけを扱えます。Gmailの読み書きは「Impersonate a User(ユーザーのなりすまし)」を有効にしないと使えず、そのためには管理コンソールでドメイン全体の委任を設定する必要があります。Googleはドメイン全体の委任を勧めていません(全員になりすませる鍵になるため)。サンプル料理教室では、サービスアカウントは使わず、自動化用アカウントのOAuth2にそろえています。
ドメイン全体の委任を設定する場合の経路は、管理コンソールの「セキュリティ」→「アクセスとデータ管理」→「APIの制御」→「ドメイン全体の委任を管理」です。特権管理者しか設定できず、反映まで5分から24時間かかります。
体験申込をChat・Slack・kintoneへ流す
体験レッスンの申込はGoogleフォームで受け、回答はスプレッドシート「予約一覧」の「フォームの回答 1」シートに貯まっています。n8nの公式ドキュメントにはGoogleフォーム専用のトリガーが見当たらないので、回答が入るシートを見張ります。
Google Sheets Triggerを置く
- n8nで新しいワークフローを作り、最初のノードに「Google Sheets Trigger」を置く
- 「Credential to connect with」に、作った「Google Sheets Trigger OAuth2 API」を選ぶ
- 「Poll Times」で「Every Minute」を選ぶ(数分おきでよければ「Every X」で5分などにする)
- 「Document」で「予約一覧」を選ぶ
- 「Sheet」で「フォームの回答 1」を選ぶ
- 「Trigger On」で「Row Added」を選ぶ
- 「Fetch Test Event」を押し、テスト用にフォームから1件送った回答が出てくることを確かめる

設定の意味は次のとおりです。
| 項目 | サンプル料理教室の値 | 意味 |
|---|---|---|
| Trigger On | Row Added | 行が増えたときだけ動く。受付が対応状況を書き込んでも動かない |
| Columns to Watch | 指定しない | 「Row Updated」のときに見る列を絞る。指定しないと新しく足した列でも動く |
| Include in Output | New Version | 更新時に、変わる前と後のどちらの値を渡すか |
| Value Render | 既定のまま | 表示どおりの値か、式の結果かを選ぶ |
| DateTime Render | 既定のまま | 日時を表示の形式で受けるか、数値で受けるか |
出力には、フォームの質問名がそのまま項目名として入ります。「お名前」「メールアドレス」「希望日」「希望のコース」なら、後のノードでは {{ $json["お名前"] }} のように取り出せます。
Chatの受付スペースに知らせる
Google ChatのノードもありますがChat APIの側の準備が要るので、スペースに知らせるだけならChatの受信Webhookのほうが早く済みます。受信Webhookを使えるのはBusiness・EnterpriseのGoogle Workspaceで、組織で受信Webhookの追加と利用が許可されていることが前提です。
- ブラウザでGoogle Chatを開き、受付スペースの名前の横の矢印から「アプリとインテグレーション」を選ぶ
- 「Webhookを追加」を押し、名前に
n8n通知と入れて「保存」 - 「その他」→「リンクをコピー」でWebhookのURLをコピーする
- n8nに戻り、Sheets Triggerの後ろに「HTTP Request」ノードを置く
- 「Method」を
POST、「URL」にコピーしたURLを貼る - 「Send Body」をオンにし、「Body Content Type」を「JSON」、「Specify Body」を「Using JSON」にする
- JSONの欄に次を入れる
{
"text": "体験申込が入りました\nお名前: {{ $json['お名前'] }}\n希望日: {{ $json['希望日'] }}\nコース: {{ $json['希望のコース'] }}\n予約一覧で対応状況を付けてください"
}
WebhookのURLはスマホのChatアプリからは作れません。またURLには秘密の値が入っているので、マニュアルや共有のメモに貼らないようにします。1つのスペースには、Webhook全体で1秒に1件までしか送れません。まとめて何十件も流すときは間に「Wait」ノードを挟みます。

Slackにも流す(使っている場合)
講師との連絡にSlackを使っている教室なら、HTTP Requestと並べて「Slack」ノードを置きます。Slackのアプリを作って認証情報を入れ、「Message」の送信で送り先のチャンネルと本文を指定します。本文の書き方はChatと同じく {{ $json['お名前'] }} で差し込みます。1つのノードから線を2本出せば、ChatとSlackに同時に送れます。
kintoneの顧客台帳に入れる
n8nの公式ドキュメントにはkintone専用のノードが見当たらないので、HTTP RequestノードでkintoneのREST APIを呼びます。先にkintoneでAPIトークンを作ります。
- kintoneの顧客台帳アプリを開き、右上の歯車「アプリを設定」を押す
- 「設定」タブの「カスタマイズ/サービス連携」にある「APIトークン」を押す
- 「生成する」を押し、アクセス権で「レコード追加」にチェックを入れる
- 画面右下の「保存」を押す
- 右上の「アプリを更新」を押し、確認の画面でも「アプリを更新」を押す
次にn8nでHTTP Requestノードを置きます。
- 「Method」を
POST、「URL」をhttps://sample-cooking.cybozu.com/k/v1/record.jsonにする - 「Send Headers」をオンにし、名前
X-Cybozu-API-Token、値にAPIトークンを入れる(実際は認証情報の「Header Auth」に入れておくと、ワークフローを人に見せてもトークンが出ない) - 「Send Body」をオン、「Body Content Type」を「JSON」、「Specify Body」を「Using JSON」にする
- JSONの欄に次を入れる
{
"app": 12,
"record": {
"氏名": { "value": {{ JSON.stringify($json['お名前']) }} },
"メールアドレス": { "value": {{ JSON.stringify($json['メールアドレス']) }} },
"体験希望日": { "value": {{ JSON.stringify($json['希望日']) }} },
"流入元": { "value": "体験フォーム" }
}
}
app はアプリのIDで、kintoneのアプリのURL /k/12/ の数字です。「氏名」などはkintoneのフィールドコードで、フィールド名ではありません。値を JSON.stringify で包んでいるのは、名前に " が入ってもJSONが壊れないようにするためです。日付のフィールドに入れる値は 2026-11-14 の形でないと入りません。フォームの日付の形式が違うときは、手前に「Date & Time」ノードを置いて形をそろえます。

公開して動かす
テストで1件ずつ流れることを確かめたら、画面右上でワークフローを公開します(以前の版では「Active」の切り替え)。公開するまでSheets Triggerは見に行きません。公開した後の実行は、エディタではなく「Executions」タブに残ります。
Gmailの受信をきっかけに処理する
サンプル料理教室では、月謝をカード決済のサービスで受けていて、入金のたびに billing@example.com から「入金のお知らせ」というメールが届きます。これを読んで、月謝のシートの入金記録に1行足し、経理スペースに知らせます。
Gmail Triggerを置く
- 新しいワークフローを作り、「Gmail Trigger」を置く
- 「Credential to connect with」に「Gmail OAuth2 API」の認証情報を選ぶ
- 「Poll Times」で「Every X」、間隔を5分にする
- 「Event」は「Message Received」のまま
- 「Simplify」はオンのまま
- 「Filters」の「Search」に
from:billing@example.com subject:入金のお知らせと入れる - 「Read Status」は「Unread and read emails」にする
- 「Fetch Test Event」で、届いている入金メールが出てくることを確かめる

「Search」にはGmailの検索窓と同じ書き方が使えます。Gmailで同じ条件を検索して、狙ったメールだけが出ることを先に確かめておくと外しません。「Read Status」を既定の未読だけにしておくと、人がスマホで先に開いたメールを拾いません。1回の確認で拾うのは既定で10通、最大50通です(「Max Emails per Poll」)。
本文から値を取り出してシートに足す
メールの本文の書き方はサービスごとに違うので、「Code」ノードで取り出します。本文が「会員番号:M-0123」「金額:12,000円」の形で届く場合の例です。
const out = [];
for (const item of $input.all()) {
const body = item.json.text || '';
const member = (body.match(/会員番号[::]\s*([A-Z0-9-]+)/) || [])[1] || '';
const amount = (body.match(/金額[::]\s*([\d,]+)円/) || [])[1] || '';
out.push({
json: {
受信日時: item.json.date,
会員番号: member,
金額: Number(amount.replace(/,/g, '')),
件名: item.json.subject,
要確認: member === '' || amount === ''
}
});
}
return out;
続けて「Google Sheets」ノードを置き、「Append Row」で月謝のスプレッドシートの「入金記録」シートに1行足します。「Mapping Column Mode」で列とCodeノードの出力を対応させます。会員番号か金額が取れなかったもの(要確認 が true)は、「If」ノードで分けて経理スペースにだけ知らせ、シートには入れません。決済サービスがメールの書式を変えたときに、黙って空の行が増えるのを防ぐためです。
info@ の共同トレイを見張るとき
Googleグループの共同トレイには、Gmailのような受信箱がありません。Gmail Triggerはログインしたアカウントの受信箱しか見られないので、info@ に届くメールを拾いたいときは、自動化用アカウントをグループのメンバーに入れ、メールが届く設定にしておきます。こうすると、自動化用アカウントの受信箱にinfo@ 宛のメールの写しが届くので、それをGmail Triggerで拾えます。
応用
GASからn8nに知らせて、すぐ動かす
ポーリングの遅れが困るときは、フォームの送信時にGASからn8nのWebhookを呼びます。n8n側は最初のノードを「Webhook」にし、「HTTP Method」を POST、「Authentication」を「Header Auth」にしておきます。予約一覧のスプレッドシートで「拡張機能」→「Apps Script」を開き、次を貼ります。
function onFormSubmitToN8n(e) {
const props = PropertiesService.getScriptProperties();
const url = props.getProperty('N8N_WEBHOOK_URL');
const token = props.getProperty('N8N_HEADER_TOKEN');
const payload = {
row: e.range.getRow(),
answers: e.namedValues
};
const res = UrlFetchApp.fetch(url, {
method: 'post',
contentType: 'application/json',
headers: { 'X-Webhook-Token': token },
payload: JSON.stringify(payload),
muteHttpExceptions: true
});
if (res.getResponseCode() >= 300) {
console.error(res.getResponseCode() + ' ' + res.getContentText());
}
}
スクリプトの「プロジェクトの設定」にあるスクリプトプロパティに、N8N_WEBHOOK_URL(n8nのProduction URL)と N8N_HEADER_TOKEN(YOUR_HEADER_TOKEN。n8nのHeader Authに入れたのと同じ値)を入れます。トリガーは「トリガー」の画面で、関数 onFormSubmitToN8n、イベントのソース「スプレッドシートから」、イベントの種類「フォーム送信時」で作ります。e.namedValues には質問名ごとに値が配列で入るので、n8n側では {{ $json.body.answers['お名前'][0] }} で取り出します。
WebhookのURLは2種類あります。「Test URL」はエディタで「Listen for Test Event」を押している間だけ受け付け、「Production URL」はワークフローを公開している間だけ受け付けます。GASに入れるのはProduction URLです。
失敗したらChatに知らせる
認証が切れたり、kintoneのフィールドコードが変わったりすると、ワークフローは黙って失敗します。気づけるように、失敗を知らせるワークフローを1本作っておきます。
- 新しいワークフローを作り、最初のノードに「Error Trigger」を置く
- 後ろにChatのWebhookへ送るHTTP Requestを置き、本文に
{{ $json.workflow.name }}と{{ $json.execution.url }}を入れる エラー通知という名前で保存する- 見張りたいワークフローを開き、「Options」→「Settings」の「Error workflow」で
エラー通知を選んで保存する
1本の失敗通知を、すべてのワークフローで使い回せます。
時間の基準をそろえる
「毎朝8時に前日の申込をまとめて送る」のようにSchedule Triggerを使うときは、タイムゾーンを日本に合わせます。ワークフローごとなら「Workflow menu」→「Settings」の「Timezone」、セルフホスト全体なら環境変数 GENERIC_TIMEZONE を Asia/Tokyo にします。合わせないと、9時間ずれて夜中の23時に送られます。
できないことと、その代わり
| できないこと | 代わりの手 |
|---|---|
| Googleフォームの送信そのものをn8nの専用トリガーで受ける(公式ドキュメントに見当たらない) | 回答先のシートをSheets Triggerで見張るか、GASからWebhookを呼ぶ |
| Sheets Triggerで即時に動かす | ポーリングなので最短でも1分の遅れが出る。即時が要るならGASからWebhook |
| 共同トレイ(Googleグループ)の受信箱を直接見る | 自動化用アカウントをメンバーにして、その受信箱を見る |
| 新しいサービスアカウントでマイドライブを読む | 共有ドライブに置くか、OAuth2の認証情報にする |
| 回答者への確認メールをn8nで即時に返す | Googleの中で終わる処理なのでGASで返す |
| 大量の行を一度に流す | GASかn8nのどちらかでまとめて送る。Chatの1秒1件などの相手側の上限に合わせて間を空ける |
| サーバーの面倒を見ずに使う | セルフホストは更新や停止の対応が要る。手が回らなければn8n Cloudにする |
n8nを入れるかどうか迷っている段階なら、外へ流す先が1つだけのうちはGASで書いても十分です。流す先が2つ、3つと増えてきて、どこで止まったか分からなくなってきたらn8nに寄せます。
よく詰まるところ
| 症状 | 原因 | 直し方 |
|---|---|---|
| 1週間ほどで急に全部のGoogleノードが失敗する | 同意画面の対象が「外部」で、公開ステータスが「テスト中」。更新トークンが7日で切れる | 対象を「内部」にして認証情報を作り直す。外部のままなら公開ステータスを本番にする |
| 「アクセスがブロックされました」と出てログインできない | 外部・テスト中で、ログインしたアカウントがテストユーザーに入っていない | 「対象」の「テストユーザー」に追加するか、内部にする |
redirect_uri_mismatch と出る | Google側に入れたリダイレクトURIが、n8nが送るものと一字でも違う | n8nの「OAuth Redirect URL」をコピーし直して貼る。httpとhttps、ポート番号も合わせる |
invalid_client と出る | クライアントIDかシークレットの貼り間違い | 前後の空白に注意してコピーし直す |
| Sheets Triggerが「Forbidden」や版の履歴のエラーで止まる | Google Drive APIを有効にしていない、またはサービスアカウントでなりすましが無い | ライブラリでGoogle Drive APIを有効にする。サービスアカウントならOAuth2に替える |
| Gmailのノードで「Forbidden – perhaps check your credentials?」 | サービスアカウントで「Impersonate a User」をオンにしていない | Gmailは自動化用アカウントのOAuth2でつなぐ |
| Gmailで401「Client is unauthorized」 | Gmail APIが有効になっていない | 「APIとサービス」→「ライブラリ」でGmail APIを有効にする |
| フォームの質問名を変えたらシートへの書き込みがずれる | 列名がノードを作った後に変わった | 「Mapping Column Mode」を選び直して列名を読み込み直す |
| 公開したのに動かない、テストでは動いた | 公開していない、またはGASにTest URLを入れている | 公開状態を確かめ、GASにはProduction URLを入れる |
| 自動化用アカウントのパスワードを変えたらGmailだけ止まった | Gmailの権限を含む更新トークンは、パスワード変更で切れる | 認証情報を開いて「Sign in with Google」を押し直す |
| 半年使っていなかったワークフローが動かない | 6か月使われなかった更新トークンは無効になる | 認証情報をつなぎ直す |
| 毎晩23時に朝の通知が届く | タイムゾーンが日本になっていない | ワークフローの「Timezone」か GENERIC_TIMEZONE を Asia/Tokyo にする |
| kintoneに入らず、エラーも分かりにくい | フィールドコードの間違い、または日付の形式違い。存在しないフィールドコードは黙って無視される | kintoneの「フォーム」の設定でフィールドコードを確かめる。日付は YYYY-MM-DD にそろえる |
| Gmailで送ったメールに英語の一文が付く | 送信時にn8nの署名を付ける設定が既定でオン | Gmailノードの「Options」で「Append n8n attribution」をオフにする |