11/7/2023 – BuiltOnAir Live Podcast Full Show – S16-E06

Duration: 0 minutes

Be Sure to Subscribe to the podcast!

To get all the latest videos and demonstrations from the BuiltOnAir Podcast, subscribe and get notified on our Youtube channel here and our newsletter/community here.

FULL EPISODE VIDEO

Watch the full video of the show. See below for segment details.

FULL EPISODE AUDIO

Listen to the full Audio podcast for this episode here. Or add to your favorite podcast player

Listen On: Apple | Overcast | Spotify


The BuiltOnAir Podcast is Sponsored by On2Air – Integrations and App extensions to run your business operations in Airtable.

In This Episode

Welcome to the BuiltOnAir Podcast, the live show.  The BuiltOnAir Podcast is a live weekly show highlighting everything happening in the Airtable world.

Check us out at BuiltOnAir.com. Join our community, join our Slack Channel, and meet your fellow Airtable fans.

Todays Hosts

Kamille Parks – I am an Airtable Community Forums Leader and the developer behind the custom Airtable app “Scheduler”, one of the winning projects in the Airtable Custom Blocks Contest now widely available on the Marketplace. I focus on building simple scripts, automations, and custom apps for Airtable that streamline data entry and everyday workflows.

Dan Fellars – I am the Founder of Openside, On2Air, and BuiltOnAir. I love automation and software. When not coding the next feature of On2Air, I love spending time with my wife and kids and golfing.

Scott Rose – Scott Rose is an expert Airtable consultant, a Certified FileMaker Developer, and a Registered Integromat Partner with 30 years of database development experience. Scott is the Chief Geek Officer of ScottWorld.com, where he has built a career developing world-class database systems for businesses. Scott is also a member of MENSA International (the high IQ society) and is an accomplished public speaker. In the early 2000’s, Scott traveled around the country for 6 years with Steve Jobs & the Apple Executive Team as one of Apple’s top professional speakers. Scott spoke at all of Apple’s major events & retail store openings, where he introduced many of Apple’s new products to the public for the very first time. In his free time, Scott gives motivational & inspirational talks at conferences around the globe.

Show Segments

Round The Bases – 00:01:49 –

Scripting Time – 00:01:54 –

Explore Scripting with “Synced Collaborator Field Limitation”.

Kamille will share a script that works as a work around for the limitations with synced collaborator fields..

Automate Create – 00:01:54 –

Watch as we review and work through automations. Scott will walk us through the complexities of dealing with arrays in Airtable and how to work with them in Make.com

Full Segment Details

Segment: Round The Bases

Start Time: 00:01:49

Roundup of what’s happening in the Airtable communities – Airtable, BuiltOnAir, Reddit, Facebook, YouTube, and Twitter.

Segment: Scripting Time

Start Time: 00:01:54

Scripting Time: Synced Collaborator Field Limitation

Explore Scripting with “Synced Collaborator Field Limitation”.

Kamille will share a script that works as a work around for the limitations with synced collaborator fields..

Segment: Automate Create

Start Time: 00:01:54

Airtable Automations – Working with Arrays in Airtable and Make

Watch as we review and work through automations. Scott will walk us through the complexities of dealing with arrays in Airtable and how to work with them in Make.com

Full Transcription

The full transcription for the show can be found here:

S16-E06-video-full
===

[00:00:00] Intro: Welcome to the Built On Air Podcast, the variety show for all things Airtable. In each episode, we cover four different segments. It's always fresh and different, and lots of fun. While you get the insider info on all things Airtable, our hosts and guests are some of the most senior experts in the Airtable community.

[00:00:26] Join us live each week on our YouTube channel every Tuesday at 11:00 AM Eastern and join our active community at BuiltOnAir.com. Before we begin, a word from our sponsor On2Air Backups. On2Air Backups provides automated Airtable backups to your cloud storage for secure and reliable data protection. Prevent data loss and set up a secure Airtable backup system with On2Air Backups at on2air. com. 

[00:00:50] As one customer, Sarah, said, Having automated Airtable backups has freed up hours of my time every other week and the fear of losing anything. Long time customer [00:01:00] David states, On2Air backups might be the most critical piece of the puzzle to guard against unforeseeable disaster. It's easy to set up, and it just works.

[00:01:08] Join Sarah, David, and hundreds more Airtable users like you to protect your Airtable data with On2Air backups. Sign up today with promo code BuiltOnAir for a 10 percent discount. Check them out at on2air.Com. And now let's check out today's episode and see what we built on air.

[00:01:26] Dan Fellars: Welcome back to the built on air 

[00:01:39] podcast. We are in season 16, episode six. Good to be with you. We've got myself, Dan Fellars, Kamille Parks, and Scott Rose back with us today. 

[00:01:50] Scott Rose: Hello. Hello.  

[00:01:52] Dan Fellars: Good to have everyone with us. Glad you could join us. Uh, the built on air podcast is an hour long show. We'll talk through a few [00:02:00] items.

[00:02:00] I'll walk you through what we're going to be doing today. We always start with our round the bases to go through with what's new and what's going on in the communities. Then a shout out to our primary sponsor On2Air. And then Kamille is going to do some scripting and show us a workaround for sync collaborator field limitations.

[00:02:20] And then Scott's going to walk through automations and working with arrays inside of make and Airtable and then a shout out to join our community. And then finally, I'll end with an app from the marketplace tab graph and other ways to visualize your data. 

[00:02:37] ROUND THE BASES - 02:38:00

[00:02:38] So. We'll go through with round the bases. All right, let's start off with our built on air community.

[00:02:47] Um, this show revision history is apparently new. Um, and this is an interfaces right on the detail sheet. [00:03:00] So before did they just have comments? Yes, comments. All right. So now you can actually see the revision history in the interface. 

[00:03:10] Kamille Parks: I wasn't able to find it in my instance, which again, is going to be a running theme for me this episode, but.

[00:03:21] Um, yeah, previously, you only had the comments, um, elements that you could add on and then revision history was added. I think if you turn them both on at the same time, they will occupy the same space. Like in the data view, you can like switch between show me both of them, show me one or show me the other.

[00:03:41] Um, so it's not going to be like two things on the page, I don't believe. One 

[00:03:47] Scott Rose: thing that's missing from the comments, I don't know if they've added this. But when you're back in the grid view and there's comments on a record, they give you the little number in the left margin of how many comments are on that record.

