Extracting single image/attachment URL


Admittedly, an edge case, but in working with the Airpress WordPress-to-Airtable API and plugin, I ran into problems when attempting to display only the first image from an attachment field. After hours spent stepping my way through the plugin, I finally discovered I’d been debugging the wrong module entirely. Discouraged, I took a break, fed the cat, got another cup of coffee – and then wondered if I might not be able to goose Airtable into giving me the data directly.

Five minutes later, I had it.

The example assumes an Attachment field named ‘images’, but should work with attachments of any type.

To extract the URL


To extract the file name

LEFT(images,FIND(" ",images)-1)

This works because Airtable will cast an Attachment field to a comma-delimited string of values when it is acted upon by a text function. Each attachment value consists of two parts, separated by a space: the original file name (sans path) and the Airtable URL, enclosed in parentheses – as so:

FileName1 (URL1),FileName2 (URL2),[...],FileNameX] (URL[x])

Again, probably not of interest for most Airtable users – but if I’d thought about it earlier, I could have saved myself a day’s effort.

Going mad trying to avoid duplicates with ARRAYUNIQUE
Display attachment name
Downloaded File Names

I was trying to find a way to get multiple links and I didn’t find a clean one. Instead of this, If your images have the same number of letter, like when come from a camera “IMG_2000.jpg” and regarding that airtable use a specific number of character to generate the URL’s, then you can do this:

MID( string, Start From Numbers Of Characters of the Name , Number of characters that airtable use )
MID( string, (total characters till comma + Start From Numbers Of Characters of the Name) , Number of characters that airtable use )

MID( {img-general}, 15, 57)
& “,” &
MID( {img-general}, (73+15), 57)
& “,” &
MID( {img-general}, (73+73+15), 57)
& “,” &
MID( {img-general}, (73+73+73+15 ), 57)

Hope it’ll be useful to somebody.

If somebody knows a better way, let me know!