// 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) => (
))}
);
};
/* ───────── ③ ループ比較 ───────── */
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) => (
);
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) => (
))}
>
);
};
/* ───────── ⑥ 改善履歴タイムライン ───────── */
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.note}
{x.act}
{x.learn}
))}
縦軸:クリック率
·
営業量は5ヶ月間ほぼ一定。変えたのは「どこに・なにを・いつ送るか」だけです。
);
};
/* ───────── ⑦ 画面(証拠) ───────── */
const Feature = ({ num, eyebrow, title, lead, mock }) => (
{num}{eyebrow}
{title}
{lead}
);
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 (
{c} |
);
})}
{rows.map((r, ri) => (
| {r.l} |
{r.v.map((v, vi) => {
const isSy = vi === 3;
return (
{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) => (
))}
);
/* ───────── ⑪ 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);