feat(kontakte): Vorbereich "Aus Mails" mit Dublettenabgleich

Der Postfachabgleich hat gefundene Personen bisher direkt in den
Kontaktbestand geschrieben. Damit wächst eine gepflegte Liste ungefragt
mit jeder Adresse aus jeder Mail - genau daran ist das Altsystem
gescheitert.

Funde landen jetzt in einem Vorbereich (crm_leads.mail_pool = 1), der als
Unterpunkt "Aus Mails" unter dem Menüpunkt Kontakte aufklappt. Der
Kontaktbestand bleibt unberührt, bis dort jemand entscheidet; in
Opportunities, Kalender und Netzwerk tauchen die Funde nicht auf.

Eine Spalte statt einer zweiten Tabelle, weil crm_mail_links und
crm_mail_contact_candidates per Fremdschlüssel auf crm_leads zeigen - so
behält der Vorbereich seine Mailbezüge.

Übernehmen kennt zwei Wege:
- neue Person: Kopie mit mail_pool = 0, die Mailverknüpfungen wandern mit
- Dublette (Adresse, sonst voller Name): gold markiert, abweichende
  Felder mit altem und neuem Wert; die Feldauswahl schreibt sie in den
  vorhandenen Kontakt. Vorausgewählt sind nur Lücken - ein Wert aus einer
  alten Signatur soll nichts Gepflegtes stillschweigend ersetzen.

db.js verschiebt beim ersten Start die vorhandenen Kontakte mit
source = 'Mail' in den Vorbereich, einmalig über den Merker
leads_mail_pool_migrated in crm_settings.

Die Sidebar-Gruppe ist dabei generisch geworden (MenuGroup) - Kontakte
und Scanner benutzen jetzt denselben Code.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sascha Wolf
2026-08-11 08:59:14 +02:00
co-authored by Claude Opus 5
parent 8090d0aae1
commit ea55acdb5c
22 changed files with 1524 additions and 115 deletions
+42 -5
View File
@@ -128,8 +128,42 @@ erstellen* zwei Kontakte anklicken, um eine Verbindung anzulegen; `Esc` bricht a
Suche und Statusfilter wirken auch hier.
Sobald Kontakte aus dem Postfach uebernommen wurden, erscheint neben dem
Statusfilter ein **Herkunftsfilter**: *Aus Mails* zeigt nur die automatisch
entstandenen, *Selbst angelegt* nur die von Hand erfassten.
Statusfilter ein **Herkunftsfilter**: *Aus Mails uebernommen* zeigt nur die aus
dem Postfach stammenden, *Selbst angelegt* nur die von Hand erfassten.
### Aus Mails
Der Menuepunkt *Kontakte* klappt zwei Unterpunkte auf: *Alle Kontakte* und
*Aus Mails*. Der Zaehler am Menuepunkt sagt, wie viele Funde warten.
In *Aus Mails* stehen die Personen, die der Postfachabgleich in Mails gefunden
hat. **Sie sind noch keine Kontakte**: sie erscheinen nicht in der Kontaktliste,
nicht in Opportunities und nicht im Kalender. Jede Karte zeigt alle gefundenen
Angaben und darunter, aus welcher Mail sie stammen.
Zwei Faelle:
* **Weisse Karte** - die Person ist neu. *In Kontakte übernehmen* legt sie als
Kontakt an, mit Herkunft „Mail".
* **Gold markierte Karte** - es gibt sie in den Kontakten schon, erkannt an der
E-Mail-Adresse oder am Namen. Gold hinterlegte Felder weichen ab; darunter steht
durchgestrichen, was bisher im Kontakt stand. *Kontakt aktualisieren* oeffnet
die Feldauswahl: angehakt sind zunaechst nur die Luecken, also Felder, die im
Kontakt leer sind. Ein Wert, der etwas Gepflegtes ersetzen wuerde, ist als
*ueberschreibt* gekennzeichnet und muss bewusst angehakt werden - die Angabe
kann aus einer alten Signatur stammen. *Neu anlegen* erzeugt trotz Dublette
einen zweiten Kontakt, etwa wenn es zwei Personen mit demselben Namen gibt.
Weitere Bedienelemente:
* **Alle neuen übernehmen** legt alle weissen Karten auf einmal als Kontakte an;
gold markierte bleiben unberuehrt.
* **Eintrag hier behalten** - normalerweise verschwindet ein Eintrag aus *Aus
Mails*, sobald er als Kontakt gefuehrt wird. Mit dem Haken bleibt er stehen.
* Das **Papierkorbsymbol** entfernt einen Fund. Die Mails bleiben erhalten; taucht
die Person in einer neuen Mail auf, erscheint sie hier wieder.
* Der Filter waehlt zwischen allen Eintraegen, nur neuen Personen und nur
Dubletten.
## Mails
@@ -172,7 +206,8 @@ CRM bleibt sie erhalten, damit Zuordnungen nicht verloren gehen.
Aus Absender, Empfaengerliste und Signatur jeder Mail liest die Anwendung
Kontaktdaten. Wer eine echte Mailadresse hat und aus Absender oder
Empfaengerliste stammt, wird **automatisch** Kontakt. Alles Unsichere landet
Empfaengerliste stammt, landet **automatisch** im Vorbereich
[Aus Mails](#aus-mails) - nicht direkt in den Kontakten. Alles Unsichere landet
hier - typischerweise Personen, die nur mit Telefonnummer im Text genannt werden.
Der Balken rechts ist die Zuversicht: je voller und gruener, je verlaesslicher die
@@ -181,7 +216,9 @@ Angaben. Das Kennzeichen darunter sagt, woher sie stammen (*Absender*,
Zwei Knoepfe:
* **Als Kontakt anlegen** - es entsteht ein neuer Kontakt mit Herkunft „Mail".
* **Als Kontakt anlegen** - es entsteht sofort ein richtiger Kontakt mit Herkunft
„Mail", nicht nur ein Eintrag in *Aus Mails*: hier hat ja schon jemand
hingesehen und entschieden.
* **Ergaenzen** (statt „anlegen", wenn **Bereits vorhanden** dransteht) - der
vorhandene Kontakt wird um die fehlenden Angaben erweitert. Was schon gepflegt
ist, bleibt unangetastet.
@@ -342,4 +379,4 @@ nicht zum Benutzerkonto.
| Keine Mails sichtbar | steht oben ein Hinweisbalken? Sonst Admin bitten, in *Einstellungen &rarr; Postfach* die Verbindung zu testen |
| „Erstabgleich laeuft noch" | aeltere Mails werden in mehreren Durchlaeufen nachgeholt, die Liste waechst noch |
| Bilder in einer Mail fehlen | *Externe Bilder laden* klicken - sie sind absichtlich gesperrt |
| Kontakt-Vorschlaege bleiben leer | Normalfall: sichere Vorschlaege werden automatisch uebernommen und tauchen hier nicht auf |
| Kontakt-Vorschlaege bleiben leer | Normalfall: sichere Vorschlaege wandern automatisch nach *Kontakte › Aus Mails* und tauchen hier nicht auf |