Übersehe ich etwas, oder gibt es in CiviCRM keine konstante Kontakt-ID, die automatisch vergeben wird?
Es gibt die CiviCRM-ID, die sich aber z. B. verändert, wenn ich per Deduplikation aus einem Individual-Kontakt einen Organisation-Kontakt mache. Die CiviCRM-ID ist eine technische ID in dem Sinne, dass es sich um eine Datenbank-ID handelt. Es ist in diesem Sinne keine fachliche ID.
Man könnte jetzt ein custom field machen für eine fachliche ID. Dieses Feld würde aber nicht automatisch gefüllt, z. B. wenn per Twingle-Spende ein neuer Kontakt angelegt wird.
Wenn Du eine konstante ID möchtest, müsstest Du die tatsächlich als Custom Field ergänzen, das kannst Du z.B. mit CiviRules automatisch füllen lassen, wenn Du den Kontakt erstmalig anlegst. Vielleicht hilft Dir auch die Extension IdentityTracker
Ich möchte allerdings hinter das Konzept der „kontinuierlichen ID“ ein Fragezeichen machen. Denn wie wenig konstant eine ID ist, zeigt ja das von Dir erwähnte Beispiel. Wenn Du im Rahmen von Deduplizierung zwei Kontakte zusammenführst, ist ja zwangsläufig für einen der beiden Kontakte eine gleichbleibende ID ausgeschlossen.
Abgesehen von Kontaktzusammenführungen bleibt die CiviCRM ID ja konstant. Auch wenn man den Kontakttyp ändert. Wenn der fälschlicherweise als Person mit der CiviCRM ID 4711 angelegte Kontakt „Musterverein“ in die Kontaktart Organisation umgewandelt wird, bleibt die ID 4711.