導入:個人事業主の「サービス残業」をゼロにする魔法
前回は目次を入れるだけ!Kindle電子書籍の全自動執筆&保存AIを作りましたね
今日現場調査に行ったお客様への「見積書作成」と「メール送信」
という地獄の事務作業が待っています。
老眼にムチを打ち、疲労がピークに達した体でパソコンを開き、キーボードを叩く。この時間、本当にしんどいですよね。「この作業、誰か代わりにやってくれないかな…」と何度思ったことか。
その願い、**DifyとGAS(Google Apps Script)を使えば今日から叶います! 今回は、「現場でスマホを使って汚れの写真を1枚撮って送るだけ」**で、帰りの車を運転している間に、完璧なフォーマットの見積書PDFと、お客様へ送るメールの下書きが勝手に出来上がっている……そんな夢のような「完全無人のAI事務員」の作り方を大公開します!
プログラミング未経験の49歳が、真っ赤なエラー画面に何度も心を折られそうになりながら完成させた血と汗の結晶です。専門用語は一切使いません。絶対に迷わないように「クリックする場所」まで全手順を細かく解説するので、同世代の皆さん、一緒に事務作業をゼロにしましょう!
結論:AIの「目」と、Googleの「手」をバケツリレーさせる
今回の自動化システムは、少し複雑に見えますが、実は3つのツールが順番にバケツリレーをしているだけです。
- Difyの「AI(脳と目)」: 現場の汚れ写真(カビや油汚れ)を見て、「どこを・いくらで・どんな作業をするか」を瞬時に判断し、データにまとめます。
- Difyの「配達員(HTTPリクエスト)」: まとめた見積もりデータを、Googleのシステム(GAS)へ全速力で届けます。
- GASの「手(書記)」: データを受け取り、あらかじめ用意したGoogleドキュメントの「ひな形」に文字を書き込んでPDF化し、Gmailに添付して下書きを作ります。
この仕組みを、STEP 1〜3に分けて順番に作っていきます。コピペで終わる魔法のコードも用意したので、安心してついてきてください!
手順:コピペとクリックで完成!AI事務員構築ガイド
STEP 1:GAS側の準備(見積書の「ひな形」と「保存箱」を作る)
まずは、AIが文字を全自動で書き込むための「穴あきテンプレート」を作ります。
① 見積書のテンプレート(ひな形)を作る
- ご自身のGoogleドライブを開き、左上の「+ 新規」から**「Google ドキュメント」**を作成します。
- ファイル名を「見積書テンプレート」などに変更します。
- いつもお客様に出している見積書のフォーマットを書きます。この時、AIに自動で書き換えてほしい部分には、**
{ }(波カッコ)**を使って以下のような「目印」を置いておきます。- 清掃箇所:
{箇所} - お見積り金額:
{金額}円 - 作業内容:
{内容}
- 清掃箇所:
② テンプレートの「ID(住所)」をメモする【超重要!】 GASのシステムがこのドキュメントを見つけられるように、住所をメモします。
- 今作ったドキュメントの画面一番上にある「URL(アドレスバー)」を見ます。
https://docs.google.com/document/d/1A2B3C4D5E6F7G8H9I0J/editのようになっています。- この中の、**
/d/と/editの間に挟まれた、やたらと長い英数字の文字列(例:1A2B3C4D5E6F7G8H9I0J)**だけを慎重にコピーして、メモ帳に「テンプレートID」として貼り付けておきます。

③ PDFの「保存箱(フォルダ)」を作り、IDをメモする
- Googleドライブの最初の画面に戻り、「+ 新規」>**「新しいフォルダ」**を作成します。名前は「AI自動見積もり」などにします。
- そのフォルダをダブルクリックして開きます。
- ドキュメントの時と同じようにURLを見ます。
.../folders/9Z8Y7X6W5Vのような形です。 /folders/の後ろにある長い英数字をコピーし、メモ帳に「フォルダID」として貼り付けます。

