💬

【Geminiでどこまでできる?】AppSheetを営業マン(技術知識なし)と2025年卒新入社員で構築してみた結果...

に公開

DSKアドベントカレンダー第8日目のブログ記事、始まります!

Googleのノーコードアプリ作成ツールである「 AppSheet 」。
Google Workspace Business Starter以上のプランを使っているユーザーは、AppSheet Core(月額$10/user)が 無料で使えます👏

ノーコードで簡単に誰でもアプリが作成できたら、業務効率にぐっと役立ちますよね!

今回はAppSheetを、技術知識ゼロの営業マン1人と、フレッシュな2025年卒の新入社員エンジニア2人の3人のチームで構築した奮闘記をお届けします!

ということで今回の記事は3人の共同記事です!3人とも初めてのブログ記事執筆のため、生暖かい目で見守ってください🥺

執筆した3人のプロフィールはこんな感じ↓

森内
2025年卒でDSKにエンジニア職で新卒入社。
完全未経験入社のエンジニアとしては殻から嘴だけ出てるぴよ状態🥚 Geminiに足を向けて寝られない。
MBTI → ISFP(冒険家)

佐藤
2025年卒でDSKにエンジニア職で新卒入社。
サッカーしかしてこなかった脳筋体育会系がIT業界に飛び込み⚽️ 現在、膨大なインプット量に圧倒され中。
MBTI → ENTJ(指揮官)

小川
2017年卒でDSKに営業職で新卒入社。
主にGoogle Workspace、Chrome製品のセールスに従事。2023年に産休・育休を経て2024年4月に復帰したぴよぴよワーママ👶。
MBTI → ENFJ(主人公)


あの「勤怠入力、だるすぎ問題」に挑む!AIで社内業務を爆速改善できるか?

皆さん、毎月の勤怠入力、お疲れ様です!
「またこの時期が来たか…」と、ため息をつきながらシステムの画面を開いている方も多いのではないでしょうか?
私たちも例に漏れず、毎日の勤怠管理に頭を悩ませていました。

📅 地獄の勤怠システム、何がそんなにツラいのか?

当社の勤怠システムは、正直なところ「使いづらい」の一言に尽きます。主な要因は、 非効率な手打ち入力修正作業 にあります。

😖 手打ち入力の煩雑さ
作業時間を作業内容に対応するプロジェクトコードの種類ごとに分けて、手動で入力しなければなりません。この作業自体が手間である上、プロジェクトコードは覚えづらいものが多く、ミスが発生しやすい状況です。

こちらが手入力画面になります

こうして入力したデータをもとに「作業実績報告書」が自動生成され、それを月末に提出するフローになっています。

※掲載している2枚の画像は、実際に利用している勤怠システムの画面を基に、Geminiアプリ(Nano Banana Pro)を用いて加工・再現したものです。そのため、記載されているプロジェクトコード等は架空のデータとなります。

🔎 地獄の修正作業
入力ミスがあった場合は最悪です。日付ごとにデータが分かれてはいますが、同じような内容が何行も並ぶ一覧から、目視で該当箇所を探し当てて修正します。これが非常に時間がかかるのです。

特に「今月の、このプロジェクトコードで付けた作業時間の半分を修正して!」などと指示されると、データを見ながら「該当箇所を探す」→「修正画面に移動」→「修正」という作業を何度も繰り返さなくてはなりません。一日の業務で一番集中力が削がれる瞬間かもしれません。

このデータ探しについては、CSV出力が可能なので、いっそ Agentspace(現在は Gemini Enterprise)に探させられないか、と個人で解決を図る社員も!

🤯 上長も大変なチェック業務
入力担当者だけでなく、何人分ものデータをチェックする上長にとっても、ミスを見つけ出すのは大きな負担となっています。

「もっと楽に、サクッと終わらせる方法はないのか?」―これは多くの社員が抱える共通の悩みでした。

💡 社内AI活用プロジェクト「P-Gen2」始動、そしてテーマ決定へ

そんな中、私たちは社内の生成AI活用を推進するための活動「P-Gen2」に、フェーズ2から参加することになりました。

この活動は、業務時間の一部を割いて生成AIの活用に取り組むという、意欲的な取り組みです。AIの知識レベルに関係なく、営業から開発まで様々な部門のメンバーが参加し、「生成AIを使って社内の困りごとを解決し、AIを定着させる」ことをミッションとしています。

P-Gen2への参加後、まずはチーム分けが行われました。チームメンバー同士で「生成AIを使って社内で改善したい困りごと」について意見を出し合ったところ、メンバーから共通して「勤怠入力、だるいよね」という声が出ました。

これは多くの社員が抱える共通課題です。私たちのチームのテーマは「勤怠改善」に決定しました。

🚀 システムを変えずに、どう解決する?

しかし、私たちはすぐに現実的な課題に直面しました。

  1. 勤怠システム自体の抜本的な改良は、導入コストやシステムの制約上、ハードルが高い。
  2. Agentspace で勤怠システムに自動で直接入力する仕組みも、セキュリティや連携の面で難易度が高い。