[00:03:58] That [00:04:00] used to never appear on interfaces. Do you know if they have added that to interfaces now? 

[00:04:05] Kamille Parks: It is present on full screen list views. It might even be non full screen list views. Um, uh, they'll it appears somewhere. I feel like when you start to group it, it will tell you how many it's not in the place that I expected to find it.

[00:04:24] Um, yeah, but it it's sometimes there and I do wonder, um, um, I do have it on my separate instance. Now revision history. It will include things like interface edits, extensions, automations and external applications. So if you have your API, Or your personal access token connected, um, it will, that will show up, um, and it will probably say like anonymous or the person whose personal access token was used.

[00:04:57] So that's helpful. Um, it's [00:05:00] not just changes that were made within the interface. It's the holistic revision history. Very cool. 

[00:05:07] Scott Rose: Cool. I'll check, I'll check into that comments thing and I'll, maybe I'll present that in a future episode. 

[00:05:13] Dan Fellars: Sounds good. Yeah, 

[00:05:15] Kamille Parks: occupy the same space. I'm just checking on my.

[00:05:18] Secondary laptop, it's you toggle between which one you want to see at the time and you can look at both if you wanted,

[00:05:28] Dan Fellars: but it is only on the detail sheets on your main 1. you don't see it. Unfortunately. So come on is may not be seeing it. Yes. So maybe it hasn't fully rolled out. 

[00:05:43] Kamille Parks: Yeah, it's um. That's a shame. 

[00:05:49] Dan Fellars: So coming soon. Maybe. All right. Next one. This one actually got posted. Um, this was, uh, yeah, 5 days ago, Zapier sent out an email to all Zapier [00:06:00] users that had an Airtable connection that they automatically.

[00:06:05] Moved your connection over to OAuth, which I thought is interesting because the whole point of OAuth is that it requires your 

[00:06:12] Scott Rose: permission, right? Yeah, exactly. So I was confused about, I guess they've been working with Airtable behind the scenes to do this. Yeah, right. Yeah. Cause I didn't 

[00:06:24] Dan Fellars: get that privilege from Monteware where they didn't give us that option.

[00:06:30] Scott Rose: Yeah, it's, uh, it's very interesting, right? 

[00:06:35] Kamille Parks: What's that Kamille? Make didn't get the same. No, I guess they was like, which. Integration platform has the most amount of users, I guess. And then maybe Zapier fit the bill. 

[00:06:53] Scott Rose: Yeah, I think like Airtable considers Zapier like an official partner and make is, I [00:07:00] guess they're not an official quote unquote.

[00:07:05] Dan Fellars: Yeah, they don't have as strong a relationship. 

[00:07:08] Scott Rose: Yeah, but it'll be interesting to see. Did I think, was there a date in there when they said it would happen or has it already happened? I forgot what they said in the letter. It already happened. Yeah, that's, that's amazing because it is a pain to migrate all of your make scenarios over to OAuth.

[00:07:26] Or to personal access tokens. Cause you got to go through every single module on every single scenario. But for Zapier to do this automatically, that's, that's incredible. 

[00:07:38] Dan Fellars: And I didn't hear any complaints a week before, probably in preparation. They had issues with their OAuth and everybody was complaining.

[00:07:48] They were likely getting it ready for this or something. 

[00:07:51] Scott Rose: Right, right. But 

[00:07:53] Dan Fellars: I didn't hear any issues with this announcement. 

[00:07:56] Scott Rose: Yeah, that's, that's amazing. If you [00:08:00] refresh this though, by the way, if you refresh this, I have a new comment that I added earlier this morning. Uh, there it is. I still love make better than Zapier because somebody asked me there, how easy is it to transfer from Zapier to make?

[00:08:12] And then I gave a whole bunch of different reasons why I like make better. And, uh, so even though this is super, super cool, I would still use make any day, any day of the 

[00:08:22] Dan Fellars: week. Right, right, right. Yeah. And you mentioned that you don't 

[00:08:25] Scott Rose: know. Well, I'm sorry. What was that? Oh, yeah. 

[00:08:29] Dan Fellars: Yeah. You're only doing make or migrating people to make 

[00:08:34] Kamille Parks: well, a useful feature for either make or Zapier in general would be to like, if you have a scenario.

[00:08:43] Or is that recipe or whatever they're called and you have, like, 10 modules of the same, like, platform being able to bulk update them to pick from the same authentication details or to target the same Airtable table or something like that. You [00:09:00] know, because to your point earlier, it is a. One by one by one, which makes sense, but it'd be nice if you had the option to beyond Airtable, making this sweeping change to their access.

[00:09:14] Sometimes you just want to use a different credential and having to do that one by one is a pain. 

[00:09:22] Scott Rose: That is true. You know, you just reminded me there is a backdoor way of doing it. Using the old IntegraMAT extension for the Chrome browser. It's highly, highly sophisticated. You got to go behind, you got to go into the extension and then you bring up a console and you type in some code and it will go through and it will change it all.

[00:09:47] I should, I got to find that post. Somebody posted how to do that somewhere. This is a long time ago. And I was like, you know what? What's that? That's 

[00:09:57] Dan Fellars: a lot of work. Maybe 

[00:09:59] Scott Rose: a [00:10:00] little sketchy, maybe a little scary. Um, but there is some backdoor way of doing it in bulk. I'll see if I can find that, that post somewhere.

[00:10:11] I was too scared to do the backdoor way though. Well, 

[00:10:14] Kamille Parks: yeah, it's, it's still called IntegraMAT. I, I shudder to think it's been like two years now since they changed their 

[00:10:21] Scott Rose: name. I know, I know. Their, their little Slack bot still says IntegraMAT when you send stuff from make to Slack. I've got to talk to them about that.

[00:10:31] Yeah. Yeah. 

[00:10:33] Dan Fellars: All right. Moving on. We got one more, uh, also from Russell unexpected filter behavior for a lookup. So he has, if you look here, he has a filter that says number of weeks, um, equal to negative one. So he wants a filter where it's only negative one, but it returns anything that has a negative one in here.

[00:10:56] This is a lookup field. Um, [00:11:00] and so as long as one of them equals negative one, it was returning. So that's interesting behavior on a filter, which kind of makes sense because one of them equals negative one for. Yeah, 

