メインコンテンツへスキップ
メニュー

サロン再来店LINE 導入パック

今週、声をかける方を。送らない理由も、一緒に。

美容室の来店履歴CSVから、来店周期を迎えた方と声かけの下書きを作ります。予約済み・案内不要・直近に連絡した方は外し、店長が文面を確認。送信はお店で個別に行います。

料金と提供範囲

1店舗 初期66,000円(税込)/必須月額なし。任意保守 月額11,000円(税込)。LINE公式アカウントの利用料は別途、店舗負担。

貴店で使えるか相談する

架空の9名で、候補と文面を作る

架空の来店履歴を使い、日付・同意・予約・連絡間隔をこの画面で判定します。下書きは定型文です。AIやLINEに接続せず、実際の送信・予約・顧客の成果は示していません。

架空の内容でお試しください。出力を確認し、実運用の条件は相談時にすり合わせます。

実際の処理記録

架空の9名を実行して、候補3名・対象外5名・要修正1名に判定。定型文の確認と保存を検証しています。送信・AI・売上効果の実証ではありません。

計算・検証を実行した記録 · この公開サンプル用に実装した候補判定プログラムを、架空の入力で実行した記録です。AI生成・LINE接続・顧客の導入実績ではありません。 · 2026-09-27T22:49:52.675Z

実行時の入力・処理・結果を見る

入力

{
  "origin": "架空のサンプル9名。実在のお客様のデータではありません。",
  "csv": "id,name,last_visit,menu,cycle_days,line_friend,consent,next_booking,last_contact\nS01,サンプルA,2026-08-01,カット+カラー,42,yes,yes,,\nS02,サンプルB,2026-08-17,カット,42,yes,yes,,\nS03,サンプルC,2026-06-20,トリートメント,60,yes,yes,,2026-08-01\nS04,サンプルD,2026-08-01,カット,42,yes,no,,\nS05,サンプルE,2026-08-01,カット,42,no,yes,,\nS06,サンプルF,2026-08-01,カット,42,yes,yes,2026-09-30,\nS07,サンプルG,2026-08-01,カラー,42,yes,yes,,2026-09-25\nS08,サンプルH,2026-09-20,カット,42,yes,yes,,\nS09,サンプルI,2026-02-30,カット,42,yes,yes,,",
  "options": {
    "today": "2026-09-28",
    "cooldown": 14,
    "salon": "サンプル美容室"
  }
}

出力