私達が考えた改善案

さて、それではこの使いづらいこと極まりない弊社の勤怠システムをどうすればみんなハッピーに勤怠管理できるだろうか...?

実はこの課題、「 勤怠システムそのものを改造することはできない 」という大人の事情が絡みまくった縛りプレイがあります。なんてこったい。
それゆえ、今まで弊社では勤怠システムに課題があるとわかりつつも動けない、そして数々の社員の呻きと恨みを吸収していった妖刀村正もびっくりの怨念満ち溢れるシステムとなっていました...。

そこで私達は、以下の2つを構築しようと考えました。

  1. 勤怠システムへの入力を補助する打刻システム
  2. 勤怠システムの入力が正しいかチェックできるシステム

(実は勤怠システムにも打刻機能がひっそりついているのですが、使っている人が少ないかつ、社内LANに接続しているときしか使えないので、リモートワークをするときは使いづらいという問題がありました。)

✏ 打刻システムをAppSheetで作成

「勤怠システムへの入力を補助する打刻システム」は AppSheet打刻アプリ を作成することにしました。
というのも、弊社の凄腕エンジニア Tommyさん がすでに打刻アプリを作成しており(!)、運用していたのです!
これに乗らない手はないです。

勤怠システムに必ず入力しなければいけないデータは下記の通り

  • 勤務区分(出社 or 休暇)
  • 勤務開始時間
  • 勤務場所(在宅 or オフィス)
  • その日の業務のプロジェクトコードと費やした時間

そしてTommyさんが作成されていた打刻アプリに記録できるデータは下記の通り

  • 勤務開始時間
  • 勤務終了時間
  • 勤務場所
  • 備考欄(フリーテキスト)

これらの入力データから「勤務時間」や「残業時間」を計算し、当月の合計勤務時間を集計することができます。
当月の勤怠の集約はこんな感じで確認可能です。

また、メンバーを追加することができ、同僚がいつから仕事を始めて、いつ終わったかを Googleチャットで通知を受け取る ことができます。

さすがTommyさん。もう完璧なアプリができあがっちゃってるじゃあないですか。

私達はこのTommyさんの打刻アプリに2つの機能を追加することで、さらに勤怠作業を軽減化させることを目指しました。

📅 Googleカレンダーの連携

勤怠システムで、特にエンジニアを困らせているのが、作業時間をプロジェクトコードごとに手作業で入力しなければいけないことです。

月の営業最終日あたりに、勤怠システムとGoogleカレンダーを交互に開いては、この日はプロジェクトAに3時間使って、プロジェクトBに2時間使って...と入力して、しかもGoogleカレンダーだけではいつ勤務を開始したかがわからないので、勤務開始報告をしているチャットも開いて...当月の勤怠入力が完了したと思ったら2時間が経過していた...なんてこともあるそうです。

(しかもプロジェクト計画に沿って、その月に使えるプロジェクトごとの作業時間が決まっているので、月末にならないとシステムに入力する作業時間の調整が難しいという事情もあったり...プロジェクト計画と実際にかかった作業時間が乖離しているという問題は置いといて...)

そこで私達は、打刻アプリの「打刻履歴」に、ユーザーのGoogleカレンダーの予定を入力させる機能の実装を目指しました。

Googleカレンダーの予定を打刻アプリに入力させることで、勤怠システム入力時にGoogleカレンダー&チャットとにらめっこをせずとも、打刻アプリだけを見れば勤怠システムの入力が完了します。

📁CSVの出力

勤怠システムの問題点として、「修正が必要になった場合の作業が地獄」というのは前述のとおりです。ならば入力ミスを起こさないような仕組みを作ればいいじゃない!ということで、下記のステップで入力ミスを防止する仕組みを考えました。

  1. 打刻アプリに打刻履歴をCSVで吐き出す機能を実装、当月の打刻履歴をCSVで出力
  2. 打刻アプリの打刻履歴をもとに勤怠システムへ手打ちで勤怠入力
  3. 勤怠システムから当月の作業実績報告書(PDF)を出力
  4. Geminiに 1. と 3. の2つのファイルをアップロードして、齟齬がないかをチェックさせる

この手順を踏めば、勤務時間の入力ミスを限りなくゼロにすることができます!

Geminiを駆使してAppSheetを触ってみたら…現実は甘くなかった

😫ノーコードの難しさとGeminiの限界

「Geminiさえあれば、AppSheetで簡単にアプリが作れるはず!」 当初はそう思っていた私たちですが、結論から言うと、Geminiだけでは全くうまくいきませんでした。最終的にはTommyさんに泣きつき、なんとか目標達成に近づくことができた…というのが実情です。

ここからは、私たちが実際に開発を進める中でぶつかった「壁」と、苦労の末に実装した機能の裏側についてお話しします。

🧱開発を通して感じた「ノーコードの壁」

