Huge +1 on this suggestion. I have a very similar scenario to the one described by @Taylor and it has become very complicated to update fields that might be used in formulas.
Huge +1 on this suggestion. I have a very similar scenario to the one described by @Taylor and it has become very complicated to update fields that might be used in formulas.
Idk how long has this been a thing but Airtable does expose the data you want through the Scripting app as of right now.
Here, drop this into any base for a quick report on your formula interdependencies:
base.tables.forEach(Table=>{
Table.fields.filter(f=>f.type==='formula')
.forEach((fField,i) => {
if(!i)
output.markdown(`# ${Table.name}`);
const refFields = fField.options.referencedFieldIds
output.markdown(`Field **${fField.name}** is referenced by ${refFields.length} field${refFields.length!==1?'s':''}.`)
if(refFields.length)
output.table(refFields.map(v=>v={id:v,name:Table.getField(v).name}))
})
});
In action:

Thr Field List app shows this information with a premium license. You can learn more on my website.
Idk how long has this been a thing but Airtable does expose the data you want through the Scripting app as of right now.
Here, drop this into any base for a quick report on your formula interdependencies:
base.tables.forEach(Table=>{
Table.fields.filter(f=>f.type==='formula')
.forEach((fField,i) => {
if(!i)
output.markdown(`# ${Table.name}`);
const refFields = fField.options.referencedFieldIds
output.markdown(`Field **${fField.name}** is referenced by ${refFields.length} field${refFields.length!==1?'s':''}.`)
if(refFields.length)
output.table(refFields.map(v=>v={id:v,name:Table.getField(v).name}))
})
});
In action:

THank you so much, it works like a charm!