眠ってたLINE公式アカウントをn8n×Claude Haikuでチャットボット化した話【実録・ハマりポイントあり】

目次

LINE公式アカウント、作ったまま放置してませんか?

「白米元気」というLINE公式アカウント、実はずっと眠らせていました。

作ったのはいいけど、手動で返信するのも面倒だし、かといって活用できるアイデアもなくて……。そんな状態がしばらく続いていたんですが、n8n × Claude Haiku × LINE Messaging APIの組み合わせで、ついにチャットボット化することができました。

今回はその構築の流れと、地味にハマったポイント3つを正直に書いていきます。非エンジニアでも再現できるように書くので、ぜひ最後まで読んでみてください。


全体の構成をざっくり説明

今回作ったチャットボットの仕組みはこんな感じです。

  • ユーザーがLINEでメッセージを送る
  • LINE Messaging APIがn8nのWebhookに転送する
  • n8nがClaude Haikuに投げて返答を生成する
  • 生成された返答をLINEのReply APIで返す

加えて、リッチメニュー(画面下部に出るボタンメニュー)もPythonで画像を自動生成してAPIでアップロードしました。友だち追加したときのウェルカムメッセージも設定済みです。

使ったツール・サービスはこちら:

  • n8n(ワークフロー自動化ツール)
  • Claude Haiku(Anthropicの軽量・高速LLM)
  • LINE Messaging API(LINE公式アカウントのAPI)
  • Python + Pillow(リッチメニュー画像の自動生成)

n8nワークフローの中身

n8nのワークフローはシンプルに3ステップです。

① Webhookノードでメッセージを受け取る

LINEからのイベントをn8nのWebhookで受け取ります。POSTリクエストで届くJSONの中に、ユーザーのメッセージや返信トークンが入っています。

// LINE WebhookのリクエストBody(抜粋)
{
  "events": [
    {
      "type": "message",
      "replyToken": "xxxxxxxxxxxxxxxx",
      "message": {
        "type": "text",
        "text": "こんにちは!"
      }
    }
  ]
}

② Claude Haikuで返答を生成する

受け取ったテキストをClaude Haikuに渡して、返答を生成します。プロンプトには「150文字以内で返答してください」という制約を入れました。LINEでの会話なので、長すぎない方が自然ですよね。

③ LINE Reply APIで返信する

Claudeが生成した返答を、LINEのReply APIで送り返します。replyTokenを使うので、対象のユーザーだけに返信が届きます。

// Reply APIのリクエスト(抜粋)
POST https://api.line.me/v2/bot/message/reply

{
  "replyToken": "xxxxxxxxxxxxxxxx",
  "messages": [
    {
      "type": "text",
      "text": "Claudeからの返答テキスト"
    }
  ]
}

リッチメニューはPython×Pillowで自動生成

リッチメニューの画像(2500×1686px)をデザインツールで作るのが面倒だったので、PythonのPillowライブラリで自動生成することにしました。

ボタンを3つ配置して、それぞれに色と文字を入れるだけのシンプルなコードです。生成した画像はLINEのAPIでアップロードして、リッチメニューのIDと紐付けるだけでOK。

from PIL import Image, ImageDraw, ImageFont

# キャンバス作成(2500×1686px)
img = Image.new("RGB", (2500, 1686), color=(255, 255, 255))
draw = ImageDraw.Draw(img)

# ボタン1:AI相談
draw.rectangle([0, 0, 833, 1686], fill=(52, 152, 219))
draw.text((416, 843), "AI相談", fill="white", anchor="mm")

# ボタン2:副業情報
draw.rectangle([833, 0, 1666, 1686], fill=(46, 204, 113))
draw.text((1249, 843), "副業情報", fill="white", anchor="mm")

# ボタン3:お問い合わせ
draw.rectangle([1666, 0, 2500, 1686], fill=(231, 76, 60))
draw.text((2083, 843), "お問い合わせ", fill="white", anchor="mm")

img.save("richmenu.png")

フォントや色を変えるだけでオリジナルのリッチメニューが作れるので、非エンジニアでもコピペで対応できます。


ここが地味にハマった!3つのポイント

ここからが本番です。公式ドキュメントを読んでいてもなかなかわからなかった、実際にハマったポイントを正直に書きます。

ハマり① チャットモードの切り替え場所が違う

「Webhookを有効にしてもボットが反応しない……」と30分くらい悩みました。

原因はチャットモードの切り替え場所。てっきりLINE Developers(developers.line.biz)で設定するものだと思っていたんですが、実際は別のサイトで設定する必要があります。