「ノーコードで業務アプリを開発できる」というのがAppSheetの強みのはずです。しかし、データの表示方法を少し工夫しようとしたり、外部連携(GASなど)を使おうとしたりした途端、難易度が急激に跳ね上がりました。

ここでこそGeminiに頼りたいところですが、実は大きな問題がありました。 AppSheetの編集画面には、 「Geminiサイドパネル」が存在しないのです。

そのため、行き詰まるたびに別のタブで通常のGeminiを開き、

  1. これまでの経緯
  2. やりたいこと
  3. 現在のアプリの状況(エラー内容など)

を1から説明しなければなりません。「コンテキストを共有できない」という点は、開発スピードを落とす大きな要因でした。

🔲裏側はまるでピタゴラスイッチ!?苦労の末に実装した2つの連携機能

そんな苦労を乗り越えて実装した主な機能は以下の2つです!

📅 Googleカレンダー連携による自動入力

「業務終了」ボタンを押すと同時に、そのユーザーのGoogleカレンダーから当日の予定を取得し、勤務履歴の「備考欄」に自動入力する機能を実装しました。

  1. 「業務終了」をクリック

  2. 対象ユーザーの当日の予定をGoogleカレンダーから取得

  3. 勤務履歴画面の「備考欄」に自動入力

これまでカレンダーと勤怠アプリを何度も往復していたあの煩わしい時間が、嘘のように消滅します。入力にかかる時間は数分から「一瞬」へ。単純な時短以上の、劇的なユーザー体験の向上を実現しました。

📁 CSV出力機能

今回一番驚いたのが、「ボタン一つでCSVを出力する」という標準機能が存在しないことです。 「えっ、そんな基本機能がないの!?」と焦りましたが、以下の手順で実現させました。

  1. アプリ上に「CSV出力ボタン」を作る(※これ自体はデータを出力しません)
  2. ボタンを押すと、データの「最終出力日時」が更新されるように設定
  3. 日時が更新されたことを Automation が検知
  4. AutomationがGAS(Apps Script)を起動
  5. GASがスプレッドシートの内容をCSV化して出力

【CSV出力手順】

  1. 「検索月」から対象の日付を選択し、「CSV出力」ボタンをクリック

  2. 確認画面が表示されますので、再度「CSV出力」をクリック

  3. 自身のGmail宛に送信されたCSVファイルを確認

「ボタンを押したらCSVが出力される」という単純な動きに見えますが、裏側ではピタゴラスイッチのように複雑な連携が走っています。こればかりはGeminiだけに頼らず、人の知識と工夫が必要不可欠でした。

Googleさん、AppSheetに「Geminiサイドパネル」をください!

こうして、なんとかTommyさんの力を借りて、私たちの勤怠管理アプリは形になりました。しかし、今回のプロジェクトを通じて、私たちは一つの真実にたどり着きました。

「AppSheet × Gemini だけでは、初心者が実用的なアプリを作るのは(まだ)難しい」

特に、非エンジニアや新入社員が壁にぶつかったポイントは以下の4点です。

  • AppSheet独自の関数が沼                                 スプレッドシートの関数と似て非なるものが多く、「あれ、これ動かない?」の連続でした。
  • GASなどの外部連携で難易度が急上昇                             「標準機能にないこと」をやろうとすると、急に技術的な知識が求められます。
  • 英語UIの壁                                        作成画面がすべて英語なので、機能の意味を理解するためにいちいち翻訳する手間が発生しました。
  • Geminiに「コンテキスト」が伝わらない                          これが最大の課題でした。「実装したい機能」は明確なのに、エラーが出た際にGeminiに相談しよ   うとしても、アプリの構造やカラムの設定などの「前提条件(コンテキスト)」を共有できません。

Workspaceのサイドパネルのように、AppSheetの作成画面にもGeminiがいてくれたら…! 「このエラー、今のテーブル設定だとどう直せばいい?」と聞くだけで、アプリの中身を理解したGeminiが答えてくれる未来を、私たちは切実に待っています。Googleさん、ぜひ開発をお願いします!

💬 今回のプロジェクトを終えて
最後に、今回のドタバタ開発を終えた3人の「心の叫び」で締めくくりたいと思います。

小川(営業)
「ノーコードで開発できるので、エンジニアじゃない人でも簡単にアプリが作れますよ!」とたくさん吹聴していたので、改めたいと思います...。

森内(新卒エンジニア)
全然ノーコードじゃない! 実用的なアプリを作るには、結局ちゃんと必要な知識を身に着けないといけないのか……。『楽をするには知識がいる』という現実を突きつけられました。

佐藤(新卒エンジニア)
「コードを書かない」だけで、「考えなくていい」わけではない。私達が構造を理解して的確にオーダーしてこそ、Geminiも最高のパフォーマンスを返してくれるんだと気づきました。

以上、DSKアドベントカレンダー第8日目、AppSheet奮闘記でした!👋

電算システム 有志

Discussion