中級向け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 に出す。担当者が誤訳に気づける
約35秒で、仕組みの全体(音声あり。音声:VOICEVOX:雨晴はう)

multilingual-line-desk.json をダウンロード

n8n 公式のテンプレートにも提出して(2026年10月10日)、承認されました。 n8n の画面での公開の日付は、2026年10月12日です。承認されたのは英語版で、この記事で配っている日本語版は、審査を受けていません。n8n が内容を保証するものではありません。

お客様LINE(外国語)n8n言語を判定して日本語に訳す日本語を訳して数字・URL を検算し別の呼び出しで戻すSlack担当者(日本語)お客様ごとのスレッド① 外国語② 原文+日本語③ 日本語で返信④ 訳文⑤ 送った訳文を、日本語に戻した確認数字が欠けたら送らない
日本語の返信に含まれる数字・URL・メールが、訳文に残っているかを、AI ではなく仕組みで確かめる。欠けたら LINE には送らず、Slack に理由を出す。

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つです。

  1. 指示に、「訳す言葉が無いもの(OK、絵文字、数字、名前)は、そのままコピーする」を足した
  2. それでも空のときは、「(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 に、<@ユーザー> を除き、&amp; などを元に戻します。試験で、<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 以外のモデル。 翻訳と判定は、このモデルだけで試しました

次に読む

次に読む