Help

Multiple Airtable Attachment Uploads

Solved
Jump to Solution
3200 11
cancel
Showing results for 
Search instead for 
Did you mean: 
n8atkinson
5 - Automation Enthusiast
5 - Automation Enthusiast

Hello. I am trying to send Gmail attachments I receive automatically to an attachments column in Airtable. I finally realized that Airtable wants the URL in array form, which I can do. However, I have not figured out how to use the array functions toArray, map, or add to append the files instead of overwriting and keeping the last one. I have searched and read numerous posts in both the Make and Airtable communities. This is my most recent attempt at make.com.

n8atkinson_0-1698651773034.png

My ultimate goal is to allow students to email their attachments and have them appear in the portal I built with Softr.

I feel like I am so close. Thank you.

Grand Valley Tutor llc
1 Solution

Accepted Solutions
ScottWorld
18 - Pluto
18 - Pluto

Hi @n8atkinson,

I gave a step-by-step tutorial on how to solve your problem on today's episode of the BuiltOnAir podcast.

For those people in the future who are reading this thread for the first time, this solution uses Make's automations & integrations for Airtable.

p.s. If you have a budget for your project and you’d like to hire an expert Airtable consultant to help you with any of this, please feel free to contact me through my website: Airtable consulting — ScottWorld 

See Solution in Thread

11 Replies 11

Yes, it seems like you are very close.

This should work if you take these 2 steps:

1. First, you will need to toggle ON that mapping button. When you have mapping turned off, Make’s Airtable modules are expecting you to send the entire attachment array structure broken up into 2 parts (name and URL). Since you’re only working with the URL, you need to turn on the mapping and Airtable will automatically understand what you are trying to do.

2. However, that function that you created in Make will only work if you’re adding an attachment to an attachment field that ALREADY has an attachment in it. If you’re adding an attachment for the first time to an empty attachment field, you will need to start off by creating an empty “null” array, and add your attachment to the “null” array. For an example of how to do this, check out my instructions in this thread. In that thread, I’m giving an example based on linked record fields, but it’s the same concept for attachment fields. (Note that there are also several other Make experts hanging out in that community.)

p.s. If you have a budget for your project and you’d like to hire an expert Airtable consultant to help you with any of this, please feel free to contact me through my website: Airtable consultant — ScottWorld 

n8atkinson
5 - Automation Enthusiast
5 - Automation Enthusiast

Scott, that made a lot of sense. Unfortunately, I ran into the same error. 

screenshot.24.png

n8atkinson_1-1698687121014.png

n8atkinson_2-1698687220148.png

n8atkinson_3-1698687257526.png

I appreciate your detailed response.

Grand Valley Tutor llc

Hmmm... sorry about that. Either Make is expecting the filename (even though the filename isn't required), or I gave you incorrect directions. Let me look into this, and I will get back to you tomorrow!

ScottWorld
18 - Pluto
18 - Pluto

Hi @n8atkinson,

Okay, it looks like I was totally wrong above. This is a little bit more complicated to setup in Make.

I mistakenly thought that "attachment field" arrays worked the same as "linked record field" arrays, but I was wrong. Linked record fields are "simple arrays", whereas "attachment fields" are "complex arrays of objects".

I reached out to Make's support department, and they talked me through how to solve this. It's relatively complicated and I haven't fully tested it out yet, so I'm going to have to create a video on how to solve this in a few days, after I play with this some more and have a fully working demo.

However, in the meantime, the answer lies in using Make's "Array Aggregator" to make a complex array of objects, and then using the output from that module as the value to put into the attachment field.

Below are 2 screenshots that show the solution in progress, but I will work on a full video in a few days.

(Also, if you are lucky enough to get a fantastic support person at Make, they might be able to modify your scenario for you to get it working.)

Screenshot 2023-11-01 at 9.27.14 PM.png

Screenshot 2023-11-01 at 9.27.32 PM.png

  

Wow. I appreciate the time and effort you are putting into this. I assumed at the outset that this project would be much simpler 🙂

Grand Valley Tutor llc
ScottWorld
18 - Pluto
18 - Pluto

Hi @n8atkinson,

I gave a step-by-step tutorial on how to solve your problem on today's episode of the BuiltOnAir podcast.

For those people in the future who are reading this thread for the first time, this solution uses Make's automations & integrations for Airtable.

p.s. If you have a budget for your project and you’d like to hire an expert Airtable consultant to help you with any of this, please feel free to contact me through my website: Airtable consulting — ScottWorld 

Time code here.

Thank was incredible!

Again, thank you so much.

Grand Valley Tutor llc

You're welcome! 😃

I am so close.  I could not tell how many times in the video the next-to-last iterator/aggregator run cycled compared to the Update Airtable module. I am attempting to upload three Gmail attachments and still only get the last one. I have tried many combinations. My iterator/aggregator/updater cycle together three times. I inserted the merger function to try to address the issue. 

n8atkinson_0-1699513116838.png

 

n8atkinson_1-1699513167079.png

n8atkinson_2-1699513648759.png

The only difference I can tell between my run here and your video is the addition of the Filestack module in mine. That seems to work and the URL and file name pass through correctly. The good news is no more error messages 🙂

 

 

Grand Valley Tutor llc

I’m assuming that Filestack is giving you a publicly-accessible URL that has these 2 properties:
(1) The URL can be accessed by the general public on the web without logging into Filestack, and
(2) The URL points to the actual file itself, not a webpage that acts as a UI wrapper for the file.

Assuming that both of those statements are true, then the solution is a very easy & simple fix.

You simply need to change your Array Aggregator’s topmost dropdown menu to point to the iterator module instead of the Filestack module.

That’s it. Leave everything else alone.

That should solve the problem, so that’s the end of the instructions.

However, if you want to know WHY this solves the problem, here’s why:

The reason this works is because you only want your Aggregator to run once, not 3 times.

Notice that your Aggregator module has a bubble that says 3 instead of 1. That means that you actually created 3 arrays instead of 1 array.

In fact, several of your modules are running 3 times. Starting at your Filestack module, each module is running 3 times in a row. Each module is running “3 times with 1 bundle output per run”, instead of running “1 time with 3 bundle outputs”.

The Array Aggregator needs to run on multiple bundle outputs, not multiple runs. So you still want the aggregator to start at the iterator, even though you have a Filestack module before it.

That’s because the Aggregator has a special & magical property which causes it to bundle together (as one bundle) everything that comes between it and the source module that you specify… as long as that source module only runs “once with multiple outputs”, not “multiple runs with one output per run”.

p.s. If you have a budget for your project and you’d like to hire an expert Airtable consultant to help you with any of this, please feel free to contact me through my website: Airtable consulting — ScottWorld 

@n8atkinson 

p.s. If you don’t mind, could you please mark my comments above as the solutions to your question? This will help other people who have a similar question in the future, because it will rise to the top of the search results. 🙂