wir führen grade Twingle ein. Dabei wird eine Spende entweder einem bestehenden Kontakt zugeordnet oder es wird ein neuer Kontakt erstellt. Dabei wird die Extension Extended Contact Matcher verwendet. In der Minimal-Konfiguration erfolgt die Zuordnung zu einem bestehenden Kontakt anhand der E-Mail-Adresse. Wir haben festgestellt, dass dies für Kontakte der Kontaktart „Organisation“ nicht funktioniert: Wenn ein Kontakt der Kontaktart „Organisation“ mit der E-Mail-Adresse foo@robinwood.de in CiviCRM hinterlegt ist, und eine Twingle-Spende mit derselben E-Mail-Adresse an CiviCRM übermittelt wird, wird fälschlicherweise ein neuer Kontakt angelegt. Weitere Spenden werden dann diesem neuen Kontakt zugeordnet.
Kann es sein, dass Extended Contact Matcher nur für die Kontaktart „Individual“ funktioniert? Oder ist das zumindest für Twingle der Fall? Oder müssen/können wir das irgendwo konfigurieren?
Hallo Daniel. Es ist tatsächlich aktuell (Version 1.3) so, dass die Spendenkontakt hart (siehe HIER) als Person angenommen wird.
Das könnte man natürlich ändern, aber da müsste gut durchdacht werden, an welchen Parametern das festgemacht werden soll.
Der XCM kann jedenfalls m.W. derzeit nicht eigenmächtig entscheiden, ob etwas eine Organisation oder eine Person ist, sondern erwartet das bereits als Eingabe.
Vielleicht könnte man ja de.systopia.twingle dahingehend ändern, dass falls ein Kontakt-Match mit der Kontaktart „Individual“ fehlschlägt, dann und nur dann ein weiteres Matching probiert wird mit der Kontaktart „Household“ und ggf. anschließend nochmal mit „Organisation“? Damit wäre unser Usecase zumindest abgedeckt (vermutlich viele weitere) und de.systopia.twingle muss gar nicht entscheiden, um welche Kontaktart es sich bei den Daten aus dem Twingle-Formular handelt.
Den von Dir vorgeschlagenen Weg finde ich etwas unglücklich, da ja ein Fehlschlag aus unterschiedlichsten Gründen passieren kann, und damit das Verhalten der Twingle Extension an dieser Stelle schwer vorhersagbar würde.
Dazu kommt, dass der XCM ja eigentlich extra so konzipiert wurde, dass er möglichst nicht fehlschlägt, und selbst mit minimalen übermittelten Daten einen Kontakt finden/anlegen kann.
Ich könnte mir aber zwei Optionen vorstellen um Dein Szenario abzubilden:
Wir fügen einen „Hook“ ein, wo man programmatisch noch einmal die Werte vor der Übergabe (und damit auch die Kontaktart) an den XCM manipulieren könnte. (Das ginge theoretisch jetzt auch schon, aber dann müsste man etwas mehr Arbeit in die Detektion der richtigen Herkunft des Calls machen) [wenig Aufwand]
Wir fügen eine Konfigurationsoption ein, in der man konfigurieren kann, welche Kontaktart und welches XCM Profil unter welchen Umständen verwendet werden soll. Das sollte man sich aber gut überlegen, und beispielsweise von einem einzelnen Eingabeparameter abhängig machen, damit das nicht zu kompliziert wird. [etwas mehr Aufwand]
Aber es wäre sicherlich interessant, hier ein paar konkrete Szenarien zu sammeln.