5/2/2023 – BuiltOnAir Live Podcast Full Show – S14-E04

Duration: 64 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

Alli Alosa – Hi there! I’m Alli 🙂 I’m a fine artist turned “techie” with a passion for organization and automation. I’m also proud to be a Community Leader in the Airtable forum, and a co-host of the BuiltOnAir podcast. My favorite part about being an Airtable consultant and developer is that I get to talk with people from all sorts of industries, and each project is an opportunity to learn how a business works.

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.

Show Segments

Round The Bases – 00:03:13 –

Following Articles Used in this Segment:

[BuiltOnAir Community] Airtable sunsetting extensions Hangouts, Whereby, Name Quiz – General Discussion / Airtable News & Announcements – TableForums: The Unofficial Airtable Discussion Community

Scripting Time – 00:33:32 –

Explore Scripting with “Secrets to Scripting”.

Scripting expert, Kuovonne, will share some ways to dive into the world of Airtable Scripting.

View Script

Base Showcase – 00:46:40 –

We dive into a full working base that will Alli will share how to build a simple invoicing base with line items.

Field Focus – 00:57:07 –

A deep dive into the Record Templates – Dan will walk through the new Record Templates and how they work. 

Learn More Here

Full Segment Details

Segment: Round The Bases

Start Time: 00:03:13

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

Following Articles Used in this Segment:

[BuiltOnAir Community] Airtable sunsetting extensions Hangouts, Whereby, Name Quiz – General Discussion / Airtable News & Announcements – TableForums: The Unofficial Airtable Discussion Community

Segment: Scripting Time

Start Time: 00:33:32

Scripting Time: Secrets to Scripting

Explore Scripting with “Secrets to Scripting”.

Scripting expert, Kuovonne, will share some ways to dive into the world of Airtable Scripting.

View Script

Segment: Base Showcase

Start Time: 00:46:40

Invoicing with Line Items

We dive into a full working base that will Alli will share how to build a simple invoicing base with line items.

Segment: Field Focus

Start Time: 00:57:07

Learn about the Record Templates – Dan will walk through the new Record Templates and how they work.

A deep dive into the Record Templates – Dan will walk through the new Record Templates and how they work. 

Learn More Here

Full Transcription

The full transcription for the show can be found here:

