累計 送客数

全期間 累計

契約中 店舗数
店舗

現在 稼働中

今月 送客数

ゴールド 店舗
店舗

送客 20件以上

直近30日 送客数の推移
ランク別 店舗数
送客数ランキング — Top 5
店舗ID 店舗名 担当者名 契約開始日 契約状況 累計送客数 ランク 操作
店舗データがありません
受付日時 顧客名 電話番号 希望メニュー 紹介元店舗 ステータス 集計対象 操作
予約データがありません
店舗ID 店舗名 担当者 契約状況 累計送客数 ランク 最終予約日
データがありません
💡
仕組みの概要
加盟店スタッフが LINE で顧客に紹介フォームのリンクを送信 → 顧客が回答 → Lステップが自動でこのシステムに送客データを送信、という流れです。
全体フロー
1

加盟店がLINE公式アカウントと友達になる

クリニックのLINE公式アカウントを各加盟店スタッフに共有します。スタッフはLINEアプリからQRコードで友達追加します。

2

Lステップでリッチメニュー/アンケートを設定する

Lステップ管理画面でフォーム(顧客情報収集)を作成します。フォーム送信後に「HTTPリクエスト」アクションでこのシステムへデータを転送します。

3

加盟店スタッフが顧客にフォームリンクを共有する

各加盟店専用のLINEリンクまたはフォームURLを顧客に渡します。店舗IDはLステップ側で固定値としてセットするため、スタッフはURLを渡すだけでOKです。

店舗ごとにシナリオを分けるのがポイント

Lステップで「渋谷院シナリオ」「新宿院シナリオ」のように店舗別のシナリオを作成し、それぞれのHTTPリクエストにreferral_store_id: "ST001"のように固定値を埋め込みます。

4

このシステムが自動集計・ランク更新

顧客がフォームを送信すると、Lステップ経由でリアルタイムに予約データが登録され、送客数のカウントとランク(通常→ブロンズ→シルバー→ゴールド)が自動更新されます。

LINE公式アカウント + Lステップ 連携手順

前提条件

  • LINE公式アカウントを開設済み
  • Lステップ(エルステップ)のアカウントを取得済み
  • LステップとLINE公式アカウントを連携済み

STEP 1 ─ Lステップ管理画面にログイン

lstep.app にアクセスし、管理画面にログインします。左メニューから対象の公式アカウントを選択してください。

STEP 2 ─ シナリオ(または回答アクション)でHTTPリクエストを追加

「シナリオ」→「アクション追加」→「Webhook(HTTPリクエスト)」 を選択します。
フォーム回答後に発火させる場合は「フォーム回答完了」トリガーのアクションに追加します。

STEP 3 ─ URL・メソッド・ヘッダーを設定

URL https://あなたのドメイン/api/reservations
メソッド POST
ヘッダー
Authorization: Bearer <発行したトークン>
Content-Type: application/json

STEP 4 ─ リクエストボディ(JSON)を設定

Lステップの変数({{変数名}}形式)をそのまま使えます。referral_store_idだけは店舗ごとに固定値で設定してください。

{
  "customer_name":     "{{氏名}}",
  "customer_phone":    "{{電話番号}}",
  "desired_menu":      "{{希望メニュー}}",
  "referral_store_id": "ST001",  // ← この店舗のIDを固定でセット
  "lstep_response_id": "{{回答ID}}"  // 重複防止に推奨
}

STEP 5 ─ テスト送信して確認

Lステップのテスト送信機能で実際に送信後、このシステムの「予約一覧」でデータが届いているか確認します。

⚠️
本番運用前に初期トークンを変更してください
初期トークン lstep-api-token-change-me-xxxxxxxxxxxx は必ず無効化し、新しいトークンをLステップに設定してください。
Lステップ HTTPリクエスト 設定値(コピー用)

送信先URL

https://あなたのドメイン/api/reservations

※ Cloudflare Pagesにデプロイ後の実際のURLに変更してください

認証ヘッダー

Authorization: Bearer lstep-api-token-change-me-xxxxxxxxxxxx

※ 実際に発行したトークンに変更してください

Lステップ変数の対応表

Lステップのフォーム変数名と送信フィールド名の対応です。

送信フィールド名Lステップ変数の例必須説明
customer_name{{氏名}}必須顧客氏名
referral_store_idST001(固定値)必須各店舗のIDを固定でセット
customer_phone{{電話番号}}任意顧客の電話番号
desired_menu{{希望メニュー}}任意希望施術メニュー
referral_store_name{{店舗名}}または固定任意紹介元店舗名
lstep_response_id{{回答ID}}推奨重複登録防止
notes{{備考}}任意自由メモ

JSONボディ テンプレート一覧

店舗ごとに referral_store_idreferral_store_name だけ変えてコピーして使います。

標準テンプレート(推奨)

{
  "customer_name":     "{{氏名}}",
  "customer_phone":    "{{電話番号}}",
  "desired_menu":      "{{希望メニュー}}",
  "referral_store_id": "ST001",
  "referral_store_name": "渋谷院",
  "lstep_response_id": "{{回答ID}}"
}

シンプルテンプレート(氏名・電話のみ)

{
  "customer_name":     "{{氏名}}",
  "customer_phone":    "{{電話番号}}",
  "referral_store_id": "ST001"
}

フルテンプレート(全フィールド)

{
  "customer_name":       "{{氏名}}",
  "customer_phone":      "{{電話番号}}",
  "desired_menu":        "{{希望メニュー}}",
  "referral_store_id":   "ST001",
  "referral_store_name": "渋谷院",
  "reservation_status": "pending",
  "lstep_response_id":  "{{回答ID}}",
  "notes":               "{{備考}}"
}
エンドポイント一覧
POST /api/reservations      Lステップ Webhook受信(要認証)
GET  /api/health            疎通確認(認証不要)
GET  /api/test-connection   接続テスト(認証不要)
GET  /api/dashboard         ダッシュボードデータ
GET  /api/stores            加盟店一覧
GET  /api/reservations      予約一覧(ページング対応)
POST /api/reservations/manual 手動登録(管理画面用)
GET  /api/stats             店舗別集計
GET  /api/tokens            トークン一覧
POST /api/tokens            トークン発行

POST /api/reservations フィールド仕様

フィールド名必須説明・例

認証方式(3種類すべてサポート)

方式設定箇所値の形式
Bearer ヘッダー(推奨)HTTPヘッダーAuthorization: Bearer lstep-xxx...
クエリパラメータURL末尾?token=lstep-xxx...
ボディフィールドJSON/フォームの本文"token": "lstep-xxx..."

ランク自動判定ロジック

入力テンプレートを選ぶ

よく使うパターンをワンクリックでフォームに自動入力できます。入力後に内容を確認・修正してから送信してください。

送客情報を入力

空欄の場合は登録時刻が自動入力されます

最近の手動登録(直近10件)
まだ手動登録はありません
新しいAPIトークンを発行

このトークンの使用目的を入力してください(管理用メモ)

発行済みトークン
トークンがありません
ℹ️
トークンの使い方 Lステップの「HTTPリクエスト」アクションで、 Authorization: Bearer <token> ヘッダーにセットしてください。 店舗ごとに個別トークンを発行することで、アクセス元の管理が容易になります。