[00:11:18] Kamille Parks: but I guess if you're, it's hard with lookups, because if you have multiples of the same, if you had 2 negative ones, it's still treated as 2 separate values rather than like an array, not an array, a roll up might, you know, if you do array unique, Would give you just one of the negative ones.

[00:11:36] And so there's a, there's, I guess, use cases where you would want it to be exactly 1 value. And that value is negative 1. and if it has multiple values, then that's a different case. Um, I don't. I don't know what the average user would say is expected behavior in this instance. I think, Scott, in this thread, you [00:12:00] said you might expect contains, and I think that's what I would expect as well.

[00:12:07] Scott Rose: Yeah, it's interesting, and yet I understand why it did what it did also. It's kind of weird. Yeah, yeah. 

[00:12:14] Dan Fellars: I wonder if all of the formula fields, like if you said greater than negative two or something, and as long as one of them is. It would like, I wonder if it filters for each element in the array, 

[00:12:30] Scott Rose: it seems like it must be what it's doing.

[00:12:32] Right? It seems like it's taking that filter and evaluating every single element of that array. So 

[00:12:40] Kamille Parks: I feel like it should be an and operator because in this case, negative 4, negative 2, negative 1. If I said, if the value is greater than negative 3, Not all of those are greater than negative three, so I would expect it to return false for it to be filtered out.

[00:12:59] But [00:13:00] because some of them are, is it going to show up? I don't know. 

[00:13:04] Scott Rose: Yeah, we need to test this. 

[00:13:06] Kamille Parks: Yeah, I get it. I'm, I'm ambivalent towards how they handle it. With the array, but it's the greater than and less than that. I'm 

[00:13:17] Scott Rose: more concerned. Interesting. 

[00:13:19] Dan Fellars: I think the outcome and I think come on mentioned. This is like, probably don't use lookups in your filters strange behavior.

[00:13:31] Kamille Parks: Well, it's fine for things like select options. It's great for select options, but it's poor for things like numbers. I think roll ups are the better bet. 

[00:13:44] Scott Rose: Yeah, I wonder if that if the same behavior happens with roll ups, 

[00:13:50] Kamille Parks: it depends on how you set up the roll up because you can have a roll up appear effectively the same as it would if it were a look up or you could have it.

[00:13:58] If you put max in there or [00:14:00] men, it'll give you just one value and it'll be in there, 

[00:14:03] Scott Rose: right? Right. Very interesting. I'm glad Russell found that Russell finds a lot of these little gems. It's 

[00:14:10] Kamille Parks: Russell and Ben Bailey. I think are the 2 that discover everything for me. 

[00:14:15] Scott Rose: They're actually the writers behind this show.

[00:14:18] That's right. 

[00:14:21] Dan Fellars: You just don't get the royalties. They might go on strike.

[00:14:27] Scott Rose: Yeah, no, it's amazing. The it's, it's great to know these little tiny gotchas that Ben and Russell find all the time. Yeah. 

[00:14:36] Dan Fellars: All right, moving on now we're in a Facebook community. Um, somebody posted an email that people may have received yesterday from Airtable talking about some new features coming in interface designer doesn't give any screenshots.

[00:14:52] It just mentions a new class collapsible left pain. Improved right hand [00:15:00] properties, a new responsive interface canvas and a new form builder coming soon. It says it will be rolling out over the next few weeks. 

[00:15:09] Kamille Parks: So, I want to start by saying, I'm happy they warned everyone this time, the last time, the 2nd to last time, I should say, um, they updated.

[00:15:20] Interface designer, they just sort of did it, um, for detail pages and it added some things, but took a lot of things away. And, like, people were baffled. It was, it wasn't explained how you could replicate some of your older layouts. Some of them you could, if you, like, poked around and some of them, you just couldn't and some stuff is still missing.

[00:15:39] And so while there's no screenshots here, they do say they're going to roll them out over the next few weeks. And when they roll out, those will include, um, screenshots of whatever feature just launched and whatever. So I'm, I am happy that we're being prepped that sometime in the near future, these specific [00:16:00] pieces of interface designer are going to change and we're going to get more information as it happens.

[00:16:06] And it doesn't mean I'm going to like how they change once I see them, but I'm, you know, kudos for telling us ahead of time rather than just dumping it in 

[00:16:19] Scott Rose: there. It's so true. It's so true. But the interesting thing, what's so funny is we already have a collapsible left pain. So I guess this is true. So 

[00:16:27] Kamille Parks: we were talking about this in terms of what does this mean?

[00:16:31] Because one of the theories was it might have been sent in error. Because there is a collapsible left pane and technically the, um, side sheets and detail pages, they already have a new responsive interface canvas. So was this an old email that accidentally got set? I think not. I think what's happening is although we have a collapsible left pane, I think we're getting a different collapsible left pane because that has some issues.

[00:16:57] The one that's. Currently there. It doesn't give you [00:17:00] a whole lot of information if it's completely collapsed. You know, it groups things maybe not the way you want them grouped and the new responsive interface canvas only applies to detail pages. I think they're going to apply it to the blank layout. You know, and then the form layout doesn't use it.

[00:17:20] And, um, if you had that one, I think it's called record detail or something. It's the, it's on the left hand side and it lists them vertically. And on the right hand side, you have this sort of blank sheet, um, that is a separate layout. That doesn't use the same, uh, canvas engine. So for bullet point 2, I think they're going to apply.

[00:17:43] The detail page canvas, you know, I don't know, engine to everything else. That's how I read it. Um, and then the new form builder, like I said, the current form builder doesn't [00:18:00] use the same layout engine as, um, detail pages, but they also mention, um, make it even easier to design and share forms with any audience to me that reads as.

[00:18:14] You'll be able to maybe, uh, use it in lieu of a form view, which you don't have to have an Airtable account to use right now. Interface forms are, you, you must already be, you must already have access to at least the interface, um, which means you need an Airtable account. So those are my guesses. I don't know, because there's not a lot of detail in here.

[00:18:39] Scott Rose: I love when Kamille reads the tea leaves. 

[00:18:42] Kamille Parks: I've got it because I am historically pretty bad at guessing what it means. And so I have to get these on camera. So in, I don't know, a month from now, we can look back and point out how many ways that I was 

[00:18:57] Scott Rose: incorrect. But you [00:19:00] know, what's so funny though, every single thing that you predicted, I was like, I was on board with, with all of them.

[00:19:05] I was like, that's what I want. Yes. That's what I need. That's what I want. That's what I need. So hopefully. What's that, Dan? 