STEP 2:GASのプログラムを設定する(専用ポストの設置)
次に、Difyの配達員がデータを投げ込む「あなた専用の受付ポスト」をGoogleドライブ上に作ります。
① コードの貼り付けとIDの入力
- Googleドライブの左上「+ 新規」>「その他」>**「Google Apps Script」**を開きます。
- 最初から書かれている
function myFunction()...の文字をすべて消して真っ白にします。 - 以下のコードをそのままコピーして貼り付けます。
▼ コピペ用:GASコード(全行に解説コメント付き!)
JavaScript
function doPost(e) {
// 送られてきたデータを、プログラムが読みやすい形式に翻訳します
const jsonData = JSON.parse(e.postData.contents);
const targetArea = jsonData.area;
const targetPrice = jsonData.price;
const targetDetails = jsonData.details;
// 【最重要】STEP 1でメモ帳に残した2つのIDをここに入れます!
const templateId = "ここにテンプレートIDを入れる";
const folderId = "ここにフォルダIDを入れる";
// 指定したフォルダを見つけ出します
const folder = DriveApp.getFolderById(folderId);
// テンプレートをコピーして、新しい名前で見積書を作成します
const newDocFile = DriveApp.getFileById(templateId).makeCopy("見積書_" + targetArea, folder);
const newDoc = DocumentApp.openById(newDocFile.getId());
const body = newDoc.getBody();
// 本文の中にある目印を、Difyから送られてきた実際のデータに書き換えます
body.replaceText("{箇所}", targetArea);
body.replaceText("{金額}", targetPrice);
body.replaceText("{内容}", targetDetails);
// 書き換えが終わったら、見積書を上書き保存して閉じます
newDoc.saveAndClose();
// 保存したドキュメントを「PDFファイル」に自動変換します
const pdfBlob = newDocFile.getAs('application/pdf');
// お客様へ送るメールの本文を作ります(\n は改行という意味です)
const emailBody = "お客様\n\nお世話になっております。\n先ほど拝見した【" + targetArea + "】の清掃について、お見積書を作成いたしました。\n添付のPDFをご確認くださいませ。\n\nよろしくお願いいたします。";
// Gmailを開き、PDFを添付した状態で「下書き」を自動で作成します
GmailApp.createDraft("client@example.com", "【お見積り】清掃作業について", emailBody, {
attachments: [pdfBlob]
});
// Difyに対して「完了しました!」とお返事を返します
return ContentService.createTextOutput("Success");
}
- 貼り付けたら、コードの中腹にある
ここにテンプレートIDを入れるなどの日本語を消して、STEP 1でメモした自分のIDに書き換えます。
② プログラムの公開(デプロイ)とURLの発行
- 画面上の「💾(保存)」ボタンを押します。
- 画面右上の青いボタン**「デプロイ」>「新しいデプロイ」**をクリックします。
- 左側の「歯車マーク」から**「ウェブアプリ」**を選びます。
- 【重要】一番下の「アクセスできるユーザー」を必ず**「全員」**に変更し、「デプロイ」を押します。
- ※初回のみセキュリティの警告が出ます。「アクセスを承認」>自分のアカウントを選択>左下の「詳細」>一番下の「安全ではないページへ移動」>「許可」の順にクリックして突破してください。(自作プログラムなので無害です!)
- 発行された**「ウェブアプリのURL」**をコピーして、メモ帳に貼っておきます。
🚨【実体験】初心者が絶対に引っかかる「3つの罠」 私自身、ここで数時間フリーズしました(笑)。皆さんは以下の罠に気をつけてください!
- 罠①:IDのお尻にゴミ文字が混ざる URLをコピーする時、
/edit?tab=t.0のような不要な文字まで一緒にコピーしてしまうと絶対に動きません!純粋な英数字だけにしてください。- 罠②:直したら「新しいデプロイ」を忘れる コードのIDを直したのに動かない!という時は、デプロイ(更新)のやり忘れです。GASは「保存」を押しただけでは反映されません。「デプロイを管理」からペンのマークを押し、必ず「新バージョン」を選んで上書きデプロイしてください。
- 罠③:ブラウザで直接開いてしまう 発行されたURLをブラウザで開いて「doGetのエラー」が出ても焦らないでください。これは「Difyの配達員(POST)」専用の裏口ポストなので、人間が表から開くとエラーになる正常な仕様です!

