I believe my problem is an API consideration that yes, needs to go through Partner Technical Support at some point, and I’ll do my best to share my understanding of the deeper root cause. Regarding a problem statement, it IMHO would be something like “I need to search my Keap database by phone number to see if this is a new person calling or someone that has already called in the past.”
Right now, there are 3 “flavors” of the API:
-
The original XML-RPC.
-
The modern REST API v1.
-
The latest-and-greatest REST API v2 that is being developed.
The specific API connection I am working with only provides an inbound phone number; medical specialist’s call center in south Florida.
The source of the phone number being provided (from a “specific API connection”) is mostly irrelevant. Anyone using the API should know how to properly condition a phone number so the API search hit is good; not the issue here. And, the destination Keap account is again mostly irrelevant. Anyone using the API will absolutely make sure the data goes into the correct customer tenant; not the issue here.
For well over a year, I have been using CallRail connected to Keap via Make for a client in the medical space. Their phone software sends an inbound phone # to Make.
Then we check to see if that phone # already exists in Keap in ANY of the possible default phone number fields. If a contact exists, we update that a call came in. If a phone number has NEVER been inside this specific Keap tenant, we create a Contact for that number along with the same update that a call came in:
This whole integration operates on the old XML-RPC DataService.Query on the Contact table for the PhoneX fields and has been working excellent for a long time. I would happily rip-and-replace the newest REST v2 API call to search for phone 1 (or 2 or 3) and then make sure the rest of the integration bits work to avoid service disruption.
From what I have seen on the REST v2 documentation, right now there is no way to search for a contact via phone number, even though this is something that can done via the quick search inside the native keap.app UI.
If I wanted to search via phone 1, phone 2, or phone 3 with the Keap API using the latest-and-greatest REST v2 API, how do I do that?