さて、前回から「DifyとGAS(Google Apps Script)を連携させて、お問い合わせの自動見積もりボットを作る!」という企画を進めています。自分が現場で清掃作業をしていても、AIが24時間すぐに見積もりを返信してくれる…なんて夢のようなシステムですよね。
ネットや動画を見ると「コピペで簡単!」と書いてありますが……現実はそんなに甘くありませんでした(笑)。
プログラミング未経験の私は、見事にいくつもの「罠」にハマり、エラー画面と睨めっこするハメに。でも、苦労して壁をぶち破った分だけ、システムの裏側がハッキリ分かりました!
今回は、**「ネットの記事には書いてないけど、初心者が絶対につまずくリアルな5つの罠と、その解決策」**を恥を忍んで大公開します。特に最後の「どうしても消えないエラーの究極の回避策」は必見です。今まさに心が折れそうな方、一緒に乗り越えましょう!
罠その①:GASにコードを貼ったのに「関数がありません」と怒られる
Difyの設定が終わり、「よーし、次はGASにプログラムをコピペだ!」と意気揚々とコードを貼り付けました。 自動化のスイッチである「トリガー(時計のマーク)」を設定しようとしたところ……画面の下に真っ赤な文字が!
「対象とする関数を設定せずにトリガーを作成することはできません。」
「えっ!?ちゃんとコピペしたのに!?」と大パニック。
💡 【解決策】ただの「保存忘れ」でした! 実はGASは、コードを貼り付けただけでは認識してくれません。画面の上の方にある**「フロッピーディスクのマーク(プロジェクトを保存)」**をポチッと押す必要があったんです。保存ボタンを押してから開くと、無事に設定できました。小さくて見落としがちなので要注意です!
罠その②:Googleフォームの「送信」ボタンが押せない、見つからない!
気を取り直して、お客様が入力する「Googleフォーム」のテストです。プレビュー画面(目のマーク)から入力して、いざ「送信」!……あれ?ボタンがグレーになっていて押せません。
じゃあ本番用の画面はどうやって出すの?と編集画面を見渡しても、「送信」というボタンが見当たりません。
💡 【解決策】紫色の「公開」ボタンから本番URLをゲットする!
- 送信できない原因: 必須項目などを変更したのに、画面を更新せず「古いプレビュー画面」のまま操作していたのが原因でした。
- 本番用URLの出し方: 最近のGoogleフォームのアップデートで、右上のボタンが「送信」から**紫色の「公開」**に名前が変わっていました!ここをクリックしてURLをコピーし、新しいタブで開き直すことで無事に送信テストができました。
罠その③:Googleの「真っ赤な警告画面」にビビる
テストを進めていると、突然画面いっぱいにこんな警告が出現しました。
「Googleはこのアプリを認証していません」
大きな赤い「!」マーク付きです。「やばい!ウイルスか何か作っちゃった!?」と心臓が止まりそうになりました。
💡 【解決策】自分が作ったから警戒されているだけ。堂々と進もう! これはエラーではなく、Googleのセキュリティ機能です。「あなたが作ったオリジナルのプログラムだから、念のため確認するね」というだけのこと。 慌てずに、左下の**「上級」(または詳細)をクリックし、一番下の「(安全ではないページ)に移動」を選び、最後に「許可」**を押せば突破できます!

罠その④:GASの「undefined」エラー(見えない空白の罠)
全ての壁を越え、いざフォームからテスト送信!……しかし、いつまで待ってもAIからの返信メールが届きません。GASの「実行数(エラーログ)」を見に行くと、絶望の英語メッセージが。
TypeError: Cannot read properties of undefined (reading '0')
「アンディファインド…?もうダメだ…」と諦めかけましたが、実はこれ、プロでもよくやる「超あるある」のミスでした。
💡 【解決策】スプレッドシートの「見えない空白」と「ゴミの列」を退治する! GASは、スプレッドシートの1行目(見出し)の文字と、プログラム内の文字が「1ミリでも違う」と迷子になります。私のシートを確認すると……
- 「メールアドレス」などの文字の後ろに、見えない半角スペースが混ざっていた!
- フォームをいじりすぎたせいで、「列 1」や「田中」といった謎の列が増殖していた!
これらを「列の削除」と「BackSpaceキー」で綺麗にお掃除しました。

罠その⑤(ラスボス):シートを綺麗にしたのにエラーが消えない!?
罠④でお掃除をして、「これで完璧!」と再度テスト送信をしたのに、なんと全く同じ「undefined」エラーが再発! 完全に心が折れかけました。
実は、途中で列を消したり追加したりしたことで、Googleフォームとスプレッドシートの裏側の連携がパニックを起こし、「希望する作業内容ってどこだっけ?」とバグってしまっていたのです。
💡 【究極の解決策】「名前」で探すのをやめ、「列の順番」で強制的にデータを抜く! GASのプログラムを、「見出しの名前(e.namedValues)」で探す方式から、**「四の五の言わず、〇番目の列のデータを取ってこい!(e.values)」**という強行突破の方式に書き換えました。
JavaScript
// 【変更前】名前で探すから迷子になる
// const inquiryDetails = e.namedValues['希望する作業内容'][0];
// 【変更後】左から〇番目、と直接指定するから絶対に間違えない!
const customerName = e.values[1]; // B列(お名前)
const customerEmail = e.values[2]; // C列(メールアドレス)
const inquiryDetails = e.values[3]; // D列(希望する作業内容)
このコードに変更して保存し、再度テスト送信をしたところ……ついに!私のメールボックスにAIからの完璧な見積もりメールが届きました!! 思わずガッツポーズが出た瞬間です。
まとめ:エラーは怖くない!一つずつ潰せば必ず動く
いかがでしたでしょうか? 「コピペで簡単」と言われても、実際に手を動かすと本当に些細なことでつまずくものです。
でも、エラーが出ても必ずどこかに原因があります。そして、それを乗り越えた時の「自分でシステムを作れた!」という感動は、何にも代えがたい経験になります。この記事が、同じように悩んでいる皆さんの助けになれば嬉しいです!
今回もかなりはまってしまったがやっとアプリが作れそうです!
次回予告! 今回の数々の失敗を教訓に、次回の記事では**「エラーの罠を全て回避!完全成功版・コピペで作る自動見積もりボットの作り方」**をステップ・バイ・ステップで大公開します。今回紹介した「究極の回避策コード」も丸ごとプレゼントしますので、お楽しみに!


コメント