非エンジニアでもできた!Claude Codeで作る業務自動化プログラム

こんにちは、Business Teamでプロジェクトサポートを担当しています肥沼です。
突然ですが、みなさん「API」って聞いたことありますか?私は半年前まで「なんか怖そうな技術用語」くらいの認識でした。
そんな私が、Claude Codeを使って2つのシステムを自動で繋ぐプログラムを作っちゃいました。今日はその奮闘記をお届けします!
きっかけは「上期AI活用で業務効率化に取り組む」
上期、チームでAIを活用して業務効率化に取り組むことになりました。
「じゃあ何を効率化しよう?」と考えたとき、真っ先に浮かんだのがHubSpotとfreeeの売上照合作業でした。同じチームで同じ業務をしているなおみんも「それ絶対やりたい!」と即同意。二人でこのテーマに取り組むことに決めました。
私たちのチームでは、営業案件の管理にHubSpot、請求書や売上の管理にfreeeという2つのツールを使っています。請求書を発行する際に実費精算や経費精算が発生した場合、当初の金額から変更となるため、変更後の金額をHubSpotに更新し、freeeにも忘れずに変更しなければならない運用なんですが……これがなかなかの曲者でして。
同じデータを2か所に入力するということは、ズレが生まれる可能性があるということ。金額の入力ミス、登録漏れ、入金期日の違い……毎月月末になると「あれ、この数字合ってる?」という確認作業が発生していました。しかも、その確認方法が目視で1件ずつ。件数が多い月はそれだけで時間がかかるし、見落としのリスクもある。
「これを自動化したい」という気持ちは強いものの、最初の壁にすぐぶつかりました。freeeのデータ、どこからどうやって取ってくるの? という問題です。
近藤さんの一言で、自動化への一歩が踏み出せた
なおみんと「どうしよう…」と頭を抱えていたそのとき、マーケティングの近藤さんから「相談に乗りますよ」という嬉しい一言をいただきました。
近藤さんから「APIからデータが取れるかもしれないよ」とアドバイスをもらったんです。APIという言葉は聞いたことがあるけど、使ったことはゼロ。でも「やってみよう!」と自分たちで決めて、こうして私たちの自動化チャレンジがスタートしました。
WSL2のセットアップ:「ターミナルって何?」から始まった
Claude Codeを動かすにはLinux環境が必要で、Windowsの場合はWSL2というものをインストールする必要があります。
……と書くと簡単そうですが、私たちのスタート地点はこうでした。
「ターミナルって何?」 「Ubuntuって何?」 「cd って何ですか?」
セットアップが少し進んだところで、近藤さんから「ところで、cd って何の略か覚えてますか?」と聞かれました。「……『ここだよ』ですか?」と答えたら、近藤さんが呆れ笑い(笑)。(※cd は「change directory」の略で、フォルダを移動するコマンドです)それでも嫌な顔一つせず、私たちが実際に操作できるようになるまで一つひとつ丁寧に付き合ってくださいました。
インストール自体はPowerShellで
wsl --install
と1行打つだけ。再起動してユーザー名とパスワードを設定すれば完了です。
「なんか黒い画面が出てきた……!」と最初はドキドキしましたが、慣れると全然怖くないです。
近藤さんのサポートのおかげで、「ターミナルって何?」状態の私たちでも、WSL2を使えるところまで辿り着くことができました。本当にありがとうございました!

いざ、Claude Codeで作ってみた
環境が整ったら、いよいよClaude Codeを起動してお願いするだけです。最初にこんな感じで伝えました:
「freeeとHubSpotの売上データを突合するプログラムを作ってほしい。freee APIとHubSpot APIを使って、金額の差異や片方にしかないデータを検出して、Excelに出力したい」
するとClaude Codeが自分でファイルを作り始めて、気づいたらプログラムが完成していました。なおみんと「これ、本当に動くの……?」と半信半疑のままコマンドを実行したら、Excelファイルが出てきて二人で「うそ!?」となりました(笑)。
コマンドを1行実行するだけで:
- freeeとHubSpotの売上金額の突合結果
- freee内部の請求書と取引の差異
これが全部Excelにまとまって出てくるようになりました。目視確認で毎月1時間かかっていた作業が、数十秒で完了します。

