Zum Hauptinhalt springen

CRM & ICP

Dieser Artikel erklärt das CRM-Modul von SpeamCore: was ein CRM-Profil ist, wie der Vertriebs-Status, Opportunities und der Aktivitäts-Verlauf zusammenspielen und wie das ICP-Scoring (Ideal Customer Profile) — teils automatisch, teils per KI-Website-Bewertung — funktioniert. Die operativen Seiten — die CRM-Übersicht und die CRM-Tabs auf Kunde/Kontakt/Standort — verweisen hierher.

Das Problem

Vertriebsinformationen (wer ist Lead, wer betreut, welche Branche, welcher Verlauf) landen sonst in Tabellen, Notizzetteln oder einem zweiten CRM-Tool — getrennt von den Stammdaten, mit denen operativ gearbeitet wird. Dadurch driften Daten auseinander und der Verlauf eines Kunden ist nie vollständig.

Lösung — eine Tracking-Schicht, kein Datensilo

SpeamCore legt kein zweites Kunden-Verzeichnis an. Stattdessen ist das CRM eine Schicht über den bestehenden Stammdaten: Pro Kunde, Kontakt oder Standort lässt sich das CRM-Tracking einschalten — dann entsteht genau ein CrmProfile zu diesem Datensatz und ein zusätzlicher Tab CRM.

Das CrmProfile ist polymorph an seinen Parent gebunden (parentType = Customer/Location/Contact, parentId) — siehe Polymorpher Parent-Pattern. Ein eindeutiger Index (parentType, parentId) stellt ein Profil pro Datensatz sicher.

Die Bausteine

CRM-Profil (CrmProfile)

Das Profil hält die Vertriebs-Stammdaten:

FeldBedeutung
crmStatusVertriebs-Status: leadprospectcustomerinactive (Default lead)
salesEmployeeIdzuständiger Vertriebsmitarbeiter (Owner)
websiteUrlUnternehmens-Website (wird aus der E-Mail-Domain vorbelegt)
industryIdBranche (→ Branchen-Stammdaten)
employeeSizeBandGrößenklasse (z. B. 1–10, 11–50, …)
isIcp / icpReasonIdeal-Customer-Profile-Kennzeichen + Begründung
icpScore / icpRationaleKI-Fit-Score 0–100 % + KI-Begründung
aiAssessmentkomplettes KI-Bewertungs-Objekt (JSON, siehe unten)

Opportunities (CrmOpportunity)

Eine Opportunity verknüpft ein Profil mit einer angebotenen Leistung (serviceId) und einer Priorität (low/medium/high).

Aktivitäts-Timeline (CrmActivity)

Der Verlauf eines Datensatzes wird aus zwei Quellen zusammengeführt:

  • Automatische Ereignisse (category = system): Anlage des Datensatzes, Verkaufsbelege/Angebote, Briefe/ePost, sowie Audit-Einträge bei Feld-/Opportunity-/Social-Link-Änderungen und KI-Bewertungen.
  • Manuelle Einträge (category = manual): call, note, meeting, email, reminder — mit Zeitpunkt (occurredAt, auch rückdatierbar), Titel/Text, Akteur, optionaler Wiedervorlage (remindAt) und Compliance-Markierung.

Jedes Ereignis kann per refType/refId auf das Ursprungs-Objekt verlinken (z. B. ein Angebot). Die Aggregation liefert GET /crm-timeline.

Branchen-Stammdaten (Industry)

Eine gepflegte Branchen-Liste (Schlüssel, deutsche/englische Bezeichnung, NACE-Abschnitt, Sortierung) — rund 90 Branchen sind vorbefüllt, Speam-relevante zuerst. Sie ist die Basis für das ICP-Scoring.

ICP — Ideal Customer Profile

SpeamCore bewertet, wie gut ein Datensatz zur eigenen Zielgruppe passt — auf zwei Wegen:

1. Automatisches ICP (Branchen-Abgleich)

In den CRM-Einstellungen pflegen Sie Zielbranchen (targetIndustries) und die eigenen Branchen (ownIndustries). Setzt jemand die industryId eines Profils auf eine Zielbranche, markiert ein Hook isIcp = true mit entsprechender Begründung.

2. KI-Website-Bewertung (POST /crm-profiles/:id/ai-assessment)

Auf Knopfdruck recherchiert ein KI-Lauf die hinterlegte Website per Web-Suche und liefert ein strukturiertes Ergebnis nach aiAssessment (JSON):

riskLevel · trustScore · companyAgeYears · onlineReputation ·
paymentSignals · redFlags[] · positives[] · recommendations[] ·
sources[] · suggestedIndustry · suggestedEmployeeSizeBand · suggestedSocialLinks[]

Daraus werden icpScore (0–100 %) und icpRationale gesetzt; leere Felder (Branche, Größe, Social-Links) werden vorgeschlagen, vorhandene nicht überschrieben. Jede Bewertung erzeugt ein Timeline-Ereignis.

Reaktionszeit-SLA

Die Einstellung crmResponseSlaHours legt fest, bis zu welcher Reaktionszeit eine Antwort als „im Ziel" gilt. Die CRM-Übersicht färbt die Reaktionszeit je Datensatz grün/rot gegen diese Schwelle.

Architektur / Komponenten

Backend

  • Modelle crm_profiles, crm_activities, crm_opportunities, industries.
  • Services crmIcp (automatisches ICP), crmWebsiteAssessment (KI-Bewertung), crmTimeline (Aggregation), crmOverview (zentrale Analyse), crmAudit (protokolliert jede Änderung als Timeline-Ereignis).

Frontend

  • Zentrale Seite /crm (CrmOverviewPage), CRM-Tab (CrmTabContent mit Feldern, Timeline, Opportunities, Tracking-Toggle) auf Kunde/Kontakt/Standort.

Anti-Pattern (was NICHT machen)

  • ❌ Das CRM als zweites Kunden-Verzeichnis behandeln — es ist eine Schicht über den Stammdaten, ein Profil je Datensatz.
  • ❌ Von Opportunities eine gewichtete Forecast-Pipeline erwarten — sie sind Leistung + Priorität.
  • ❌ Den KI-icpScore als Wahrheit nehmen — er ist eine Einschätzung aus Web-Recherche, kein Bonitätsnachweis.

KI-Chat-Anwendungen

Zeig mir alle Leads in einer Zielbranche, die seit 14 Tagen keinen Kontakt hatten.
Welche Kunden haben einen ICP-Score über 70 und noch keinen zugewiesenen Vertriebs-Owner?

Verwandte Doku