I have a contact form on my site that connects to Zapier to automatically create Google Contacts. Everything works fine except the custom fields seem to get mixed up.
I reached out to Zapier support and they said everything looks good on their side. They even shared the API response log showing that Google received the correct data. According to their response, Google confirmed receiving the right field name and value pair.
The weird thing is that in my Google Contacts, the custom field name and value appear to be swapped around. For example, I set up a field called “session type” with the value “family” but it shows up differently in the contact.
Zapier suggested this might be a Google Contacts bug or maybe the fields are switched in my Google Contacts setup. Has anyone else run into this problem with custom fields through Zapier?
This looks like a common indexing problem with Google’s People API that I’ve encountered before. The issue isn’t actually with your field setup or Zapier’s configuration - it’s how Google Contacts processes the userDefined array when multiple automations or rapid API calls are involved. I had the exact same problem last year when integrating form submissions. What worked for me was adding a small delay between contact creation and custom field population in Zapier. You can set up a two-step process: first create the basic contact with name and email, then use a 30-second delay action, followed by an update step that adds the custom fields. This gives Google’s backend time to properly index the contact before applying custom data. Alternatively, check if you have any other Zapier workflows or integrations touching Google Contacts simultaneously, as conflicting API calls can cause this field swapping behavior. The API response you shared looks correct, so the timing approach should resolve it.
sounds like the classic google contacts display bug tbh. i’ve seen this happen when the custom field gets created with same name as an existing field type. try checking if “session type” conflicts with any default google contact fields - sometimes google treats custom fields as variants of built-in ones and mixes up the display logic. quick fix is renaming your field to something more unique like “booking_session_type” instead.
I actually experienced something similar about six months ago when setting up automated contact creation for our CRM. The issue turned out to be related to how Google Contacts handles custom field creation through the API versus manual creation. What I discovered is that when custom fields are created programmatically through Zapier, Google sometimes doesn’t immediately establish the proper field mapping in your contact schema. The data gets stored correctly on Google’s backend, but the display can get confused between the field label and value. To fix this, I had to manually create the custom fields in Google Contacts first before running the Zapier automation. Go to your Google Contacts, create a test contact, and manually add the “session type” custom field with any dummy value. This establishes the field in your account’s schema properly. After doing this, delete the test contact and run your Zapier automation again. The field mapping should work correctly from that point forward. It’s annoying that you have to do this workaround, but it resolved the swapping issue completely for me.