[00:19:12] Dan Fellars: That's not what they gave us usually. 

[00:19:15] Scott Rose: I know, but hopefully Kamille's predictions will be right this time. All 100 percent of them. Fingers crossed. 

[00:19:20] Kamille Parks: I think the, the 1 in the middle, the responsive interface canvas is probably going to be the 1 that catches the most flack no matter what they do, just because everyone's used to the current.

[00:19:32] Canvas, right? You've already built it the way you've, you've built whatever you've built. Um, and while the detail page canvas is pretty good for a lot of things, it's not great now for certain things. You still can't make everything span the full width. You still can't put a chart for whatever reason.

[00:19:50] Those are still gone. There's things that are missing, and because they're not launching them at the time of this email, I have hope that they make [00:20:00] those kinds of tweaks. And then make it reach every piece of interface designer. That's my hope. You know, take these little things that are missing to make it comparable to the current canvas with the new features that they've added.

[00:20:17] Yeah. You know, time will tell in the next few weeks or whenever they begin the rollout. 

[00:20:24] Scott Rose: I really hope they don't break people's old interfaces that are using the blank layout. Yeah, because I have clients, you know, that have up to the maximum number of interface pages that you can have with, you know, based on the blank layout.

[00:20:38] I hope that I hope this will be a smooth transition. 

[00:20:43] Kamille Parks: I have a feeling that it's going to be okay for. Maybe even, like, 75 percent of interface pages, because a lot of pages are kind of, you know, you put this next to this and that's it. But if you had, like, [00:21:00] text elements every which way, and then, like, a button that spanned the whole width, for whatever reason, those I anticipate breaking.

[00:21:08] And then again, you can't put charts on a detail page. So, our is the new canvas. Compatible with charts at all. If you had a chart, is it going to break? I don't know. And so those are the things I'm anticipating giving everyone the most grief. 

[00:21:26] Dan Fellars: We shall see. So I believe this email just went out to enterprise customers.

[00:21:31] Um, is my is my thinking. So it likely will get rolled out initially to enterprise. So that's my guess. All right. One more, uh, from Facebook. This one comes from friend Chris, um, talking about, I don't know if you guys saw OpenAI had their like big showcase yesterday or the day before, um, I think it was yesterday and they were talking about you can, they call them GPTs, custom [00:22:00] GPTs, where you can basically create your own chat GPT and feed it with Just your data and it kind of based my understanding is it creates like a memory layer on top of chat GPT.

[00:22:11] That is specific to what you want it to be. So Chris here is, uh, you know, throwing the gauntlet down. Whoever builds the Airtable GPT 1st wins. Um, but I had the same thought when I saw the video yesterday. I was like, okay, how can you put Airtable on top of this? So it's reading your table data. Yeah. 

[00:22:36] Scott Rose: I don't know if you guys have seen that, but that's very cool that they're, they're adding on that extra layer so you can have your own data powering chat.

[00:22:45] Tbt's engine in a way, 

[00:22:48] Dan Fellars: which also kills like there is so many startups that were basically just that, you know, like, um, so this is going to. I think kill a lot of startups,[00:23:00] 

[00:23:01] Scott Rose: so that's very interesting. It reminds me of, Oh, Kamille, were you going to say something? 

[00:23:05] Kamille Parks: No, it's just, I, I am distancing from various AI tools until like the dust settles and so I'm just sort of waiting. Maybe next year I'll start playing around with these different things, but it's kind of, I am anticipating.

[00:23:24] Like the big fish slowly, but surely adding enough integrations or features that some of the smaller, you know, more nimble tools are going to be made obsolete, which is a shame, but it happens and especially no code. So just sort of waiting for it all to finish. 

[00:23:42] Scott Rose: Yeah, I feel the same way. I'm sort of waiting for the dust to settle on everything.

[00:23:46] Um, although my, a bunch of clients were already using chat GPT. However, you know, this also reminds me of this announcement that you were just talking about, Dan is, um, with Google translate as far, one of my clients came with, came to me, they [00:24:00] needed to translate, uh, stuff on a daily basis in their Airtable base.

[00:24:05] But what they were finding was that Google translate. Was translating words the wrong way, you know, like a word might have multiple different meanings in, in any language, you know, and Google translate was picking the wrong meaning and they couldn't tell Google translate how to do it. And we found another much more powerful translation tool called deep L, which lets you.

[00:24:34] Upload your own glossary, your own dictionary. And so when they're translating stuff. Um, it will pull first from your dictionary and your glossary. Basically, you know, I'm trying to come up with a good example. Like they, they make apparel. And so I can't even think of the word that, that was, that was, they were really hung up on, but it's [00:25:00] some word for a piece of apparel.

[00:25:02] And it's something on the thing, like a hood, but, and that, that wasn't the word, but hood means two, there were like multiple ways to say hood in French. One was the hood of an, of a car. The other one was a hood of a sweatshirt. Then it was a hood of an. Animals beak or whatever hood wasn't the word. So this is not a good example, but that this announcement reminds me of that, which is that if you're looking to translate something, there's also tools out there that are even better than Google translate, because you can just.

[00:25:34] Just load it with all of your own data. 

[00:25:39] Dan Fellars: Yeah, that's a similar concept here. So yeah, Wednesday, I wonder how Airtable is thinking about AI. We're going to talk a little bit about that later. But, um, right now it's kind of on a per record level. I think the next phase is to make it like across at least across the entire table where it can digest all [00:26:00] that data.

[00:26:01] To, you know, so this might be a way to do that if they can incorporate the custom GPT feature inside your base. Yeah, I think it's the next step for Airtable. AI. Yeah. All right, 

[00:26:15] let's move on. 

[00:26:16] Um, so this is also just kind of a recap of, um, things that came out that Airtable actually mentioned. So there's a, there's a page Airtable dot com slash what's new.

[00:26:30] You can also subscribe to this space, um, to get notified whenever they add to it. But there was a couple of things in here that I don't know if we talked about all of them on previous shows, so there's actually quite a few in October, um, like higher user group limits. I don't think we mentioned that one.

[00:26:48] So now you can go up to. Um, four and a half thou, 4,500 users in case anybody, oh, now it's 5,000, um, [00:27:00] uh, workspace collaborators. And then before the user group size was a thousand, and now it's four and a half thousand. So for you, big users having 5,000 collaborators or whatnot, you can now do that. What else was on here that we didn't mention?

