名前は似ていますが、LINE WORKSは会社の中で使うビジネスチャット、LINE公式アカウントはお客さまとつながるための窓口で、役割が違います。「LINE WORKSにすれば生徒とのやりとりも全部まとまる」とはなりません。この記事では、個人のLINEを含めた3つの違い、LINE WORKSの料金、個人のLINEとトークする外部トーク連携、顧客対応をどちらで受けるか、公式アカウントの問い合わせをLINE WORKSに知らせる仕組みまでを、「サンプル料理教室」の例で書きます。教室の公式アカウントは開設済みとします。
この記事の内容
先に決めること
ここを曖昧にしたまま道具を入れると、半年後に「生徒の連絡先がスタッフ個人のスマホに散らばっている」「どこに記録が残っているか誰も分からない」という状態になります。
- 誰と話すための道具か。スタッフ同士の連絡(シフト、仕入れ、レッスンの準備)と、生徒とのやりとり(予約、問い合わせ、お知らせ)を分けて考えます。前者がLINE WORKS、後者がLINE公式アカウントの領分です
- 生徒から見た窓口を「教室」にするか「担当スタッフ個人」にするか。公式アカウントは教室の名前で1つの窓口になります。LINE WORKSの外部トーク連携は、スタッフ1人ずつがLINEの友だちになる形です
- 一斉に送る必要があるか。休講のお知らせ、新しいレッスンの案内、体験後の入会案内を送るなら公式アカウントが要ります
- 記録を誰が見られる状態にするか。スタッフが辞めたときに生徒とのやりとりが会社に残るかどうかは、道具の選び方で決まります
- 問い合わせの通知をどこで受けるか。スタッフがふだん開いているのがLINE WORKSなら、公式アカウントの通知をそこへ流す仕組みを作る価値があります
個人のLINE・LINE公式アカウント・LINE WORKSの違い
3つとも同じLINEヤフーグループの名前がついていますが、LINE WORKSはLINE WORKS株式会社が提供する別のサービスで、アカウントも管理画面も別です(2026年10月時点)。
| 比べる点 | 個人のLINE | LINE公式アカウント | LINE WORKS |
|---|---|---|---|
| 誰と話す道具か | 家族・友人との私的なやりとり | お客さま(友だち)と教室とのやりとり | 社内のメンバー同士。設定すれば社外のLINEユーザーとも |
| 相手から見た名前 | 本人の名前 | 教室のアカウント名 | スタッフの名前と会社(ワークスグループ)名 |
| 料金 | 無料 | 月0円・5,000円・15,000円(税別)の3プラン。違いは送れるメッセージ通数 | フリー0円、スタンダード1人月450円、アドバンスト1人月800円(年額契約・税別) |
| 管理者の管理 | なし。本人だけのもの | 「権限管理」で管理画面に入れる人と権限を決める。1アカウント100人まで | 管理者画面でメンバーの追加・削除、外部とのトーク権限、Botを管理 |
| トークの記録 | 本人のアカウントに残る。会社からは見えない | チャット履歴は無料で半年、チャットProオプションで5年 | 管理者画面の監査ログで確認できる。保存期間はフリー2週間、有償プラン6か月。アーカイブ(トーク)オプションで最長10年 |
| 一斉配信・自動応答 | なし | あいさつメッセージ、応答メッセージ、一斉配信、ステップ配信、リッチメニュー | Botを作ればできるが、LINEユーザーが入ったトークルームではBotが使えない |
| スタッフが辞めたとき | やりとりは本人のスマホと一緒に出ていく | 権限を外せば、やりとりは教室に残る | 会社のアカウントなので、社外とのトーク履歴は管理者画面の「監査/ログ」で検索できる |
個人のLINEで生徒対応をしている教室は少なくありませんが、LINEの利用規約は順守事項として、営業・宣伝・広告・勧誘その他営利を目的とする行為(LINEヤフーが認めたものを除く)を挙げています。教室の業務連絡を個人のLINEに乗せ続けるのは、規約の面でも、記録が会社に残らない面でも避けるべきです。
LINE WORKSは、すでに持っているLINEアカウントをログイン情報として使うこともできます。ただし公式の料金ページに書かれているとおり、LINEでログインしても個人のLINEのトークや友だちがLINE WORKSに共有されることはありません。「LINE WORKSを入れたら個人のLINEのやりとりもまとめて見られる」という期待は外れます。
LINE WORKSの料金プラン
公式の料金ページに出ている数字だけを並べます(2026年10月時点・税別)。
| プラン | 年額契約(1人あたり月額) | 月額契約(1人あたり月額) | メンバー数 | 共有ストレージ | 主な違い |
|---|---|---|---|---|---|
| フリー | 0円 | 0円 | 30人まで | 合計5GB | トーク・掲示板・カレンダー・タスク・アンケート・アドレス帳。グループ通話は4人・60分まで。管理者機能は制限あり。監査ログ2週間(ダウンロード不可) |
| スタンダード | 450円 | 540円 | 無制限 | 1TB+1人1GB | 通話200人まで、管理者機能、カスタマーサポート・SLA保証。監査ログ6か月(ダウンロード可) |
| アドバンスト | 800円 | 960円 | 無制限 | 100TB+1人1GB | スタンダードの全機能に加えてメールとDrive |
オプションは、スタンダードとアドバンストで追加できます。この記事に関係するものは次のとおりです。
| オプション | 年額契約 | 月額契約 | 中身 |
|---|---|---|---|
| アーカイブ(トーク) | 1人月300円 | 1人月360円 | トークの送受信データを最長10年保存 |
| Drive(スタンダード向け) | 1人月100円 | 1人月120円 | ファイルの保管と共有 |
| CXトーク(5席・対応者5名まで) | 月3,000円 | 月3,600円 | LINE公式アカウントやメールの問い合わせをチームで対応。30席は月15,000円、100席は月40,000円(年額契約) |
選ぶときに引っかかる決まりがいくつかあります。
- 1つの契約で使えるプランは1つだけです。スタッフごとにフリーとスタンダードを混ぜることはできません
- アップグレードはいつでもできますが、下のプランへのダウングレードと、アップグレードの取り消しはできません
- 年額契約はライセンス数(定員)で請求され、ライセンスを減らせるのは契約更新のときだけです。月額契約は実際に登録しているメンバー数で計算されます
- 有償プランは30日間の無料トライアルがあります
- フリープランは1年間(365日)一度も使われないと自動で退会になります
サンプル料理教室のスタッフは6名なので、フリープランの30人に収まります。記録を長く残したい、管理者の機能をきちんと使いたい、CXトークを使いたい、のどれかが出てきたらスタンダードを考えます。
LINE WORKSから個人のLINEとトークする(外部トーク連携)
LINE WORKSには、社外の人が使っている個人のLINEとトークできる機能があります。公式ヘルプでは「外部トーク連携」「LINEユーザーとのトーク」と呼んでいて、すべてのプランで使えます。
仕組みの要点は3つです。
- LINEユーザーの側から、先にLINE WORKSのメンバーを友だちに追加してもらう必要があります。LINE WORKSのメンバーから相手を探して話しかけることはできません
- LINEユーザーのLINEアプリでは、友だち追加したLINE WORKSのメンバーは友だちリストの「公式アカウント」の中に表示されます
- LINE WORKSに登録した直後は使えません。管理者画面の設定は登録時「許可しない」になっていて、登録から168時間(7日)たってから「許可」に変えられます。この期間はプランをアップグレードしても早まりません
管理者がLINEユーザーとのトークを許可する(PC・管理者画面)
- LINE WORKSの管理者画面を開き、左のメニューから「サービス」を開いて「トーク」を選ぶ
- 「外部ユーザーとのトーク」を選ぶ
- LINEユーザーとのトークの「連携設定」の右のアイコンを選び、「許可」にする
- 「連携機能の利用権限」で「すべてのメンバー」か「特定のメンバー」を選ぶ
- 「特定のメンバー」にした場合は「管理」を押し、「利用メンバーの管理」画面の「LINE」タブで「追加」からメンバーを選んで「OK」を押す
- 必要なら「あいさつメッセージを自動送信」と「ファイル送信・添付」を設定する。「ファイル送信・添付」をONにすると、LINEユーザーが参加したトークルームでカメラ・連絡先・Drive(フォルダ)が使えなくなる
- 画面上部の「保存」を押す
「許可」から「許可しない」に戻すと、メンバーのトークルーム一覧から既存のLINEユーザーとのトークルームが消え、LINEユーザーの側にはメンバーが退会したユーザーとして表示されます。過去のトーク履歴は管理者画面の「監査/ログ」で検索できます。試しに許可して戻す、という操作は相手側に見えるので避けます。
スタッフがLINEユーザーに友だち追加してもらう
スマホ(LINE WORKSのモバイル版アプリ)の場合です。
- 画面下の「ホーム」をタップする
- 自分の名前かプロフィール写真をタップする
- 「QRコード」をタップして相手に読み取ってもらう。離れている相手には「保存」で画像を保存して送る
- IDで追加してもらう場合は、「ID」の横のアイコンでコピーし、SMSやメールで送る
PC(ブラウザ版)の場合です。
- 画面右上のプロフィール写真をクリックする
- 「外部ユーザーとトーク」をクリックする
- 「自分のトークID」をコピーするか、「招待用リンク」をコピーするか、「QRコード保存」でQRコードを保存する
- コピーしたものをメールなどで相手に送る
相手が友だち追加すると、LINEとLINE WORKSの両方に自動でトークルームができます。LINE WORKS側のトークルーム一覧では、LINEユーザーとのトークルームにLINEのアイコンがつきます。
公式ヘルプには、LINE連携の機能はLINEヤフーのサービスの仕様により、連携するメンバーの情報が検索エンジンを含めインターネット上で公開される場合がある、という注意書きがあります。スタッフの本名を出したくない場合は、LINE WORKSに登録する名前とプロフィール写真を先に決めておきます。
できること・できないこと
| 項目 | 公式ヘルプの内容 |
|---|---|
| LINE WORKSからLINEへ送れるもの(スマホ) | テキスト、スタンプ・絵文字、写真・動画、位置情報。端末内のファイルはAndroidのみ。Drive内のファイルはアドバンストか、Driveオプションを契約したスタンダード |
| LINE WORKSからLINEへ送れるもの(PC版・ブラウザ) | テキスト、スタンプ・絵文字、端末内のファイル、Driveやグループフォルダのファイル |
| LINEからLINE WORKSへ送れるもの | テキスト、スタンプ・絵文字、写真・動画、位置情報、ボイスメッセージ。端末内のファイルはAndroidのみ |
| スタンプ | LINE WORKSのオリジナルスタンプと、両方に入っているLINEスタンプは送れる。それ以外のLINE社のスタンプやクリエイターズスタンプは、LINE WORKSからは送れない(表示はできる) |
| 3人以上のトーク | 複数人トークルームなら可能。LINEユーザーと社内メンバー合わせて最大100名 |
| LINEユーザーを含むグループ | LINE WORKSの「グループ」は作れない。1:1か複数人トークルームで話す |
| LINEのグループトークへの参加 | LINEユーザーから招待されれば参加できる(参加・不参加は選べず強制参加、あとで退出は可能)。最大100名。LINEのノートやアルバムは使えない |
| Bot | LINEユーザーや外部のLINE WORKSユーザーを含むトークルームでは使えない |
| 顧客/取引先への登録 | トークしているLINEユーザーをアドレス帳の顧客/取引先に登録できる |
LINEユーザーが複数人トークルームから退室しても、そのトークルームは「LINEユーザーとの複数人トークルーム」のままで、LINE WORKSのメンバー同士で使える機能の一部が使えません。社内の連絡用のトークルームにLINEユーザーを一度入れると、あとから戻せないと考えておきます。
外部トーク連携は、あくまでスタッフ1人とお客さま1人(または少人数)のトークです。公式アカウントにあるような、友だち全員への一斉配信、あいさつメッセージ、リッチメニュー、ステップ配信、ショップカードといった機能は、LINE WORKSのLINEユーザーとのトークの説明には出てきません。
顧客対応はLINE公式アカウントとLINE WORKSのどちらで受けるか
判断の軸は「窓口が教室に紐づくか、人に紐づくか」と「一斉に送るか」の2つです。
| 状況 | 向く道具 | 理由 |
|---|---|---|
| お客さまが教室・店舗という単位で連絡してくる(予約、問い合わせ、お知らせ) | LINE公式アカウント | 窓口が教室の名前で1つ。スタッフが入れ替わっても窓口は変わらない |
| 休講やキャンペーンを全員に送る、体験後に入会案内を順番に送る | LINE公式アカウント | 一斉配信・ステップ配信・リッチメニューがある |
| 法人の取引先と担当者どうしで個別にやりとりする(仕入れ先、出張レッスンの依頼元の担当者) | LINE WORKSの外部トーク連携 | 相手は個人のLINEのまま、こちらは会社のアカウントで記録が会社に残る |
| 問い合わせを複数のスタッフで分担し、担当・対応状況を管理したい | LINE公式アカウントのチャット。LINE WORKSで受けたいならCXトーク | 公式アカウントのチャットにも担当者の設定がある。CXトークは公式アカウントの問い合わせをLINE WORKSの中で受けて、未対応・対応中・対応完了で管理できる |
サンプル料理教室は、生徒とのやりとりはすべて公式アカウントで受けます。リッチメニューから体験レッスンの予約、前日のリマインド、体験後の入会案内まで公式アカウントで組んでいるので、ここをLINE WORKSに移す理由はありません。LINE WORKSの外部トーク連携を使うのは、食材の仕入れ先の担当者や、企業向けの出張レッスンを頼んでくる会社の担当者とのやりとりだけです。
実際に運用していると、「スタッフが自分のLINE WORKSのQRコードを生徒に渡してしまい、その生徒だけ公式アカウントではなくスタッフ宛てに連絡してくる」ということが起きます。生徒向けに配るQRコードは公式アカウントのものだけ、と決めて、スタッフにも伝えておきます。
CXトークという選択肢
LINE WORKSには、問い合わせ窓口をチームで受ける「CXトーク」というオプションがあります。スタンダードかアドバンストにCXトークを追加した場合だけ使えます。管理者画面の「サービス」>「CXトーク」で窓口アカウントを作り、「チャネル連携」タブの「LINE公式アカウント」に、LINE Developersで確認できるチャネルID・チャネルシークレット・ベーシックID・チャネルアクセストークンを入力します。発行されたWebhook URLをLINE Developersの「Webhook URL」に貼って検証すると、公式アカウントに届いたメッセージがCXトークのトークルームに入ります。
CXトークは返信までLINE WORKSの中で完結できるのが強みですが、注意点が2つあります。顧客と対応者は1対1でしか会話できず、画像・動画・添付ファイルはリンクの形で顧客に送られます。もう1つは、公式アカウントのWebhook URLをCXトークが使うことです。Webhook URLは1つのチャネルに1つしか設定できないので、CXトークにつなぐと、同じ公式アカウントでn8nやGAS、L Harnessなど別の仕組みにWebhookを受けさせることはできなくなります。
サンプル料理教室の組み方
スタッフ同士の連絡はLINE WORKSのフリープランにまとめます。6名全員を招待し、「スタッフ連絡」の複数人トークルームでシフトや仕入れの連絡をします。レッスンの予定はLINE WORKSのカレンダーに入れます。生徒とのやりとりは公式アカウントのまま変えません。
残る問題は通知です。スタッフがふだん見ているのはLINE WORKSなので、公式アカウントに問い合わせが来ても気づくのが遅れます。公式アカウントの問い合わせをLINE WORKSに知らせる方法は4つあります。
| 方法 | 作る手間 | かかる費用 | LINE WORKSでできること | 向く教室 |
|---|---|---|---|---|
| LINE公式アカウントアプリの通知を各スタッフのスマホで受ける | なし | なし | LINE WORKSには届かない。スマホに公式アカウントアプリの通知が出る | まずはこれで足りるか試す |
| Messaging APIのWebhookからLINE WORKSのBotで知らせる | GASを1本書く | LINE WORKSはフリーで可。GASは無料枠 | 「スタッフ連絡」に通知が届く。返信は公式アカウントの管理画面で | スタッフ全員がLINE WORKSを開いていて、返信は担当者が管理画面でする |
| CXトークにLINE公式アカウントを連携する | 管理者画面で設定 | スタンダード以上+CXトーク(月3,000円〜) | 受信から返信、担当・ステータス管理までLINE WORKSの中 | 問い合わせが多く、返信もLINE WORKSで完結させたい |
| L Harnessの送信Webhookから中継する | L Harnessの導入+中継の仕組み | ソフト0円+Cloudflareの利用量 | Botで通知が届く。返信はL Harnessのオペレーターチャットで | 配信やフォームもL Harnessで自前で持ちたい |
1つ目は設定だけで済みます。公式アカウントアプリの「ユーザー設定」>「通知」で通知をオンにし、「通知を受け取るアカウント」で教室のアカウントをオンにします。応答時間外はチャットの通知が来ないので、時間外にも知りたい場合は「通知を受け取る項目」の「応答時間外の新着メッセージ」をオンにします。
サンプル料理教室は2つ目を選びました。スタッフは6名でLINE WORKSはフリープランのまま使え、問い合わせはそれほど多くないので、CXトークの月額をかけるほどではないからです。返信は、その日の受付担当が公式アカウントの管理画面(LINE Official Account Manager)のチャットから行います。
Botで「スタッフ連絡」に通知する手順
全体の流れは、公式アカウントにメッセージが届く → Messaging APIのWebhookでGASが受け取る → GASがLINE WORKSのBot APIで「スタッフ連絡」のトークルームに送る、です。公式アカウントのチャットとWebhookは併用できるので、管理画面での手動返信はそのまま続けられます。
LINE WORKS側の準備です(PC)。
- LINE WORKSのDeveloper Consoleにログインし、「API」でアプリ(Client App)を作る
- アプリの設定でScopeに
botを追加する - 同じ画面でService Accountを発行し、Private Keyをダウンロードする。Client ID・Client Secret・Service Accountの値を控える
- Developer Consoleの「Bot」で「登録」を押し、Bot名と説明を入れる。Callback URLはオフでよい。「トークルームへの招待」は複数人のトークルームで使える設定にする
- 保存後に表示されるBot IDを控える
- LINE WORKSの管理者画面で「サービス」>「Bot」を開き、「Bot追加」から今のBotを選んで追加する
- LINE WORKSのアプリで「スタッフ連絡」のトークルームにBotを招待する
- トークルームのメニューにある「チャンネル ID」を控える
Service Accountは、発行と同時に管理者権限が付き、管理者に通知が届きます。課金対象のメンバーには数えられません。Private Keyはこの仕組みの合鍵なので、スプレッドシートのセルには書かず、GASのスクリプトプロパティに入れます。
LINE(公式アカウント)側の準備です。
- 公式アカウントの管理画面で「設定」>「Messaging API」からMessaging APIを有効にする(済んでいれば不要)
- LINE Developersコンソールでチャネルアクセストークン(長期)を発行して控える
- スプレッドシートを作り、シート名を「問い合わせ」にする
- 「拡張機能」>「Apps Script」を開き、下のコードを貼る
- 「プロジェクトの設定」の「スクリプト プロパティ」に、
LINE_CHANNEL_ACCESS_TOKEN、WORKS_CLIENT_ID、WORKS_CLIENT_SECRET、WORKS_SERVICE_ACCOUNT、WORKS_PRIVATE_KEY、WORKS_BOT_ID、WORKS_CHANNEL_IDを入れる - 「デプロイ」>「新しいデプロイ」で種類を「ウェブアプリ」にし、アクセスできるユーザーを「全員」にしてデプロイする
- 表示されたウェブアプリのURLを、LINE Developersコンソールの「Messaging API設定」タブの「Webhook URL」の「編集」から入れて「更新」し、出てきた「検証」を押す
- 同じタブで「Webhookの利用」がオンになっているか確かめる
- 公式アカウントの管理画面の「設定」>「応答設定」で、チャットとWebhookがどちらもオンになっているのを確かめる


