第67話:【Dify×GAS】自動見積もりボット作成で初心者がドハマりした5つの罠と究極の解決策

パソコンの画面を見つめながら、頭を抱えて少し困ったような、でもどこかコミカルな表情をしている40代後半の日本人男性のイラスト。画面からは赤い「!」のエラーマークや、バラバラになったパズルのピースが飛び出している。背景は清潔感のあるシンプルなデスク周り。 AI活用

さて、前回から「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からの完璧な見積もりメールが届きました!! 思わずガッツポーズが出た瞬間です。


まとめ:エラーは怖くない!一つずつ潰せば必ず動く

いかがでしたでしょうか? 「コピペで簡単」と言われても、実際に手を動かすと本当に些細なことでつまずくものです。

でも、エラーが出ても必ずどこかに原因があります。そして、それを乗り越えた時の「自分でシステムを作れた!」という感動は、何にも代えがたい経験になります。この記事が、同じように悩んでいる皆さんの助けになれば嬉しいです!

今回もかなりはまってしまったがやっとアプリが作れそうです!

次回予告! 今回の数々の失敗を教訓に、次回の記事では**「エラーの罠を全て回避!完全成功版・コピペで作る自動見積もりボットの作り方」**をステップ・バイ・ステップで大公開します。今回紹介した「究極の回避策コード」も丸ごとプレゼントしますので、お楽しみに!

コメント

タイトルとURLをコピーしました