[00:27:19] Kamille Parks: It's a lot of little things like, um. The stuff for enterprise is cool and all, but they fixed, like, one of the silliest limitations that interfaces had, specifically with the buttons that can trigger automations. Now you have multiple buttons triggered the same automation, so you don't have to have identical automations.

[00:27:39] All triggered by their own special little button and, um, while the automation is running, it will like show you an in progress state. So your users know that the thing isn't done yet. So little things, but very, you know, nice to see. Um, and then. Updates to record details [00:28:00] in interface designer goes over the, uh, changes that we were kind of talking about previously sections or groups and you can now have the same field appear in multiple places, that kind of stuff.

[00:28:11] So it's, um, I think, pretty comprehensive of the major changes that have happened over the last, I think, 2 months. And 

[00:28:22] Dan Fellars: they added a status to buttons when it's in progress, it will actually change. 

[00:28:28] Scott Rose: Yeah, I think that's cool. I think, I think they got that idea from all of us. Because we've been, as a consultants, we've been doing that, we'll select menus.

[00:28:36] If you pull down an option, run automation, we change it to like running or something or in progress. Yeah, 

[00:28:41] Kamille Parks: my, for the longest time, my completed state would just be like the hourglass emoji. And I would say processing instead of complete, because I know it's not done. And when it's done, it'll just go back to run now.

[00:28:55] So this is kind of formalizing that. Um, so now you can have a truly complete. [00:29:00] Stage. 

[00:29:01] Scott Rose: I love that. I love that. 

[00:29:04] Dan Fellars: All right. A couple more quick ones. This one is from table forums. Just kind of a reminder. This isn't new, but somebody pointed out. Um, if you search for a filter in the, in the filter search box, it will actually show you view or for you.

[00:29:21] Excuse me. It will show you views and other. Tables just good and bad. I think Scott, you mentioned that sometimes that's 

[00:29:29] Scott Rose: frustrating. Yeah. Me and come on, get a little frustrated by that behavior when you're searching for views, especially because view of like views, let's say you're just searching with grid view and you type grid, let's say, or any name view that's in multiple tables, it'll show you all the views across all the tables.

[00:29:47] Um, and so it will suck if you're not paying attention, you may choose the view and it jumps you to another table. And you weren't expecting that. 

[00:29:56] Dan Fellars: Yeah, yeah, so just [00:30:00] a reminder. Be careful of that. 

[00:30:02] Scott Rose: Yeah, it's kind of cool and also unexpected, but yeah, 

[00:30:06] Dan Fellars: yeah, here's another trick from Troy on on X, um, talking about if you have commas in, like, your, your primary field.

[00:30:19] You need to be careful. Um, if when you have the lookup, um, because it will in automations, it will get treated as a separate entity. Um, so you got to be careful. So he says, um. Add double quotes around the dynamic variable. I think that means in the automation like this. Yeah, yeah. So that way, um, that it will take into account, uh, each individual one instead of treating them separately.

[00:30:58] So, [00:31:00] or try to avoid commas in your primary field if possible, because it will wreak havoc. Yeah, yeah. All right. Last 1. This 1 is a follow up. Um, we've talked about this. There was there was a big Twitter thread about how much Airtable is worth what their multiple is what their revenue targets are and then there was some clarification of it.

[00:31:27] And anyways, if you want to hear the latest directly from Howie Liu, CEO of Airtable, um, he sat down with Jason Calacanis, who is the host of This Week in Startups, and also another, um, all in podcast. Um, and so he talks with him for an hour. This one's just a 10 minute clip. The There's a link that we'll put directly to the YouTube of the full hour, um, long interview.

[00:31:55] I listened to it. I thought overall it was kind of good. He shared things [00:32:00] that, um, that, um, weren't obvious before. So they clarify some things. I think. They can add into their messaging, but I don't know if either of you listen to any of it. 

[00:32:14] Kamille Parks: No, not yet. 

[00:32:15] Scott Rose: Yeah, not yet. 

[00:32:16] Dan Fellars: Yeah, it's worth it. He talks about AI and what they're planning to do.

[00:32:20] He does kind of imply that they will Add AI across all their data not just on the per record level Things like that talks about the strategy of like enterprise how they are moving enterprise, but they still recognize and value All customers, especially the self serve is the term he uses for people that, um, that, uh, learn it and introduce it in other areas.

[00:32:47] So anyways, that's, uh, that concludes our around the bases. 

[00:32:51] SPONSOR HIGHLIGHT - ON2AIR BACKUPS - 0:32:51

[00:32:53] We'll move forward a quick shout out to onto air. If you are using your data in Airtable [00:33:00] for anything of value in your business, best practices that you have it backed up outside of Airtable. That's where On2Air Backups comes in. Um, try it out, you can set up your backup in minutes and rest sure that your data is being backed up outside of Airtable.

[00:33:16] We currently support Box, Dropbox, and Google Drive, and it will back up all your data. And, um, your, your attachments and coming very soon. Your, your schema, your meta information that's coming soon. I also will announce for those legacy onto our users. We have extended the deadline of of when it will. Go away.

[00:33:40] It was originally end of this month. We've pushed that out six months. Um, but no support, no feature development on anything other than our backup. So if you're onto our user and you've still been hanging around, um, and haven't transitioned away to some of the alternatives, you have a little bit more time to [00:34:00] procrastinate that.

[00:34:01] So make that announcement. 

[00:34:04] Scott Rose: Nice. 

[00:34:05] SCRIPTING TIME - 0:34:05- SYNCED COLLABORATOR FIELD LIMITATION

[00:34:07] Dan Fellars: Okay, Kamille and scripting time. Let's see what you got. 

[00:34:14] Kamille Parks: Okay, so what this was supposed to cover was a limitation that I saw in a different instance that I'm demoing. Now, the basic gist was I had a table that was synced in from somewhere else in Airtable and I had a collaborator field.

[00:34:33] And I had two problems. One, the collaborator field was coming in as plain text, and I couldn't convert it back into a user field and to, um, a workaround I had was to create a new user field on that table and then just copy the values over, um, I could do that by doing control Z and then control V. But for whatever reason, um, an automation, um, using the [00:35:00] update record step couldn't perform that same action.