コードです。メッセージが届くたびに、スプレッドシートに1行残し、表示名と本文の先頭をLINE WORKSに送ります。
const PROPS = PropertiesService.getScriptProperties();
function doPost(e) {
const body = JSON.parse(e.postData.contents);
body.events.forEach(function (ev) {
if (ev.type !== 'message' || ev.source.type !== 'user') return;
const name = getDisplayName(ev.source.userId);
const text = ev.message.type === 'text' ? ev.message.text : '(' + ev.message.type + 'が届きました)';
SpreadsheetApp.getActive().getSheetByName('問い合わせ')
.appendRow([new Date(ev.timestamp), ev.source.userId, name, text]);
notifyWorks('公式アカウントに問い合わせが届きました\n' + name + ':' + text.slice(0, 200) +
'\n返信は管理画面のチャットからお願いします');
});
return ContentService.createTextOutput('ok');
}
function getDisplayName(userId) {
const res = UrlFetchApp.fetch('https://api.line.me/v2/bot/profile/' + userId, {
headers: { Authorization: 'Bearer ' + PROPS.getProperty('LINE_CHANNEL_ACCESS_TOKEN') },
muteHttpExceptions: true,
});
if (res.getResponseCode() !== 200) return '(名前を取得できませんでした)';
return JSON.parse(res.getContentText()).displayName;
}
function b64url(data) {
return Utilities.base64EncodeWebSafe(data).replace(/=+$/, '');
}
function getWorksToken() {
const cache = CacheService.getScriptCache();
const cached = cache.get('works_token');
if (cached) return cached;
const now = Math.floor(Date.now() / 1000); // 秒(10桁)。ミリ秒にしない
const head = b64url(JSON.stringify({ alg: 'RS256', typ: 'JWT' }));
const claims = b64url(JSON.stringify({
iss: PROPS.getProperty('WORKS_CLIENT_ID'),
sub: PROPS.getProperty('WORKS_SERVICE_ACCOUNT'),
iat: now,
exp: now + 3600,
}));
const key = PROPS.getProperty('WORKS_PRIVATE_KEY').replace(/\\n/g, '\n');
const sig = b64url(Utilities.computeRsaSha256Signature(head + '.' + claims, key));
const res = UrlFetchApp.fetch('https://auth.worksmobile.com/oauth2/v2.0/token', {
method: 'post',
payload: {
assertion: head + '.' + claims + '.' + sig,
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
client_id: PROPS.getProperty('WORKS_CLIENT_ID'),
client_secret: PROPS.getProperty('WORKS_CLIENT_SECRET'),
scope: 'bot',
},
});
const token = JSON.parse(res.getContentText()).access_token;
cache.put('works_token', token, 3000); // 50分。トークンの有効期限より短く
return token;
}
function notifyWorks(text) {
const url = 'https://www.worksapis.com/v1.0/bots/' + PROPS.getProperty('WORKS_BOT_ID') +
'/channels/' + PROPS.getProperty('WORKS_CHANNEL_ID') + '/messages';
UrlFetchApp.fetch(url, {
method: 'post',
contentType: 'application/json',
headers: { Authorization: 'Bearer ' + getWorksToken() },
payload: JSON.stringify({ content: { type: 'text', text: text } }),
muteHttpExceptions: true,
});
}
Private Keyをスクリプトプロパティに入れるときは、-----BEGIN PRIVATE KEY----- から -----END PRIVATE KEY----- までを、改行を \n に置き換えて1行で入れます。コードの中で改行に戻しています。
動作の確かめ方は、スタッフの個人のLINEから公式アカウントに「テストです」と送り、「スタッフ連絡」に通知が届くこと、スプレッドシートに1行増えること、管理画面のチャットにも同じメッセージが届いていることの3つを見ます。通知の文面は短くしています。トークルームのプッシュ通知はスマホのロック画面に出るので、生徒の相談内容が長々と表示されないようにするためです。
この形の弱点も書いておきます。GASのウェブアプリはリクエストヘッダーを受け取れないので、LINEが求めているWebhookの署名検証ができません。届いた内容をそのまま信じて処理を進める(予約を確定するなど)用途には使わず、「知らせる」「記録する」にとどめます。署名検証まで入れるなら、受け口をn8nやCloudflare Workersにします。
応用
- 体験レッスンの予約が入ったときも同じBotで知らせる。予約をスプレッドシートやkintoneに入れている仕組みから
notifyWorks()を呼べば、通知先は1つにまとまります - 担当を決める。公式アカウントのチャットには担当者の設定があり、担当者を決めていないと最初に返信したメンバーが担当になります。通知を見た人が先に担当を自分にしてから返信すると、二重返信が防げます
- 通知を受付担当1人にだけ送る。トークルームではなくメンバー個人に送るAPI(
/bots/{botId}/users/{userId}/messages)があるので、曜日ごとの担当者にだけ送ることもできます - n8nで組む。受け口をn8nにすればLINEの署名検証を入れられます。JWTはCodeノードで作り、送信はHTTP Requestノードで行います
- L Harnessで組む。L Harnessにはメッセージ受信などのイベントで外部URLにPOSTする送信Webhookがあります。Bot APIにはJWTで取ったトークンが要るので、受け先にGASやn8nを置いて中継します
できないことと、その代わり
| できないこと | 代わりの手 |
|---|---|
| LINE WORKSから公式アカウントの友だち全員に配信する | 配信は公式アカウントで行う。LINE WORKSは社内とのやりとりに使う |
| BotをLINEユーザーが入ったトークルームで動かす | Botは社内メンバーだけのトークルームに置き、社外とのやりとりには入れない |
| Botの通知から公式アカウントの問い合わせに返信する | 返信は管理画面かLINE公式アカウントアプリのチャットで行う。LINE WORKSの中で返信まで完結させたいならCXトーク |
| 公式アカウントのWebhookを2つの仕組みで同時に受ける | Webhook URLは1つだけ。受け口を1つ決めて、そこから他へ中継する |
| LINE WORKSのプランを下げる | ダウングレードはできない。まずフリーか30日トライアルで試してから上げる |
| 個人のLINEのトーク履歴をLINE WORKSや公式アカウントに移す | 移す機能はない。切り替え時に生徒へ公式アカウントの友だち追加を案内し、以後はそちらで受ける |
| 公式アカウントのチャット履歴を無料で半年より長く残す | チャットProオプション(月3,000円・税別)で5年。スプレッドシートに1行ずつ残す仕組みでも代わりになる |
よく詰まるところ
| 症状 | 原因 | 直し方 |
|---|---|---|
| 管理者画面でLINEユーザーとのトークを「許可」に変えられない | LINE WORKSへの登録から168時間(7日)たっていない | 7日たってから設定する。アップグレードしても早まらない |
| スタッフのプロフィールにQRコードやオンライン名刺が出ない | 管理者がLINE連携を許可していないか、そのスタッフが利用メンバーに入っていない | 「外部ユーザーとのトーク」で連携設定と「利用メンバーの管理」の「LINE」タブを確かめる |
| IDの横にコピーのアイコンが出ない | 管理者画面でテキスト情報のコピーが制限されている | 管理者がコピーの制限を解除するか、QRコードで追加してもらう |
| 生徒が「友だち追加したのにトークが見つからない」と言う | LINE WORKSのメンバーは、LINEの友だちリストの「公式アカウント」の中に入る | 友だちリストの「公式アカウント」を開いてもらう |
| LINE WORKSからLINEスタンプが送れない | LINE社が著作権を持つスタンプの一部やクリエイターズスタンプは、LINE WORKSから送れない | LINE WORKSのオリジナルスタンプか、両方に入っているスタンプを使う |
| Botを招待したトークルームで通知が届かない | LINEユーザーや外部のLINE WORKSユーザーが入っているトークルームではBotが使えない | 社内メンバーだけのトークルームを別に作り、そこにBotを入れる |
| CXトークをつないだら、GASやn8nにWebhookが届かなくなった | Webhook URLが1つしか設定できず、CXトークのURLに置き換わった | どちらで受けるかを決める。両方要るなら、受け口を1つにして中継する |
| アクセストークンの取得でエラーになる | JWTの iat・exp をミリ秒で入れた、日本時間で計算した、exp を iat の60分より先にした | 秒(10桁)のUNIX時間で、毎回その場の時刻から作り、exp は60分以内にする |
| 別のツールを入れたら、それまでの仕組みがLINEに送れなくなった | 長期のチャネルアクセストークンは1チャネル1つで、再発行すると前のトークンが無効になる | 再発行したトークンを、同じチャネルを使う全部の仕組みに入れ直す |
| 夜に来た問い合わせの通知がスマホに来ない | 公式アカウントアプリは応答時間外のチャット通知を出さない | アプリの「通知を受け取る項目」で「応答時間外の新着メッセージ」をオンにする。Botの通知は時間に関係なく届く |
次にやること
- 公式アカウントそのものの役割を整理し直すなら「LINE公式アカウントとは:個人のLINEとの違い、できること、向く会社」
- 通知を受けたあとの返信の分担や、手動返信と自動応答の切り替えを決めるなら「チャットの運用:手動返信と自動応答の切り替え、通知、対応漏れを防ぐ」
- この記事の通知をGASではなくn8nで組むなら「LINEとn8n・Make・Zapierをつなぐ:コードを書かずに自動化する」
- 管理画面に入れるスタッフと権限を決めるなら「LINE公式アカウントの管理画面:ログイン・権限・複数人での運用」