There’s a really convenient option Add All Fields on the airtable node which allows for appends without having to set every field - which is especially onerous for wide tables
There’s just one problem… if there are any fields that don’t exist in the table then the request fails. I think there should be a way to make it not fail and that would be great.
Here’s my idea:
We add an additional option that allows for retries on failed property names that removes those props from the data before sending it into Airtable
That way we get an outcome with minimal effort:
don’t have to set the property names
don’t have to worry if there are property names in the data that don’t match with the table columns
You need to be able to get all the fields from a table. As far as I know, the only way to do that is by using the Airtable metadata API. Such API requires different API Keys, and you need to fill up an application to get it. That makes it a problem since we do not want everybody to go through such an application to use the node.
fyi, it is also easily possible to find the source code of each node via our website. We have a link to the source code (“View source”) on each node page.
Reviewed their documentation and can confirm this is true, what a silly design decision -
I think there is still a way around it though without having to loop in metadata API -
when submitting the object the API tells you what fields aren’t in the table so you could just parse the error and then accumulate those fields to remove on subsequent calls
Kind of a pain due to a single non-standard design decision on their part though
After speaking to Airtable support over several days it seems like there’s no way to solve this without the metadata API and the metadata API itself is designed to be used in closed-sourced integration services like Zapier or Integromat.
Kind of a shame, I really liked Airtable but I guess it’s time to move to NocoDB or some other database / CRM solution
In my use case I could solve this by setting a little JS that returns a [null] instead of an [undefined] that would usually occure when there is no (empty) field returned from airtable. Maybe that could be useful for some people.