[00:35:03] So this is kind of stuck, um, but that always worked doing the control C and control V. But for whatever reason, an automation using an update record step always failed. Of course, in the instance I'm in, A, this did sink in as a user field and B, the update record step will actually run with no issues. But I'm still going to show the workaround that I had anyway, because you might be in an instance like mine that doesn't have this, um, working the way it should.

[00:35:38] I did contact Airtable support about it, and they were able to replicate the issue I was seeing. And didn't really have an answer for me. So this was the answer I developed on my own. So the first step, um, is, uh, it would say, um, unknown error. If [00:36:00] I, yeah, that's always fun. It was like perform this action.

[00:36:06] Let me really quickly. I'm wondering if I can pull it up. I have a separate laptop with the other instance open, but it was some very unhelpful error. And I think part of the issue might have been that, um, it was, um, we were using user groups as well. So, um, but it didn't matter if the. You know, the record itself had a user group in it.

[00:36:36] It just wouldn't work no matter what. Um, and then the error was just like, could not perform this action and unknown error occurred. Um, and so. The first thing is, um, it when I, in my other instance, this user field was sinking in like this, right? It was just a plain text of user names. And if [00:37:00] I try to change its, um, type, I can't even select user or collaborator.

[00:37:06] So that option was out. The solution I came up with is to update my new user field with a script, but you can't supply just the names to a script. You need to give it the user I. D. And in order to do that back in the original table, what I did was I just created a user I. D. S. Field, which is a simple, um, simple single line text field.

[00:37:34] And I have one automation That, um, takes, um, whenever the collaborative field is updated, it will just input, um, the list of the user IDs. So that way I have, you know, a unique set of user IDs coming in. And in the instance that I have multiple people within my, you [00:38:00] know, workspace who are named Clark Kent, um, it knows which Clark Kent to pick.

[00:38:06] So. Blessing in disguise, I guess, um, the script itself is really simple, so we're assuming that this step isn't here because it doesn't work in my instance. I'm just going to delete it. Um, the script that I wrote just has 2 inputs, which is the record ID. I'm trying to update. And what are the user IDs that are coming in?

[00:38:28] So I'm importing them from input dot config, and then this, uh, piece is a little over engineered, but I'll explain why in the original use case, it was actually a look up of user I. D. S. So it was possible to have the same user I. D. appear multiple times, as is the nature of look ups. So what I did was I created a set Um, in javascript, a set is similar to an array, except multiple values are duplicates [00:39:00] are condensed down to just a unique set of whatever you supplied it with.

[00:39:04] So that way, I'm sure to only get one user ID. Once. Um, and then it's possible for user IDs to be blank. Um, if I go back to my original, right, there's nothing in these two. So there's nothing in these two. So I don't want the automation to fail. So that's what, um, this operator is doing. It's saying if there are no user IDs, if it returns false, then give me a blank array.

[00:39:31] Then make a set out of it, meaning give me just the unique values and then turn it back into a regular array and then from there, I'm mapping it out just to get it in the format that Airtable wants it, which is an object with a single key value pair I. D. And then the idea I'm trying to. Um, Pass it. And then from there, it's just doing table dot update record, um, with the [00:40:00] name or the I.

[00:40:00] D. of the field that you're trying to insert these I. D. s into and then the formatted array that we created up here, a very simple script to solve a very simple, strange and, um, inconsistent, um, error in Airtable. But at the end of the day, when I run this, I should see basically this same. Thing in this new field, so I'm going to do a test of this automation and hope for the best

[00:40:37] and there we have it. So again, a very, very simple script. Um. With not much to it, but it is the only work around I could think of if you have the problem that I had and that your user was coming in as just this and and for whatever reason, the update record step wasn't [00:41:00] working for you. A script like the one I showed is a simple way to do it.

[00:41:05] And because I'm doing this every time this field is updated, basically, Just Um, you can update the record one at a time without having to do it in batches. Um, and that's 

[00:41:17] Scott Rose: it. And Kamille, back in the source phase, that was all at the very beginning, you're saying that was also a script, which grabbed the user IDs and put them in the field.

[00:41:26] Kamille Parks: It's actually not a script. It's just a regular update record. And when you Select. I'll delete this out and show exactly what I did. Um, I'm getting the collaborator field and then it asks you what about this collaborative field you want to insert. And I just said, make new list of IDs. Um, you might've been able to get away with email.

[00:41:48] I'm not sure, but IDs is like the safest for me. So inserting the, um, ID and then this it's triggered for anytime you update the list of subscribers, then [00:42:00] update the list of IDs. 

[00:42:02] Scott Rose: Nice. I forgot that the automations reveal all that information about the user field. That's very cool. Just like it 

[00:42:09] Kamille Parks: does in it, just so that everyone sees you can get the length.

[00:42:13] So how many, um, users are attached? Um, you can get the I. D. You can get the email, the name and then the profile pictures of each. I'm pretty sure if you had, if you selected a user group, As one of the users in your field, the email that is returned is everyone's email. Who's in that group? 

[00:42:35] Oh, wow. 

[00:42:37] Yeah, 

[00:42:38] but the ID is the group. ID not. 

[00:42:41] Yes, it's a singular ID of the group itself and then the email. There is no, when you create a group in Airtable, you don't give it an email. So the email it returns is everyone's email. Something to 

[00:42:58] Scott Rose: be aware 

[00:42:59] Dan Fellars: of. [00:43:00] Yeah. That's interesting. Interesting. 

[00:43:05] Scott Rose: That's great. Even if we don't stumble into that bug that you stumbled into, there's still a ton to learn from this.

[00:43:13] Yeah. 

[00:43:16] Dan Fellars: Yeah. That just, yeah. Understanding collaborator fields and syncing them across. 

[00:43:21] Kamille Parks: It's, it's also, and I don't know how new this is, but when I tried, um, to add people. As part of a demo, um, because there's no this space isn't shared with anyone. I haven't had this pop up before. Um, I don't know how new this is, but you could type in any email.

[00:43:43] And if you're an Airtable collaborator. It will eventually find their information and input their user IDs. And if you're not an Airtable collaborator, it just sort of gives up and says unknown. 

[00:43:59] Scott Rose: Yeah, they've had that for [00:44:00] a while now. You can do that for, and also that's helpful with interfaces. If you want to invite someone who's not a collaborator to, you know.

[00:44:09] At the time. Yeah. Yeah. At the time. Yep. Okay. That's it. Very interesting. Very cool. 

[00:44:18] Dan Fellars: Thank you for sharing that. 

