Urla Shoes — KI-Dokumenten-Compliance-Engine + Multifeature-Salesforce-Plattform
Ein Multifeature-Salesforce-Build, angeführt von einem KI-Partner-Compliance-Dokumentenmanager: ein Einstein Prompt Template (Prompt Builder, GPT-4o mini) klassifiziert jedes hochgeladene Partnerdokument in strukturiertes JSON, validiert es und schließt die passende Compliance-Anforderung automatisch. Drumherum: KI-Routensicherheit (Google Maps + OpenWeather + Einstein), Contact-Enrichment, Lead-Queue-Routing, Loan-Sync, eine Reseller-Matching-Engine und ein Custom-Setting-basiertes API-Key-Layer, das Secrets aus dem Code hält.
- Jahr
- 2024
- Rolle
- Salesforce Developer
- Technologien
- Apex (Queueable, Schedulable)Lightning Web ComponentsVisualforce (bridge)Salesforce EinsteinEinstein Prompt Templates (Prompt Builder)AI document classification (GenAI)Agentforce actions (@InvocableMethod)Notion APICustom Metadata TypesConnectApi.EinsteinLLMTrigger Framework (Kevin O'Hara)Custom Settings (hierarchical)Platform EventsCustom ObjectsHttpCalloutMockRemote Site Settings
Eckdaten
- KI-Partner-Compliance-Dokumentenmanager — ein Einstein Prompt Template (Prompt Builder, GPT-4o mini via ConnectApi.EinsteinLLM, Trust Layer) klassifiziert jeden Upload in strukturiertes JSON (Kategorie, Confidence, Ablaufdatum), validiert es, schreibt es zurück und schließt die passende Dokumentenanforderung automatisch
- Compliance-Cockpit — eine Live-MISSING/EXPIRED/EXPIRING/OK-Matrix mit Score je Partner, getrieben von Custom-Metadata-Anforderungen (Steuerbescheinigung, Versicherung, unterzeichneter Vertrag, Bankverbindung)
- Agentforce-Invocable-Actions (@InvocableMethod) — LeadQualificationService bewertet + ratet Leads (Hot/Warm/Cold) mit DACH-Bonus (DE/AT/CH) und legt automatisch eine Call-Task an; OnboardReseller leitet Tier (Platinum/Gold/Silver) + Kommission ab und erstellt Account + Contact + Opportunity + Quote
- Magic-Link-Partner-Selbstregistrierung — nicht zugeordnete Reseller erhalten einen einmaligen, 7-Tage-tokenisierten Link; eine @InvocableMethod-Reconciliation-Action verknüpft sie später per E-Mail-Domain mit jeder offenen Opportunity
- Notion-API-Integration — programmatische STAR-Format-Seiten (Block-JSON, Sprach-Token-Alias-Map, 2000-Zeichen-Rich-Text-Chunking) aus einem geschützten Custom-Setting-Token
- Route-Safety-LWC — Google Maps + parallele 5-Wegpunkt-OpenWeather + Einstein-Prompt-Template-KI-Urteil auf einem Screen
- Contact-Enrichment-Queueable — Nationalize.io mit HttpCalloutMock über 6 Szenarien (Erfolg, leer, HTTP 500, fehlender FirstName, Bulk-10, Parser-Test)
- Schichtbasierte Lead-Routing-Engine — Round-Robin nach geringster Last mit Schicht-Kapazität, 5-Min-SLA-Deadlines, die Breaches zurückholen (SLA_Breach_Log__c) und unter Ausschluss der verletzenden Reps neu verteilen, Timezone/DST-korrekte Fenster inkl. Nachtschichten; scheduled Batch + Lead_Shift_Event__e Platform Event + LWC-Dashboard
- Loan-Sync-Pipeline — Loan__c + Loan_Sync_Log__c Custom Objects + Opportunity-getriggerter Sync + Retry-Scheduler mit Audit-Logging
- Reseller-Matching-Engine — mehrkriterielles Scoring + Opportunity-Trigger + LWC-Tier-Badge
- Plattform-Foundations — erweiterbares Kevin-O'Hara-TriggerHandler-Framework, Round-Robin-Task-Zuweisung, SLA-Ablauf-Automatisierung
- Senior-Pattern: API-Keys aus API_Config__c Custom Setting via ApiKeyService Apex-Helper — keine Secrets im Code
Funktionen im Detail
Partner-Compliance-Cockpit
Eine netzwerkweite Matrix bewertet die Pflichtdokumente jedes Resellers auf einen Blick — MISSING / EXPIRED / EXPIRING / OK — mit Compliance-Prozenten je Partner und Roll-up-Zählern (vollständig konform, läuft bald ab, gefährdet). Die Pflichtdokumente sind in Custom Metadata definiert, sodass ein Admin das Regelwerk ohne Code-Deploy ändern kann.

KI-Dokumentenklassifizierer (Einstein / GPT-4o mini)
Jedes hochgeladene Dokument wird on demand analysiert: Ein Einstein Prompt Template klassifiziert es in eine Kategorie mit Confidence-Score, extrahiert das Ablaufdatum und schreibt eine einzeilige Zusammenfassung — und wendet das Ergebnis auf den Datensatz an. Hier legt das Modell einen Vertriebsvertrag (95%), eine Steuerbescheinigung (90%) und eine Versicherungsbescheinigung (90%) automatisch ab.

Live-Scoring & automatisch erfüllte Dokumentenanforderungen
Auf jedem Reseller-Datensatz spiegelt eine bewertete Checkliste den Dokumentenstatus in Echtzeit via Lightning Message Service — ohne Seiten-Reload. 'Request Missing Documents' legt eine Document_Request__c an und mailt den Primary Contact des Partners; sobald das passende Dokument klassifiziert ist, schließt sich die Anforderung automatisch und der Score steigt von 25% auf 100%.

File Hub — Partner-Dokumentenzentrum
Eine Business-Schicht über Salesforces nativem ContentDocument-Storage, die Sender-, Empfänger-, Kategorie- und Record-Link-Semantik ergänzt — mit farbcodierten Kategorie-Kacheln und einer monatlichen Aktivitäts-Heatmap. Private Sharing via Apex-managed Shares, Ghost-Record-Schutz beim Löschen und FLS/CRUD-enforced mit WITH USER_MODE (~91% Controller-Coverage).

Schichtbasierte Lead-Routing-Engine
Eingehende Leads werden per kapazitätsbewusstem Round-Robin (geringste Last gewinnt) an Reps in aktiven, zeitzonenbewussten Schichten verteilt. Ein 5-Minuten-SLA holt nicht bearbeitete Leads zurück, protokolliert einen SLA_Breach_Log__c-Audit-Datensatz und verteilt sie neu — unter Ausschluss des verletzenden Reps. Ein Platform Event speist das Live-Dashboard — eine 24-Stunden-Weltzeitleiste und ein Champion-Board — ganz ohne Polling.

Loan-Erstellung & Sync-Pipeline
Eine Closed-Won-Opportunity erzeugt einen Loan-Datensatz und synchronisiert ihn via Queueable-HTTP-Callout an ein Kernsystem — ein Callout pro Batch, selbst bei Bulk-Inserts. Jeder Versuch wird mit Request/Response-Payload in Loan_Sync_Log__c protokolliert; ein Retry-Limit plus eine 'Retry Now'-Aktion machen sie resilient und auditierbar.

Route & Weather Navigator (KI-Sicherheitsurteil)
Eine Google-Maps-Fahrroute (Essen → Ziel) mit Live-Wetter an fünf interpolierten Wegpunkten, abgeschlossen mit einem dreisätzigen Einstein-KI-Sicherheitsurteil (sicher / Vorsicht / nicht losfahren). Google Maps läuft in einer Visualforce-Seite, die via postMessage an die LWC gebrückt ist — der Standard-Workaround für Lightning Web Security.

Das Problem
Ich brauchte ein einzelnes Salesforce-Projekt, das Plattform-Breite demonstriert — mehrere Integrations-Patterns, Async-Apex-Varianten, KI-Integration, eigene Datenmodelle und die Secrets-aus-dem-Code-Disziplin, die Produktions-Orgs verlangen. Eine Single-Feature-Demo würde nicht zeigen, wie Engineering-Entscheidungen über eine Org hinweg komponieren.
Architektur
Das Flaggschiff ist ein KI-Partner-Compliance-Dokumentenmanager. Lädt ein Partner eine Datei in den File Hub, baut DocumentIntelligenceService einen Kontext-String (Dateiname, Typ, Absendernotiz, Reseller, die Live-Kategorie-Taxonomie und welche Kategorien ein Ablaufdatum tragen) und ruft ein Einstein Prompt Template ('DocumentClassification', GPT-4o mini) durch den Trust Layer via ConnectApi.EinsteinLLM.generateMessagesForPromptTemplate auf. Das Modell liefert striktes JSON — Kategorie, Confidence (0–100), extrahiertes Ablaufdatum und Zusammenfassung —, das der Service gegen die erlaubte Picklist validiert, auf den File_Hub_Entry__c zurückschreibt und nutzt, um jede passende Document_Request__c automatisch zu schließen; die Compliance-Anforderungen leben in Custom Metadata (Steuerbescheinigung, Versicherung, unterzeichneter Vertrag, Bankverbindung), sodass ComplianceService eine Live-MISSING/EXPIRED/EXPIRING/OK-Matrix und einen Score je Partner (das Compliance-Cockpit) berechnet — alles FLS/CRUD-enforced (WITH USER_MODE) mit @TestVisible-LLM-Mocking. Ein zweites KI-Feature ist die routeWeather-LWC — eine Drei-Integrations-Komposition. Sie hostet eine Visualforce-Seite (RouteMapPage) im iframe (der einzige Weg, Google Maps unter Lightning Web Security zu laden) und kommuniziert via postMessage: Die LWC sendet DRAW_ROUTE, die Seite antwortet mit ROUTE_DONE plus Zielkoordinaten. Die LWC berechnet dann fünf Wegpunkte (Start, 25 %, Mitte, 75 %, Ziel) und feuert fünf parallele Fetches gegen OpenWeatherMap via Promise.all. Sobald das Wetter ankommt, POSTet die LWC ein schlankes Sechs-Felder-pro-Wegpunkt-Payload an den Apex-Service RouteWeatherAnalysisService, der die Daten als Text formatiert und ConnectApi.EinsteinLLM.generateMessagesForPromptTemplate('RouteWeatherAnalysis', input) aufruft. Die GPT-4o-mini-Antwort wird in einer farbcodierten Karte gerendert per Schlagwort-Klassifizierer (storm/ice/hazard → rot; caution/careful → gelb; sonst grün). Drumherum sitzt ein Lead-Queue-Routing-System (LeadQueueScheduler scheduled Batch + Lead_Shift_Event__e Platform Event + leadShiftDashboard LWC), eine Loan-Sync-Pipeline (Loan__c + Loan_Sync_Log__c Custom Objects mit Retry-Scheduler und Audit-Logging), eine Reseller-Matching-Engine (mehrkriterieller Scoring-Service + Opportunity-Trigger + resellerTierBadge LWC) und ein erweiterbares TriggerHandler-Framework, von dem jeder Trigger in der Org erbt.
Der Ansatz
Drei Prinzipien laufen durch jedes Feature. Erstens: Async by default — jeder externe Callout nutzt Queueable oder Schedulable, keine synchronen Trigger-Callouts, keine Governor-Überraschungen unter Last. Zweitens: Secrets aus dem Code — sowohl der Google-Maps- als auch der OpenWeather-API-Key leben in einer API_Config__c-Hierarchical-Custom-Setting, zur Laufzeit gelesen via ApiKeyService Apex-Klasse (Instance-Property für VF, @AuraEnabled-cacheable-Methoden für LWC). Die Visualforce-Seite rendert den Maps-Key via {!JSENCODE(mapsApiKey)}, sodass er nie als Literal im Code erscheint; die LWC awaitet getOpenWeatherApiKey() im connectedCallback. ApiKeyServiceTest liefert 100 % Coverage. Drittens: Jeder Trigger erbt vom selben Kevin-O'Hara-TriggerHandler — Rekursionsschutz, Bypass-Mechanismus, testbare Logik — sodass Routing, Sync, Matching und Contact-Enrichment unter Bulk-Last konsistent verhalten.
Das Ergebnis
Ein Salesforce-Referenz-Sandbox, end-to-end gebaut (privates Repo; Walkthrough auf Anfrage). Sein Flaggschiff ist eine autonome KI-Dokumenten-Compliance-Schleife (Einstein Prompt Templates / Prompt Builder, strukturierte-JSON-Klassifizierung, automatisch erfüllte Anforderungen); drumherum sitzen KI-Routensicherheit, Contact-Enrichment, Lead-Queue-Routing, Loan-Sync und eine Reseller-Matching-Engine — über LWC, Apex, Visualforce, Custom Objects, Custom Metadata, Platform Events, scheduled Batches und Einstein-KI. Die Senior-Engineering-Details (Key-Management via Custom Setting, Trigger-Framework, Async-by-Default, FLS/CRUD mit USER_MODE, gemockte LLM-Tests) sind im Diff sichtbar. Dieselben Patterns übertragen sich direkt auf die Multifeature-Salesforce-Orgs, die mittlere bis große DACH-Unternehmen tatsächlich betreiben.
Externe Integrationen
- Google Maps Directions
Route geometry via VF iframe + postMessage; key from Custom Setting
- OpenWeatherMap
5-waypoint parallel forecast; key from Custom Setting
- Salesforce Einstein (GPT-4o mini)
Prompt Template safety assessment via ConnectApi.EinsteinLLM
- Nationalize.io
Contact country prediction on insert (Queueable + 6-scenario mock)