I’m working on a Zapier integration with an “addUser” action. I’ve set up the inputFields array to define what users see in the Zapier interface, including some nested field structures.
The UI renders correctly, but when I test the zap, the data format in bundle.inputData doesn’t match my inputFields structure. The nested properties seem to be duplicated in two different locations.
Here’s my configuration:
module.exports = {
key: 'user',
noun: 'User',
create: {
display: {
label: 'Add User',
description: 'Adds a new user record.'
},
operation: {
inputFields: [
{key: 'name', required: true},
{key: 'surname', required: true},
{key: 'email', required: false},
{key: 'phone', required: false},
{key: 'department', required: false},
{
key: 'experience', children: [
{key: 'company', required: false},
{key: 'position', required: false},
{key: 'duration', required: false, label: 'Years of Experience'},
{key: 'level', required: false},
{key: 'startYear', required: false, type: 'datetime' },
{key: 'endYear', required: false, type: 'datetime' },
]
}
],
perform: addUser
},
},
sample: {
id: 1,
name: 'Sample name',
surname: 'Sample surname'
},
outputFields: [
{key: 'id', label: 'ID'},
{key: 'name', label: 'Name'},
{key: 'surname', label: 'Surname'},
]
};
When I log bundle.inputData in the addUser function, the nested fields appear in two places:
== Log
inputData: { startYear: '10/03/2018',
company: 'XYZ Corp',
endYear: '12/03/2019',
position: 'Developer',
name: 'John',
level: 'Senior',
surname: 'Smith',
duration: '2 years',
experience:
[ { startYear: '2018-03-10T00:00:00+00:00',
company: 'XYZ Corp',
endYear: '2019-03-12T00:00:00+00:00',
position: 'Developer',
level: 'Senior',
duration: '2 years' } ],
email: '[email protected]' }
I expected bundle.inputData to match the structure I defined in inputFields. How can I make the input data format consistent with my field configuration?