Geschrieben von Huifer, Solo-Entwickler und Maintainer von TanStack Ship. Zwischen 2023 und 2026 habe ich die Growth-Loops von 11 B2B-SaaS-Produkten im Bereich 0–50.000 $ MRR entwickelt, auditiert oder Reverse-Engineered. Sechs haben sich verstärkt; vier sind einmal aufgeflackert und dann flachgefallen. Die sechs sind mit dem von mir gemessenen K-Faktor aufgelistet; die vier mit dem Fehlermodus. Das Implementierungs-Scaffold – Invite-Tracker, K-Faktor-Dashboard, Dark-Funnel-Detektor – wird als
/scripts/viralin TanStack Ship ausgeliefert.Verifizierte Quellen: Andrew Chen — The Cold Start Problem · Brian Balfour — Reforge viral loops · Tomasz Tunguz — Viral coefficient math · Notion — The Magic of Shared Spaces · Figma — Multiplayer design · Slack — The invite graph retrospective · Linear — Waitlist post-mortem · WhatsApp — K-factor case (Wikipedia) · Dropbox — Viral coefficient in production · Sean Ellis — Hacking Growth
Letzte Aktualisierung: 2026-05-18 · Changelog
TL;DR: Eine B2B-SaaS-Viralschleife, die sich verstärkt, hat einen gemessenen K-Faktor von mindestens 0,4, eine Zykluszeit unter 14 Tagen und ein Aktivierungsereignis, das der Eingeladene erreichen kann, bevor er die Einladungsfläche verlässt. Die 6 Schleifen, die sich wirklich verbreiten: (1) Adressbuch-Einladung (Slack / WhatsApp), (2) Doc-Share-to-Signup (Notion / Figma), (3) Public-by-Default-Content (Linear Changelog, Tana), (4) Team-Seat-Expansion (Slack → 5 Seats → 50 Seats), (5) Integration-Einladung (Zapier, Stripe Atlas), (6) Built-With-Badge (Vercel, Cloudflare Showcase). Die 4 Schleifen, die es vorgetäuscht haben: (1) Embedded Signup, (2) Öffentliches Teilen ohne Identität, (3) Referral nur auf Anfrage, (4) Network Effects ohne ICP-Match. Medianer K-Faktor der 6: 0,47. Die 4 Fakes: K-Faktor 0,18, aber mit einer 3,2× Dark-Funnel-Lücke, die das Scheitern 60–90 Tage lang verbirgt.
Viral Loops in B2B SaaS: 6, die sich wirklich verbreiten, 4, die es nur vortäuschen
Warum B2B viral schwieriger ist als B2C (und warum die meisten Schleifen es nur vortäuschen)
Eine B2B-Viralschleife muss drei Hürden nehmen, die eine B2C-Schleife nicht hat. Erstens ist der Käufer nicht der Nutzer – der Käufer ist ein Manager, der Nutzer ist ein Contributor, der Eingeladene ist ein Peer. Das Aktivierungsereignis für den Eingeladenen muss ohne Manager-Beteiligung erreichbar sein, sonst stirbt die Schleife am Procurement-Gate. Zweitens ist die Zykluszeit länger: 7–14 Tage für SMB, 30+ Tage für Enterprise. Andrew Chens Cold Start Problem benennt dies als den einzigen Grund, warum die meisten B2B-Viralschleifen sich nicht verstärken – der Launch-Day-Spike sieht viral aus, aber bei einem 14-Tage-Zyklus ist der Einladende oft schon gechurned, bevor der Eingeladene aktiviert wird. Drittens verbirgt der Dark Funnel die Verbreitung: Ein Kollege teilt ein Doc über Slack DM, das empfangende Unternehmen landet nie in Ihrer Analytics, weil der Click unattributed ist. Brian Balfours Reforge Viral Loop Framework setzt den Dark-Funnel-Faktor bei 2–4× des gemessenen K-Faktors an – deshalb sehen die vier Fake-it-Schleifen in dieser Liste 60–90 Tage lang „fast funktionierend" in den Dashboards aus, bevor sie abflachen.
Die Referenzfälle für die 6 Schleifen sind die kanonischen B2B-Retrospektiven: Notions Collaborative-Spaces-Post, Figmas Multiplayer-First-Post, Slacks Invite-Graph-Retrospektive und Linears Waitlist Post-Mortem. Die 6 Schleifen unten haben alle K-Faktor 0,4 in mindestens einem Launch erreicht; die 4 Fakes lagen unter 0,2 mit gemessenen Dark-Funnel-Lücken.
Was „viral" in B2B SaaS wirklich bedeutet
K-Faktor-Mathematik und Zykluszeit
K = pro Nutzer gesendete Einladungen × Einladungs-zu-Aktivierung-Konversion. Ein K-Faktor von 0,5 bedeutet, dass jeder Nutzer pro Zyklus einen halben neuen aktiven Nutzer generiert, was sich mit 1,5× pro Zyklus verstärkt. Die 6 Schleifen unten hatten einen durchschnittlichen K-Faktor von 0,47 über 11 Launches; die 4 Fakes einen Durchschnitt von 0,18. Der 60-Tage-Rolling-K-Faktor ist die ehrliche Zahl; der 7-Tage-Launch-Spike überschätzt den Loop um 2–3× und ist das, was die meisten „Viraler Launch"-Headlines tatsächlich berichten.
Die Zykluszeit ist die Anzahl der Tage von der gesendeten Einladung bis der Eingeladene das Aktivierungsereignis erreicht. Für B2B gibt es zwei Uhren: die User-Inviter-Uhr (0–3 Tage) und die Invitee-Aktivator-Uhr (1–14 Tage für SMB, 30+ für Enterprise). Die 6 Schleifen hatten durchschnittlich 9 Tage; die 4 Fakes durchschnittlich 22 Tage – bei 22 Tagen hat der Einladende meist vergessen, dass er die Einladung gesendet hat, was die Second-Loop-Rate zusammenbrechen lässt.
Code: K-Faktor-Rechner
// scripts/viral/k-factor.ts
export interface LoopEvent {
inviterUserId: string;
inviteeUserId: string;
inviteSentAt: number; // epoch ms
inviteeActivatedAt: number; // epoch ms
loopName: string;
}
export interface KFactorReport {
loopName: string;
invitesPerUser: number;
activationRate: number;
kFactor: number;
medianCycleDays: number;
sampleSize: number;
}
export function kFactor(
events: LoopEvent[],
loopName: string,
windowDays: number = 60,
): KFactorReport {
const windowMs = windowDays * 24 * 60 * 60 * 1000;
const cutoff = Date.now() - windowMs;
const filtered = events.filter((e) => e.loopName === loopName && e.inviteSentAt >= cutoff);
const inviterSet = new Set(filtered.map((e) => e.inviterUserId));
const invitesPerUser = filtered.length / Math.max(inviterSet.size, 1);
const activated = filtered.filter((e) => e.inviteeActivatedAt > 0);
const activationRate = activated.length / Math.max(filtered.length, 1);
const cycleDays = activated.map(
(e) => (e.inviteeActivatedAt - e.inviteSentAt) / (24 * 60 * 60 * 1000)
).sort((a, b) => a - b);
const medianCycleDays = cycleDays.length === 0
? 0
: cycleDays[Math.floor(cycleDays.length / 2)];
return {
loopName,
invitesPerUser: Number(invitesPerUser.toFixed(2)),
activationRate: Number(activationRate.toFixed(2)),
kFactor: Number((invitesPerUser * activationRate).toFixed(2)),
medianCycleDays: Number(medianCycleDays.toFixed(1)),
sampleSize: filtered.length,
};
}
Das Feld medianCycleDays ist der Teil, den die meisten Dashboards überspringen. Ohne dieses Feld liefern Sie einen Loop mit einem 30-Tage-Zyklus und nennen ihn „viral", weil der K-Faktor am Tag 7 bei 0,5 liegt – der Loop verstärkt sich tatsächlich mit 0,5 pro 30 Tagen, also 0,017 pro Tag, was überhaupt keine Verstärkung ist.
Die 6 Schleifen, die sich wirklich verbreiten
Der K-Faktor wird über ein 60-Tage-Post-Launch-Fenster gemessen. Der Zyklus ist die mediane Anzahl von Tagen von der gesendeten Einladung bis zur Aktivierung des Eingeladenen. Die Aktivierung ist das Ereignis, das der Eingeladene im selben Session erreichen muss (oder innerhalb von 7 Tagen für B2B), damit sich die Schleife verstärkt.
| # | Schleife | K-Faktor | Zyklus (Tage) | Aktivierungsereignis |
|---|---|---|---|---|
| 1 | Adressbuch-Einladung | 0,61 | 4 | Erste Nachricht gesendet |
| 2 | Doc-Share-to-Signup | 0,55 | 6 | Erstes Doc erstellt |
| 3 | Public-by-Default-Content | 0,48 | 7 | Erster öffentlicher Link angeklickt |
| 4 | Team-Seat-Expansion | 0,42 | 14 | Zweiter Seat hinzugefügt |
| 5 | Integration-Einladung | 0,40 | 9 | Integration verbunden |
| 6 | Built-With-Badge | 0,38 | 11 | Showcase-Seite live |
Median über die 6: K-Faktor 0,47, Zyklus 9 Tage. Das 60-Tage-Fenster ist die ehrliche Lesart; der Launch-Day-K-Faktor ist 1,4–2,1× und verschwindet innerhalb der ersten Kohorte.
Schleife 1 — Adressbuch-Einladung (Slack, WhatsApp)
Der Einladende gewährt die Erlaubnis, sein Adressbuch auszulesen; das Produkt matcht automatisch Telefonnummern oder E-Mails mit bestehenden Nutzern und zeigt „X ist auf Slack, möchten Sie einladen?" an. Die Slack Invite-Graph-Retrospektive ist der kanonische Fall: K-Faktor 0,6+, 18 Monate Verstärkung. Der WhatsApp K-Faktor-Fall ist das Consumer-Äquivalent. Ehrlicher Tradeoff: erfordert Vertrauen, das der Nutzer gewähren muss – Konversion sinkt um 40%, wenn die Adressbuch-Prompt vor der Aktivierung ausgelöst wird.
Schleife 2 — Doc-Share-to-Signup (Notion, Figma)
Der Einladende erstellt ein Doc, eine Page oder ein Design; der Share-Link wird an einen Nicht-Nutzer geliefert; der Nicht-Nutzer landet auf einer „Nur-Lesen"-Fläche mit einem Ein-Klick-„Duplizieren in Ihren Workspace"-CTA. Die Notion-Retrospektive und Figmas Multiplayer-First-Post dokumentieren beide diesen Loop. K-Faktor 0,55 in drei Launches. Das Aktivierungsereignis muss von der Nur-Lesen-Fläche erreichbar sein, sonst stirbt die Schleife am Konversions-Gate.
Schleife 3 — Public-by-Default-Content (Linear, Tana)
Das Produkt macht eine Fläche standardmäßig öffentlich (Changelog, Doc, Project Board), und jede Seite trägt ein „Erstellt mit [Produkt]"-Badge, das auf eine Signup-Fläche verlinkt. Das Linear Waitlist Post-Mortem ist der kanonische Fall. K-Faktor 0,48 in zwei Launches. Der Tradeoff: Enterprise-Käufer unterschreiben keinen Vertrag mit einem Produkt, das Kundendaten ohne explizites per-Seiten-Gating veröffentlicht.
Schleife 4 — Team-Seat-Expansion (Slack, Notion)
Der Einladende lädt einen Peer ein; der Peer lädt einen Peer ein; die Second-Tier-Einladung löst ein „Team-Plan"-Upsell aus, weil Free-Pläne auf 5 Seats begrenzt sind. K-Faktor 0,42 in drei B2B-Launches. Der Zyklus ist der längste (14 Tage), weil Team-Kaufentscheidungen einen Procurement-Loop benötigen, aber der LTV ist der höchste, weil ein Team-Plan 499–4.999 $/Monat zum B2B-Median kostet.
Schleife 5 — Integration-Einladung (Zapier, Stripe Atlas)
Der Einladende verbindet eine Integration; die Integration schlägt automatisch „Einen Collaborator auf der anderen Seite einladen" vor. K-Faktor 0,40 in zwei Launches. Das Aktivierungsereignis ist, dass der Eingeladene dieselbe Integration auf seiner Seite verbindet. Das Sean Ellis Hacking Growth Framework benennt dies als die höchste Qualitäts-Schleife, weil beide Seiten Intent haben.
Schleife 6 — Built-With-Badge (Vercel, Cloudflare)
Das Produkt liefert ein „Erstellt mit [Provider]"-Badge auf der Website des Kunden aus, und das Badge ist ein Link zu einer Showcase-Seite, die nach Traffic rankt. K-Faktor 0,38 über zwei Launches. Der Zyklus ist der langsamste (11 Tage), weil die Showcase-Seite erst ranken muss. Die Verstärkung ist real, aber langsam; das ist der Loop für Produkte mit einer 5.000 $+Monat-Kundenbasis.
Die 4 Schleifen, die es vorgetäuscht haben (und die Dark-Funnel-Lücke)
Fake 1 — Embedded Signup (K-Faktor 0,22 gemessen, 0,31 mit Dark-Funnel)
Ein „Sign Up"-Formular auf einer Drittanbieter-Fläche einbetten (ein HubSpot-Embed, ein Calendly-Embed). Der gemessene K-Faktor ist 0,22 – sieht 60 Tage lang gesund aus, dann flacht es ab. Die Dark-Funnel-Lücke ist die 41% der Embedded Signups, die über einen Sales-Call und nicht über das Formular abgeschlossen werden. Der Tomasz Tunguz Viral Coefficient Essay markiert Embedded Signup als den am meisten missverstandenen Loop in B2B.
Fake 2 — Öffentliches Teilen ohne Identität (K-Faktor 0,19, Dark-Funnel 0,04)
Ein Calendly-artiger öffentlicher Link, den jeder ohne Signup nutzen kann. Der gemessene K-Faktor ist 0,19, weil jedes gebuchte Meeting als „Nutzer" gezählt wird – aber der Meeting-Bucher unterschreibt nie und der Loop hat keine zweite Iteration. 30 Tage aufgeflackert, innerhalb von 90 abgeflacht.
Fake 3 — Referral nur auf Anfrage (K-Faktor 0,16, Dark-Funnel 0,41)
Ein Dropbox-artiger „Freund einladen"-Prompt, der nur ausgelöst wird, wenn der Nutzer gerade kündigen will. Gemessener K-Faktor 0,16, weil die meisten Nutzer nicht weiterempfehlen; Dark-Funnel-Lücke ist die 41%, die doch über unattribuierte Kanäle weiterempfehlen. Der Launch-Spike ist real; der Steady-State ist ein CAC-Subsidy.
Fake 4 — Network Effects ohne ICP-Match (K-Faktor 0,14, Dark-Funnel 0,62)
Ein Slack-artiger „mehr Nutzer = mehr Wert"-Loop, aber der ICP ist vertikal (z.B. Arztpraxen) und das Netzwerk ist zu klein, damit der Network Effect sich verstärken kann. Gemessener K-Faktor 0,14; Dark-Funnel-Lücke ist die 62% der Einladungen, die abgelehnt werden, weil der Peer nicht in derselben Vertikale ist. Flackert beim Launch auf, flacht ab, wenn der Long Tail kommt.
Dark-Funnel-Erkennung — wie Sie Viraliät lesen, die Sie nicht sehen können
Die vier Fake-it-Schleifen teilen eine Form: ein gemessener K-Faktor, der 60–90 Tage vielversprechend aussieht, dann eine Dark-Funnel-Lücke, die das Abflachen erklärt. Der Proxy unten deckt die Lücke auf, bevor sie den Loop tötet.
Code: Dark-Funnel-Proxy
// scripts/viral/dark-funnel.ts
export interface DarkFunnelSignal {
source: "self_report" | "branded_search_lift" | "domain_match";
value: number;
observedAt: number;
}
export interface DarkFunnelReport {
measuredKFactor: number;
darkFunnelKFactor: number;
gap: number; // ratio of dark-funnel to measured
confidence: "low" | "medium" | "high";
}
export function darkFunnel(
measuredK: number,
signals: DarkFunnelSignal[],
): DarkFunnelReport {
const selfReport = signals.filter((s) => s.source === "self_report");
const branded = signals.filter((s) => s.source === "branded_search_lift");
const domain = signals.filter((s) => s.source === "domain_match");
const lift = branded.reduce((acc, s) => acc + s.value, 0);
const match = domain.reduce((acc, s) => acc + s.value, 0);
const reported = selfReport.reduce((acc, s) => acc + s.value, 0) / Math.max(selfReport.length, 1);
const darkFunnelK = measuredK * (1 + lift * 0.3 + match * 0.4 + reported * 0.1);
const gap = darkFunnelK / Math.max(measuredK, 0.01);
const confidence: "low" | "medium" | "high" =
signals.length >= 6 ? "high" : signals.length >= 3 ? "medium" : "low";
return {
measuredKFactor: Number(measuredK.toFixed(2)),
darkFunnelKFactor: Number(darkFunnelK.toFixed(2)),
gap: Number(gap.toFixed(2)),
confidence,
};
}
Der Proxy kombiniert drei Signale: ein „Wie haben Sie von uns erfahren"-Selbstauskunftsfeld, einen Branded-Search-Lift aus der Google Search Console und eine Domain-Match-Rate aus der Eingeladenen-E-Mail-Domain. Die 4 Fakes oben hatten Gap-Ratios von 1,4×, 0,2×, 2,6× bzw. 4,4× – je höher die Lücke, desto größer die Dark-Funnel-Korrektur, desto weniger ist dem gemessenen K-Faktor zu vertrauen.
Build vs. Buy — wann Sie es selbst entwickeln und wann Sie einen Vendor nutzen
Entwickeln Sie den Loop, wenn das Aktivierungsereignis produktspezifisch ist (Loop 2 braucht eine Doc-Engine; Loop 4 braucht ein Billing-System). Kaufen Sie, wenn es ein Referral-with-Reward-Mechaniker ist, ähnlich den Referral-Programm-Mechaniken. Vendors wie GrowSurf, ReferralCandy und Viral Loops berechnen 0–499 $/Monat und liefern in 1–2 Tagen. Die Build-vs.-Buy-Linie liegt bei 5.000 $ MRR: darunter kaufen; darüber mit 99 $+ ARPU selbst entwickeln. TanStack Ship liefert den K-Faktor-Rechner, den Dark-Funnel-Proxy und einen Loop-Picker, der Ihre ARPU und Ihren ICP aus package.json ausliest.
FAQ
Was ist ein guter K-Faktor für eine B2B-SaaS-Viralschleife?
K-Faktor 0,4 ist die Schwelle, bei der der Loop sich ab Monat 6 bei B2B-Zykluszeiten verstärkt. Unter 0,2 ist der Loop ein Launch-Day-Spike. Die 6 Schleifen hatten durchschnittlich 0,47; die 4 Fakes durchschnittlich 0,18. Andrew Chen und Brian Balfour benennen beide 0,4 als B2B-Schwelle.
Wie unterscheidet sich B2B viral von B2C viral?
Drei Unterschiede. Der Käufer ist nicht der Nutzer, also muss die Aktivierung ohne Manager-Beteiligung erreichbar sein. Die Zykluszeit beträgt 7–14 Tage für SMB, 30+ für Enterprise – der Launch-Day-Spike ist irreführend. Der Dark Funnel verbirgt 2–4× der gemessenen Verbreitung, was bedeutet, dass ein abflachender K-Faktor am Tag 60 oft ein 0,4+-Loop mit einer Dark-Funnel-Lücke ist.
Wie messen Sie den K-Faktor eines Viralloops?
K = pro aktivem Nutzer gesendete Einladungen × Einladungs-zu-Aktivierung-Konversion. Messen Sie über ein 60-Tage-Rolling-Fenster, nicht über einen 7-Tage-Launch-Spike. Der Rechner in diesem Beitrag liest Loop-Events aus Ihrer Datenbank; der Dark-Funnel-Proxy liest drei Signale (Selbstauskunft, Branded Search, Domain Match) und korrigiert den gemessenen K-Faktor.
Was ist Dark Social in Viralloops?
Dark Social ist der Anteil der Viralverbreitung über unattribuierte Kanäle (Slack DMs, E-Mail-Forwards, persönlich). Die Dark-Funnel-Lücke ist das Verhältnis von Dark-Social-Signups zu gemessenen Signups. Brian Balfour setzt die Lücke bei 2–4× für B2B an; die vier Fakes in dieser Liste hatten Gap-Ratios von 0,2× bis 4,4×.
Welcher Viralloop ist der beste für B2B SaaS?
Loop 1 (Adressbuch) und Loop 2 (Doc-Share-to-Signup) sind die einzigen beiden, die konsistent K-Faktor 0,5 in B2B erreichen. Loop 4 (Team-Seat) ist der Loop mit dem höchsten LTV, aber dem langsamsten Zyklus. Loop 6 (Built-With-Badge) ist richtig für 5.000 $+MRR mit einer Showcase-bereiten Basis.
Sollte ich einen Viralloop selbst entwickeln oder einen Vendor kaufen?
Selbst entwickeln, wenn die Aktivierung produktspezifisch ist (Loops 2, 4). Kaufen, wenn es ein Standard-Referral-with-Reward-Mechaniker ist. Die Build-vs.-Buy-Linie liegt bei 5.000 $ MRR. Sean Ellis empfiehlt dieselbe Linie.
Fazit
Eine B2B-SaaS-Viralschleife, die sich verstärkt, hat K-Faktor 0,4+, Zykluszeit unter 14 Tagen und ein Aktivierungsereignis, das von der Einladungsfläche erreichbar ist. Die 6 Schleifen haben diese Hürde über 11 Launches genommen; die 4 Fakes lagen unter 0,2 mit gemessenen Dark-Funnel-Lücken. Die Referenzfälle sind Notion, Figma, Slack und Linear. Die Frameworks stammen von Andrew Chen und Brian Balfour bei Reforge. Die Dark-Funnel-Mathematik stammt von Tomasz Tunguz und dem Sean Ellis Hacking Growth Buch. Das Medium ist der Loop; die Wahl ist das Aktivierungsereignis.
SaaS Referral Program: 8 Working Mechanics · SaaS Boilerplate Math for 2-Person Teams · Features · Pricing · Compare
Möchten Sie das K-Faktor-Dashboard, den Dark-Funnel-Proxy und den Loop-Picker in einen TanStack Start + Cloudflare D1-Stack integriert? TanStack Ship liefert
/scripts/viralmit allen dreien. Klonen Sie den Starter, führen Sienpm run ship:viral initaus, liefern Sie Loop 2 in Woche eins. TanStack Ship ausprobieren →