{
  "total": 9,
  "candidates": [
    {
      "id": "S03",
      "name": "サンプルC",
      "last_visit": "2026-06-20",
      "menu": "トリートメント",
      "cycle_days": "60",
      "line_friend": "yes",
      "consent": "yes",
      "next_booking": "",
      "last_contact": "2026-08-01",
      "row": 4,
      "days": 100,
      "overdue": 40,
      "reasons": [
        "最終来店から100日 / 設定周期60日"
      ],
      "draft": "サンプルC様、こんにちは。サンプル美容室です。\n前回のトリートメントでのご来店、ありがとうございました。\n次のご来店をご希望でしたら、ご都合のよい日をお知らせください。予約の空き状況を確認してご案内します。\nご案内が不要でしたら、その旨をお知らせください。"
    },
    {
      "id": "S01",
      "name": "サンプルA",
      "last_visit": "2026-08-01",
      "menu": "カット+カラー",
      "cycle_days": "42",
      "line_friend": "yes",
      "consent": "yes",
      "next_booking": "",
      "last_contact": "",
      "row": 2,
      "days": 58,
      "overdue": 16,
      "reasons": [
        "最終来店から58日 / 設定周期42日"
      ],
      "draft": "サンプルA様、こんにちは。サンプル美容室です。\n前回のカット+カラーでのご来店、ありがとうございました。\n次のご来店をご希望でしたら、ご都合のよい日をお知らせください。予約の空き状況を確認してご案内します。\nご案内が不要でしたら、その旨をお知らせください。"
    },
    {
      "id": "S02",
      "name": "サンプルB",
      "last_visit": "2026-08-17",
      "menu": "カット",
      "cycle_days": "42",
      "line_friend": "yes",
      "consent": "yes",
      "next_booking": "",
      "last_contact": "",
      "row": 3,
      "days": 42,
      "overdue": 0,
      "reasons": [
        "最終来店から42日 / 設定周期42日"
      ],
      "draft": "サンプルB様、こんにちは。サンプル美容室です。\n前回のカットでのご来店、ありがとうございました。\n次のご来店をご希望でしたら、ご都合のよい日をお知らせください。予約の空き状況を確認してご案内します。\nご案内が不要でしたら、その旨をお知らせください。"
    }
  ],
  "excluded": [
    {
      "id": "S04",
      "name": "サンプルD",
      "last_visit": "2026-08-01",
      "menu": "カット",
      "cycle_days": "42",
      "line_friend": "yes",
      "consent": "no",
      "next_booking": "",
      "last_contact": "",
      "row": 5,
      "days": 58,
      "overdue": 16,
      "reasons": [
        "案内を希望していない"
      ]
    },
    {
      "id": "S05",
      "name": "サンプルE",
      "last_visit": "2026-08-01",
      "menu": "カット",
      "cycle_days": "42",
      "line_friend": "no",
      "consent": "yes",
      "next_booking": "",
      "last_contact": "",
      "row": 6,
      "days": 58,
      "overdue": 16,
      "reasons": [
        "LINEの友だちを確認できていない"
      ]
    },
    {
      "id": "S06",
      "name": "サンプルF",
      "last_visit": "2026-08-01",
      "menu": "カット",
      "cycle_days": "42",
      "line_friend": "yes",
      "consent": "yes",
      "next_booking": "2026-09-30",
      "last_contact": "",
      "row": 7,
      "days": 58,
      "overdue": 16,
      "reasons": [
        "次回予約がある"
      ]
    },
    {
      "id": "S07",
      "name": "サンプルG",
      "last_visit": "2026-08-01",
      "menu": "カラー",
      "cycle_days": "42",
      "line_friend": "yes",
      "consent": "yes",
      "next_booking": "",
      "last_contact": "2026-09-25",
      "row": 8,
      "days": 58,
      "overdue": 16,
      "reasons": [
        "前回連絡から14日未満"
      ]
    },
    {
      "id": "S08",
      "name": "サンプルH",
      "last_visit": "2026-09-20",
      "menu": "カット",
      "cycle_days": "42",
      "line_friend": "yes",
      "consent": "yes",
      "next_booking": "",
      "last_contact": "",
      "row": 9,
      "days": 8,
      "overdue": -34,
      "reasons": [
        "設定した来店周期にまだ達していない"
      ]
    }
  ],
  "errors": [
    {
      "id": "S09",
      "name": "サンプルI",
      "last_visit": "2026-02-30",
      "menu": "カット",
      "cycle_days": "42",
      "line_friend": "yes",
      "consent": "yes",
      "next_booking": "",
      "last_contact": "",
      "row": 10,
      "days": null,
      "overdue": null,
      "reasons": [
        "最終来店日が不正、または未来日"
      ]
    }
  ],
  "trace": [
    {
      "row": 2,
      "id": "S01",
      "state": "needs_human_review",
      "days": 58,
      "reasons": [
        "最終来店から58日 / 設定周期42日"
      ]
    },
    {
      "row": 3,
      "id": "S02",
      "state": "needs_human_review",
      "days": 42,
      "reasons": [
        "最終来店から42日 / 設定周期42日"
      ]
    },
    {
      "row": 4,
      "id": "S03",
      "state": "needs_human_review",
      "days": 100,
      "reasons": [
        "最終来店から100日 / 設定周期60日"
      ]
    },
    {
      "row": 5,
      "id": "S04",
      "state": "excluded",
      "days": 58,
      "reasons": [
        "案内を希望していない"
      ]
    },
    {
      "row": 6,
      "id": "S05",
      "state": "excluded",
      "days": 58,
      "reasons": [
        "LINEの友だちを確認できていない"
      ]
    },
    {
      "row": 7,
      "id": "S06",
      "state": "excluded",
      "days": 58,
      "reasons": [
        "次回予約がある"
      ]
    },
    {
      "row": 8,
      "id": "S07",
      "state": "excluded",
      "days": 58,
      "reasons": [
        "前回連絡から14日未満"
      ]
    },
    {
      "row": 9,
      "id": "S08",
      "state": "excluded",
      "days": 8,
      "reasons": [
        "設定した来店周期にまだ達していない"
      ]
    },
    {
      "row": 10,
      "id": "S09",
      "state": "needs_correction",
      "days": null,
      "reasons": [
        "最終来店日が不正、または未来日"
      ]
    }
  ]
}