[00:01:41] Welcome to the BuiltOnAir Podcast.
[00:01:44] We are in season 14, episode four,
[00:01:47] Dan Fellars, coming to you
[00:01:49] from a hotel room. Hopefully, my internet
[00:01:51] holds strong this episode.
[00:01:53] Good to be back with you. We've got
[00:01:55] Alli, our regular guest with us,
[00:01:57] our host with us. Welcome Alli.
[00:01:59] Hello
[00:02:00] and special guest, Kuovonne.
[00:02:03] Welcome back, Kuovonne.
[00:02:04] Hello, good to be here.
[00:02:06] Good to have you as always,
[00:02:08] you've been on the show a few times.
[00:02:09] So good to always have you back on.
[00:02:12] We'll talk more with Kuovonne
[00:02:14] later in the show.
[00:02:15] So I will walk through
[00:02:17] what we're gonna be talking about today.
[00:02:19] The BuiltOnAir Podcast is an hour long.
[00:02:22] We go through four different segments.
[00:02:24] Keep you up to date
[00:02:25] on everything Airtable.
[00:02:26] We always start with our Round the Bases
[00:02:28] with what people are talking about
[00:02:30] what's new
[00:02:31] in the communities.
[00:02:33] Then a quick shout out to
[00:02:35] our primary sponsor On2Air.
[00:02:36] Then Kuovonne
[00:02:37] will be going through some of her
[00:02:40] guides and tutorials that she has made
[00:02:42] available
[00:02:43] many of them specific to scripting
[00:02:46] and how to do scripting
[00:02:48] in Airtable. And then
[00:02:50] Alli will walk through a base
[00:02:52] how to use line items with invoicing.
[00:02:56] Then a quick shout out to our
[00:02:57] community at BuiltOnAir
[00:02:59] and how you can join.
[00:02:59] And then finally,
[00:03:01] I'll go through the new
[00:03:02] record templates and how you use
[00:03:04] those, set them up and everything.
[00:03:08] All right, Round the Bases.
[00:03:12] So a
[00:03:13] few things. First,
[00:03:16] let's start with
[00:03:19] DareTable. We are two weeks away.
[00:03:23] Right? It's not next week.
[00:03:24] It's a week after two weeks.
[00:03:26] Yeah, two weeks. Okay.
[00:03:28] So,
[00:03:30] two weeks and one day. Yeah,
[00:03:32] it'll be Wednesday and Thursday.
[00:03:34] And so,
[00:03:35] I don't know, is, is,
[00:03:37] sign ups closed? I haven't heard, there
[00:03:41] might still be some slots open.
[00:03:43] Last I heard there
[00:03:44] were three tickets left.
[00:03:45] They might have gone by then but
[00:03:49] it's,
[00:03:50] not many spots left if you,
[00:03:52] if you wanna go
[00:03:54] hurry up and get your ticket.
[00:03:55] Yep daretable.com
[00:03:57] there is a post that
[00:03:59] somebody posted in the,
[00:04:01] in the Facebook group
[00:04:02] about
[00:04:03] whether it would be streamed
[00:04:05] and Chris answered that, that it wouldn't,
[00:04:07] last time they, they had some
[00:04:10] issues and so decided not to.
[00:04:12] But the cool thing that I saw in here,
[00:04:15] let's see. Where is it?
[00:04:17] They are already working on
[00:04:20] Dare Table Europe. 2023.
[00:04:22] I was thinking 24.
[00:04:23] So that means this year in the fall.
[00:04:26] So
[00:04:27] there's gonna be another
[00:04:28] DareTable in Europe.
[00:04:31] So that's a nice little
[00:04:33] tidbit of information there.
[00:04:35] That'll be exciting.
[00:04:37] Yeah. So we'll see, we'll see if I,
[00:04:40] who's all gonna be in Europe
[00:04:42] for that in the fall. So, anyways,
[00:04:44] but two weeks San Francisco
[00:04:46] at Airtable's headquarters.
[00:04:48] Sounds like there may be a
[00:04:50] few slots available.
[00:04:51] If you haven't signed up,
[00:04:52] all three of us will be there.
[00:04:55] Kuovonne is speaking.
[00:04:56] Alli
[00:04:56] Alli, are you speaking?
[00:04:58] She got kicked off
[00:04:59] and excellent.
[00:05:00] Can you, can you let her back in?
[00:05:03] Yep. Yep.
[00:05:05] I am speaking.
[00:05:08] Yeah.
[00:05:09] Yes, I'm looking forward to it.
[00:05:11] Very good. Ok,
[00:05:13] we'll have both Alli and Kuovonne as
[00:05:15] speakers, trainers
[00:05:17] along with many other people
[00:05:20] and get access to Airtable.
[00:05:22] I'm sure they'll be
[00:05:24] making some announcements or,
[00:05:26] or reviewing some announcements of I know
[00:05:28] there's there's stuff
[00:05:30] in the pipeline coming.
[00:05:32] So I imagine by by the time of
[00:05:33] DareTable they'll be able to
[00:05:35] talk more about
[00:05:36] some new stuff coming out.
[00:05:38] So that will be exciting.
[00:05:40] We're excited to,
[00:05:40] to see everybody there.
[00:05:42] Reach out to us.
[00:05:45] All right, moving on.
[00:05:50] There was one other, let's see.
[00:05:54] I think this one I wanna start. Ok.
[00:05:57] So this, I first saw in the
[00:06:00] in the BuiltOnAir Group, Jan
[00:06:03] who goes by databaser,
[00:06:04] posted
[00:06:06] a article on, on linkedin.
[00:06:08] I don't know,
[00:06:09] I assume maybe this was posted in the
[00:06:11] community forum.
[00:06:12] I didn't see it in
[00:06:13] Airtable's community but
[00:06:14] highlighting a new feature
[00:06:18] as far as coloring list views.
[00:06:20] So if you have a the new list view,
[00:06:24] you can color the rows.
[00:06:26] It looks like it puts a little bar
[00:06:29] in there. So that is one new feature.
[00:06:32] Maybe this has been out for a
[00:06:34] while and they just posted on linkedin.
[00:06:38] No, it hasn't been out for a while. It,
[00:06:40] it was just released.
[00:06:42] It was something that actually
[00:06:43] frustrated me when they
[00:06:44] first came out with the list view.
[00:06:45] You couldn't use the color feature.
[00:06:48] So excited to see that reinstated
[00:06:51] or put, put there for the first time,
[00:06:53] I guess.
[00:06:54] Yeah.
[00:06:55] So it's the same approach
[00:06:57] that they take in kind of the normal grid.
[00:06:59] When you want to color the,
[00:07:01] the records,
[00:07:01] it puts that that line at the beginning.
[00:07:04] Now you can do that in list views.
[00:07:08] So I think those were the only,
[00:07:10] that was the only
[00:07:11] feature announcement that,
[00:07:13] that I saw this week.
[00:07:16] So we'll go through,
[00:07:18] let's let's go this way.
[00:07:20] Got that one.
[00:07:22] And there's the feature removal.
[00:07:25] What is the feature removal?
[00:07:27] Attachment, URL from formula fields,
[00:07:31] attachment URL S is
[00:07:33] that new?
[00:07:34] Well,
[00:07:35] it was when they removed.
[00:07:37] So when they went to expiring URL S
[00:07:40] for attachments,
[00:07:41] they said that they were
[00:07:42] going to invalidate the
[00:07:44] URL S that were produced
[00:07:46] in formula fields,
[00:07:47] but it didn't actually happen
[00:07:48] when they made the changeover
[00:07:50] until
[00:07:51] last week when all of a sudden
[00:07:53] people were starting
[00:07:54] complaining that all of
[00:07:55] these
[00:07:56] D L dot Airtable dot com
[00:07:58] attachment links
[00:07:59] are actually starting to fail now.
[00:08:01] Yeah.
[00:08:03] I
[00:08:03] didn't realize that that just changed. Ok.
[00:08:07] Yeah.
[00:08:08] So I think it makes a lot of sense
[00:08:11] because what happened was it used to be
[00:08:13] that all attachments had the same
[00:08:16] basic URL structure H E T P S D L dot air
[00:08:18] ta
[00:08:19] dot com.
[00:08:20] And then
[00:08:21] it was a permanent link where
[00:08:23] even if you actually
[00:08:25] deleted your attachment,
[00:08:27] you could still get to that file
[00:08:29] at that URL.
[00:08:30] So it was a security issue because
[00:08:32] if you ever
[00:08:33] accidentally released that URL,
[00:08:35] anyone who got that URL could get
[00:08:37] your file,
[00:08:38] even if you had never made
[00:08:40] that file public
[00:08:41] and even if you had tried to delete
[00:08:42] it from your base,
[00:08:44] so Airtable went in and
[00:08:45] they rearranged how they did URLs
[00:08:48] and they went to
[00:08:50] a system of expiring URL S.
[00:08:52] So if you send out an email,
[00:08:55] you get an expiring URL
[00:08:57] after two hours that URL
[00:08:59] doesn't work anymore so that
[00:09:01] you don't have this
[00:09:03] URL to your content just out
[00:09:05] there forever that you can't revoke.
[00:09:07] And they also have viewer URL S
[00:09:08] where you actually have to
[00:09:10] be logged into Airtable
[00:09:10] and then you can view it,
[00:09:12] but those don't expire
[00:09:13] and then you have this weird thing
[00:09:15] where you had URL s in
[00:09:16] formula fields that were exposed.
[00:09:18] And what were they gonna do with that?
[00:09:20] And
[00:09:21] the question is you can't just
[00:09:23] turn it into a viewer URL or a
[00:09:26] expiring URL because
[00:09:30] you would change the actual
[00:09:31] value of the formula.
[00:09:33] And if you have formula fields
[00:09:34] that are based on that,
[00:09:35] if you have other things
[00:09:36] that are calculating on it,
[00:09:37] you're gonna mess up everyone's
[00:09:39] bases that say extracting out
[00:09:41] the file name out
[00:09:42] of that. And so you can totally
[00:09:43] mess up all the other downstream formulas
[00:09:45] and you can't just change it.
[00:09:47] So it's always going to be
[00:09:48] an actual valid URL the
[00:09:49] way the expiring are
[00:09:50] because then you have to
[00:09:52] constantly recalculate those
[00:09:53] values and that's just a mess.
[00:09:55] They decided that they're
[00:09:56] gonna keep the format
[00:09:57] but invalidate the URL.
[00:09:59] That means that
[00:10:01] they had to get all
[00:10:02] the other systems first
[00:10:03] where make sure the actual
[00:10:05] expiring ones worked.
[00:10:06] And that took them a while to
[00:10:07] get that
[00:10:08] worked out because like sometimes
[00:10:10] we're having things where like
[00:10:11] they're expiring too soon
[00:10:12] or not long enough
[00:10:14] and just get people used to that.
[00:10:16] And that's why here it is
[00:10:17] several months later
[00:10:18] when they're actually saying,
[00:10:18] OK, now we think they've got
[00:10:20] all of the kinks and that ironed out.
[00:10:22] Now they can actually take down those
[00:10:25] formula field produced
[00:10:28] URLs.
[00:10:29] Got you.
[00:10:30] So,
[00:10:31] so what happened was,
[00:10:33] so the what happened is
[00:10:35] they finally invalidated these,
[00:10:36] these static URL S that you could
[00:10:39] extract from the formula in the formula.
[00:10:42] And one of the problem is
[00:10:44] it was really, really convenient
[00:10:46] to just use those URL S and say,
[00:10:47] put it in for a static image.
[00:10:49] Let's say you had
[00:10:50] your company logo in a page
[00:10:51] designer block or in an email
[00:10:52] that you were sending out,
[00:10:54] people were just using
[00:10:54] those and they might have even
[00:10:56] deleted the original attachment
[00:10:57] and then everything was working,
[00:11:00] expiring URL S went out
[00:11:01] fine and everything
[00:11:02] still continued to work
[00:11:04] and then now they're invalidating
[00:11:06] those URL S and now
[00:11:07] things are breaking.
[00:11:09] Yeah.
[00:11:10] Yeah.
[00:11:11] Yeah. Interesting.
[00:11:13] So what really sucks is
[00:11:15] that if all you have is that URL
[00:11:17] that was the
[00:11:18] attachment URL,
[00:11:19] there's no way of going back and
[00:11:22] tracing the links back
[00:11:23] to what the original file is.
[00:11:25] You have to manually find
[00:11:26] it yourself.
[00:11:27] But then once you actually find it
[00:11:29] or find a closer version,
[00:11:30] you know, if it's your company logo,
[00:11:32] hopefully you have that somewhere else.
[00:11:33] Then you can just upload it to
[00:11:37] some other service like cloud
[00:11:38] that will host it for free.
[00:11:40] Get a static URL from that
[00:11:42] and then plop that into
[00:11:43] your page designer into your
[00:11:45] email template
[00:11:45] and then you come back in business.
[00:11:48] Yeah.
[00:11:49] Yeah,
[00:11:50] much easier said than done there. But
[00:11:54] yeah, so that that could be
[00:11:56] impacting a lot of people
[00:11:58] because there isn't a way
[00:11:59] where so like if you look
[00:12:01] at these URL S, you can see
[00:12:03] it's cut off in the image,
[00:12:04] but it's start,
[00:12:05] you see the start of the ID.
[00:12:07] So each attachment has a unique ID,
[00:12:10] but there isn't a way to just
[00:12:13] extract that ID
[00:12:14] and then like create a new URL
[00:12:16] structure that would work. I don't believe
[00:12:19] like there's no static
[00:12:22] representation of attachments.
[00:12:26] Not really. I haven't found
[00:12:28] a way where you can take that URL
[00:12:30] and then find out
[00:12:32] what the original attachment
[00:12:34] field in the original base is.
[00:12:35] What we ended up doing
[00:12:37] at my company was
[00:12:38] back in January, we actually
[00:12:40] painstakingly went through
[00:12:41] every single page designer block,
[00:12:43] every email automation
[00:12:45] looked for every single thing
[00:12:47] where it was a static one,
[00:12:48] grabbed it
[00:12:50] and then we actually hosted ours
[00:12:52] on Aws and then put in the Aws
[00:12:54] URL.
[00:12:56] Right. Right.
[00:12:57] Yeah.
[00:12:58] So basically Airtable can't be your
[00:13:01] CD N anymore. That's officially dead
[00:13:04] unless you're going through a portal.
[00:13:06] In which case, it still seems to work
[00:13:08] because the portal seem to be grabbing
[00:13:11] whatever the current expiring URL is.
[00:13:14] Right. Right. Right.
[00:13:16] Yeah. And some of the portal
[00:13:18] tools actually cash it for you,
[00:13:19] like put it on their own CD N.
[00:13:23] So then it's long living. So,
[00:13:25] all right.
[00:13:26] That's a good summary. Thank you.
[00:13:27] Let's see, a couple other things.
[00:13:31] I don't know if we need to call out
[00:13:32] every time there's a,
[00:13:34] there's an outage but
[00:13:34] there was a pretty significant one
[00:13:37] last week.
[00:13:38] Actually there is two, so one,
[00:13:40] pretty much everything
[00:13:41] was down. The website
[00:13:43] was getting a 504 error, I believe.
[00:13:46] And then there was one more.
[00:13:49] Let me find it.
[00:13:52] Oh, yeah. With the, with the forms,
[00:13:56] they were glitchy for a while
[00:13:57] where like the buttons weren't working.
[00:14:01] I don't know if you came across that
[00:14:03] where you tried to click on the ad for the
[00:14:05] linked records and they weren't working.
[00:14:07] I noticed that a few people mentioned
[00:14:08] that.
[00:14:11] So, but I think they got this
[00:14:13] one back up in a hour or so.
[00:14:16] Yes.
[00:14:18] All right. Let's see what else we got.
[00:14:21] OK. This was a cool one.
[00:14:23] We actually,
[00:14:23] there was actually some pretty cool
[00:14:25] conversations in the BuiltOnAir community.
[00:14:27] This was just kind of a quick
[00:14:30] easy solution from Jen.
[00:14:32] Shout out to Jen on this answer. So
[00:14:34] Veronique is asking
[00:14:36] wants a calendar view
[00:14:38] and has like a grid of,
[00:14:40] of records that have dates,
[00:14:42] but they want a calendar view
[00:14:45] of what dates are not used
[00:14:47] within the records.
[00:14:49] And so Jen just, you know,
[00:14:50] says, basically you have to
[00:14:51] create another table that
[00:14:52] has a record for every date
[00:14:54] and then you link
[00:14:56] the calendar views
[00:14:58] or the other table to those dates.
[00:15:01] And then you can create a view
[00:15:04] of dates that don't have links to them.
[00:15:06] And then that would show you
[00:15:08] the available dates and then you put that,
[00:15:11] that view on a calendar.
[00:15:15] Yeah,
[00:15:16] nice little,
[00:15:18] nice little trick of how to
[00:15:20] get the inverse,
[00:15:21] but it does require another table
[00:15:23] and you probably have to
[00:15:24] create an automation
[00:15:25] that's automatically adding dates
[00:15:27] in the future as they come up.
[00:15:30] Yeah, something like that is,
[00:15:32] that's the initial one to set up.
[00:15:33] The thing about it is that you
[00:15:35] have to be very careful
[00:15:36] in your design of how you
[00:15:37] maintain it.
[00:15:38] Because for example, one thing is
[00:15:40] you have to make sure
[00:15:41] that you don't like take
[00:15:42] a date record and drag it
[00:15:43] to a different date.
[00:15:45] If you're viewing
[00:15:46] that editable one
[00:15:47] because that thing's mess up.
[00:15:49] The other thing that's
[00:15:50] not so nice about this is
[00:15:51] you can't get a record that shows
[00:15:53] a range,
[00:15:54] you can see records on the individual
[00:15:55] dates that saying this day is available,
[00:15:58] but it's hard to calculate to say,
[00:15:59] well, actually, I have a range
[00:16:01] of three dates
[00:16:02] that are open as opposed to four
[00:16:03] or five.
[00:16:07] That's true.
[00:16:09] All right, let's move on.
[00:16:11] We've got a few here.
[00:16:13] Actually Kuovonne
[00:16:14] in this one. So
[00:16:16] this is asking him about scripting.
[00:16:18] Basically saying
[00:16:21] they want a button that when pressed
[00:16:24] changes the article and has the script and
[00:16:26] it doesn't seem to be working,
[00:16:28] getting an error message,
[00:16:30] a record from button field
[00:16:32] was not used.
[00:16:33] The script did not use the record from
[00:16:35] the button field
[00:16:36] to use a record you call, input record
[00:16:38] as sync.
[00:16:40] How did, what, what were your thoughts
[00:16:42] Kuovonne, on this one?
[00:16:43] Can you go ahead and expand the,
[00:16:45] the script samples so that you can see it
[00:16:48] like? So the first thing
[00:16:49] I looked at this and I've seen
[00:16:50] this a couple of times
[00:16:51] and my first glance
[00:16:52] where I'm reading through this is,
[00:16:53] was this a script
[00:16:55] that was generated by A I?
[00:16:56] Because if you know how to code,
[00:16:58] then you just do things a certain way.
[00:17:01] And
[00:17:03] what I notice in here is
[00:17:05] that you don't have things labeled,
[00:17:07] it's just not written the way
[00:17:09] someone who's experienced writing code,
[00:17:11] it would, would write it as far as
[00:17:13] like how you have things commented and how
[00:17:15] you have things called,
[00:17:17] like I've seen someone,
[00:17:18] one's scripts where
[00:17:18] they'll be the name of the function
[00:17:20] that's declared and then that function is
[00:17:22] never actually called.
[00:17:23] So it's just kind of like
[00:17:25] weird little things like that.
[00:17:27] And I'm just seeing more
[00:17:28] and more of those
[00:17:29] and they don't necessarily actually
[00:17:32] work right because
[00:17:34] it's not using the actual
[00:17:36] grammar and syntax that's created.
[00:17:39] So my first thing was I think this is
[00:17:41] A I
[00:17:42] generated
[00:17:43] by someone who knows enough
[00:17:45] to know that it looks good,
[00:17:47] but it doesn't actually have
[00:17:49] everything completely fleshed out in it.
[00:17:51] So for example, this one,
[00:17:52] it, if you scroll to the top,
[00:17:54] you'll see it says,
[00:17:55] get status and it says, you know,
[00:17:57] you, you're putting in a record
[00:17:58] but nowhere does the script
[00:18:00] actually get the record to begin with.
[00:18:03] So it doesn't know what record to use.
[00:18:05] And if you were actually writing the
[00:18:06] script yourself,
[00:18:07] you would recognize that and say,
[00:18:09] well, I have to go actually
[00:18:10] get the record somewhere
[00:18:12] but the A I doesn't know that
[00:18:13] when it's creating this. And so that's an
[00:18:15] important part of the puzzle
[00:18:17] that it just doesn't have.
[00:18:20] Then the other thing,
[00:18:22] I don't know if it was
[00:18:23] this one or another one where
[00:18:24] the person actually
[00:18:26] wanted to have it where
[00:18:27] there is a,
[00:18:29] they wanted a button to be pressed
[00:18:32] and they want the button
[00:18:33] to be pressed by a read only user
[00:18:36] and
[00:18:38] well, that's disabled for read only users
[00:18:40] so you can't even do that to
[00:18:41] begin with. And so if you
[00:18:43] go down this A I route,
[00:18:45] if you don't know enough about scripting,
[00:18:47] it's not necessarily gonna give
[00:18:48] you a complete working
[00:18:49] script and you're not
[00:18:49] necessarily know how to
[00:18:51] go back and say that.
[00:18:52] But it's also might be
[00:18:53] overlooking the fact that
[00:18:55] you spent all this time writing a script.
[00:18:56] It's actually not gonna work for your
[00:18:57] full use case
[00:18:58] because the person you want
[00:19:00] to push the button
[00:19:01] won't have the permission
[00:19:02] level to push the button.
[00:19:04] Right. Right.
[00:19:05] So yeah, they're trying to get around
[00:19:07] the read only, you know,
[00:19:08] paid user. But
[00:19:11] that's why the buttons are disabled
[00:19:13] because you can't
[00:19:14] modify the data as a read
[00:19:15] only user, even if it's
[00:19:18] running a script.
[00:19:21] So the one thing,
[00:19:22] the one thing I noticed
[00:19:23] just looking at this,
[00:19:24] which would lead me to believe,
[00:19:26] maybe this part wasn't written by A I
[00:19:28] because I think A I
[00:19:29] would have gotten this. But
[00:19:31] you notice, they call main
[00:19:34] which is an a sync
[00:19:35] function but they don't
[00:19:36] have a weight in front of it.
[00:19:38] And I bet that that's the problem
[00:19:40] because then none
[00:19:42] of this is gonna work and
[00:19:43] the error is related to this
[00:19:45] right here to get the record.
[00:19:46] Yeah. Oh, actually,
[00:19:47] so this one, it does say input
[00:19:49] record a sync but there's
[00:19:49] nothing inside the parameters
[00:19:51] where you actually you need to
[00:19:52] have a prompt and
[00:19:53] you need to have something
[00:19:54] that says what table
[00:19:55] you're getting the record from.
[00:19:56] Yeah.
[00:19:56] Yeah.
[00:19:57] Yeah,
[00:19:58] that's true.
[00:20:00] Yeah. So those are,
[00:20:01] those are two things.
[00:20:02] So maybe we'll update that and
[00:20:04] let
[00:20:04] know. But
[00:20:07] so yeah, anyway, good,
[00:20:08] good scripting advice.
[00:20:09] I think we'll get more of that in
[00:20:11] a bit
[00:20:13] to move on.
[00:20:14] OK. Ben asks,
[00:20:16] does the find record actions in Airtable
[00:20:18] automation seem slow to anyone else
[00:20:20] compared to the find
[00:20:22] records in other apps?
[00:20:24] Just talking about like third party apps
[00:20:26] zapier, Make, so kind of
[00:20:27] using inside the automations
[00:20:30] to find records versus
[00:20:31] versus using like the API
[00:20:34] I
[00:20:34] think I like this one mainly
[00:20:36] because of the back and forth
[00:20:38] between Bill and
[00:20:38] Catherine who recently
[00:20:40] joined the BuiltOnAir community,
[00:20:42] who used to work at Airtable she mentions.
[00:20:45] And so there's some really good,
[00:20:47] you get some good in insights into
[00:20:49] how Airtable works under the hood.
[00:20:53] So really good back and forth
[00:20:54] between the two of them in this thread.
[00:20:57] Yeah. The big point is just because
[00:20:59] you think nobody's doing
[00:21:01] something inside an
[00:21:01] Airtable base doesn't actually mean
[00:21:03] that there isn't a lot of
[00:21:05] stuff going on in
[00:21:05] it.
[00:21:07] Yep. Yep.
[00:21:09] So yeah, so good. If you,
[00:21:11] if you're trying to optimize the speed of
[00:21:14] performance, this thread is good.
[00:21:16] It has some good tidbits on
[00:21:18] things to look at
[00:21:19] and what might be causing.
[00:21:21] I know Alli you've got experience
[00:21:23] working with,
[00:21:24] you're on the top 10 naughty list
[00:21:30] of Airtable abusers.
[00:21:35] So you can see that now formula.
[00:21:38] Yeah. Yeah.
[00:21:40] That one is a, that's a big one.
[00:21:43] Yeah.
[00:21:44] So others as well.
[00:21:46] All right. Moving on.
[00:21:48] Oh, we already did that one.
[00:21:49] So I think that's all from the BuiltOnAir
[00:21:52] community. Moving on to
[00:21:55] to Table Forums, a couple,
[00:21:57] a couple interesting ones.
[00:22:00] So this, this post is from a while
[00:22:02] ago back in March about the changes to the
[00:22:05] home screen, but then somebody updated it.
[00:22:10] When they logged in,
[00:22:12] they're delaying the rollout
[00:22:14] of the new home screen
[00:22:15] based on feedback no longer
[00:22:17] being forced into using it for now,
[00:22:19] at least.
[00:22:20] So it sounds like they may
[00:22:22] be switched. It used to be,
[00:22:24] they, they, they switched everybody
[00:22:27] over or were starting
[00:22:28] to switch people over.
[00:22:29] But you could go into your account
[00:22:32] drop down and revert back
[00:22:34] now. It looks like it might
[00:22:36] be more of an opt
[00:22:37] in where you can switch
[00:22:38] if you want, but they're not forcing it.
[00:22:42] I don't know if you've seen that.
[00:22:43] I was very happy when I was able to revert
[00:22:45] back.
[00:22:46] I
[00:22:46] hate the new home screen. I have to say
[00:22:49] it's terrible.
[00:22:50] I, yeah,
[00:22:51] I will be very sad on the day
[00:22:53] that they decide you can no longer
[00:22:55] extend.
[00:22:57] Yeah,
[00:22:58] I'm kind of maybe more in the middle.
[00:23:01] Like I like some things about it.
[00:23:02] I feel like there's still room
[00:23:04] for improvement,
[00:23:05] but I think they can find a
[00:23:07] workable solution with the new approach.
[00:23:10] I'm saying with you, Dan,
[00:23:12] there, there was actually
[00:23:13] a couple of things
[00:23:13] that I liked about it.
[00:23:14] It's just that they broke some
[00:23:16] of the fundamental things
[00:23:16] that I used to do,
[00:23:18] like dragging a base
[00:23:19] from one workspace to another that
[00:23:21] I, I do that a lot and most people
[00:23:23] probably don't, but especially
[00:23:25] when I was working as a consultant
[00:23:26] and you have something
[00:23:27] in your base and you
[00:23:28] to transfer ownership.
[00:23:29] you would do that or
[00:23:31] what I do a lot now
[00:23:32] is I have certain bases and
[00:23:34] I just move them to an archive
[00:23:35] workspace because
[00:23:36] I don't want to actively see it
[00:23:37] anymore, but I want to be able to
[00:23:39] retain access to it.
[00:23:40] And so dragging,
[00:23:41] I actually do drag bases around
[00:23:43] from one workspace to another a lot.
[00:23:44] And that was just completely broken
[00:23:46] in the new interface. But I really do
[00:23:48] believe that they can come up
[00:23:50] with a better solution.
[00:23:51] I want to bring back to ideas
[00:23:53] when we had the views side bar.
[00:23:55] At
[00:23:55] first, they came up with a system
[00:23:57] that just didn't work.
[00:23:59] They went back to the
[00:24:00] drawing board,
[00:24:01] we heard nothing
[00:24:02] for like it felt like weeks
[00:24:04] or months and they
[00:24:05] came back with a beautiful
[00:24:06] new design on that where it, like,
[00:24:08] it made so much more sense
[00:24:09] they took in the feedback
[00:24:10] from all kinds of different
[00:24:11] people, what people wanted to do
[00:24:13] and it was even better
[00:24:14] than what they used to have.
[00:24:15] So I'm very hopeful that
[00:24:16] they will come up
[00:24:17] and that they'll pull another one
[00:24:18] out of the bag that they'll
[00:24:19] say here's how it works. Here's
[00:24:22] they rolled out something
[00:24:23] that didn't work.
[00:24:24] They're gonna go back to the drawing
[00:24:25] board and they'll come up with something
[00:24:26] that takes the best of all the
[00:24:27] different situations
[00:24:28] that's totally different from anything
[00:24:30] we've seen and even
[00:24:30] better.
[00:24:31] Yeah, I
[00:24:32] hope
[00:24:32] so. Looking forward to that for sure.
[00:24:34] Yep. Yep. That would be nice.
[00:24:37] But yeah, this one
[00:24:38] this last comment says that
[00:24:40] he doesn't have the rollback
[00:24:41] option, which is, which is odd.
[00:24:43] I, I feel like I've seen that in all of my
[00:24:46] accounts.
[00:24:47] It could be a situation where
[00:24:49] the rollback option has not
[00:24:51] yet been rolled out to him.
[00:24:53] Maybe.
[00:24:56] Roll back the roll back.
[00:25:00] So,
[00:25:01] yeah, so still in the works,
[00:25:02] the home screen,
[00:25:03] we'll see, we'll see maybe more to
[00:25:05] come there.
[00:25:07] All right, here's another one.
[00:25:10] I think, yeah, Kuovonne,
[00:25:11] you're in this discussion.
[00:25:13] Kuovonne is everywhere
[00:25:15] can records or fields
[00:25:17] read from extensions?
[00:25:18] So somebody asking
[00:25:20] if an extension or if a field
[00:25:22] can basically communicate
[00:25:24] with an extension in some way,
[00:25:27] how do you answer this
[00:25:28] Kuovonne?
[00:25:29] Well, basically the answer is no that
[00:25:33] formulas
[00:25:35] they don't even know
[00:25:36] that extensions exist.
[00:25:38] So there's no way that they can go back.
[00:25:41] All the formula can do is
[00:25:42] it can pull from other field data.
[00:25:45] And so what you can do is
[00:25:46] you can have your extension,
[00:25:48] modify the editable data
[00:25:50] and then the formula would pull from that.
[00:25:52] But I don't think that will work.
[00:25:53] And then later on in this thread
[00:25:55] Bill brings up the idea
[00:25:56] that he really wishes
[00:25:57] that we could have
[00:25:58] custom formulas where you can
[00:26:00] define your own formula
[00:26:02] using javascript and then
[00:26:03] have that formula go
[00:26:05] and do whatever calculations.
[00:26:08] And then he points out that
[00:26:10] it's been a while since
[00:26:13] Google Sheets and Excel have had that,
[00:26:15] but it's just not there on Airtable yet.
[00:26:19] Yeah.
[00:26:19] Yeah.
[00:26:20] But I think this is part of the trend
[00:26:23] of we've seen a deemphasize on
[00:26:24] extensions
[00:26:26] and there was also recently
[00:26:27] a thread where someone was somewhere.
[00:26:29] I don't remember where,
[00:26:30] where someone was trying to
[00:26:31] get page designer to work.
[00:26:32] But the problem was they
[00:26:33] were trying to print
[00:26:34] from a view that had like
[00:26:35] 1500 records
[00:26:35] and it just was too many.
[00:26:37] And the answer is that you need to go and
[00:26:39] scale back your views.
[00:26:40] So you don't have so many.
[00:26:42] And one of the ways
[00:26:43] that extensions works
[00:26:45] is they have the ability to watch all
[00:26:47] of the records in a view.
[00:26:50] But the problem with that is
[00:26:52] it's incredibly resource intensive.
[00:26:53] And so, you know,
[00:26:55] say you have something like
[00:26:56] a dashboard open with a
[00:26:57] just even a simple count
[00:27:00] one.
[00:27:00] Well, that count extension
[00:27:02] is constantly reading all
[00:27:04] of the records because that
[00:27:06] count could change at any moment if anyone
[00:27:08] creates a record or updates record.
[00:27:10] And so that just can be a really
[00:27:12] big drain
[00:27:12] and it makes things a lot slower.
[00:27:14] So
[00:27:15] by moving away and deemphasizing
[00:27:16] extensions,
[00:27:17] you're having fewer people that are
[00:27:18] writing extensions
[00:27:19] that are taking advantage
[00:27:20] of this fact that it's going to be
[00:27:21] watching every single record
[00:27:23] in however many tables.
[00:27:24] To hopefully not have that drain
[00:27:27] on performance.
[00:27:28] Yeah.
[00:27:29] Yeah.
[00:27:31] Yeah. Let's
[00:27:32] let's continue on that theme.
[00:27:34] There's another one from the Airtable
[00:27:36] community. I know this is
[00:27:39] near to both myself and Kuovonne
[00:27:41] and others,
[00:27:42] the future of extensions Tobias asks.
[00:27:46] Basically with the emphasis on,
[00:27:49] on interfaces and pushing users to use
[00:27:51] interfaces.
[00:27:53] What is the future of extensions?
[00:27:55] That's the question I know I have,
[00:27:57] I'm sure I have that, Kuovonne
[00:27:58] you have the same question.
[00:28:01] Yeah.
[00:28:02] And I think that's a big question
[00:28:04] and I think that Airtable
[00:28:05] probably themselves
[00:28:06] doesn't even really know.
[00:28:08] I think that's,
[00:28:09] they're trying to juggle a lot of things.
[00:28:11] The, the one extension that I really,
[00:28:13] really wish that they would bring to
[00:28:15] interfaces is scripting extension.
[00:28:17] If they brought
[00:28:18] nothing else to interfaces,
[00:28:19] I wish they could bring that
[00:28:20] because scripting extension
[00:28:21] is available to
[00:28:22] everybody
[00:28:22] and it can do things that you cannot do
[00:28:25] with
[00:28:27] automations.
[00:28:28] And automation script.
[00:28:30] And I think that has the most potential
[00:28:33] to
[00:28:36] improve what you can do with interfaces,
[00:28:39] but I maybe they're holding off
[00:28:41] because they want to have a more general
[00:28:43] approach because it,
[00:28:44] it really would not be good
[00:28:45] if they had just like this one
[00:28:46] off. This is the one thing
[00:28:48] that you can do in scripting,
[00:28:49] but none of the other
[00:28:49] extensions work.
[00:28:52] But it's a big thorny issue,
[00:28:53] but they have many
[00:28:54] big thorny issues to deal
[00:28:55] with interfaces and until then
[00:28:59] when it comes to developing extensions,
[00:29:01] my focus has been more on what are
[00:29:03] utilities that can help
[00:29:06] the base designers
[00:29:07] because they're always
[00:29:09] going to be in grid views
[00:29:11] and less on extensions
[00:29:12] that would help the end users
[00:29:15] that need to be in a front
[00:29:16] end type of environment.
[00:29:18] Yep.
[00:29:19] Yep.
[00:29:20] Yeah, I totally agree with that
[00:29:23] very well said. All right, let's move on.
[00:29:25] Going to Twitter.
[00:29:27] Let's go here.
[00:29:29] So we had an example.
[00:29:31] We talked a little bit about how
[00:29:33] A I maybe wasn't perfect
[00:29:34] in helping.
[00:29:35] Here's an example from John talking about
[00:29:40] so it's a video,
[00:29:41] it's actually a two minute video
[00:29:45] about how he basically used chat GP T
[00:29:48] to write a server code
[00:29:52] to get all the Airtable records
[00:29:54] and kind of complete something.
[00:29:56] So
[00:29:56] there's examples of, of using A I
[00:29:59] where it actually works
[00:30:01] and examples of where
[00:30:02] it doesn't work.
[00:30:04] So still mix mixed bag on,
[00:30:06] on the future of A I coding for you.
[00:30:10] So I see A I it's,
[00:30:11] it's A I is learning how to talk,
[00:30:13] it's learning how to speak
[00:30:14] both English and then it's also trying
[00:30:16] to learn how to speak code.
[00:30:18] When a little baby learns to speak,
[00:30:20] it just babbles
[00:30:21] nonsense and then gradually
[00:30:22] they say intelligent words
[00:30:24] and then they string together sentences
[00:30:25] and then they string together
[00:30:27] longer sentences
[00:30:27] and then eventually they can
[00:30:28] speak in paragraphs.
[00:30:30] So what A I can do
[00:30:31] with this code is it can do words and
[00:30:33] sentences and phrases.
[00:30:34] It can't really do essays yet
[00:30:38] in code. Yeah.
[00:30:39] Yeah. Code
[00:30:40] powerful applications. Yeah.
[00:30:43] Yeah. So good stuff there.
[00:30:45] All right. I think this is the last one.
[00:30:47] Shout out to, to Gareth.
[00:30:50] It looks like Phil Blacken
[00:30:52] who runs a no code ops
[00:30:55] community.
[00:30:56] They're gonna be doing a live build
[00:30:59] a C R M in public together with Gareth.
[00:31:02] So
[00:31:03] the series, it looks like a month's worth
[00:31:06] of events where they're gonna be
[00:31:07] connecting
[00:31:09] and I assume Gareth is gonna be
[00:31:11] helping him build his C R M.
[00:31:12] So
[00:31:13] if you want to see a
[00:31:15] C R M built in public,
[00:31:16] you can check out their channel.
[00:31:18] Likely it'll be on both their,
[00:31:21] their respective communities.
[00:31:23] So
[00:31:24] it could be a,
[00:31:25] could be a worthwhile watching that.
[00:31:30] All right. So I think that's
[00:31:31] everything in our Round the Bases,
[00:31:32] getting everybody
[00:31:34] up to speed on what's going on.
[00:31:36] So we'll give a shout out to On2Air
[00:31:39] it's an on one tool kit
[00:31:40] to run your business on Airtable.
[00:31:42] It's a suite of apps that help you
[00:31:44] do more with your Airtable.
[00:31:45] So if your business is dependent
[00:31:47] on Airtable, you need to check out On2Air
[00:31:49] at on2air.com
[00:31:51] and find out all the amazing
[00:31:53] apps that we have there.
[00:31:55] For today's shout out,
[00:31:57] I'm gonna go to Twitter
[00:31:59] and I figured I'll have one
[00:32:01] of our customers,
[00:32:02] Peter who was kind enough to do a
[00:32:04] case study with us,
[00:32:06] share in his own words what the On2Air
[00:32:09] backups has meant for his business.
[00:32:11] So, let's see if this,
[00:32:12] I don't know if the audio will work.
[00:32:14] Let me let me know
[00:32:15] if you can hear it or if
[00:32:16] you can't hear it,
[00:32:19] can't hear.
[00:32:20] No,
[00:32:23] so you can read it.
[00:32:49] All right. So charm and many others
[00:32:51] are using backup to back up their data
[00:32:54] from Airtable into Google drive box
[00:32:57] or Dropbox, whatever solution you're
[00:33:00] already using
[00:33:01] for your file storage.
[00:33:03] So check out On2Air
[00:33:04] at on2air.com
[00:33:05] and our backups
[00:33:08] on2air.com/backups
[00:33:09] to learn more
[00:33:11] highly recommend backups.
[00:33:13] Today is the one day
[00:33:14] anniversary of where I started
[00:33:16] my job at Luke Lamco
[00:33:17] and one of the first things
[00:33:19] that I did was got them
[00:33:20] On2Air backups.
[00:33:21] Nice. Appreciate that. Thank you.
[00:33:25] All right,
[00:33:26] Kuovonne is going to spill her secrets
[00:33:32] on scripting and all things Airtable.
[00:33:38] I don't know if I would go that far.
[00:33:40] What it is is I have a new initiative that
[00:33:43] I started and let's see. How can I,
[00:33:46] do I click present?
[00:33:48] Yeah.
[00:33:52] Share screen,
[00:33:57] share screen. Now, how do I pick
[00:34:01] which window?
[00:34:04] Let's see. I think this is this window.
[00:34:08] Ok.
[00:34:11] Now how to see?
[00:34:13] Ok. All right here we go. So
[00:34:15] what happened was
[00:34:17] I've been posting content
[00:34:19] about Airtable on different places
[00:34:21] for a couple of years now.
[00:34:23] The Airtable community forums,
[00:34:26] sometimes in Slack,
[00:34:27] I've been doing it on Table Forums
[00:34:29] and on Facebook groups.
[00:34:31] And I found that my
[00:34:31] content was getting split
[00:34:33] off into all these different places and I
[00:34:36] it was fun creating it.
[00:34:37] But like if I want to refer back
[00:34:38] to it or there's this
[00:34:39] other useful comment
[00:34:40] that would go in
[00:34:41] and then it would just be lost
[00:34:43] because it's on some old thread.
[00:34:45] That's not the original post
[00:34:47] that you can't search on anymore.
[00:34:48] And I said, you know what?
[00:34:50] I wish I could just have
[00:34:51] one place where I could put
[00:34:53] my knowledge and the information
[00:34:55] that I want to put it together
[00:34:56] and
[00:34:57] just
[00:34:58] have it all consolidated
[00:34:59] where stuff won't get lost.
[00:35:01] And I decided over this
[00:35:02] past weekend that you know what,
[00:35:04] I'm just gonna go ahead and create an coda
[00:35:07] dock where I can put it together.
[00:35:08] And I ended up creating two coder docks.
[00:35:10] And I decided
[00:35:11] if you go here, it's
[00:35:14] H T P S coda dot I O slash
[00:35:16] at Kuovonne,
[00:35:17] you will have to know how
[00:35:18] to spell my name in order to get there.
[00:35:19] But one of them is my guide to Airtable
[00:35:22] and what this is is it's
[00:35:24] a work in progress, but it is
[00:35:26] the different knowledge
[00:35:28] of that I think is important.
[00:35:29] About knowing about Airtable.
[00:35:30] So I've got stuff about
[00:35:32] different field types
[00:35:33] where I say, OK,
[00:35:34] here are all the different field types.
[00:35:36] What's the data type
[00:35:37] that there are in there?
[00:35:39] Computed field types,
[00:35:41] field types, how they work in scripting.
[00:35:44] Stuff about formula fields
[00:35:46] where I have my presentation from
[00:35:48] last year's Dare Table
[00:35:50] conference, I've also got
[00:35:53] my beginnings of my style guide
[00:35:56] on how I write my styles for formulas,
[00:36:01] information on meta data fields.
[00:36:03] A lot of different other information
[00:36:06] that I think is useful information about
[00:36:08] Airtable and using Airtable
[00:36:10] that
[00:36:12] is not readily available on the website.
[00:36:14] And it's just my business take on how
[00:36:16] I'm doing it.
[00:36:17] And I just want to consolidate
[00:36:18] the information.
[00:36:18] So the plan is like rather than just
[00:36:21] writing a post that gets read by a couple
[00:36:23] of people in a forum
[00:36:24] and then just is lost
[00:36:25] that I'm gonna put it all here.
[00:36:26] And if you like love my content,
[00:36:29] you can just go here
[00:36:30] and then you can just see
[00:36:31] all of it all together,
[00:36:32] hopefully nicely organized,
[00:36:34] but also in an ongoing way that I plan on
[00:36:37] maintaining this. So that
[00:36:39] if I have a new idea or a new formula
[00:36:41] that I think is the common,
[00:36:42] the pattern is
[00:36:43] that you can see that's there.
[00:36:44] So for example,
[00:36:45] like
[00:36:46] here, I've got my common
[00:36:47] formula patterns. I've only put in.
[00:36:49] I said I've only been doing
[00:36:50] this over this weekend,
[00:36:51] right? So we're like,
[00:36:52] I've put in like
[00:36:53] examples of the formulas here.
[00:36:58] So this is what it is
[00:36:59] for Airtable as itself.
[00:37:00] But that also I had so much other
[00:37:01] information about scripting.
[00:37:03] I said, you know what,
[00:37:04] I need to have another doc
[00:37:04] that talks about scripting.
[00:37:07] And so that's this one here.
[00:37:10] So you want to learn scripting?
[00:37:11] I think this is one of the
[00:37:12] most important pages
[00:37:13] to start off with is
[00:37:14] do you actually want to learn
[00:37:15] how to write scripts
[00:37:16] or do you just want working
[00:37:17] code? Because if you just want
[00:37:19] working code to do something else,
[00:37:20] a little discussion of what
[00:37:22] you might want to think of
[00:37:24] if you want to have AI
[00:37:24] write the script for you
[00:37:26] and then I get asked this
[00:37:28] so many times it's
[00:37:29] what do you do if you actually said
[00:37:31] yes, I actually want to write
[00:37:32] the script myself, but where do I start?
[00:37:34] So depends on whether or not
[00:37:36] you know
[00:37:36] Airtable depends on whether or not you
[00:37:38] know code.
[00:37:39] And then after that,
[00:37:40] it goes straight to the
[00:37:41] scripting documentation.
[00:37:42] Then this is the part these free scripts.
[00:37:45] I think is what people might be
[00:37:46] most interested in. What it is is
[00:37:49] every now and then I'll see
[00:37:51] like a particular use case
[00:37:53] come up in a forum. And I thought,
[00:37:54] oh, that's interesting.
[00:37:56] And I'll write like a little script
[00:37:58] to do that and then
[00:37:58] I'll publish it. And I'm like,
[00:37:59] well, maybe someone else
[00:38:00] will be interested in it.
[00:38:02] And I said, what
[00:38:03] I
[00:38:03] do, so I'll stay here.
[00:38:04] So, like here, this was a Facebook post
[00:38:07] where someone wanted to do
[00:38:08] a schedule something
[00:38:09] to go on the second and the
[00:38:10] fourth Monday,
[00:38:11] there was a little conversation
[00:38:13] about people suggesting things.
[00:38:14] And
[00:38:17] if we look at these here,
[00:38:18] she'll said, ok, well,
[00:38:20] can you do the scripting option?
[00:38:21] And so I said, you know what,
[00:38:23] let me go ahead and write that.
[00:38:24] And so I wrote it here
[00:38:25] with the inspiration of saying, well,
[00:38:27] if you want to do something
[00:38:28] that goes out on the second
[00:38:29] and the fourth Monday
[00:38:30] just have your own automation
[00:38:32] run every month,
[00:38:33] excuse me, every week,
[00:38:35] every Monday
[00:38:35] and then have a script determine if it is
[00:38:37] the second or the fourth.
[00:38:40] And so I walk through how
[00:38:42] to do it, how you get the date,
[00:38:44] get the day of the month,
[00:38:45] so on determine whether or not it is.
[00:38:47] And this is how I thought about doing it.
[00:38:50] So for example, first,
[00:38:51] he said, well, ok,
[00:38:52] if it's going to be in these days,
[00:38:54] but then we have another
[00:38:54] way and we can actually
[00:38:56] make that a little bit
[00:38:57] concise. So it needs a little bit less
[00:38:59] set it out and then we have the full
[00:39:00] script. So this full script,
[00:39:02] you see it's only four lines long
[00:39:04] and if we really
[00:39:04] wanted it to be shorter,
[00:39:06] it could be shorter.
[00:39:07] So it's not something that it's a
[00:39:08] script that I'm gonna go and like
[00:39:09] sell
[00:39:10] because it's so short.
[00:39:12] It has very little use case
[00:39:14] for people actually putting
[00:39:15] in practice. But it would be very useful
[00:39:17] to this particular person.
[00:39:18] And also
[00:39:19] part of it is to teach other people
[00:39:21] how to do scripting. So that they see here
[00:39:24] are the different steps.
[00:39:25] This is how you get a date.
[00:39:27] This is how you think
[00:39:28] through the logic.
[00:39:29] And then you think, oh, well,
[00:39:30] maybe I could recapture that
[00:39:31] logic to make it
[00:39:32] a little bit more efficient.
[00:39:33] And this is how you output it.
[00:39:36] And
[00:39:37] that helps people learn scripting
[00:39:39] because I'm a really big believer that if
[00:39:41] anyone who wants to learn scripting
[00:39:43] and is motivated doing it,
[00:39:45] they should have the chance to do it.
[00:39:47] And this is a way of paying back all the
[00:39:49] free websites that I saw that taught me
[00:39:51] all the different tricks that I know.
[00:39:54] And
[00:39:55] well, just because
[00:39:58] I think I am offering in a way
[00:39:59] of knowing whether or not
[00:40:00] I'm actually offering a
[00:40:01] useful service is,
[00:40:04] oh, I lost my
[00:40:05] is,
[00:40:06] you know, if you found this was helpful,
[00:40:09] you can buy me a coffee,
[00:40:10] just give a little tip. It takes me to,
[00:40:12] it'll take you to
[00:40:14] my coffee shop of
[00:40:15] ros gone. And I actually,
[00:40:17] I did get this one person did
[00:40:18] like it and gave
[00:40:20] me a little tip for that.
[00:40:21] So,
[00:40:22] actually, I don't, I don't think it
[00:40:24] was this one. I think that was for a,
[00:40:26] that one was for a different person.
[00:40:28] If we look here, I think this one might
[00:40:29] have been
[00:40:31] for,
[00:40:32] so I've tried to break them up,
[00:40:33] I think. So this is like an automation
[00:40:35] for a formatted time stamp.
[00:40:37] So for example,
[00:40:38] if you want to have a formatted time stamp
[00:40:40] that you want to use
[00:40:40] in an email,
[00:40:41] you have the time stamp
[00:40:43] that when the automation was run,
[00:40:44] but it gets an I S O screen
[00:40:45] which is really ugly.
[00:40:46] You want something that's
[00:40:47] pretty.
[00:40:48] And so
[00:40:50] I talk through how you use the two local
[00:40:53] string explaining the different
[00:40:55] parts that you need.
[00:40:56] I give links to say here's
[00:40:58] the different choices
[00:40:59] that you can include in them.
[00:41:01] And then at the end
[00:41:04] is the full script.
[00:41:05] So it's really a short script.
[00:41:07] It's not worth trying to
[00:41:08] charge money for. But you know,
[00:41:10] if it was useful to you,
[00:41:12] it might be worth it to give a tip because
[00:41:15] I'm not gonna keep rooting through this.
[00:41:17] People aren't finding it useful.
[00:41:18] The way people tell me
[00:41:20] that it's useful is,
[00:41:22] you know, they fill that tip jar.
[00:41:23] Nice, very cool.
[00:41:25] This is good stuff. It's like
[00:41:27] if you, if you've spent any time
[00:41:29] in any of the communities,
[00:41:31] you've seen Kuovonne's
[00:41:32] name and how valuable her,
[00:41:34] her feedback
[00:41:35] and and time spent on answering
[00:41:38] hundreds, thousands of questions.
[00:41:42] So compiling it all into one place is,
[00:41:45] is invaluable to anybody
[00:41:46] getting up to speed in Airtable.
[00:41:48] So this is an awesome resource.
[00:41:52] As I said, if, if you,
[00:41:54] if you want to learn scripting,
[00:41:56] I think it's better if you actually
[00:41:58] learn scripting
[00:41:59] than try and rely on A I for
[00:42:00] now because the A I
[00:42:01] is gonna have weird errors
[00:42:02] that you're not gonna know how to
[00:42:04] debug.
[00:42:06] Yeah.
[00:42:07] Yeah,
[00:42:08] that's true. It's like
[00:42:09] if you don't know
[00:42:11] what you're dealing with, like A I could
[00:42:15] give you get you close enough. But
[00:42:18] that last part is the hardest part.
[00:42:21] Absolutely.
[00:42:22] Well,
[00:42:22] and you're you're what,
[00:42:24] what are you speaking on at DareTable?
[00:42:26] So let's go back a little bit here.
[00:42:31] So this is back scripting.
[00:42:33] Let me go back to my guide to Airtable.
[00:42:36] One of the things that
[00:42:38] is one of my current kicks
[00:42:39] is the idea of metadata
[00:42:41] fields. So some simple metadata
[00:42:43] fields are like you're created by or your
[00:42:45] created time or your last modified,
[00:42:48] this is data about your data.
[00:42:52] So not the data that's actually
[00:42:54] being used to run the business,
[00:42:55] but data that helps you manage it.
[00:42:57] And
[00:42:59] one of my recent skis is the idea
[00:43:01] is that we have two other
[00:43:03] metadata
[00:43:03] type fields that I'm going to be talking
[00:43:06] about that are particularly interesting.
[00:43:08] One of them is data validation.
[00:43:10] So this section will be coming
[00:43:12] after DareTable
[00:43:14] and the other one is going
[00:43:16] to be additional dependencies.
[00:43:18] So what these are the ideas,
[00:43:20] data validation is when you have
[00:43:22] say you've got
[00:43:24] if you have a form,
[00:43:26] so someone creating a new record, you say,
[00:43:27] OK, we need to make sure that
[00:43:29] these three fields are filled out.
[00:43:30] You can do that when they fill
[00:43:32] out the form, right?
[00:43:33] But what happens after the
[00:43:34] fact that people are editing the data
[00:43:35] and maybe they like delete
[00:43:37] one of those fields.
[00:43:38] Well, suddenly you have invalid
[00:43:40] data. What if you have something
[00:43:42] that says if you're gonna choose,
[00:43:43] you know,
[00:43:44] other as the single select option,
[00:43:45] we want to make sure that you
[00:43:46] filled in this text field
[00:43:48] where you actually type in
[00:43:50] what that other thing is.
[00:43:52] These are data validation issues.
[00:43:53] Airtable doesn't have
[00:43:55] a built way of in way
[00:43:55] of doing that, but we can
[00:43:57] generate a formula field that says,
[00:43:58] OK, let's take a look at all
[00:44:00] these different different
[00:44:02] conditions and apply in
[00:44:03] what is your business logic to say
[00:44:05] is this set of data in this valid
[00:44:07] in this record actually valid?
[00:44:08] And so I'll be talking about
[00:44:10] why you want a field
[00:44:11] like this,
[00:44:11] how to construct a field like this
[00:44:14] and
[00:44:17] why I think it's important to put it all
[00:44:19] and just have one field that puts it
[00:44:21] all together rather than having it
[00:44:22] scattered over in different places.
[00:44:25] Then the other metadata,
[00:44:26] one is this additional dependencies.
[00:44:28] The idea is you've got your
[00:44:30] Airtable base and you can look
[00:44:32] there if there are additional tendencies,
[00:44:34] you can say, OK,
[00:44:35] when I try and delete this field,
[00:44:36] it gives me a warning.
[00:44:37] It says actually there's these
[00:44:38] two other formula fields. Well,
[00:44:40] it won't necessarily tell you
[00:44:41] what the formula fields are
[00:44:43] unless you're an enterprise.
[00:44:44] But it'll actually,
[00:44:44] it will tell you no matter what you are,
[00:44:46] it'll tell you which field fields
[00:44:47] are that depend on that field that you're
[00:44:48] about to delete.
[00:44:50] But the problem is,
[00:44:51] is say you have something else,
[00:44:52] say you've got to make
[00:44:53] scenario or a zap
[00:44:54] that depends on that field,
[00:44:56] it doesn't know that, Airtable
[00:44:57] will just let you delete it
[00:44:58] so you can create another formula field
[00:45:00] that says these are my additional
[00:45:01] dependencies. Here's on everything
[00:45:03] outside of this scope
[00:45:05] that's gonna blow up if
[00:45:06] you delete this field.
[00:45:07] And so I'm gonna show you
[00:45:09] why you want this additional
[00:45:10] dependencies field,
[00:45:11] how to write it so that you can
[00:45:13] document and say where things are,
[00:45:15] what they were used in.
[00:45:16] We actually had a situation where
[00:45:18] we had a field
[00:45:19] that no one was really quite
[00:45:20] sure what they were using out.
[00:45:21] It turned out that it
[00:45:22] was actually used in a page
[00:45:23] designer block
[00:45:24] and no one ever looked at it.
[00:45:26] They just printed the page designer
[00:45:28] block and if we had actually deleted that
[00:45:29] field, it would have messed up
[00:45:31] the page designer block
[00:45:32] without people even
[00:45:33] really
[00:45:33] notice looking at it.
[00:45:34] So
[00:45:36] we went ahead and said,
[00:45:37] OK, in my additional dependencies,
[00:45:39] everything that's
[00:45:40] used in the page designer block,
[00:45:41] I'm gonna be put it there.
[00:45:42] So that when we go
[00:45:43] through, we don't actually delete
[00:45:44] something that's used in page designer.
[00:45:48] Very useful.
[00:45:49] Well, that would be a good segment.
[00:45:52] We will end this with
[00:45:54] a shout out from Zeki.
[00:45:56] If Airtable had a community member
[00:45:58] Hall of Fame, Kuovonne
[00:45:59] would be in it.
[00:46:00] Agreed.
[00:46:02] I, I think there are many
[00:46:04] people that should,
[00:46:05] that deserve to be in it.
[00:46:07] Yeah,
[00:46:08] for sure. But you are definitely
[00:46:10] in that group. So I welcome.
[00:46:11] Thank you Kuovonne
[00:46:13] for sharing that.
[00:46:14] So we'll put a link to it
[00:46:17] coda to your coda sites
[00:46:19] so people can find you in my recognition.
[00:46:21] Just go to coda dot I O slash
[00:46:24] at Kuovonne.
[00:46:25] Because I've been changing
[00:46:27] the names of the files.
[00:46:28] So if you're trying to,
[00:46:29] to link to a specific doc
[00:46:31] or deep inside a doc,
[00:46:32] I'm not gonna guarantee that any
[00:46:34] of those URL S are gonna stay static.
[00:46:36] Fair enough.
[00:46:38] All right, let's move on.
[00:46:39] Alli is going to share some
[00:46:42] invoicing and line items.
[00:46:46] All right.
[00:46:48] Excellent.
[00:46:50] OK. So this is a question
[00:46:52] I see getting asked like,
[00:46:55] if not daily, definitely several times
[00:46:57] a week across all the different platforms.
[00:47:00] It's something that like, really,
[00:47:02] I think once you understand this concept,
[00:47:04] like
[00:47:05] it kind of helps you
[00:47:06] bring your Airtable usage
[00:47:08] to the next level.
[00:47:09] It's a good introduction to
[00:47:11] understanding a junction table,
[00:47:12] which I'm sure if, if you've
[00:47:14] done a lot of reading on Airtable
[00:47:16] and you don't know what that is,
[00:47:17] you might have seen that term
[00:47:19] tossed around quite a bit
[00:47:20] and been like,
[00:47:21] what the heck are people talking about?
[00:47:23] So hopefully this will kind of help
[00:47:25] to bring all that together into a pretty
[00:47:28] solid use case that I think
[00:47:30] many people will need
[00:47:32] and use on a regular basis.
[00:47:35] So here I do have all this built out,
[00:47:37] but I'm just gonna kind of start off from
[00:47:39] like where I usually see people
[00:47:41] starting off from
[00:47:42] and then they get confused and
[00:47:43] frustrated and then
[00:47:44] we'll go into the solution.
[00:47:46] So here I've got a table of invoices,
[00:47:48] just ignore the line items table for now.
[00:47:52] Invoices and then I have
[00:47:54] a table of products here
[00:47:55] to get rid of this as well.
[00:47:57] Just so it's simple.
[00:47:59] So
[00:48:00] on
[00:48:02] the products table,
[00:48:03] I have a unit price field.
[00:48:05] I've got some other items
[00:48:07] or pieces of data about those items.
[00:48:12] And on the invoices table,
[00:48:14] I'm just saying the invoice number,
[00:48:16] the date and it's linked off to a customer
[00:48:18] and what I will usually see
[00:48:20] people do and they're very
[00:48:22] first learning how to use Airtable
[00:48:25] is they might link directly
[00:48:27] to that products table and say,
[00:48:29] well,
[00:48:31] let's say
[00:48:32] products on invoice.
[00:48:35] And they might say, well, I've got
[00:48:38] item A
[00:48:39] item B on this one,
[00:48:42] this one's got just item B
[00:48:44] and this one's got item C
[00:48:46] and
[00:48:47] then they'll do, they might learn
[00:48:49] how to use a roll up field
[00:48:51] and roll up that
[00:48:52] unit price
[00:48:55] and sum that up,
[00:48:58] which is great if you only have
[00:49:00] one of each of these items.
[00:49:03] But
[00:49:03] what if, what if on this invoice,
[00:49:05] I actually have a quantity
[00:49:07] of two for item A
[00:49:08] and a quantity of three for item B or any
[00:49:11] such numbers.
[00:49:13] You're not gonna be able to
[00:49:14] record any of that data
[00:49:16] here using just these two
[00:49:17] tables. It's just
[00:49:19] you don't have enough dimensions
[00:49:21] there to be able to get the data you need.
[00:49:24] So that's where a junction table
[00:49:26] comes in which is super,
[00:49:28] super helpful and a
[00:49:30] very, very powerful thing
[00:49:31] that Airtable allows you to do
[00:49:33] and a good way to structure your data
[00:49:35] when it's necessary.
[00:49:37] So I'm just gonna delete this
[00:49:39] products on invoice field altogether.
[00:49:42] Don't need to worry about that dependency
[00:49:45] and the back link.
[00:49:47] I know, right. I've got to just
[00:49:49] go over there and do that now.
[00:49:50] Thank you. Might as well.
[00:49:52] I wish that you could have
[00:49:54] that as an option. But I, yeah,
[00:49:56] it'd be cool.
[00:49:57] Sorry, I just had to bring that up
[00:49:59] because I see so many
[00:50:00] people not delete their back links
[00:50:02] and then their tables littered
[00:50:03] with the stuff that they don't
[00:50:04] know what it is. The carry on.
[00:50:05] You see invoices two
[00:50:07] invoices three
[00:50:07] invoices four like a million times.
[00:50:09] Yeah. Oh my gosh, it's frustrating.
[00:50:12] So then I'm gonna just go over
[00:50:14] directly to this line items
[00:50:16] table and talk about
[00:50:17] how this is set up.
[00:50:18] So a junction table,
[00:50:20] how I would define it is
[00:50:22] a table that's taking
[00:50:25] data from two different other tables
[00:50:28] and bringing them together
[00:50:30] into this one dimension here.
[00:50:31] So here I've got one row
[00:50:33] that's representing
[00:50:35] one product
[00:50:36] on one invoice.
[00:50:38] But here I can put in
[00:50:40] what that quantity is.
[00:50:42] I can pull over the unit price
[00:50:44] from the products table.
[00:50:45] I can then create a formula here.
[00:50:48] That's saying
[00:50:49] the quantity times the unit price,
[00:50:51] I can get each line item
[00:50:54] individually what that sub total is
[00:50:56] and that adds up to the total cost of the
[00:50:59] invoice.
[00:51:02] Another thing
[00:51:03] that
[00:51:04] might be helpful is I actually have this
[00:51:07] unit price free text field here
[00:51:10] because
[00:51:12] if we don't have this right.
[00:51:13] So generally speaking,
[00:51:15] what I would do and I
[00:51:16] haven't built out all of this all the way
[00:51:18] is I'd say once you mark this
[00:51:20] invoice as sent,
[00:51:21] for example, do you have like a
[00:51:22] status field on your invoices table,
[00:51:25] then I would write an automation that
[00:51:27] would take your unit prices
[00:51:30] and copy them into this
[00:51:31] unit price pretext field.
[00:51:34] And if you look at my formula
[00:51:36] for unit price, I'm essentially saying
[00:51:39] this is another little known
[00:51:40] fact I talked about
[00:51:42] last week on the show
[00:51:44] is you can actually write if statements
[00:51:46] and other formulas inside of your roll
[00:51:48] up fields.
[00:51:49] So this saves you from having
[00:51:51] to have, you know,
[00:51:53] multiple formula fields across
[00:51:54] the table.
[00:51:57] So basically I'm just saying,
[00:51:58] if I have unit price pretext,
[00:52:00] if I have a value in
[00:52:01] that field,
[00:52:02] then I wanna use that value.
[00:52:04] Otherwise I wanna just use
[00:52:05] the sum of whatever the
[00:52:06] unit price is for the value.
[00:52:08] I mean for the product
[00:52:09] that I'm linking to.
[00:52:11] And why I wanna do that is because
[00:52:14] let's say I haven't set that up
[00:52:17] and item A,
[00:52:19] you know, six months down the line,
[00:52:21] I'm changing my prices and I'm saying
[00:52:23] this is no longer $15. This is now
[00:52:27] $17.
[00:52:30] Now, when I go over to my line items,
[00:52:33] my sub total and my unit price
[00:52:35] has changed even if I've already sent this
[00:52:37] invoice out
[00:52:38] a year ago, even
[00:52:40] then it's gonna show
[00:52:41] it's gonna change
[00:52:42] all of my historical data.
[00:52:44] But you can see here where
[00:52:45] I'm linking over to item A
[00:52:47] and I've frozen that value
[00:52:48] in time.
[00:52:50] It stayed as $15
[00:52:51] and didn't change my sub total
[00:52:53] or the whole total price of the
[00:52:55] invoice.
[00:52:56] So that's a mistake
[00:52:57] I see people making a lot and
[00:53:00] it's, it's really,
[00:53:02] it's, it's hard to explain, but
[00:53:05] it's very important to make sure
[00:53:07] that you freeze those values in time,
[00:53:09] especially when you want to be
[00:53:11] relying on your historical data.
[00:53:14] Otherwise things get messy.
[00:53:15] One quick comment is
[00:53:17] I notice you use the word free text
[00:53:19] in the name of that
[00:53:19] field. So naming things is really tricky.
[00:53:23] Yeah,
[00:53:24] maybe a different name
[00:53:25] because we actually have a
[00:53:26] number rather than the word
[00:53:27] text. No, totally. Yeah, this is,
[00:53:30] you know, I built this in 2019
[00:53:31] and I used the word free text
[00:53:34] in 2019 and never changed it ever,
[00:53:36] right? You know what I would
[00:53:37] actually do is say like
[00:53:39] unit price override even
[00:53:39] because that would be
[00:53:41] work as an override field.
[00:53:43] So if I wanted to be like,
[00:53:45] actually this was $15
[00:53:47] I could override it or maybe
[00:53:49] maybe for this person's getting
[00:53:51] a discount or something. And I
[00:53:53] mean, obviously I've maybe
[00:53:54] have something actually
[00:53:55] built in to allow for
[00:53:55] discounts. But
[00:53:57] if for whatever reason,
[00:53:58] this product actually in this
[00:53:59] case was $20 you'd be have
[00:54:00] the ability to override it.
[00:54:04] But yes, thank you Kuovonne,
[00:54:05] naming things is very important.
[00:54:10] So yeah, junction tables
[00:54:12] are super, super powerful to understand.
[00:54:15] But now when I go back
[00:54:17] to my invoices table,
[00:54:19] I'll actually unhide what I've got here.
[00:54:24] So I've got my invoice total.
[00:54:26] I've got my line items.
[00:54:27] I can actually still see
[00:54:29] what products are on that
[00:54:30] invoice in the same way
[00:54:31] I would if I had that direct link,
[00:54:33] but now I can
[00:54:34] actually set different quantities and
[00:54:38] see the actual dimensions
[00:54:40] of that product on that invoice.
[00:54:45] People sometimes ask like
[00:54:47] where the easiest place
[00:54:48] to like manage this is.
[00:54:50] And for me,
[00:54:51] I usually do it just directly
[00:54:53] from the line items table.
[00:54:56] Like even if you needed
[00:54:57] to start a new invoice,
[00:54:58] I would just hit the plus button,
[00:55:00] create a new line here
[00:55:02] and then just say,
[00:55:03] all right, I'm starting invoice
[00:55:05] 10004
[00:55:07] and then you can just go
[00:55:09] to town, maybe you have a couple,
[00:55:10] you know,
[00:55:12] finds in there,
[00:55:14] but really, really super, super simple.
[00:55:20] And yeah, that's about it.
[00:55:23] Another thing that's really
[00:55:24] nice about having the separate
[00:55:26] line items table is
[00:55:26] right now, you've got a grouped
[00:55:28] by invoice,
[00:55:29] but you can also have another grid
[00:55:30] view where you have it grouped
[00:55:32] by the product.
[00:55:33] So that way it's easier to see
[00:55:34] summary information.
[00:55:35] Like what are your different products?
[00:55:37] And do you have some
[00:55:38] products that are being used
[00:55:40] in a whole lot of different line items?
[00:55:43] Absolutely.
[00:55:45] Yeah. So we can see quickly
[00:55:46] item A is definitely
[00:55:47] getting the most usage,
[00:55:48] but I'm making the
[00:55:49] most money off of item C.
[00:55:52] Well, I mean, this doesn't include profit
[00:55:57] but gross gross dollars.
[00:55:59] I don't see he's winning.
[00:56:02] Other things you can do
[00:56:03] really nicely,
[00:56:04] I think I did actually throw together a
[00:56:05] page designer
[00:56:07] block in here.
[00:56:08] Yes. So this is super,
[00:56:09] super simple. It could be a lot prettier
[00:56:11] but you can
[00:56:13] you know, build off having
[00:56:15] this junction table
[00:56:16] linked to your invoices
[00:56:19] and build a nice looking grid view
[00:56:21] or table on that page showing what
[00:56:24] quantity and the price
[00:56:25] was and the sub total for each item.
[00:56:29] Nice.
[00:56:30] Very, very useful. Yeah,
[00:56:32] you need to understand
[00:56:33] junction tables and how those
[00:56:35] work.
[00:56:36] Fundamental aspect,
[00:56:37] understanding link records,
[00:56:39] understanding junction tables.
[00:56:42] Yeah.
[00:56:43] All right,
[00:56:44] cool. Let's uh give a quick
[00:56:46] shout out to our community at
[00:56:47] builtonair.com
[00:56:47] if you are not in there,
[00:56:50] please join builtonair.com/join
[00:56:53] get you access to a slack community
[00:56:55] of thousands of Airtable
[00:56:57] users and fans and experts
[00:56:59] and lots of people helping each other out.
[00:57:02] So
[00:57:03] check us out
[00:57:04] at builtonair.com
[00:57:06] Okay. We've got a few minutes
[00:57:08] and we don't need much
[00:57:09] to go over record templates.
[00:57:11] So record templates
[00:57:14] if
[00:57:16] if you have been following
[00:57:18] the recent announcement, so
[00:57:20] you'll find this in the tool section.
[00:57:22] Although sometimes
[00:57:23] it's weird in some bases like I'll see
[00:57:26] it at the top level.
[00:57:27] I don't know if they finalized
[00:57:29] like where you find things.
[00:57:30] But I think for the most part
[00:57:32] now there's a tools drop down
[00:57:34] and you'll see record templates
[00:57:36] along with some other
[00:57:37] tools that are coming
[00:57:39] were available. And so what
[00:57:41] record templates are,
[00:57:43] is basically think of it as
[00:57:44] like default values for a record
[00:57:47] that you can use when
[00:57:49] creating a new record.
[00:57:50] And so
[00:57:52] at the base level,
[00:57:54] each of the fields
[00:57:55] have or not all the fields,
[00:57:56] but some of the fields have
[00:57:58] default values you can specify
[00:58:01] well URL, you can't but single text
[00:58:04] you can.
[00:58:05] Now you can do drop downs where you
[00:58:07] can specify in the field configuration,
[00:58:09] what the default value is.
[00:58:11] But if you need something
[00:58:13] a little bit more dynamic
[00:58:14] and also supporting these
[00:58:16] other fields that don't
[00:58:17] have that default value,
[00:58:18] that's where you come to these templates.
[00:58:21] So in here, you can create a new template
[00:58:24] and you, you'll first, I'll show
[00:58:28] you'll first pick which table
[00:58:30] you're, you're gonna be
[00:58:31] creating the template for.
[00:58:33] So
[00:58:33] one template per or a template
[00:58:36] is associated with one table.
[00:58:38] And then once you pick your table,
[00:58:41] then it'll basically show you all of the
[00:58:43] values for all or all the
[00:58:46] fields in that table.
[00:58:48] This is the, the main,
[00:58:49] the primary field
[00:58:51] and you're essentially inserting
[00:58:52] default values
[00:58:54] that you want to specify in there.
[00:58:57] The cool thing is,
[00:58:58] is you can actually link to
[00:59:01] you can actually set up linked
[00:59:03] records
[00:59:04] and those links can either go to,
[00:59:07] let me show a blank one.
[00:59:12] Yeah, let me start over.
[00:59:14] So if you have a linked record,
[00:59:16] you can link to a new record
[00:59:19] and it can be
[00:59:26] where did I miss?
[00:59:27] There was an option
[00:59:28] to link to an existing record?
[00:59:30] I have not seen an option
[00:59:32] to link to an existing record.
[00:59:33] I've only seen the
[00:59:34] ability to create new records.
[00:59:37] New linked records.
[00:59:38] Yeah, I just saw it a second ago
[00:59:40] when I was playing, maybe,
[00:59:42] maybe I was hallucinating
[00:59:45] like my A I does.
[00:59:47] So if you've defined another
[00:59:50] record for the other table,
[00:59:52] you can do that but not an existing
[00:59:57] inside here. Gotcha.
[01:00:00] Well, that's already linked.
[01:00:03] I saw an option where
[01:00:05] do you want to link
[01:00:06] to an existing record or create a
[01:00:08] new record?
[01:00:10] So
[01:00:11] that is somewhere,
[01:00:13] maybe that was when it
[01:00:15] was beta and they found it.
[01:00:17] No,
[01:00:18] just earlier today,
[01:00:20] I saw it when I was playing
[01:00:21] with this. But anyways,
[01:00:24] let's see, I think I did this.
[01:00:31] I think if I delete these,
[01:00:34] but you can basically
[01:00:39] it
[01:00:39] is not,
[01:00:40] so you can set up linked records
[01:00:42] that will actually get created
[01:00:44] when this record
[01:00:45] gets used. So
[01:00:46] you set up all your default values,
[01:00:48] you can set up the default
[01:00:49] values for the link record
[01:00:51] and then
[01:00:52] there's a couple ways that you
[01:00:54] can actually use these templates.
[01:00:55] So if you're in here,
[01:00:57] you can, you can just click
[01:00:59] on the dot dot dot And create
[01:01:01] a record from this template.
[01:01:03] And that will automatically,
[01:01:05] if I go to the results table
[01:01:07] that will automatically
[01:01:11] just add a new row
[01:01:13] and you'll see there.
[01:01:14] And it basically inserts
[01:01:16] a new record using all the
[01:01:17] default values that you
[01:01:18] set in your template.
[01:01:19] You can also do the same down here in this
[01:01:22] a
[01:01:22] record. You can just click on,
[01:01:24] add a blank one
[01:01:26] or add a record from a template.
[01:01:27] And this will show any templates
[01:01:30] that are associated with this table.
[01:01:33] And when you click on them,
[01:01:34] it'll add it and this one
[01:01:36] didn't have any default
[01:01:37] value set. So
[01:01:40] it will add it there.
[01:01:41] The other way that is probably
[01:01:43] more powerful is if you're
[01:01:45] inside in automation,
[01:01:47] one of the steps that you
[01:01:49] specify is a create record step
[01:01:53] and it gives you the option now
[01:01:56] to once you specify the table,
[01:01:59] I believe this will only show if you have
[01:02:02] templates associated with that table.
[01:02:04] But it will allow you the option of using
[01:02:07] specific fields to create a temp
[01:02:10] record or from a template.
[01:02:13] And so you can specify from a template
[01:02:15] and then it'll give you the list
[01:02:17] of the templates
[01:02:18] associated with this table.
[01:02:20] And then once you run this step,
[01:02:23] it will then create a record
[01:02:25] for that rec that table
[01:02:27] using all the default values.
[01:02:30] Now, here's the, so that is kind of cool
[01:02:34] the the wish list is
[01:02:36] that you could maybe override
[01:02:38] some of these values dynamically from.
[01:02:40] So you like use these as true defaults,
[01:02:43] I guess you could then add another step.
[01:02:45] Because this will return the record
[01:02:48] for that just got created and then you,
[01:02:51] if you needed to update it with more
[01:02:53] dynamic stuff from a previous step,
[01:02:55] you could, you could do that in an update
[01:02:58] record step.
[01:03:00] The other thing I wish you could do
[01:03:02] is dynamically pick which template based
[01:03:05] off of a, a value.
[01:03:08] You know, you could have a drop down
[01:03:09] that determined which template you wanted
[01:03:11] to use to create a record.
[01:03:13] That was in a previous step.
[01:03:16] I wish it could be dynamic.
[01:03:18] You could re implement that
[01:03:20] by using the,
[01:03:21] the advanced logic and setting up
[01:03:23] conditional logic.
[01:03:25] But then you'd have to have like
[01:03:27] a step for every template that you have.
[01:03:29] If you have 10 different templates,
[01:03:31] you'd have to set up 10 different
[01:03:34] conditional logic steps.
[01:03:36] So there are workarounds,
[01:03:37] but those would be nicer
[01:03:39] if you could do that
[01:03:40] if you had an input variable
[01:03:42] type of thing that says
[01:03:43] this is the name of the
[01:03:43] template.
[01:03:45] Yep. Yep, that would be nice.
[01:03:47] You could dynamically do that.
[01:03:49] So
[01:03:50] that is a, a little bit of how
[01:03:52] you use record templates.
[01:03:54] Be curious to know
[01:03:55] how people are using it in production.
[01:03:58] I'm probably not
[01:04:00] using
[01:04:00] of how you can use record templates.
[01:04:02] OK. What's the advanced step?
[01:04:04] The other half is using record templates
[01:04:07] to update existing records.
[01:04:10] Let's do that.
[01:04:11] And
[01:04:13] the issue with that is
[01:04:16] it's more confusing because
[01:04:18] you have a record template
[01:04:20] but you have an existing
[01:04:21] record that has certain cell values.
[01:04:23] And how do you merge the two of them?
[01:04:28] The logic that Airtable has said
[01:04:31] is if that field is
[01:04:33] blank in your record but
[01:04:34] not blank in the
[01:04:38] template, then it will
[01:04:39] put that template value in.
[01:04:43] If there is a value
[01:04:46] in your record and it's a singular value
[01:04:48] like a single select or a text field or
[01:04:51] a number,
[01:04:51] then you keep whatever
[01:04:53] value you had already.
[01:04:56] Or
[01:04:57] if you have a field that can take
[01:04:59] multiple values
[01:05:00] like a multiple select or a
[01:05:02] multiple collaborators
[01:05:04] or a linked record field,
[01:05:06] then what happens is
[01:05:09] the two values get merged,
[01:05:11] the existing value
[01:05:12] that you had in the record
[01:05:14] and the template value.
[01:05:16] So
[01:05:17] any of three different things
[01:05:19] could happen
[01:05:19] when you update a record using an
[01:05:21] existing template and
[01:05:23] it gets a little bit confusing.
[01:05:25] Yeah, because yeah,
[01:05:26] it doesn't give you any options on
[01:05:28] how that's gonna work.
[01:05:32] That's good to know.
[01:05:33] Yeah, I haven't, I haven't
[01:05:34] used that
[01:05:35] part of it.
[01:05:38] So you can do this
[01:05:39] when you are in an automation and
[01:05:42] you can also do that.
[01:05:43] I believe you can right click
[01:05:45] on an existing record.
[01:05:46] In the grid view and you can say
[01:05:48] update using
[01:05:50] yeah apply template
[01:05:51] template.
[01:05:52] That's right. Yeah, I have,
[01:05:54] I have done that one. So
[01:05:56] it will backfill.
[01:05:58] Yeah.
[01:05:58] Yeah. So for example there in
[01:06:00] your channels, you have a multi
[01:06:01] select. What would happen is it
[01:06:03] would add any new channels
[01:06:05] that were in the
[01:06:05] template but not here
[01:06:07] and it would not take away any.
[01:06:10] On the other hand,
[01:06:11] on any of the of the other
[01:06:13] values they would be
[01:06:14] filled in.
[01:06:16] Yeah
[01:06:16] or not.
[01:06:18] So
[01:06:19] like I said, three different possible
[01:06:21] things that could happen.
[01:06:22] And and so this behavior
[01:06:23] would be the same,
[01:06:25] this is the same behavior as the
[01:06:26] automation update?
[01:06:28] The app
[01:06:29] template. It'd be the same as
[01:06:31] when you use an automation
[01:06:32] that says apply template. Yeah.
[01:06:34] OK.
[01:06:34] Yeah.
[01:06:36] Very cool. Yeah, that is good.
[01:06:38] Good addition. Awesome.
[01:06:41] Thank you.
[01:06:42] Thank you Alli for being on the show.
[01:06:44] Another great episode.
[01:06:45] We will do one more and then,
[01:06:47] and then I believe
[01:06:49] we'll do a live one in person
[01:06:50] in San Francisco. So excited for that
[01:06:53] as always good to be with everybody
[01:06:55] and we will see you
[01:06:56] next week on the BuiltOnAir
[01:06:57] podcast. Take care.
[01:06:59] Thank you.
[01:07:01] Thank you.