「マニュアルの手順通りにやったのですが、エラーになってしまって……」。お客様からそう連絡をいただくたびに、申し訳ない気持ちと、もどかしさがありました。
私は昨年8月に正式リリースした、Acsimの営業 兼 カスタマーサクセス(CS) 兼 プロダクトマーケティングマネージャーを担当しています。 私自身はエンジニアではありません。しかし、お客様が繰り返し遭遇する問題を目の前にして、「これは自分で何とかできないか」と考えるようになりました。
結論としては、Claude.aiで30分ほどでプロトタイプを作り、そこからCursorで3時間ほどかけて改善を重ね(他の業務と並行しつつ進めています)、実運用に耐えるJSON自動修正ツールを完成させました。
本記事では、非エンジニアのCS担当がAIを使ってツールを自作した背景と開発の進め方についてお話しします。 SaaSのCS担当の方にとって、何かのヒントになれば幸いです。
何が起きていたのか
AcsimのJSONインポート機能
Acsimの魅力的な機能の一つに、JSONインポートがあります。
Acsimでは、議事録や業務マニュアルなどのテキストから業務フローを生成できるだけでなく、既存のExcelファイルやPowerPointファイルからも業務フローを取り込むことができます。お客様が長年にわたって蓄積してきた業務ドキュメントを、そのままAcsim上の業務フローとして活用できる、それらがJSON、つまりAI活用がしやすい構造化データになる。これは、お客様にとっても価値のある機能です。
ただし、現状の仕様では、ExcelやPowerPointを直接インポートするのではなく、Acsim Chat(内部ではClaudeを使用。クローズド環境)でファイルの情報を加工し、AcsimのJSON形式に変換してから、そのJSONファイルをインポートするという流れになります。
AIが生成するJSONには「ブレ」がある
ここに問題があります。
AIにJSONファイルを生成させるということは、処理が毎回確実に同じ結果になるわけではないということです。同じExcelファイル、同じプロンプトを入力しても、AIの生成結果には毎回微妙なブレが発生します。
このブレが、AcsimのJSONフォーマットの仕様から外れてしまった場合、インポート時にエラーが発生します。必須フィールドが欠けていたり、型が違っていたり、参照先が存在しなかったり――エラーパターンは多岐にわたります。
特に厄介だった「形式違い」の問題
いくつかのエラーパターンがある中で、最も厄介だったのは「そもそもAcsimのインポート形式とは全く異なる構造のJSONがAIによって生成されてしまう」ケースです。
このような場合、内容自体は十分に業務フローとして意味が通っていたとしても、Acsimの仕様に合致していないため、そのままではインポートできません。手作業で正しい形式へ変換しようとすると、数十から数百に及ぶ工程を一つ一つ移し替えたり、接続情報やレイアウト座標を自分で計算しなおす必要があり、とても非現実的な作業量になってしまっていました。
DevRelチームへの負担
こうしたJSONインポートのエラーが発生するたびに、私はAcsimのDevRelチーム(エンジニアチームとは別に存在する、開発者リレーション担当のチーム)に原因調査を依頼していました。
この調査は、想像以上に手間のかかる作業です。JSONファイルの中身を一つずつ確認し、どのフィールドがAcsimの仕様から外れているかを特定する。数百行〜数千行のJSONを目視で確認する作業は、骨が折れます。
DevRelチームの方々にはいつもお手間をおかけしていて、申し訳ない気持ちがありました。同時に、お客様への対応スピードを上げるためにも、営業・CSチームで初動対応ができる仕組みが必要だと感じていました。
「自分で直せたら、DevRelチームの手を煩わせず、お客様をお待たせすることもなくなるのに。」
実は、この課題については開発チームでも認識されており、近々対応が予定されていました。ただ、プロダクト全体のロードマップの中で優先度の兼ね合いがあり、すぐに着手できる状況ではありませんでした。 「であれば、少しでも早くお客様の体験を改善するために、CS側で先に動こう」――これが、ツール開発の出発点でした。
Claude.aiでプロトタイプを作る
まずはバリデーターから
最初に手を出したのは、Claude.aiでした。
Claudeに相談したのは、以下のような情報です(実際のプロンプトの詳細は割愛し、要点を抽象化しています)。
- 課題の背景: ExcelやPowerPointなどの既存ドキュメントをAcsim ChatでJSON形式に変換するが、出力が安定せずインポートに失敗することがある
- 実現したいこと: Acsimの規定フォーマットと、Acsim Chatから生成されたJSONを比較して、修正すべき箇所を教えてくれるツールを作りたい
- 正常なJSONのサンプル: Acsimで正しくインポート・エクスポートできることを検証済みのJSONファイル
つまり、「正しいフォーマットの定義」「何が問題になっているか」「どう解決したいか」をAIに渡し、検証ツールを作ってもらうというアプローチです。「どこがエラーなのかがわかれば、あとは手動で直せるだろう」と考えていました。
しかし、すぐに限界が見えました。
- エラー箇所がわかっても、正しい値に修正する方法がわからないことが多い(参照先のIDをどう設定すべきか、レイアウト座標をどう計算すべきか、等)
- 1つのJSONにエラーが数十〜数百箇所ある場合、手動で修正するのは現実的ではない
- そもそも「形式が根本的に違う」ケースでは、バリデーション結果を見ても対処のしようがない
バリデーターでは対応しきれない。エラーを検出するだけでなく、自動で修正するツールが必要だ。
方針転換、30分でプロトタイプへ
そこで、Claude.ai上で方針を切り替えました。「検証するだけ」ではなく、「検証して、自動で修正する」ツールを作ることにしたのです。
Claudeに方針を伝えると、ブラウザ上で動作するReactベースのUIをコードとして一気に出力してくれました。JSONファイルをアップロードし、「検証&自動修正」ボタンを押すと、エラー箇所を検出して自動修正し、修正済みのJSONをコピーできる――そんなツールが、バリデーターの試行錯誤も含めて約30分で形になりました。
Claudeとの対話の中で「こういうエラーパターンもあるよ」と追加情報を伝えれば、修正ルールも追加してくれます。 検証用のJSONで試す分には、ある程度「これでいけるのでは?」と思いました。
しかし、実運用に乗せるのは難しかった
プロトタイプの段階では良い結果が出ていました。しかし、実運用を想定すると課題が見えてきました。
- エッジケースの多さ: AIから出力されるJSONの形式が毎回微妙に異なります。テストケースでは動いても、新しい形式のJSONが来ると修正漏れが発生しそうでした
- コードの管理: Claude.aiのチャット上でコードをやり取りしていると、どのバージョンが最新かわからなくなります。変更履歴も残りません
- 回帰テストができない: 新しい修正を入れたとき、過去のケースが壊れていないかを毎回手動で確認するのは現実的ではありません
- コードベースが大きくなると厳しい: 修正ルールが増えてコードが数百行を超えてくると、Claude.aiのチャット上だけで全体を把握するのが難しくなります
つまり、「プロトタイプとしては十分だが、実運用に耐えるコード品質にするには別のアプローチが必要」 でした。
GitHubに載せ、Cursorで改善する
プロトタイプから実運用へ
そこで、以下のように進め方を切り替えました。
- Claude.aiで作ったプロトタイプコードをCursor(AIが組み込まれたコーディングエディタ)に持ち込む
- エラー事例などをローカルに蓄積しながら、Cursorで継続的に改善する
- コードが安定したらGitHubリポジトリに登録し、チームで共有する
Cursorは、プロジェクト全体のコードベースをコンテキストとして持ちながらAIに指示できるため、「このファイルのこの部分を、この仕様に合わせて修正して」といったピンポイントの改善が可能です。CursorではLLMとしてClaude Opus 4.6を使っています。
補足: Claude Codeで開発してもよかったのですが、個人的にCursorに慣れていたこともあり、今回はCursorを選びました。
改善のサイクル
Cursorでの改善は、以下のサイクルで回しました。
1. エラーになったJSONを失敗事例としてローカルに蓄積する
2. そのJSONフォーマットでも正確にインポートできるよう、Cursorで修正ルールを追加・改善する
3. インポート後の業務フローの配置が正確になるよう、レイアウトロジックも調整する
4. 過去の全テストケースで回帰テストを実行し、既存ケースが壊れていないか確認する
新しいエラー事例が出るたびにローカルにテストケースが蓄積され、ツールの品質が上がっていく。このサイクルが重要でした。コードが安定してきた段階で、最終的にGitHubリポジトリに登録しました。
出来上がったもの
こうして出来上がった「JSON Auto-Fixer」は、以下のようなことができます。
- JSON構文エラーの自動修正: AIが生成したJSONに含まれる構文レベルの問題を修正
- スキーマ不備の自動補完: Acsimのインポート仕様に合わせて、欠けているフィールドや型の不一致を自動修正
- 非Acsim形式の自動変換: Acsimの形式とは異なる独自形式のJSONを検出し、インポート可能な形式に変換
- レイアウト品質の検証: インポート後に業務フローが見やすく表示されるか、座標配置の品質をチェック
技術的な詳細(修正パイプラインの構成やアルゴリズムなど)については本記事では割愛しますが、ツールの内部構造はGitHub上でコードとドキュメントとして管理されています。
エンジニアチームのレビューと一般公開
CS主導で開発したツールとはいえ、お客様に提供するものである以上、品質の担保は欠かせません。一般公開の前に、エンジニアチームにコードレビューを依頼しました。 自分だけでは気づけない設計上の問題点やエッジケースの指摘をいただき、ツールの信頼性を高めることができました。
こうしたレビューを経て、現在は Acsim JSON Auto-Fixer として Acsim Docs 上でβ版を公開しています。 お客様ご自身でもJSONの検証・自動修正をお試しいただける状態になりました。
現在のワークフロー
導入前
1. お客様からエラー報告を受ける
2. DevRelチームに原因調査・修正を依頼する
3. DevRelチームがJSONを一つずつ分析し、手動で修正する
4. 修正済みJSONをAcsimに取り込めることを検証後、お客様にお返しする
導入後(CS対応)
1. お客様からエラーJSONを受け取る
2. ローカル環境のツールに投入して自動修正を実行
3. 修正済みJSONを取得し、Acsimに取り込めることを検証後、お客様にお返しする
導入後(お客様自身で対応)
ツールを一般公開したことで、CS担当を介さずにお客様ご自身で解決できるケースも生まれました。
1. Acsim Docs上のJSON Auto-FixerにJSONをアップロード
2. 自動修正されたJSONを取得
3. Acsimにインポート
現段階では実運用に乗せられるツールができたので、継続的に運用を進めながら、今後も実際の事例をもとに改善を重ねていく予定です。
なお、現在はAcsim Docs内の別ツールとして提供していますが、今後はこの自動修正機能をAcsim本体に統合し、お客様が別のツールを経由せずとも、Acsimの中でシームレスにJSONの検証・修正ができるようにしていく予定です。
やってみて思ったこと
お客様と話しているからこそわかること
ツールを作る中で感じたのは、お客様と日常的にやり取りしているからこそ気づけることがある、ということです。
- 「こういう形式のJSONが来るのは、お客様がこのようなExcelから変換しているからだな」
- 「この業種のお客様は、フェーズ分割で業務を記述する傾向があるな」
こうした肌感覚が、ツールの改善に役立ちました。
同じような悩みを持つCS担当の方へ
もし「この問題、毎回エンジニアにお願いしているけど、自分でも何かできないかな」と感じていることがあれば、試しにClaude.aiに相談してみるのも一つの手かもしれません。
私がやったことを振り返ると、こんな感じでした。
- 困っていることを言葉にする: 「こういうデータが来たとき、こう直したい」を整理する
- Claude.aiに相談する: 課題をそのまま伝えて、プロトタイプを作ってもらう
- Cursorで少しずつ育てる: テストケースを増やしながら、動くものに仕上げていく
- エンジニアチームに見てもらう: 自分だけでは気づけない点をチェックしてもらう
大それたことをやったつもりはないのですが、結果としてお客様への対応が早くなりましたし、「インポートがうまくいかない」というストレスを減らすことで、Acsimというツールそのものへの満足度にもつながると考えています。
実際に、Acsimをご利用中のお客様から「JSON Auto-Fixerのおかげで、JSON取り込みがだいぶ楽になりました」というお声をいただきました。自分がつくったツールがお客様の役に立っていると実感できた瞬間で、素直に嬉しかったです。
お客様に長く使い続けていただくためにも、こうした地道な体験改善は大切にしていきたいです。
まとめ
本記事では、以下の取り組みをご紹介しました。
- 課題の特定: お客様のJSONインポートエラーに、CS担当としてもどかしさを感じていた
- プロトタイプ: Claude.aiで30分かけてプロトタイプを作成
- 実運用化: Cursorで改善を重ね、安定後にGitHubへ登録して実運用に
- 成果: 対応時間を数時間から5分程度に短縮。ツールの一般公開により、お客様ご自身でもJSONの自動修正が可能に
まだまだ改善途中ではありますが、お客様の体験を少しでも良くできたのであれば、嬉しく思います。
Acsimは、システム開発における要件定義の効率化・標準化を支援できるツールです。
「要件定義の効率化をしたい」「AIを活用した業務改善の事例を知りたい」という方は、ぜひお気軽にお問い合わせください。