[00:44:20] AUTOMATE CREATE: AIRTABLE AUTOMATIONS - WORKING WITH ARRAYS IN AIRTABLE AND MAKE - 0:44:19

[00:44:25] We'll move on. Scott, if you want to share your screen. Yes. That's going to walk through arrays. We've already talked a bit about arrays. We're going to go deeper into that. Yes. 

[00:44:36] Scott Rose: That was very, um, that was a very good timing that that guy posted about arrays.

[00:44:47] Okay. All right. So I am going to talk about. Um, arrays in Airtable because there are some fields like the [00:45:00] collaborator field or I guess the user field, they call it now. Um, wait, did they call it user or collaborator? 

[00:45:06] Kamille Parks: It's now called user. It was originally called collaborator. I use them interchangeably even though I shouldn't.

[00:45:12] Scott Rose: Yeah, I think collaborate will always be stuck in my mind. Um, so some fields in Airtables in Airtable are actually arrays. So the user field is one of those. Um, the attachment field is one of those, uh, linked record fields is another one look up fields. We talked about earlier and multiple select.

[00:45:33] Multiple select fields. Thank you very much. Um, roll ups are also a raise. So there are fields in Airtable that are a raise. But what's interesting to note is that there's actually two different types of a raise. There's simple a raise and there's complex a raise. Complex a raise are also known as an array of objects.

[00:45:56] And you could see this if you look at Airtables A [00:46:00] P I reference. And one thing that I really love about Airtables API reference is that you can actually scroll through a list of all your bases here and you can choose one of your bases and it will actually show you the API calls based on the actual data that's in your base.

[00:46:20] And the actual field names you're using so it's super super easy to look through the code the code And because it's it's actually showing you your own data so For example, we're going to be working today with this flower orders database where i've got this database of customers And i've also got another table here called products and for each customer They can have a whole bunch of favorite products.

[00:46:45] So if I look into the Airtable API page here and I go to the customers table and I scroll through my fields here, you will see that if I scroll down to the favorite products field right [00:47:00] here, it tells me that this field, because it's a linked record field. It is an array of record IDs, and it shows me what that looks like right here.

[00:47:10] So there's the square brackets. This is how you denote an array, uh, you know, in curl, probably in JavaScript as well, even though I don't know the script. Great. Thank you so much. Um, and let me go back to where that was and you will see that the arrays, uh, each or each value. Has quotation marks around it and then commas separate it.

[00:47:35] So that's a array separated by commas there. However, that, so that's a simple array. However, you'll notice that we also have an attachment field here where we are allowing our customers to upload as many different photos that they want into the system. Maybe it's photos of all the flowers, flower arrangements that they've made with our products.

[00:47:56] And if we go back into Airtables API here. And we [00:48:00] scroll up to that attachment field. Now you'll see here's customer photos here. Now, this is actually a complex array, also known as an array of objects. So it's showing us here that it does get a little trickier. Um, now one thing to note is that Airtable only requires the URL field.

[00:48:21] For attachments. So, um, it, it actually only requires one value in the, in, in each part of the array, but you can have many different things that are part of each. Um, object is what they call it, that you send to Airtable. So you can see that here's those square brackets that we saw before. There's one there and there's one all the way down there.

[00:48:49] But in between it, we've got the curly brackets. And in between the curly brackets is where there's a whole bunch of other [00:49:00] different things. Like the URL. The file name, those are technically the only two things that we can actually send to Airtable. What they're showing us here is these are the responses that we might get back from Airtable, but the things that we can send Airtable are the URL and the file name.

[00:49:18] Um, so it gets a little trickier. So, you know, whether you're working with JavaScript or you're working with Maybe you're just testing things out in postman or whatever. It's really important to know how to structure simple arrays versus complex arrays to get your information into Airtable. But because a lot of people are using Airtable because they want to do it in a no code, low code way, a lot of people are turning to make, I'm the biggest make fan boy, I think, because I use it all the time and I love it.

[00:49:51] And I want to show you how you can handle. Both simple arrays and complex arrays In with make [00:50:00] when you're communicating with Airtable. So the first thing I want to show you, so these are three different things I want to show you. So this is line one, this is line two, this is line number three down here.

[00:50:11] So these are three different demos here. So this first line right here is I just want to create a record in Airtable. And so what I've done here is I've used the set multiple variables. Module here and I've created two variables here I've created a variable called customer name and our first customer is called steve and then i've created Um another variable called favorite products and he has two favorite products He loves 12 tulips comma and then the next product he loves is six tulips And if we go back into my database here You will see that on the products page, we have 12 tulips.

[00:50:52] Tulips is one of the products and six tulips is the other one. So for our new customer that we're going to create, his name's going to be [00:51:00] Steve. And we want him to have two products showing up here, and this is a linked record field, and this is a simple array. Now, the reason I'm showing it to you like this is because this is what a lot of people think that you may want to do.

[00:51:15] This actually goes directly to the tweet. That you showed us a minute ago, Dan. Um, I guess I shouldn't be calling them tweets anymore, but

[00:51:27] thank you. Thank you. Um, so all I did was type in the name of the first product comma and the name of the second product. Let's see what happens if I run this. Oh, I'll show you what I'm doing over here. I'm creating a record in Airtable and I'm pulling the customer name. Oh, you know, I changed that variable.

[00:51:46] I pulling the customer name from here. And then down here, I am choosing favorite products. Um, so now it actually shows it as an array with those little brackets because. I [00:52:00] was testing this before the show normally wouldn't show you those brackets there Um, but you'll see in a second what i'm talking about So i'm going to run this and it's going to run that and now we're going to go into Airtable and we will see That let me refresh this.

[00:52:17] There we go. I just had to refresh the screen there. You'll notice that steve now has Only one favorite product. If we go into the products, it actually created a brand new product here called 12 tulips comma 6 tulips because and then it linked into just that one product. And the reason is because we sent Airtable text.

[00:52:40] This is just text and Airtable looked at this as if it was this a quotation mark around this. So how would you possibly turn this into an array? Well, cool thing is that make has a ton of different array functions right here, and there's even more I'm going to show [00:53:00] you in a minute. And what you can do is you can create your own array by starting with this add function right here.

[00:53:08] And what this says is this adds values to an existing array. Uh, then returns that array. So what you do is you choose the add function here, but you have to start off with an array. So we're going to start off with an empty array. Then you hit the semicolon. Uh, that's um, that's the separator that make uses.

