翻訳会社にとって、受注メールから翻訳管理システム(TMS)への情報入力は、毎日繰り返す定型作業です。メールを開き、内容を確認し、クライアント名・言語・納期などをシステムに手動で入力する——このプロセスには時間がかかるだけでなく、入力ミスのリスクも伴います。
全体の構成
今回構築したシステムは、3つのコンポーネントで構成されています。
ユーザーがメールを開くと、拡張機能が自動的にメールの件名・送信者・本文・添付ファイル名を取得します。別のメールに切り替えると、サイドパネルも自動で更新される仕組みになっています。メールの自動検出にはOWAのDOM解析を活用しており、ページの再読み込みなしにリアルタイムで反応します。「Analyze email」ボタンを押すと、取得した情報がn8nに送信されます。
AIによる情報の自動抽出
n8nはStructFlow(AIワークフローツール)を呼び出し、メール本文から必要な情報を抽出します。抽出される情報は、案件名・クライアント・言語ペア・サービス種別・専門分野・納期・顧客からの指示などです。「英日」という表記を「英語→日本語」と正しく解釈する言語ルールや、差出人ではなく本文の署名からクライアントを特定するロジックも実装しています。
抽出した情報はXTRFのマスターデータ(クライアント・言語・サービスのリスト)と照合し、IDへ変換します。このキャッシュはNextcloudのWebDAV経由でn8nが定期的に更新するため、常に最新の状態を保てます。
ユーザーによる確認と編集
AIが自動抽出した情報は、必ずしも完全ではありません。そのため拡張機能の確認フォームでは、すべての項目をユーザーが確認・修正できるようになっています。クライアント・サービス・専門分野はドロップダウンで選択でき、対象言語はタグUIで複数選択が可能です。また、顧客からの指示(fromCustomer)と社内向けメモ(internal)の2種類の備考欄も設けています。「Quote」と「Project」の切り替えもボタン一つで行えます。
確認が終わったら「Create in XTRF」ボタンを押すだけで、XTRFへの登録が完了します。
プロジェクト作成とAPIの壁
XTRFのREST APIを使えば、ClassicプロジェクトはPOSTリクエスト一つで作成できます。レスポンスに含まれる内部IDを使い、XTRFのプロジェクト画面を直接開くリンクも実装しました。
Groovyマクロで解決
XTRFにはGroovyマクロを実行できる機能があり、APIからも呼び出せます。この仕組みを活用し、見積もり作成用のマクロを開発しました。マクロ内では、SpringContextBridgeでSpringのBeanを取得し、新しい書き込みトランザクションを作成した上で、見積もりの採番・クライアント情報の設定・言語ペアごとのタスク生成を行います。拡張機能はマクロ実行後に見積もりIDを取得し、成功バナーとXTRFへのリンクを表示します。
まとめ
今回の自動化により、メールから案件登録までのプロセスが大幅に短縮されました。要点をまとめると次のとおりです。
なお、今回開発したChrome拡張機能はMV3(Manifest V3)に対応しており、Chrome標準のSide Panel APIを使用しているため、メールを読みながらサイドパネルを開いたままにしておける点も実務上のメリットです。n8nはクラウド版を使用しており、サーバーの管理が不要な点も運用コストの削減につながっています。今後は複数クライアントへの対応や、添付ファイルの自動アップロード機能なども追加していく予定です。
| 項目 | 内容 |
|---|---|
| 使用サービス | LDX hub — StructFlow |
| フロントエンド | Chrome拡張機能(MV3 / Side Panel API) |
| メール取得 | Outlook Web(OWA の DOM 解析によるリアルタイム検出) |
| オーケストレーション | n8n(クラウド版) |
| 抽出項目 | 案件名 / クライアント / 言語ペア / サービス種別 / 専門分野 / 納期 / 顧客からの指示 |
| マスターデータ同期 | Nextcloud WebDAV 経由で n8n が定期更新するキャッシュ |
| プロジェクト作成 | XTRF REST API(Classic プロジェクト / POST 一つ) |
| 見積もり作成 | Groovy マクロ(SpringContextBridge / 書き込みトランザクション) |