✅ 正しい設定場所:manager.line.biz(LINE公式アカウントマネージャー)
「応答設定」→「応答モード」を「Bot」に切り替える

LINE DevelopersとLINEマネージャーは別サービスで、設定が分散しているんです。最初からここを知っていれば……と思いました。

ハマり② 「自動応答メッセージ」がONのままだと競合する

Webhookを有効にして、ようやくn8nが動いた!と思ったら、ユーザーに2通のメッセージが届くという謎の現象が起きました。

1通はClaudeからのちゃんとした返答、もう1通はLINEの標準自動応答メッセージ。

これも「応答設定」の問題でした。

✅ 解決策:manager.line.biz の「応答設定」で
「自動応答メッセージ」をOFFにする

Webhookを有効にしても、自動応答メッセージはデフォルトでONのままなんです。この2つは独立して動くので、両方ONだと競合して2重送信になります。地味に気づきにくいポイントでした。

ハマり③ Webhook URL設定APIのフィールド名が「endpoint」

APIでWebhook URLをプログラムから設定しようとしたとき、こんなリクエストを書きました。

// ❌ うまくいかなかった書き方
{
  "webhookUrl": "https://example.com/webhook"
}

エラーにはならないのに、URLが反映されない……。ドキュメントをよく読んだら、正しいフィールド名は endpoint でした。

// ✅ 正しい書き方
{
  "endpoint": "https://example.com/webhook"
}

LINE Messaging APIのWebhook設定エンドポイントでは、URLのフィールド名は webhookUrl ではなく endpoint です。

こういう「エラーは出ないけど動かない」系のバグは本当に時間を取られます……。同じところでハマった方の参考になれば嬉しいです。


完成したチャットボットの動作まとめ

ハマりポイントを乗り越えて、最終的にできたものはこちらです。

  • 🎉 友だち追加時:ウェルカムメッセージを自動送信
  • 💬 テキストメッセージ送信時:Claude Haikuが150文字で返答
  • 📋 リッチメニュー:3ボタン(AI相談 / 副業情報 / お問い合わせ)

n8nのワークフロー自体はとてもシンプルで、慣れれば1〜2時間で組めます。一番時間がかかったのは、ハマりポイントの調査でした(笑)。

Claude Haikuを選んだ理由は速さとコストです。LINEのチャットは即レスが大事なので、重いモデルより軽量なHaikuの方が体験がいい。コストも格安なので、個人運用にはぴったりです。


まとめ:眠ってたアカウントが24時間働く仕組みに変わった

LINE公式アカウントって、作るのは簡単なんですが「作った後どうするか」で詰まりがちですよね。手動運用は続かないし、放置するのももったいない。

でも今回のようにn8nとClaudeを組み合わせれば、寝ていても24時間自動で返答してくれるボットが作れます。しかもコードをゴリゴリ書く必要はなくて、n8nのノードを繋いでいくだけ。

非エンジニアでも十分挑戦できる構成なので、LINE公式アカウントを持て余している方はぜひ試してみてください。

次回は、リッチメニューのボタンに応じて返答を分岐させる方法や、会話の文脈を保持する仕組みについても書いていく予定です。


🎁 実際に試してみてください!

今回作ったチャットボット「白米元気」に話しかけてみると、Claudeが返答してくれます。ウェルカムメッセージとリッチメニューも確認できますよ。

👇 友だち追加して、実際のボットを体験してみてね!


➡ LINE公式「白米元気」を友だち追加する(@421fcjbg)

感想や質問はLINEで気軽に送ってみてください。Claudeが(たぶん)いい感じに答えてくれます 😄

この記事が参考になったら、ブログのブックマークやシェアもぜひよろしくお願いします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、「白米元気」と申します。

ノースキルで副業をスタートし、2ヶ月で月10万円を達成。
その後も毎日ChatGPTとにらめっこしながら、
「どうやったら仕組みで稼げるのか?」を考え続けてきました。

そんな中出会ったのが「LLM無職」です。
AIと仕組みを作り、AIに仕事をさせる。
副業や働き方そのものを実験していく——そんな挑戦をしています。

このブログでは、わたしのLLM無職への道のりの途中で
AIを活用した具体的な方法や工夫、日々の実践内容を紹介。
ときどき家族の話もまじえながら、
読んでくれた方が「なんかおもしろそう!」と思えるような、
リアルで実験的な情報をお届けしていきます。

目次