Hi all, I am going to say a few things about what is discussed here.
Zapier
Zapier has been around for several years now and its initial integration with Infusionsoft was done via the XML-RPC API. Zapier has been designed to be simple to use, but it is not suitable for more complex integrations.
From what it is being reported here, it seems that they have jumped to use the REST API v1 now.
Keap REST API
Quotes from Nicholas in August 2018.
We are actively working to transition developers over to using REST so I would recommend against developing new integrations using XML-RPC.
However, you could use the XML-RPC API if you need to provide arbitrary values for the phone type field. We are no longer actively developing the XML-RPC API and will be sun setting it at some point in the future.
Those two statements are no longer valid. Whoever designed REST API v1 completely ignored the capabilities of what the XML-RPC API offered, or they assumed developers would be happy with the REST API functions provided. Unfortunately over the years when developers ask for something specific to be done in the REST API, some of the answers have been to revert back to the XML-RPC because it provides the functionality.
Sunsetting of the XML-RPC is no longer going to be happening for a long time. The issue is that REST v1 is no longer actively being developed either, because REST v2 is being concentrated on now. So now there is integrations with XML-RPC, or REST v1 with XML-RPC, or REST v2 with XML-RPC, and other combinations as well.
The REST API could have been successful if it provided full backwards capabilities, but it fell short.
Suggested Solution
One solution that comes to mind to get around this issue would be to Country mappings between the different processes. I have done that in the past whereby I had to map two different country lists between Infusionsoft and another integration.
If you are allowing free text to be entered for the Country Name then that is going to be a problem. People could enter a variety of different ways to spell a country, eg: Full Name, Short Name, Abbreviated Name. The other issue of free text is that if someone makes a spelling mistake, the software would have to deal with it, or default it to a particular country. I recommend that you have a Country drop down list.
In regards to Zapier, they are not going to be doing anything with the country either. They will just pass through whatever is sent to it. They are no way going to be creating country mappings, because there is going to be 1000s of combinations.
I main reason for why Keap is putting this restriction in is for data accuracy, and maybe for the Pro / Max products as well. The XML-RPC API allows any text, but it should really match the Country list Keap has got. But there probably be other integrations that could also be applying strict country names or codes as well.
You can try speaking to Zapier about the issue. But you will have to rethink who things are integrated to get this to work.