Skip to main content

How can I cache the data that was fetched for dynamic dropdown?

I am building part of the action form based on user defined fields fetched from my API. 

{
key: 'user_define_fields',
label: 'Map user fields',
required: false,
list: true,
dynamic: 'customFields.name',
helpText: 'Choose custom fields to be mapped.',
altersDynamicFields: true,
},
function (z, bundle) {
if (!bundle.inputData.custom_fields) return ];

const selectedFields = bundle.inputData.custom_fields.map(function (el, idx) {
return { key: el, type: 'string' };
});
return { key: 'user_defined_custom_fields', children: selectedFields };
}

The issue is that every time user opens the dropdown to add another field (another line item) the resource `customFields` is fetched again. Is this somehow possible to cache that request? 

Rather than have the end user select fields one at a time… would it perhaps be easier to just load all the custom fields in as dynamic fields? https://platform.zapier.com/cli_docs/docs#customdynamic-fields 


Well, unfortunately that would rarely do the job. Most users have many custom fields and I think this solution tends to be more user friendly despite the loading time.


Hi Marcin,

We don’t have any kind of caching mechanism in the platform right now, but it is something we’d like to add.

I wish I had different news for you.


Thank you for the answer.