feat(leadscraper): Lead-Adresse an CRM Organization beim Deal-Convert weiterreichen #8

Merged
forgejo-admin merged 1 commit from feature/lead-address-organization-link into main 2026-07-25 21:26:00 +00:00

Zusammenfassung

Löst #4 und #5 zusammen (statt sequentiell), mit einer anderen finalen Architektur als ursprünglich in #5 skizziert (siehe Diskussion im Issue).

  • Beim Lead-Import wird zusätzlich zu den lesbaren custom_address/custom_city/custom_country-Feldern ein echtes Address-Dokument angelegt (via parse_address(), bereits vorhanden aber ungenutzt), per Dynamic Link mit dem CRM Lead verknüpft.
  • Keine CRM Organization wird beim Import angelegt — bewusste Entscheidung, auf Interessenten-Ebene zu bleiben (Organisation gehört erst zur Deal-Phase, das ist Frappes eigener manueller Workflow).
  • Live verifiziert: Frappes eigene Lead→Deal-Konvertierung (create_organization()) kopiert Website/Territory/Industry, aber nie die Adresse — Organization.address bleibt sonst immer null.
  • Neuer doc_events-Hook (CRM Organizationafter_insert) verknüpft die beim Import angelegte Adresse nachträglich mit der neu entstandenen Organisation, sobald ein Mitarbeiter den Lead manuell zum Deal konvertiert.

Verifikation (live, Demo-Umgebung)

  1. Lead mit vollständiger Adresse → Address-Dokument beim Import angelegt, Dynamic Link auf CRM Lead
  2. Lead per echter convert_to_deal-API zu Deal konvertiert (CRM-DEAL-2026-00005)
  3. Neue CRM Organization.address korrekt gesetzt (vorher immer null)
  4. Address-Dokument zeigt danach beide Links (CRM Lead + CRM Organization)

Docs

docs/install.md (neuer Abschnitt 7b) und Projekt.md (Feld-Mapping-Tabelle korrigiert — CRM Lead hat entgegen ursprünglicher Planung keine Adressfelder und keinen Organization-Link; Entscheidungstabelle ergänzt).

## Zusammenfassung Löst #4 und #5 zusammen (statt sequentiell), mit einer anderen finalen Architektur als ursprünglich in #5 skizziert (siehe Diskussion im Issue). - Beim Lead-Import wird zusätzlich zu den lesbaren `custom_address`/`custom_city`/`custom_country`-Feldern ein echtes `Address`-Dokument angelegt (via `parse_address()`, bereits vorhanden aber ungenutzt), per Dynamic Link mit dem `CRM Lead` verknüpft. - **Keine** `CRM Organization` wird beim Import angelegt — bewusste Entscheidung, auf Interessenten-Ebene zu bleiben (Organisation gehört erst zur Deal-Phase, das ist Frappes eigener manueller Workflow). - Live verifiziert: Frappes eigene Lead→Deal-Konvertierung (`create_organization()`) kopiert Website/Territory/Industry, aber **nie** die Adresse — `Organization.address` bleibt sonst immer `null`. - Neuer `doc_events`-Hook (`CRM Organization` → `after_insert`) verknüpft die beim Import angelegte Adresse nachträglich mit der neu entstandenen Organisation, sobald ein Mitarbeiter den Lead manuell zum Deal konvertiert. ## Verifikation (live, Demo-Umgebung) 1. Lead mit vollständiger Adresse → `Address`-Dokument beim Import angelegt, Dynamic Link auf `CRM Lead` 2. Lead per echter `convert_to_deal`-API zu Deal konvertiert (`CRM-DEAL-2026-00005`) 3. Neue `CRM Organization.address` korrekt gesetzt (vorher immer `null`) 4. `Address`-Dokument zeigt danach beide Links (`CRM Lead` + `CRM Organization`) ## Docs `docs/install.md` (neuer Abschnitt 7b) und `Projekt.md` (Feld-Mapping-Tabelle korrigiert — `CRM Lead` hat entgegen ursprünglicher Planung keine Adressfelder und keinen Organization-Link; Entscheidungstabelle ergänzt).
Creates a real Address doctype (linked via Dynamic Link) alongside the
existing custom_address/custom_city/custom_country text fields when a Lead
is imported, using the already-ported but previously unused parse_address().

Frappe CRM's own Lead-to-Deal conversion (create_organization()) never
carries an address over to the newly created CRM Organization - verified
live that Organization.address stays null even for a Lead with a full
address. A doc_events hook (CRM Organization -> after_insert) now links the
Lead's existing Address to the new Organization and sets its address field,
so the data collected at the Interessenten stage survives the manual
Convert-to-Deal step instead of being silently dropped.

Deliberately stays at the Lead level - no CRM Organization is created during
import itself, only once a human actually converts the Lead to a Deal.

Live-tested end-to-end in the demo environment (address created on import,
correctly carried over on conversion to CRM-DEAL-2026-00005).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
forgejo-admin deleted branch feature/lead-address-organization-link 2026-07-25 21:26:00 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Frappe-Projekte/LeadScraper-Google!8
No description provided.