[00:53:27] And we're going to put 12 tulips. Then we're gonna put another semicolon and then the closing parentheses. So this right here, we're going to add these two values, 12 tulips and six tulips, we're going to add them into the empty array and it's going to spit out an array. So now when we go here, um, it's going to actually give us.

[00:53:56] It's funny now. Yeah, it removed those little brackets. But [00:54:00] if I were to just run this module, it loads the data. It's like re triggering it. And now you'll see the little brackets here. What that means is, that actually means an array. And that's the first thing. That's the first, uh, object inside the array.

[00:54:16] So now what's going to happen is, Controls streaming controls are in my way. Okay. So now I'm going to say, okay, and now we're going to run that. And now if we go into Airtable, we will see that we have a brand new Steve at the bottom here and it did successfully link him to both of those products because Airtable recognized it as an array.

[00:54:43] And you could see that Steve's name is on both of these items right there. So I'm going to delete the wrong product right there. So that's how you deal with a simple array. And down here, Oh, you know what? I think this is actually what I, Oh yeah. Okay, cool. So now we're going to move [00:55:00] on to the complex arrays.

[00:55:01] So now let's say that we want to go back to our customers table and we want to give customers the ability to upload as many photos as they want. That's a complex array. So what we've done here is I've done the exact same thing. Uh, that I did up here. Remember we did, we use the, Oh, to open this up. I'm going to move this here.

[00:55:25] So we start with an empty array and then you add in all the values that you want to add it. So when you send, um, attachments to Airtable, you have to use URLs. You have to send Airtable URLs. So here, this is the exact same thing. It just looks a little. More cluttered because these are actual URLs, but we're starting off with an empty array and then I'm adding in one URL, two URLs, three URLs, and there's photos, there's just random photos.

[00:55:56] I took off the web that are located at each one of those [00:56:00] URLs. And what we want to do is we want to send that into our attachment field right here, the customer photo field. So let's see what happens when I run this right here. I'm going to click on run once. And the problem is we actually get an error message, and it says the error says an array of objects is expected.

[00:56:23] So the reason is because Airtable is expecting a complex array, but we're sending it a simple array. And that goes back to what I was showing you in Airtables API earlier. You could see that the array for an attachment field is much more complex than it is for the linked record field, where it was just a very simple, um, uh, simple array.

[00:56:48] So as, so you will not be able to send three URLs like that into Airtable. So instead you have to create the complex array in make. [00:57:00] And this is how you would do it. So we're going to start off with the exact same array because you might be getting an array of an attachments from an email or something, or an array of attachments from jot form or some other product.

[00:57:13] So you're going to probably start off where it's coming in as an array. Um, if not, you can always aggregate it, but in this case, we're getting three attachments sent into us, let's say from Gmail. And then what you actually have to do is you actually have to iterate through the array You actually have to break down the array and then rebuild it again as a complex array So what we're going to do is we're going to iterate through the array.

[00:57:42] So we have three urls there So it's going to iterate through all three And then we rebuild it. So what you do is you use the array aggregator to rebuild the array. And it asks you, where are all these individual URLs coming from? Well, they're coming from the [00:58:00] iterator module because it needs one URL at a time.

[00:58:03] That's what makes asking for it needs one piece of information at a time, but then it's asking you, okay, and which future module. So this is asking you what module in the past is. Are you pulling the data from and what module in the future? Are you sending this to? So you can't use the array aggregator for this.

[00:58:25] Until you put on your next module, which is our Airtable module. So what we're telling it is we want to feed into the customer photos field. And then it says, okay, great. Airtable is expecting a file URL and a file name. And this is optional Airtable. Doesn't care about this. It'll create its own file name if you don't provide it.

[00:58:47] And what we tell it is we want to pull the URL. Which is now called value from the iterator. So this is looping through our three URLs. It's spitting [00:59:00] out three values. Each one of them is a URL and we're saying, take that value, put it right here, and that is all you need to do. This right here creates the complex array.

[00:59:11] And then when you're going into error table, you pull the array that comes out of the array aggregator. So you're not pulling your initial array. You're pulling this array instead. And so now if I run this and I create, I'm creating a new customer in Airtable with three photos. If I go here, this customer was called Amy, and here are those three URLs.

[00:59:37] It pulled it in to Airtable and you can see here, this is where I set the name, Amy, customer name, Amy, and then here was my URLs. There is one bonus here. You might need to append. What if this person sent three more fields, three more photos in, how do you append? Well, [01:00:00] check this out. If you want to update a record in Airtable.

[01:00:03] You use the merge function to take the existing array of customer photos. And merge it with our array from this. So that's how you would add attachments into your existing attachment field instead of overwriting it. And when you use the merge feature, you have to be merging arrays that are identical. So you cannot merge a complex array and a simple array.

[01:00:30] You have to merge the complex and the complex. And so if I were to run this again, and we create another customer called Amy, We should end up with six photos and I put a little sleep in here Just to give Airtable a chance to download three photos And now if we go in here, we now have a brand new customer amy with six attachments, we can't see all of them, but because we put in the first three and then we appended [01:01:00] The last three and that's it.

[01:01:03] And that's how you do it in a no code, low code way. Very low code. 

[01:01:11] Dan Fellars: Yeah, it just gives, um, gives a glimpse into the power of make and how you can really do anything programmatically 

[01:01:18] Scott Rose: in there. Totally. I don't think you can do this in Zapier. Maybe you can. Uh, this is like one of the major reasons you got to get off Zapier 

[01:01:27] Dan Fellars: if you're using it.

[01:01:28] Yeah, good stuff. All right, we're gonna, we're gonna end the show there. We'll save, we'll save the last segment for a future episode. 

[01:01:35] BUILTONAIR COMMUNITY - 

[01:01:36] So just a quick shout out to join our community at builtonair. com slash join. That'll get you into our Slack group and you'll interact with thousands of Airtable users. So we'd love to have you join if you're not in there already.

[01:01:50] And also subscribe to our YouTube channel. We'd love to see that grow as well. So thank you for joining and we will see you all next week. 

[01:01:59] Scott Rose: See you [01:02:00] later.

[01:02:15] OUTRO

[01:02:16] Thank you for joining today's episode. We hope you enjoyed it. Be sure to check out our sponsor onto our backups, automated backups for Airtable. We'll see you next time on the built on air podcast.