四苦八苦したポイントも正直に話します
順調そうに見えますが、実際にはなおみんとかなり四苦八苦しました。
DNSが毎回リセットされる問題
WSLを再起動するたびにネットワーク設定がリセットされて、APIに繋がらなくなるという現象が発生。エラーを見ても最初は意味がわからず、Claude Codeに「これどういう意味ですか」とエラー文を貼り付けて解決しました。
freeeのAPIが2026年のデータを返してくれない
freeeには「freee会計」と「freee請求書」という2つのサービスがあり、2026年のデータはfreee請求書側に保存されていることが判明。想定していたAPIが使えないという事態に、なおみんと「え、どうするの…」と顔を見合わせました。Claudeに相談したところ、別の取引APIで代替できる方法を提案してもらい、なんとか解決。
金額の税込・税抜問題
freeeは税込金額、HubSpotは税抜金額で管理していたため、単純に金額を比較しても一致しないという問題も発生。気づくまでに時間がかかりました……。
詰まるたびに「もうだめかも」となりながらも、近藤さんに相談したり、Claude Codeにエラーを貼り付けたりしながら一つひとつ解決していきました。なおみんが一緒にいてくれたから最後まで諦めずに続けられたと思っています。
使ってみてわかった、Claude Codeのコツ
① 具体的に伝えることが大事
最初は曖昧なお願いをしてしまって、想定と違う動きをすることもありました。「Closed Lostの取引は除外して」「請求開始月が対象月の商品項目のみ金額を合算して」など、条件や例外ケースをできるだけ具体的に伝えるほど、精度が上がります。
② エラーが出たらそのまま貼ればOK
最初はエラーが出るたびにドキドキしていましたが、エラー文をそのままClaudeのチャットに貼り付けて「これどういう意味?」と聞くだけで解決してくれます。コードの知識がなくても全然大丈夫でした。
③ 認証情報の取り扱いには注意!
freeeやHubSpotのAPIを使うには、アクセストークンという認証情報が必要です。これは絶対にClaudeのチャットに貼ってはいけません。.envという設定ファイルに分けて管理しています。便利なツールを使うからこそ、セキュリティへの意識は大事だと実感しました。
プログラムはGitLabで管理
作ったプログラムはGitLabでコード管理しています。変更履歴が残るので「誰がいつ何を変えたか」が追跡でき、チームメンバーとも共有できます。Claudeへの依頼内容(プロンプト)もGitLabに置いているので、同じプログラムを別の人が再現することも可能です。なお、先ほどの認証情報(アクセストークン)はGitLabにはアップしない運用にしています。セキュリティ面でも安心して使える環境を整えました。
やってみて思ったこと
正直、最初は「私にできるかな……」という不安がありました。でも実際にやってみると、詰まったところは全部Claudeに聞けば解決できたんです。WSLのインストール、エラーの対処、Gitへのpush……全部「こうなったんだけどどうすれば?」とスクショを貼りながら進めました。
そして何より、近藤さんとなおみんの存在が大きかったです。
「ターミナルって何?」状態の私たちに苦笑いしながらも最後まで付き合ってくださった近藤さん、本当にありがとうございました。あの「相談に乗りますよ」の一言がなければ、きっと最初の一歩を踏み出せなかったと思います。
なおみん、一緒に四苦八苦してくれてありがとうございました。「もうだめかも…」となったとき隣にいてくれたから、最後まで諦めずにやりきれました。感謝しかないです。
プログラムの知識がなくても、やりたいことが明確であれば、Claude Codeは強力な味方になってくれます。「難しそう」と思っている方、ぜひ一度試してみてください!
この記事で紹介したプログラムは現在も毎月稼働中です。次は自動化の範囲をさらに広げていく予定です。お楽しみに!
