Darstellung
Verkaufschancen (CRM10)
Transaktion: CRM10 Verkaufschancen
UI-Pfad: /crmOpportunity
Business-Zweck
Verkaufschancen (CrmOpportunity) modellieren die Vertriebspipeline: erwarteter Umsatz, Eintrittswahrscheinlichkeit, Status, Gültigkeit und Positionen mit Materialbezug. Partner nutzen CRM10 für CRM-Pipeline-Sync und als Sprungbrett zu SAL-Angeboten und -Aufträgen.
Die Forecast-Berechnung erfolgt automatisch: customerBudget × probability / 100.
Kernbegriffe
| Begriff | Bedeutung |
|---|---|
| CrmOpportunity | Verkaufschance mit Name, Nummer, Kunde, Status |
| opportunityNo | Nummer aus Nummernkreis (automatisch wenn leer) |
| customerBudget | Erwarteter Umsatz |
| probability | Wahrscheinlichkeit 0–100 % |
| status | OpportunityStatus (Pipeline-Phase) |
| companySource | Herkunft/Quelle der Chance |
| items | Positionen (CrmOpportunityItem) mit Material, Menge, Preis |
| forecast | Berechneter Erwartungswert |
| salesPerson | Vertriebsmitarbeiter (auto aus PLZ/Land wenn nicht gesetzt) |
| attributeCode / attributeSettings | Flexible Zusatzattribute (wie am Artikel) |
| contactPersons | Verknüpfte Ansprechpartner |
Fachlicher Ablauf / Workflow
Verkaufschance anlegen
- Kunde zuordnen (qualifizierter Kontakt aus CRM02)
- Name, Budget, Wahrscheinlichkeit, Status setzen
- Positionen mit Material, Menge, optional Preis hinzufügen
- Speichern:
POST /api/crmOpportunity/– vergibtopportunityNoaus CRM-Nummernkreis - CRM-Aktionen an der Chance dokumentieren
Pipeline pflegen
- Statuswechsel (z. B. Qualifizierung → Verhandlung → Gewonnen/Verloren)
validFrom/validUntilfür Gültigkeitszeitraum- Ansprechpartner verknüpfen:
linkToContactPerson/unlinkToContactPerson
Angebot aus Chance erzeugen (SAL15)
- Chance muss Kunde und mindestens eine Position haben
POST /api/crmOpportunity/createSalesHead- System erstellt
SalesHeadals Angebot (erster aktiverSalesDocTypemitisOffer = true) - Positionen werden als
SalesItemübernommen – Preis aus Chance oder Preisfindung - Verknüpfung:
SalesHead.crmOpportunity,SalesItem.crmOpportunityItem
Bestehendes Angebot verknüpfen
Alternativ ohne Neuanlage:
POST /api/crmOpportunity/addOpportunityToSalesHeadPOST /api/crmOpportunity/removeOpportunityFromSalesHeadPOST /api/crmOpportunity/addOpportunityToAllSalesHead– für offene Belege eines Kunden
CSV-Import
Massenimport über POST /api/crmOpportunity/importCSV mit dynamischem Spalten-Matching (getImportMatchingForDynamicCSV).
Partner-Szenarien
Pipeline aus externem CRM
POST /api/crmOpportunity/json
{
"name": "Projekt Alpha 2026",
"customer": { "id": 9876543210987654 },
"customerBudget": 50000,
"probability": 60,
"status": { "id": 1 },
"validUntil": "2026-12-31",
"items": [
{
"material": { "id": 5555666677778888 },
"quantity": 10,
"price": 1200.00,
"description": "Lizenzpaket Premium"
}
]
}Angebot generieren und in SAL weiterverarbeiten
POST /api/crmOpportunity/createSalesHead
{ "crmOpportunityId": 1111222233334444 }Response mit id, docNumber, docType – danach normaler SAL-Flow (Angebote, Aufträge).
Pipeline-Abgleich (Read)
GET /api/crmOpportunity/Filter auf Status, Kunde, Attribute, Erstellungsdatum. Detail:
GET /api/crmOpportunity/{id}Voraussetzungen
- Kunde (CRM02) muss existieren; für Auftragserstellung als Debitor
- CRM-Opportunity-Nummernkreis in Mandantenkonfiguration (
configuration.crmOpportunityNumberRange) - Materialien (BAS02) für Positionen
- Aktiver Angebots-Belegtyp (
SalesDocType.isOffer) fürcreateSalesHead - Partner-User mit Recht CRM10; für Angebotserstellung zusätzlich SAL-Rechte
Auswirkungen im ERP
| Aktion | Auswirkung |
|---|---|
| Neue Chance | Pipeline-Eintrag, Forecast in Auswertungen |
| createSalesHead | Neues SAL-Angebot mit Positionen und Preisen |
| Status „Gewonnen“ + Auftrag | Übergang Order-to-Cash über SAL |
| Löschen | Soft-Delete (isDelete); Positionen mitgelöscht |
| revert | Rücknahme letzter Änderung (API) |
| CSV-Import | Massenanlage/Update je nach Mapping |
Typische Fehlerquellen
- Kein Nummernkreis –
object.not.setfür CRM Opportunity Number Range - createSalesHead ohne Positionen –
crmOpportunity.createSalesHead.noItems - Kein Angebots-Belegtyp –
edi.salesDocType.not.found.error - Material/Variante nicht gefunden – Position mit ungültigem
matCodeodervariantCode - Interessent statt Kunde – Kunde fehlt oder ist nicht konvertiert →
customer.not.found.error - Hardcodierte Status-IDs – OpportunityStatus mandantenspezifisch
- Preis 0 – ohne
pricein Position wird VK-Preisfindung genutzt; kann von Chance abweichen
Weiterlesen
- Technisch: CRM Opportunity API
- Kontakte: Interessenten & Kontakte
- Aktivitäten: CRM-Aktionen
- Vertrieb: Angebote, Aufträge
- API: SalesHead API