開発事例 — Chrome拡張 × n8n × StructFlow × XTRF

メールからXTRFへ、
StructFlowとn8nで自動化

「受注メールから翻訳管理システム(TMS)への情報入力をAIで自動化できないか」という課題に取り組んだ結果、ChromeブラウザのサイドパネルからXTRFに直接プロジェクトや見積もりを作成できる仕組みを構築しました。本記事では、その開発の流れと工夫した点をご紹介します。

公開日 — 2026.07.30 使用ツール — Chrome拡張 / n8n / StructFlow / XTRF
3
構成コンポーネント数
7
AI自動抽出項目数
2
作成モード Quote / Project
MV3
Chrome拡張 マニフェスト
背景と課題

翻訳会社にとって、受注メールから翻訳管理システム(TMS)への情報入力は、毎日繰り返す定型作業です。メールを開き、内容を確認し、クライアント名・言語・納期などをシステムに手動で入力する——このプロセスには時間がかかるだけでなく、入力ミスのリスクも伴います。

システム構成

全体の構成

今回構築したシステムは、3つのコンポーネントで構成されています。

// メール → XTRF 自動登録システム構成
1
Chrome拡張機能 UI層
Outlook Webのサイドパネルに表示され、メール内容の取得と確認UIを担当
2
n8n 自動化層
ワークフロー自動化ツール。StructFlowの呼び出しとXTRFキャッシュの管理を担当
3
XTRF 登録先
翻訳管理システム。プロジェクトと見積もりの作成先
Outlook Webのサイドパネルに表示されたChrome拡張機能の画面

ユーザーがメールを開くと、拡張機能が自動的にメールの件名・送信者・本文・添付ファイル名を取得します。別のメールに切り替えると、サイドパネルも自動で更新される仕組みになっています。メールの自動検出にはOWAのDOM解析を活用しており、ページの再読み込みなしにリアルタイムで反応します。「Analyze email」ボタンを押すと、取得した情報がn8nに送信されます。

実装 01

AIによる情報の自動抽出

n8nはStructFlow(AIワークフローツール)を呼び出し、メール本文から必要な情報を抽出します。抽出される情報は、案件名・クライアント・言語ペア・サービス種別・専門分野・納期・顧客からの指示などです。「英日」という表記を「英語→日本語」と正しく解釈する言語ルールや、差出人ではなく本文の署名からクライアントを特定するロジックも実装しています。

StructFlowがメール本文から抽出した案件情報がサイドパネルに表示された画面

抽出した情報はXTRFのマスターデータ(クライアント・言語・サービスのリスト)と照合し、IDへ変換します。このキャッシュはNextcloudのWebDAV経由でn8nが定期的に更新するため、常に最新の状態を保てます。

実装 02

ユーザーによる確認と編集

AIが自動抽出した情報は、必ずしも完全ではありません。そのため拡張機能の確認フォームでは、すべての項目をユーザーが確認・修正できるようになっています。クライアント・サービス・専門分野はドロップダウンで選択でき、対象言語はタグUIで複数選択が可能です。また、顧客からの指示(fromCustomer)と社内向けメモ(internal)の2種類の備考欄も設けています。「Quote」と「Project」の切り替えもボタン一つで行えます。

拡張機能の確認フォームでクライアント・サービス・対象言語などを編集する画面

確認が終わったら「Create in XTRF」ボタンを押すだけで、XTRFへの登録が完了します。

直面した課題

プロジェクト作成とAPIの壁

XTRFのREST APIを使えば、ClassicプロジェクトはPOSTリクエスト一つで作成できます。レスポンスに含まれる内部IDを使い、XTRFのプロジェクト画面を直接開くリンクも実装しました。

しかし見積もり(Classic Quote)の作成は別の話でした。APIドキュメントを調べても、Classic見積もりを作成するエンドポイントが存在しないことが判明しました。XTRF社に確認しても、同様の回答でした。
解決アプローチ

Groovyマクロで解決

XTRFにはGroovyマクロを実行できる機能があり、APIからも呼び出せます。この仕組みを活用し、見積もり作成用のマクロを開発しました。マクロ内では、SpringContextBridgeでSpringのBeanを取得し、新しい書き込みトランザクションを作成した上で、見積もりの採番・クライアント情報の設定・言語ペアごとのタスク生成を行います。拡張機能はマクロ実行後に見積もりIDを取得し、成功バナーとXTRFへのリンクを表示します。

Groovyマクロ経由で作成されたXTRFのClassic見積もり画面
まとめ

まとめ

今回の自動化により、メールから案件登録までのプロセスが大幅に短縮されました。要点をまとめると次のとおりです。

Chrome拡張機能 + n8n + StructFlowの連携でメール内容をAI解析
XTRFのマスターデータを活用したID自動マッチング
Classicプロジェクトは直接API、Classic見積もりはGroovyマクロ経由で作成
ユーザーが結果を確認・修正できるUIで精度を担保
APIで解決できない部分はマクロで補う——この考え方が今回の開発のポイントでした。XTRFのような成熟したTMSであっても、APIだけでは対応できないケースは存在します。その際に内部ロジックを直接操作できるマクロの仕組みは非常に強力です。翻訳業務の効率化やTMS連携の自動化に取り組んでいる方の参考になれば幸いです。

なお、今回開発した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 / 書き込みトランザクション)