I’m building a Zapier app for a form creation platform. Our forms use automatically generated field identifiers that are quite lengthy and not user-friendly.
I have a trigger named “Fresh form submissions” that fetches data from our API and returns responses like this:
The problem is that users see these ugly auto-generated field names in the Zapier UI, which creates a poor user experience.
I want to show readable field labels to users while maintaining the unique field identifiers in the background for data processing. I’m considering restructuring the response like this:
That nested object approach won’t work with Zapier - it expects flat key-value pairs and can’t parse nested structures for field mapping like you’re thinking. Use Zapier’s outputFields config in your trigger instead. Set up your output fields with the actual API field names as keys, but give them readable labels: outputFields: [{key: 'user_email_304829517639201', label: 'What\'s your email address?'}, {key: 'contact_number_892047165820394', label: 'Contact Number'}]. Your API response stays the same, but users see friendly labels in Zapier’s interface. The internal field IDs stay intact for processing while the UI shows meaningful names. I’ve used this pattern tons of times and it works solid across different Zapier integrations without breaking anything.
outputFields is your best bet here. I hit this same issue with a CRM integration - database columns like ‘cust_fname_uuid_xyz123’ everywhere. I defined the outputFields array in the trigger definition and left the response structure alone. Just watch out - your field keys in outputFields need to match your API response exactly. Same casing, same special characters, everything. I screwed this up once and wasted hours figuring out why labels weren’t working. If your form fields change dynamically, you’ll need a custom field schema function. It fetches the current form structure and builds outputFields on the fly instead of hardcoding everything.
yeah, outputFields is the right approach. define them in your trigger setup - don’t mess with the actual API response data. zapier handles the mapping from ugly field ids to clean labels automatically once you’ve got it configured. i’ve dealt with the same messy field names from cms apis before.