// Sygnal LP sections — narrative: 共感 → 原因 → Sygnalとは → AI×PM → 改善履歴 → 画面 → 比較 → 導入 → 料金 → FAQ const { DatabaseMock, AIMessageMock, InsightsMock, SalesMock } = window.SygnalMocks; const Chk = ({ s = 14, c = "#111" }) => ( ); const Cross = ({ s = 14, c = "#999" }) => ( ); const Arw = ({ dir = "right", c = "#ccc", s = 20 }) => ( ); /* ───────── ② 共感チェックリスト ───────── */ const Checks = () => { const items = [ { t: "営業しているのに、商談が増えない", d: "送信数は増えているのに、パイプラインの中身は去年とほぼ同じ。" }, { t: "営業代行に依頼したが、成果が見えない", d: "何件動いたかは報告されるが、なぜ効かなかったのかが分からない。" }, { t: "広告費だけが増えていく", d: "CPAは改善提案されるが、そもそも狙う市場が正しいのか判断できない。" }, { t: "どこを改善すればいいか分からない", d: "業界か、規模か、文面か、タイミングか。仮説の当たりがつかない。" }, { t: "営業が担当者の経験に依存している", d: "できる人のやり方が言語化されず、退職と同時に消えていく。" }, { t: "毎年、同じ営業を繰り返している", d: "市場も競合も変わっているのに、営業のやり方だけが変わっていない。" }, ]; return (
{items.map((it, i) => (

{it.t}

{it.d}

))}
); }; /* ───────── ③ ループ比較 ───────── */ const Loops = () => { const wrap = { display: "grid", gridTemplateColumns: "1fr 1fr", gap: 22 }; const card = (dim) => ({ border: "1px solid " + (dim ? "#ececec" : "#111"), borderRadius: 18, padding: "34px 30px 30px", background: dim ? "#fafafa" : "#fff", boxShadow: dim ? "none" : "0 20px 50px -24px rgba(17,17,17,.22)", }); const nodeS = (dim, strong) => ({ padding: "11px 16px", borderRadius: 8, fontSize: 13.5, fontWeight: strong ? 600 : 500, background: dim ? "#fff" : strong ? "#111" : "#fff", color: dim ? "#999" : strong ? "#fff" : "#111", border: "1px solid " + (dim ? "#e8e8e8" : strong ? "#111" : "#ddd"), textAlign: "center", }); const Row = ({ children }) =>
{children}
; return (
{/* 多くの会社 */}
ほとんどの会社

実行して、終わる。

結果は残るが、次の営業には反映されない。だから来月も同じ精度で送ることになる。

営業する
反応が出る
そのまま
また営業する
反応率は、何ヶ月経っても横ばい
{/* 成果が出る会社 */}
成果が出る会社

実行して、学んで、変える。

1回の営業が、次の営業の精度を上げる材料になる。回すたびに勝ち筋が濃くなる。

営業する
反応が出る
分析する
改善する
また営業する
回すたびに、勝ち筋が溜まっていく
); }; /* ───────── ④ Sygnalの改善ループ(ダーク) ───────── */ const LoopBig = () => { const steps = [ { n: "01", t: "企業データベース", d: "業種・地域・規模で市場を切り出す", who: "PLATFORM" }, { n: "02", t: "営業実行", d: "フォーム送信を自動で回す", who: "PLATFORM" }, { n: "03", t: "反応データ蓄積", d: "全件記録し、クリックは即時通知", who: "PLATFORM" }, { n: "04", t: "AI分析", d: "効いた市場と訴求を洗い出す", who: "AI" }, { n: "05", t: "PMレビュー", d: "打ち手の優先順位を決める", who: "PM" }, { n: "06", t: "改善して再実行", d: "次の仮説で、もう一度回す", who: "AI + PM" }, ]; const tone = (w) => w === "AI" ? { bg: "rgba(59,130,246,.12)", fg: "#7dabf8", bd: "rgba(59,130,246,.3)" } : w === "PM" ? { bg: "rgba(245,158,11,.12)", fg: "#f0b959", bd: "rgba(245,158,11,.3)" } : w === "AI + PM" ? { bg: "rgba(255,255,255,.1)", fg: "#fff", bd: "rgba(255,255,255,.25)" } : { bg: "rgba(255,255,255,.05)", fg: "#888", bd: "rgba(255,255,255,.12)" }; return (
{steps.map((s, i) => { const t = tone(s.who); return (
{s.n} {s.who}

{s.t}

{s.d}

); })}
06 → 01 このループが毎月回り続けることが、Sygnalが提供している価値そのものです。
); }; /* ───────── ⑤ AI × PM 比較 ───────── */ const AIPM = () => { const box = (dim) => ({ border: "1px solid " + (dim ? "#ececec" : "#111"), borderRadius: 18, padding: "32px 30px", background: dim ? "#fafafa" : "#fff", boxShadow: dim ? "none" : "0 20px 50px -24px rgba(17,17,17,.2)", }); const step = (label, sub, dim, strong) => (
{dim ? : }
{label}
{sub}
); return ( <>
AI分析だけの場合

レポートは出る。
でも、動かない。

{step("分析結果は出る", "「建設業の反応が低い」という事実が分かる", false, false)} {step("優先順位がつかない", "示された10個の改善案のうち、どれから手をつけるか決まらない", true)} {step("実行されない", "結論が出ないまま、来月も同じ条件で送信が続く", true)}
Sygnal(AI × 専任PM)

判断まで、
持っていきます。

{step("AIが分析する", "効いた市場・効いた訴求・効いた時間帯をデータから抽出", false, false)} {step("PMが判断する", "月次レビューで「来月まずこれをやる」を1〜3個に絞り込む", false, true)} {step("そのまま実行する", "抽出条件・文面・送信設定に反映し、翌月の結果でまた検証する", false, true)}
{/* PM role detail */}
専任PMが、毎月やること
「困ったら聞ける担当者」ではなく、営業改善の責任を持つパートナーとして入ります。
{[ { t: "初期の市場設計", d: "どの業種・規模から検証を始めるべきか、仮説を一緒に立てます。" }, { t: "月次レビュー", d: "送信結果とAI分析を読み解き、勝ち筋と捨てる市場を判断します。" }, { t: "文面と訴求の改善", d: "反応の出た訴求パターンを次の文面へ落とし込みます。" }, { t: "次の打ち手の提案", d: "必要ならフォーム以外の接点も含めて、次の一手を提案します。" }, ].map((x, i) => (
{x.t}
{x.d}
))}
); }; /* ───────── ⑥ 改善履歴タイムライン ───────── */ const Timeline = () => { const months = [ { m: "1ヶ月目", act: "製造業・関東から検証開始", learn: "まずは母数を確保し、反応の出る場所を探る", rate: 0.4, note: "ベースライン" }, { m: "2ヶ月目", act: "文面の訴求を「数字の実証」へ変更", learn: "抽象的な価値訴求より、導入実績の数字が反応する", rate: 0.9, note: "+0.5pt" }, { m: "3ヶ月目", act: "反応の低い業種を外し、医療機器へ集中", learn: "業種で反応が5倍違うことがデータで判明", rate: 2.1, note: "+1.2pt" }, { m: "4ヶ月目", act: "送信を火・水の午前帯に集中", learn: "クリックの6割が特定の曜日・時間帯に集中していた", rate: 2.8, note: "+0.7pt" }, { m: "5ヶ月目", act: "通知が来たクリック企業へ即電話", learn: "興味シグナルが出た企業だけに人的リソースを寄せる", rate: 3.4, note: "商談化", peak: true }, ]; const max = 3.6; return (
{months.map((x, i) => (
{x.m}
{/* bar */}
{x.rate}%
{x.note}
{x.act}
{x.learn}
))}
縦軸:クリック率 · 営業量は5ヶ月間ほぼ一定。変えたのは「どこに・なにを・いつ送るか」だけです。
); }; /* ───────── ⑦ 画面(証拠) ───────── */ const Feature = ({ num, eyebrow, title, lead, mock }) => (
{num}{eyebrow}

{title}

{lead}

{mock}
横にスワイプすると画面全体を確認できます
); const Features = () => ( <> } /> } /> } /> } /> ); /* ───────── ⑧ 比較表 ───────── */ const Compare = () => { const cols = ["営業代行", "CRM / SFA", "営業ツール", "Sygnal"]; const rows = [ { l: "営業の実行", v: ["○", "×", "○", "○"] }, { l: "結果の記録・可視化", v: ["△", "○", "△", "○"] }, { l: "効いた市場・訴求の分析", v: ["△", "×", "△", "○"] }, { l: "次の打ち手の提案", v: ["×", "×", "×", "○"] }, { l: "専任PMによる改善伴走", v: ["△", "×", "×", "○"] }, { l: "改善サイクルが回る", v: ["×", "×", "△", "◎"] }, { l: "ノウハウが社内に残る", v: ["×", "△", "△", "○"] }, ]; const mk = (s, isSy) => { if (s === "◎") return ; if (s === "○") return ; if (s === "△") return ; return ×; }; return (
{cols.map((c, i) => { const isSy = i === 3; return ( ); })} {rows.map((r, ri) => ( {r.v.map((v, vi) => { const isSy = vi === 3; return ( ); })} ))}
{c}
{r.l}{mk(v, isSy)}
); }; /* ───────── ⑨ 導入フロー ───────── */ const Flow = () => { const steps = [ { n: "01", t: "営業改善ミーティング", d: "60分オンライン。いまの営業と課題を伺い、どこに改善余地があるかを整理します。", when: "Day 0" }, { n: "02", t: "市場仮説の設計", d: "PMと一緒に、最初に検証する市場と訴求の仮説を決めます。", when: "〜1週" }, { n: "03", t: "初期設定・送信開始", d: "送信元情報とリストを整え、最初の案件が動き出します。", when: "〜2週" }, { n: "04", t: "初回レビュー", d: "1ヶ月分の結果をAI分析とPMで読み解き、次の打ち手を決めます。", when: "1ヶ月" }, { n: "05", t: "改善が始まる", d: "ここからが本番。毎月レビューし、勝ち筋を積み上げていきます。", when: "以降ずっと", hl: true }, ]; return (
{steps.map((s, i) => (
{s.n} {s.when}
{s.t}
{s.d}
))}
); }; /* ───────── ⑩ 料金 ───────── */ const Pricing = () => (
{/* main */}
EARLY ACCESS

スタンダードプラン

正式リリース時に提供予定の内容を、先行利用枠として特別価格でご提供します。

¥50,000 / 月

税別 · 初期費用なし

正式リリース時の予定価格 月額 ¥70,000 → 先行利用 ¥50,000
    {[ ["専任PMによる営業改善伴走", true], ["月次レビュー(市場・訴求・打ち手の見直し)", true], ["日々更新される法人データベースへの全件アクセス", false], ["AI文面生成 + 自動フォーム送信 + 結果の全件記録", false], ["AI分析(攻めるべき市場 / 刺さる訴求 / 推奨アクション)", false], ["営業パイプライン管理 + クリックトラッキング", false], ["月間送信数 150,000件 / 並行案件 3件", false], ["送信リストの作成は無制限", false], ["クリック企業をSlack・Chatwork・メールへリアルタイム通知", false], ].map(([t, hl], i) => (
  • {t}
  • ))}
無料で営業改善ミーティングを予約
{/* side */}
{[ { h: "なぜ「先行利用」なのか", p: "Sygnalはリリース直前の最終調整段階にあります。先行利用枠は、正式版で提供予定の内容をいち早く使っていただきながら、料金を正式価格より抑えてご利用いただける枠です。" }, { h: "伴走支援に含まれるもの", p: "専任PMが市場仮説の設計から月次レビュー、文面と訴求の改善提案、次の打ち手の設計まで担当します。ツールを渡して終わりではなく、改善が回る状態まで一緒に作ります。" }, { h: "営業代行との違い", p: "営業代行は実行を代わりに行うサービスです。Sygnalは実行結果から学び、次の判断材料をつくるためのプラットフォームです。ノウハウが自社に残る点が最大の違いです。" }, { h: "契約条件について", p: "利用期間や契約形態は、ご状況に合わせて個別にご提案します。正式リリース時には先行利用ユーザー様向けの優遇も予定しています。詳細は営業改善ミーティングでご案内します。" }, ].map((x, i, a) => (

{x.h}

{x.p}

))}
); /* ───────── ⑪ FAQ ───────── */ const FAQ = () => { const items = [ { q: "営業代行とは何が違いますか?", a: "営業代行は「実行」を代わりに行うサービスです。Sygnalは実行しながら、その結果から学び、次にどこを変えるべきかを判断できる状態をつくるプラットフォームです。実行はSygnalが自動化し、判断のための材料をAIが分析し、優先順位を専任PMが一緒に決めます。結果として、営業の勝ち筋というノウハウが自社に残ります。" }, { q: "専任PMは具体的に何をしてくれますか?", a: "導入時は、最初に検証すべき市場と訴求の仮説設計をご一緒します。運用開始後は月次でレビューを行い、AI分析の結果を読み解いたうえで「来月まずこれをやる」という打ち手を1〜3個に絞ってご提案します。文面の訴求改善、抽出条件の見直し、反応企業への次のアクションまで含めて伴走します。" }, { q: "営業リストは自社で用意する必要がありますか?", a: "いいえ。日々更新される法人データベースを標準でご利用いただけます。地域・市区町村・業種・従業員数・売上高・利益・資本金・設立年・上場区分・決算月・連絡先の有無など、多数の条件を組み合わせた抽出が可能です。自社で保有しているCSVリストもインポートして、同じ送信・分析フローに乗せられます。リストの作成数に上限はありません。" }, { q: "AI分析は、ただの集計レポートですか?", a: "いいえ。「攻めるべき市場(業種・規模・エリア別の有望度スコアと、伸ばす/維持/絞る/テストの推奨)」「刺さる訴求(訴求パターンごとのクリック率)」「今週の推奨アクション(優先度付き)」の3ブロックで、次にとるべき打ち手を具体的に提示します。数字を並べるのではなく、判断につながる形で出すことを目的にしています。" }, { q: "文面はテンプレート送信になりませんか?", a: "送信先に合わせた文面をAIが作成します。フォームの文字数制限に応じて500文字未満用と500文字以上用の2パターンを同時生成し、送信先に応じて自動で出し分けます。訴求を変えた文面を市場ごとに試せるため、どの切り口が反応するかを比較できます。もちろん手動入力モードもあり、ご自身で作成した文面をお使いいただけます。" }, { q: "送信の曜日や時間はコントロールできますか?", a: "はい。案件ごとに稼働曜日・稼働時間帯・1日の上限送信件数・ドメイン単位のレート制限を設定できます。土日や深夜の自動停止、業務時間内への集中送信が可能です。AI分析で反応の良い時間帯が分かったら、そこに送信を寄せるという改善もできます。" }, { q: "成果が出るまでどのくらいかかりますか?", a: "最初の案件は導入から2週間程度で動き始めます。ただしSygnalの価値は初月の数字ではなく、改善が積み上がることにあります。1ヶ月目で母数を確保し、2ヶ月目以降にレビューと改善を回していく中で反応率が変わっていく、という進み方が一般的です。" }, { q: "反応があったらどう分かりますか?", a: "送信した文面内のリンクがクリックされると、リアルタイムで検知して Slack・Chatwork・メールへ通知します。通知を受けてから電話や個別メールで動けるので、興味を示したタイミングを逃しません。なお、フォーム送信に対する先方からのメール返信そのものは検知対象外です。" }, { q: "リストはいくつまで作れますか?", a: "送信リストの作成数に上限はありません。業種別・規模別・訴求別に細かくリストを分けて、どのセグメントが反応するかを並行して検証できます。" }, { q: "処理中はブラウザを開いたままにする必要がありますか?", a: "いいえ。クラウド上で処理が動くため、ブラウザを閉じてもAIの文面生成や送信処理はそのまま継続します。作業を止めずに他の業務へ移っていただけます。" }, { q: "セキュリティはどうなっていますか?", a: "AWS東京リージョン(ECS Fargate / RDS PostgreSQL / S3)で運用しています。データはテナント単位で分離管理され、認証は AWS Cognito(JWT)で行っています。詳細は営業改善ミーティングでご案内します。" }, ]; return ( <> {items.map((it, i) => (
{it.q}
{it.a}
))} ); }; /* ───────── Mount ───────── */ const mount = (id, Cmp) => { const el = document.getElementById(id); if (el) ReactDOM.createRoot(el).render(); }; mount("checks-slot", Checks); mount("loops-slot", Loops); mount("loop-big-slot", LoopBig); mount("aipm-slot", AIPM); mount("timeline-slot", Timeline); mount("features-slot", Features); mount("compare-slot", Compare); mount("flow-slot", Flow); mount("pricing-slot", Pricing); mount("faq-slot", FAQ);