STEP 3:DifyでAIの目と脳を設定する(ここが腕の見せどころ!)
いよいよ大詰めです。Difyの画面を開き、「アプリを作成する」>「最初から作成」>**「チャットフロー(またはワークフロー)」**を選んでください。
① 写真を受け取る受付係(開始ブロック)を作る まず、現場で撮った写真をDifyにアップロードするための入り口を用意します。
- 一番左の**「開始(START)」**ブロックをクリックします。
- 入力フィールドの横にある「+(追加)」ボタンを押します。
- フィールドタイプの中から、文字ではなく**「画像(Image)」**(ファイル形式)を選びます。
- 設定画面が開くので、**「変数名」**に
site_photoと入力します。(※変数名とは、システムが「これは写真が入っている箱だな」と認識するための英語の名前シールです) - その下の**「ラベル名」**に
現場の写真をアップロードと入力し、保存します。(※ラベル名は、私たちがスマホで操作する時に画面に表示される分かりやすい日本語のことです)
② プロの目と脳みそ(LLMブロック)を設定する 次に、受け取った写真を分析して見積もり金額を出すAIを設定します。
- 開始ブロックの右側の「+」を押し、**「LLM」**ブロックを追加して繋ぎます。
- 画面右上のモデル選択で、必ず**「gpt-4o」などの画像が見える(Vision対応の)モデル**を選んでください。
- 【ココ超重要!】 ブロック内にある**「ビジョン(Vision)」という項目の
[x]ボタンを押し、開始ブロックで作ったsite_photoを選んで紐付けます。 ※注意:写真を読ませる場合は、文字を入れるための「コンテキスト」の欄は空欄のまま**にしておいてください!ここに画像を無理やり入れるとAIがパニックになります。 - 「SYSTEM(指示書)」の入力欄に、以下のプロンプトをコピペします。
▼ コピペ用:システムプロンプト(JSON指定)
Plaintext
あなたは清掃業のベテラン見積もり担当者です。
ユーザーから送付された現場の写真を見て、汚れの度合いや広さを分析し、以下の3つの情報を算出してください。
【出力の絶対ルール】
・以下のJSONフォーマット(お弁当箱のようなデータ形式)で出力してください。
・挨拶や「```json」などの余計な記号は一切含めず、波括弧 { } で始まるデータのみを出力してください。
{
"area": "(清掃箇所。例:窓サッシのカビ、エアコンなど)",
"price": "(見積もり金額。数字のみ。例:8000)",
"details": "(作業内容の詳細。例:カビ取り専用剤による殺菌洗浄とコーティング)"
}

③ データを届ける配達員(HTTPリクエストブロック)を設定する 最後に、AIが出した結論(JSONデータ)を、STEP 2で作ったGASのポストへ全自動で投げ込む設定です。
- LLMブロックの右側に**「HTTPリクエスト」**ブロックを追加して繋ぎます。
- 左上の「メソッド」を
POST(データを送るという意味)にします。 - 「API(URL)」の入力欄に、**STEP 2で発行してメモしておいた「ウェブアプリのURL」**を貼り付けます。
- 下の方にある「ボディ(Body)」の項目を開き、データ形式を
JSONにします。 - 入力欄をクリックして
{x}ボタンを押し、**一つ前のLLMブロックの出力テキスト(text)**を選んで挿入します。(※画面には{{#LLM.text#}}のように表示されればOKです!) - 【💡 安心ポイント】 ヘッダー(Header)やパラメータ(Parameter)という難しい入力欄は、完全に空欄のままで大丈夫です!
すべて設定できたら、右上の青いボタン**「公開する(更新)」**を押せば、究極のAI事務員の完成です!

まとめ:私たちの仕事の裏に、無敵の相棒を。
さあ、プレビュー画面を開いて、テスト実行してみましょう! ご自身のスマホに入っている「窓サッシのカビ」や「汚れた換気扇」の写真をアップロードして、「実行」ボタンを押してみてください。
AIが数秒間じっくりと写真を見て考えた後、裏側でGASへデータが送られます。 処理が終わったら、ご自身のGmailを開いて「下書き」フォルダを見てください。

なんと!あなたが文字を1文字も打っていないのに、「【お見積り】清掃作業について」というメールが用意され、そこにはプロ仕様のフォーマットで作られた「見積書PDF」がバッチリ添付されているはずです! この「Success」の文字を見た瞬間の鳥肌とガッツポーズ、ぜひ皆さんにも味わってほしいです!

これまでは、現場から疲れて帰ってきてからが「第二の仕事」の始まりでした。 しかし、このシステムを一度作ってしまえば、帰り道の車に乗り込む前にスマホで写真を1枚送るだけ。自宅に着く頃には、あとは「送信ボタン」を押すだけの状態になっています。

プログラミング未経験の49歳でも、毎度のことですが、何回もエラーと格闘しながら諦めずに手を動かせば、大企業が何万円もかけて導入するような業務自動化システムを自作できるんです。現場仕事は私たちの腕で、面倒な事務仕事は文句ひとつ言わないAIの相棒に任せましょう!
同世代の皆さん、中高年からの「AI再スタート」は、まだまだここから最高に面白くなりますよ!実際に作ってみて分からないことがあれば、ブログのコメント欄でいつでも聞いてくださいね!さて、次は何を作ろうか考えます。
次回も是非お楽しみに!


コメント