実行した処理

{
  "type": "actual-business-logic",
  "engine": "salon-line local rules v1",
  "engineSha256": "eb390eab70f25c611aa7c116b0f4c02845da75f277dfaa2e83bf6df295164edd",
  "steps": [
    "CSVの引用符・列名・行数を解析",
    "日付・状態値・顧客IDの重複を検証",
    "案内への同意・友だち状態・予約・再連絡の間隔を確認",
    "来店周期を満たす方を抽出し、超過日数順に並べる",
    "定型の下書きを作成",
    "テスト操作で1件を確認済みにし、JSON出力を検証"
  ],
  "aiUsed": false,
  "externalRequests": 0,
  "messagesSent": 0
}

人の確認

{ "status": "店長による実運用の確認は未実施", "method": "検証担当のブラウザ操作で、文面修正→チェック解除→再チェック→1件の保存を検証。店舗の担当者による承認・送信ではありません。", "automatedReviewExample": { "version": 1, "kind": "sample_review_export", "status": "reviewed_drafts_not_sent", "date": "2026-09-28", "sent": 0, "notice": "送信前に最新の同意・予約・宛先を店舗で再確認してください。このファイルから送信は行われません。", "drafts": [ { "customer_id": "S03", "name": "サンプルC", "text": "サンプルC様、こんにちは。サンプル美容室です。\n前回のトリートメントでのご来店、ありがとうございました。\n次のご来店をご希望でしたら、ご都合のよい日をお知らせください。予約の空き状況を確認してご案内します。\nご案内が不要でしたら、その旨をお知らせください。", "reviewed": true } ] }, "requiredBeforeSending": [ "最新の同意と友だち状態", "次回予約と直近の連絡", "実際の宛先との一致", "文面の内容" ] }

入力・処理・出力の記録を開く

含まれる内容

  • 1店舗・CSV1形式の項目合わせ。1回500件までの候補判定
  • メニュー別の周期設定3種類と文面のひな形3種類
  • 候補・除外理由の表示、文面修正、確認済み下書きの保存
  • 操作説明30分・検収時の調整1回・合意した動作の不具合修正30日
  • 任意保守:月1回の条件または文面調整と、月30分までの相談

ご確認いただくこと

  • CSVの書き出しと、同意・友だち・次回予約・最終連絡の最新情報は店舗で用意します。開始日は形式と運用を確認して決めます。
  • AIによる生成・自動取り込み・LINE自動送信・返信対応・予約確定は含みません。
  • 実際の送信前に、店舗で宛先・同意・予約状況を再確認します。画面のチェックは送信承認ではありません。
  • 複数店舗や別形式の追加は個別見積もり。再来店や売上の増加は保証しません。
  • 導入後は手元のファイルを利用できます。任意保守は翌月以降の更新前に停止でき、無期限の修正対応は含みません。
貴店で使えるか相談する

相談日時の選択画面が開きます。デモの入力内容は予約ページに送りません。