Best way to return constituent id with name, email, address and phone?

What's the best way to try and get the correct constituent id if I have a person's first name, last name, email, address, and phone number?

Is there a way to return the best guess from the Constituent API?


I see I can search by name or by email - but is there a way to search using multiple datapoints so I can try and find the correct constituent (like maybe they have the same name, but different email address)?


I feel like just using their name, or just using their email might give me the wrong constituent id in some cases (like if the husband and wife share an email - or if two people have the same name, but are different people).


Thanks!

Comments

  • Michael Tims
    Michael Tims Blackbaud Employee
    Sixth Anniversary Kudos 2 Name Dropper Participant
    Hi Nathan Wells.‍ From what I tell Constituent (Search) is probably the best, and yeah unfortunately you can't provide multiple data points to search (unless it's a "First Last" name search). Perhaps you might have to make multiple requests if you can't narrow down with a single call. So for example, start with a search by email, and if multiple constituents are found with the same email, then try a "First Last" search to narrow down further. You'd go with the constituent that came back for both calls.


    If you had a UI available, you could present a dialog to the user to choose the correct constituent to continue with.
  • I was hoping to do all this under the hood, but it sounds like we will have to expose matching to the UI.


    Thanks for your help.
  • Hi Nathan,


    The need for a better/more flexible search API for constituents is good feedback, and I'll make sure to route this to the appropriate team. For now, Michael's suggestion of using the SearchConstituent endpoint is the way to go. If you have email address, you can provide that as the search text. If you get back a single record, you can verify the first/last/address/phone you have with the response from the API. If you get back multiple matches, you can iterate through the API response and perform additional matches based on the first/last/address/phone values you have.
  • Thanks Ben!

Categories