I am trying to use the ConstituentSearchMatch service to retrieve data based on information coming from other integrated systems.
Short version: I need a way to call SearchMatch based only on the External ID.
Long version – additional information:
(Note: in the below cases I am using DeDupFlg=false in the request.)
I attempted to call SearchMatch by sending the ID from the external system into ListOfSwiPersonQueryIO/Contact/ExternalId, but when I only populate the ExternalId, I get the error, “Unable to Query MDM tables: input fields are missing”.
If I happen to know the name (or even a single letter of the name), then I can query on both name & External ID, but the service does not match based on the External ID; it only matches on the [partial] name. For example, a constituent J. Doe has External ID 12345, but if I search for (ExternalID=12345 & firstname=J), I get back >200 results – all first names that contain a J. Only one of these results matches the External ID that I sent in the input. The External ID field is being ignored during the match. Just for comparison purposes, I changed DeDupFlg=true, but I still got the same >200 results.
What is needed in order to have the ConstituentSearchMatch service return results based on the ExternalId that I input?