Help

Re: URL to Attachment

8040 0
cancel
Showing results for 
Search instead for 
Did you mean: 
Aaron_Phoenix
5 - Automation Enthusiast
5 - Automation Enthusiast

I have registration forms that collect a digital signature. It imports into airtable as a url, like this: (https://s3.amazonaws.com/files.formstack.com/uploads/3669579/85172110/582992994/signature_85172110.p...)

Can someone help me with a script that would convert this to an image attachment?

48 Replies 48
SEBASTIEN_GAGNO
5 - Automation Enthusiast
5 - Automation Enthusiast

I’m not a developer, but I know a script - from a toolkit (paid plan, however) - that’ll fix you problem : https://miniextensions.com/convert-urls-to-attachments/ ( from miniextensions.com ).

Hope that’s helpful! :slightly_smiling_face:

Stephen_Suen
Community Manager
Community Manager

You can write a URL to an attachment field, like so:

// Change the names of this table/fields according to your base.
let submissionsTable = base.getTable('Form submissions');
let urlField = submissionsTable.getField('Signature URL');
let attachmentField = submissionsTable.getField('Signature attachment');

let submissionsQuery = await submissionsTable.selectRecordsAsync();
let updates = [];
for (let record of submissionsQuery.records) {
    let url = record.getCellValue(urlField);
    let attachments = record.getCellValue(attachmentField);

    // If this record already has an attachment, skip it.
    if (attachments !== null) {
        continue;
    }

    // Otherwise, attach the image at the URL.
    updates.push({
        id: record.id,
        fields: {
            [attachmentField.id]: [{url: url}]
        }
    });
}

// Update records in batches of 50.
while (updates.length > 0) {
    await submissionsTable.updateRecordsAsync(updates.slice(0, 50));
    updates = updates.slice(50);
}

Thanks Stephen! This is fantastic

Glad to hear you find this snippet helpful! One minor revision — my original post was missing await in the last section of the script. I’ve updated it.

Hi Stephen,
I am getting an error :frowning:
What am I doing wrong?

image
ADF2

This script assumes that the URLs are always filled. To handle this case, try replacing lines 13-15 with the following:

if (url === null || attachments !== null) {
    continue;
}

This will tell the script to skip records without anything in the W1 field.

Let me know if this works!

Hi Stephen,
Thank you for the quick response.
It’s not working :frowning: - see attached.
What do you think is wrong?

image

I think the condition needs to be if (url === null || attachments !== null) {

In other words, skip it if the URL is blank, or if there are already attachments.

Roy_Daneman
4 - Data Explorer
4 - Data Explorer

Hi Kasra,
Thank you for you answer.
It seems to “pass” but now it is showing a new error (see attached) - what’s wrong?

image