中級向けn8n 公式テンプレート承認済み
LINE 多言語の窓口
外国語で LINE に届いた問い合わせを、Claude が日本語にして Slack に出し、担当者が日本語で書いた返信を、お客様の言語に訳して LINE に返すワークフローです。
日本語の返信にある数字・URL・メールが訳文に残っているかを、仕組みで検算し、欠けたら送りません。送った訳文は、原文を見せない別の呼び出しで日本語に戻して、Slack に出します。
LINE と Slack の実機で試して、見つけた失敗を直しました。JSON を配布します。
人の手間は、どう変わるか
Before(人が手でやっていたこと)
- 外国語の問い合わせを翻訳アプリに貼って、日本語にする
- 日本語で返信を書き、また翻訳アプリで訳して、LINE に貼り戻す
- 訳文の数字や URL が合っているかを、自分では確かめにくい
After(このワークフローを入れると)
- 問い合わせは日本語に訳されて、原文と一緒に Slack に出る
- 日本語で返信を書くと、お客様の言語に訳されて LINE に届く
- 数字・URL・メールが訳文から欠けていれば送らず、送った訳文は、日本語に戻した確認が Slack に出る
それでも人に残ること
- 日本語に戻した確認を読んで、誤訳に気づいたら直す
- 返信の中身を考えて書く
公開 最終更新
動作確認: — n8n 2.36.8 / Claude Haiku 4.5 / LINE Messaging API / Slack(無料プラン)
n8n 公式テンプレート: 英語版が n8n の審査を通過しました()。注記を読む
この記事で配っている日本語版は、審査を受けていません。n8n が内容を保証するものではありません。 n8n 公式のページ(英語版)を見る
外国のお客様が、LINE に英語や中国語や韓国語で問い合わせてくる。担当者は日本語しか読めない。翻訳アプリに貼って、返信をまた貼り戻す手間が、問い合わせのたびに発生します。
このワークフローは、その橋渡しをします。
- お客様の外国語は、言語を判定して日本語にして、Slack のお客様ごとのスレッドに出す(原文も一緒に)
- お客様には、その言語で受付の返事を返す
- 担当者が Slack のスレッドに日本語で書いた返信は、お客様の言語に訳して LINE に届く
- 訳した文を、送る前に仕組みで検算する。 日本語にあった数字・URL・メールが訳文に無ければ、送らない
- 送った訳文は、日本語に戻した確認を Slack に出す。担当者が誤訳に気づける
multilingual-line-desk.json をダウンロード
n8n 公式のテンプレートにも提出して(2026年10月10日)、承認されました。 n8n の画面での公開の日付は、2026年10月12日です。承認されたのは英語版で、この記事で配っている日本語版は、審査を受けていません。n8n が内容を保証するものではありません。
3本目の LINE×Slackと同じ作りの土台(LINE の署名の確認、お客様ごとの Slack スレッド、「//」の社内メモ)に、翻訳と、翻訳の確かめを足したものです。LINE の設定と Slack のアプリの作り方は、3本目と同じです。
このワークフローが守っている3つの決まり
| 決まり | どうしているか |
|---|---|
| 訳文の数字は、AI に任せない | 日本語の返信にある数字・URL・メールが、訳文にそのまま残っているかを、Code ノードで確かめる。欠けたら送らず、Slack に理由を出す |
| 逆翻訳は、原文を見せずに | 送る訳文を、別の Claude の呼び出しで日本語に戻す。この呼び出しは、日本語の原文を見ない |
| 言語が分からないときは、前の言語を使う | 「OK」や絵文字では、お客様の言語を変えない。前の言語も無いときは、Slack に「判定できません」と出し、受付の返事は日本語と英語で返す |
「訳す」だけなら簡単です。間違った訳が、お客様に届くことが、このテンプレートでいちばん避けたいことです。この記事の後半は、ほとんど、そこで見つけたことの記録です。
同じ呼び出しで書かせた逆翻訳は、原文のコピーになりがち
最初の設計では、Claude に「訳文」と「それを日本語に戻した文」を、1回の呼び出しで、一緒に書かせるつもりでした。呼び出しが1回で済むからです。
最初の試験で、気になることがありました。戻した文が、日本語の原文と、そっくり同じものが目立つのです。AI は、日本語の原文を見ながら「戻した文」を書くので、原文を書き写しているだけかもしれません。写しているなら、誤訳があっても、戻した文は原文と同じに見えて、確認になりません。
そこで、日本語の21文を、英語・中国語(簡体)・中国語(繁体)・韓国語の4言語に訳し、84件を、2つの方法で日本語に戻して、原文と比べました(Claude Haiku 4.5。空白と句読点を除いて、文字列が同じかどうか)。
| 日本語に戻した方法 | 日本語の原文と同じだった数 |
|---|---|
| 訳したのと同じ呼び出しで書かせた | 84件中 36件(43%) |
| 原文を見せない別の呼び出しで戻した | 84件中 3件(4%) |
同じ呼び出しでは、ほぼ半分が、原文のコピーでした。別の呼び出しでは、AI が訳文だけを見て戻すので、言い回しが変わります。たとえば、「ホワイトは2点」を訳した英語を戻すと、「白は2ユニット在庫があり」になりました。こうした違いが、誤訳に気づく手がかりになります。
そのため、逆翻訳は別の呼び出しにしました。呼び出しは、返信1回につき、訳す(1回)と、戻す(1回)の2回に増えます。トークン数と費用は、測っていません。
数字・URL・メールの検算
日本語の返信にある、数字・URL・メールアドレスが、訳文にも残っているかを確かめます。
- 数字は、全角を半角にそろえ、桁区切りのカンマを除いて、数字の並びを数える(「15:00」は「15」と「00」。訳文に「3 PM」とあれば、「15」が無いので止まる)
- URL とメールは、そのままの文字列が訳文に含まれているかを見る
- 訳文が空、または、まだ日本語(かなが3割を超える)なら止める
止まるときは、安全側に倒れる作りです。「15:00」を「3 PM」と訳されると、正しい訳でも止まります。そこで、翻訳の指示に、「時刻・金額・日付は、原文の数字のまま書く」と入れました。月と日は、「3月4日」を「3/4 (March 4)」のように、数字と月名を併記させます(英語など、月を名前で書く言語のとき)。
検算の部品(13の例)と、実際の翻訳(84件)で試しました。
- 13の例:時刻の書き換え(15:00 → 3 PM)、桁区切り、全角の数字、数字・URL・メールの欠落、月名への書き換え、まだ日本語のまま、空、などで、想定どおりに通る/止まる
- 84件の翻訳:止まったのは0件でした(誤って止めることはありませんでした)。ただし、この指示(時刻などを原文のまま書く)を入れた状態でしか、測っていません
- 試験用に、訳文から数字を全部消すと、「numbers missing in the translation: 15, 1200, 00」で止まり、LINE には送られず、Slack に「送らなかった理由」と「訳の案」が出ました
実機で試した結果
LINE の公式アカウントと Slack のワークスペースにつないで、2026年10月10日に試しました(n8n 2.36.8、自分のパソコンの WSL で動かし、Cloudflare のトンネルで外から届くようにしました)。
| やったこと | 結果 |
|---|---|
| 英語で「Hello, do you have the white chair in stock? I would like to visit on March 4 at 10:00.」 | 新しいスレッドができ、🌐 English (en)、原文、日本語訳(「こんにちは。白い椅子は在庫がありますか?3月4日の10:00に訪問したいのですが。」)が出た。LINE には、英語の受付の返事 |
| 「OK」 | 言語は英語のまま。日本語訳は「OK」 |
| 中国語(簡体)に切り替える | 🌐 Simplified Chinese (zh-Hans) に切り替わった。LINE には中国語の受付の返事 |
| 日本語で「ありがとうございます。よろしくお願いします。」 | 言語の行は出ず、日本語の原文だけ。受付の返事は日本語 |
| 英語に戻して「Thank you. Is parking available?」。担当者が日本語で「駐車場は3台分あります。ご来店は15:00にお待ちしています。送料は1,200円です。」 | LINE に英語で届いた(「We have parking for 3 cars. We look forward to your visit at 15:00. Shipping is 1,200 yen.」)。数字は残っている。Slack に、日本語に戻した確認(「3台の駐車スペースがあります。15:00のご来訪を…」) |
| 中国語で「请问可以刷卡吗?」。担当者が日本語で「クレジットカードが使えます。」 | 「可以使用信用卡。」が届いた。戻した確認は「クレジットカードを使用できます。」 |
LINE の署名の確認、再送の除外、受付の返事(LINE の API が受け付けた応答)も、実機で通りました。
つまずいた3つと、直し方
1. 「OK」を、「翻訳できませんでした」で上書きしていた
最初の作りでは、短い返事(「OK」、「👍」)で、Claude が日本語訳を空で返しました。それを「(could not be translated)」という文に置き換えて、お客様の記録の「最後の質問」に保存していました。お客様の本当の質問が、この文に消えます。
直し方は2つです。
- 指示に、「訳す言葉が無いもの(OK、絵文字、数字、名前)は、そのままコピーする」を足した
- それでも空のときは、「(could not be translated)」を Slack には出すが、記録には保存せず、前の値を残す
直したあと、「OK」は日本語訳も「OK」になり、記録にも「OK」が入りました。
2. 言語が分からない最初のメッセージに、日本語の受付の返事だけを返していた
最初のメッセージが「?」だけのとき、言語を判定できません。このとき、受付の返事を日本語だけで返していました。外国のお客様には読めません。
言語が分からず、前の言語も無いときだけ、日本語と英語を並べて返すようにしました。Slack には、「言語を判定できませんでした」と、原文と日本語の試訳(試みの訳)を出します。
この動きは、記録した LINE の出来事を流す試験では確かめましたが、実機の LINE では試していません。
3. Slack のリンクが、LINE にそのまま送られる
Slack に URL を書くと、<https://example.com/shipping|こちら> のような記法で n8n に届きます。3本目の作りは、Slack の本文をそのまま LINE に送ります(その結果、記法が見える形で届くかどうかは、3本目では確かめていません)。
このテンプレートでは、送る前に、<URL|表示> を URL に、<@ユーザー> を除き、& などを元に戻します。試験で、<https://example.com/shipping|こちら> を含む返信が、LINE に URL として届き、検算も、URL を見つけて通りました。
使うための設定
1. 取り込む
ダウンロードした JSON を、n8n の新しいワークフローに取り込みます。付箋に、同じ内容の手順があります。
2. Data Table を1つ作る
line_slack_threads(すべて文字列):line_user_id、slack_ts、status、last_inquiry、language、language_name。ここには、日本語訳と言語だけを残します。お客様の原文は Slack のスレッドにだけ残り、表には残りません。
3. 認証情報
| 認証情報 | 入れるもの |
|---|---|
| Header Auth(LINE) | Name は Authorization、Value は Bearer <チャンネルアクセストークン> |
| Crypto | Hmac Secret に LINE のチャンネルシークレット(署名の確認) |
| Slack API | ボットのトークン(xoxb-)と、アプリの Signing Secret |
| Anthropic | Claude Haiku 4.5 |
Slack のアプリの権限は、3本目と同じ(chat:write、channels:read、channels:history、reactions:write)です。作り方は3本目の記事にあります。
4. 設定のノード
- Config:日本語の受付の返事のもと(お客様の言語には Claude が訳す)、英語の受付の返事(言語が分からないとき用)、
low_confidence(既定 0.6) - Translation settings:訳の丁寧さ(
tone)と、用語集(glossary)。用語集は、さくら家具 = en: Sakura Furniture; zh-Hans: 樱花家具のように、日本語の用語のあとに、言語コードごとの訳を書きます。見本は架空の店の名前なので、書き換えてください
5. 公開して、URL を貼る
公開したら、Receive LINE webhook の本番 URL を LINE Developers の Webhook に、Slack message の本番 URL を Slack アプリの Event Subscriptions に貼ります(ボットのイベントは message.channels)。
使う前に知っておくこと
- お客様の言語が判定できていないスレッドでは、担当者の返信は、日本語のまま LINE に送られます。 最初の「?」だけのメッセージ、など
- お客様の質問は、翻訳のために Anthropic(Claude)に送られます。 個人情報を伏せる処理は入れていません
- LINE の通数を使うのは、担当者の返信(push)だけです。受付の返事は、無料の reply です。無料プランは月 200 通です
- Slack のボットの投稿でも、n8n が動きます。1通あたりの実行回数は、今回は数え直していません(3本目の実測では約3回でした)
- テキストだけです。画像やスタンプは無視します
- 担当者の言語は、日本語に決めてあります。 ほかの言語にするには、2つの翻訳の指示と、検算の文面を変える必要があります
確認していないこと
- 中国語と韓国語の訳の質。 筆者が読めるのは日本語と英語だけです。中国語と韓国語は、逆翻訳でしか確かめていません。母語の人に見てもらう必要があります
- ほかの言語。 タイ語、ベトナム語、スペイン語などは試していません
- 繁体字の実機。 84件の翻訳(送信なし)には入れましたが、LINE への実機の送信は、簡体字、英語、韓国語、日本語までです
- 数百通の運用。 検算が誤って止める率は、84件の試験(時刻・日付・金額・電話・URL・メールを含む21文)では0件でしたが、あなたの店の言い回しでは、もっと止まるかもしれません
- 意味が逆になる訳。 数字が残っていて、意味が逆の訳は、検算では見つかりません(記事の中の注意書き)
- 言語が判定できないときの実機の動き。 記録した出来事を流す試験だけです
- 複数の担当者が同時に返信するとき、画像や位置情報、n8n Cloud での動き
- Claude Haiku 4.5 以外のモデル。 翻訳と判定は、このモデルだけで試しました
次に読む
- 土台になった、答えが決まるものを AI が即答し、残りを担当者に回す作りなら LINE×Slack 問い合わせ対応
- 担当者の返信から学んで、返信案を出す作りなら LINE×Slack 学習する窓口
- n8n の実行回数の数え方と、実際の費用なら n8nの料金と実際の費用
- テンプレートを n8n 公式に提出した記録なら n8n公式テンプレートに提出する