2/11/2025 – BuiltOnAir Live Podcast Full Show – S21-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

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:01:40 –

Scripting Time – 00:01:41 –

Explore Scripting with “Scripting without Code!”.

Ben Green will show us how to make an API call in Airtable automations without knowing how to code..

Audience Questions – 00:01:42 –

Alli Alosa answers the Airtable question: “Designing a product table with Valid From/To prices in a linked Table.”

View the question in the community

Answer: Alli will walk us through how to implement updateable pricing.

Feature Alert – 00:01:43 –

We dive into Mailhook Automations feature –
Dan will do a live unboxing of the recent mailhooks feature.

Full Segment Details

Segment: Round The Bases

Start Time: 00:01:40

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

Segment: Scripting Time

Start Time: 00:01:41

Scripting Time: Scripting without Code!

Explore Scripting with “Scripting without Code!”.

Ben Green will show us how to make an API call in Airtable automations without knowing how to code..

Segment: Audience Questions

Start Time: 00:01:42

Airtable Question – Designing a product table with Valid From/To prices in a linked Table.

Alli Alosa answers the Airtable question: “Designing a product table with Valid From/To prices in a linked Table.”

View the question in the community

Answer: Alli will walk us through how to implement updateable pricing.

Segment: Feature Alert

Start Time: 00:01:43

Airtable Feature – Mailhook Automations

We dive into Mailhook Automations feature –
Dan will do a live unboxing of the recent mailhooks feature.

Full Transcription

The full transcription for the show can be found here:

[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 11am Eastern and join our active community at BuiltOnAir. com. Before we begin, a word from our sponsor, On2Air. com. backups. Onto where backups provides automated air table backups to your cloud storage for secure and reliable data protection, prevent data loss and set up a secure air table backup system with onto air backups at onto air dot com.

[00:00:50] As one customer, Sarah said, having automated air table 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, On2Wear 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 On2Wear backups. Sign up today with promo code built on air for a 10 percent discount. Check them out at onto air. com. And now let's check out today's episode and see what we built on air.

[00:01:36] Dan Fellars: Welcome back to the built on air podcast. We are in episode six of season 21. Good to be with you again. Got myself and Allie with us. Emil is out sick this morning, but we should be joined shortly by Ben Green from Optimize IS. There he is. Let's put him in. Welcome, Ben. Hello. [00:02:00] Hi, Ali. Hi, Dan. Excited to be back.

[00:02:05] Good to have you with us, Ben. We'll we'll get more into what Ben is up to in, in a later segment. So I'll walk us through the show, what we're going to be talking about. 

[00:02:14] Well, we start with our round the bases, keep you up to date on everything new and exciting in this world. Then a shout out to our sponsor onto where and onto our backups, then Ben is gonna scripting time, but without the scripting.

[00:02:29] So scripting without code, Ben's going to show us some tricks that he's got in that realm. And then Ali is going to answer an audience question on kind of around updating prices based off of a price sheet. Deal dynamically. Then a shout out to join our community. Then finally, I'm going to end this.

[00:02:49] Actually, I think the first time I've used this new segment, we're calling it feature alert. Talk about like a specific feature, typically a new feature. So we're going to do a demo of the male hook [00:03:00] automations that have recently launched. So with that, we're gonna talk about around the bases. First of all, if you are an Eagles fan, we just had the Super Bowl, so we'll start there.

[00:03:14] If you misspell eagles, it looks like Google gives you a nice little surprise for the Superbowl winning Philadelphia Eagles. Relatively boring game that was, but last year we did a segment all about. How to track for the Super Bowl and the playoffs and everything think Max came on, so we didn't do that this year.

[00:03:38] That's why the game was boring. Didn't have that. So anyways, shout out to any Philadelphia fans on a similar note. Ran Fishkin, who is a very well known name in the software sass world marketing talked about A. I. So I'm assuming He didn't say this was for the Super [00:04:00] Bowl. I'm assuming it was. I don't remember.

[00:04:01] And OpenAI, I didn't watch all the commercials. But anyways, talks about how they spent 14 million on the TV ad. And they didn't use AI to create it. They did it all by hand. So if you're worried that open AI and AI is taking over, still got a little ways to go when the company behind it is still using humans to make their video, make their advertisements.

[00:04:25] So that's probably good news for us. Any Superbowl comments before we move on?

[00:04:37] Justin said it was a pretty cool ad. I'll have to watch it after. 

[00:04:41] Alli Alosa: Yeah, I'll have to watch it. Some of them were really strange, but I laughed really hard. There was one with you know, Seal. 

[00:04:50] Dan Fellars: Oh, yeah. Mountain Dew, I think. 

[00:04:53] Alli Alosa: Something about him, like, as a seal. It, like, it was really silly. 

[00:04:57] Dan Fellars: Yeah. 

[00:04:57] Alli Alosa: Very weird. 

[00:04:59] Dan Fellars: Yeah, my [00:05:00] kids, well, you guys are young.

[00:05:02] My kids were like, who is that? You don't know who Seal is?

[00:05:08] Love 

[00:05:09] Alli Alosa: it. 

[00:05:09] Dan Fellars: Yeah. Okay. Moving on a couple of highlights from Airtable. If you're looking to work for Airtable, there's a couple openings. It looks like on the services team. You'd love to work directly with Airtable. They've got there. They're also looking for some fresh new grads on the software development side for the product.

[00:05:30] So Yeah, You know, if anybody recently graduated in computer science or similar, looks like they're growing. So that's good. Be a good place to work at air table. And finally, one more. If you'd like to keep up on the CEO, how he Lou and what he's up to. Looks like he recently spoke at a branding. Convention and some takeaways and basically around how AI is working within the workflows and how you can use it within air [00:06:00] table and how that works out.

[00:06:02] So if you want to hear what he's saying about the future of AI and how it impacts air table, you can check out that presentation there. Okay. Next, a couple announced new things. We've talked about these for a while. This first one preserved object IDs when cloning bases. Anybody want to explain what that is?

[00:06:26] Alli Alosa: I'm so happy about this one. The only thing I'm bummed about it is that it was not released a couple weeks ago when I really could have used it for a client. Absolutely. Oh my gosh. So previously, if you either cloned a base or Restored a base from a snapshot. It would create a new version of the base with.

[00:06:52] all brand new table IDs, field IDs, record IDs, view IDs, et cetera. Because it was a brand new [00:07:00] instance of that base, which ordinarily isn't a huge deal, but where it becomes a problem is if you're restoring a snapshot in order to like find data that was lost via like data entry errors or somebody deleted stuff, or in my case, I had, I had a client that went to a view and.

[00:07:22] pasted a bunch of new records. But she had had the view sorted. So when she added a new record at the bottom, it tried to resort itself by bringing it up to the top. And when she hit paste, it overwrote all the records in the view instead of adding 200 more. Oh, because the, the primary field was a formula field based on all the values that were in the table.

[00:07:46] The primary field changed for all of the records. And so when we. Restored the snapshot. The only way to tell what record was what previously was to look at the revision history in the current base [00:08:00] and be like, well, the name used to be this, so we have to go now find it over here that name. And it was just a nightmare.

[00:08:08] So if this had been live back then, all I would have had to do was grab the record IDs and be like, this record ID is this record ID. These are the same records. Here's what it used to be. Long story, but I'm very excited about this. 

[00:08:24] Ben Green: That sounds like a nightmare. 

[00:08:26] Alli Alosa: Oh, 

[00:08:26] Ben Green: yeah, 

[00:08:28] Alli Alosa: it was such a mess. I was like, Oh no, I'm so sorry.

[00:08:33] Dan Fellars: Yeah, the interesting one is, is record IDs. So if you were assuming that a record ID is globally unique, it no longer is. I think this is the first time because if you sync data. From one base to another. The record IDs are not the same. And so this is, so it's kind of interesting. If you clone a base, you'll get the same record IDs, but if you sync data from a [00:09:00] table, you'll get different record IDs.

[00:09:02] Mm-hmm . I think 

[00:09:03] Ben Green: part that's partially because if you clone it and there's the same record ID exists. Those two bases, but then you took like those two tables and did a multi source sink in a third base. You wouldn't want the duplicate record IDs there. So I think that's probably why the destination of a sink has different record IDs than the source.

[00:09:24] Dan Fellars: Yeah. But now if you synced from two bases that were cloned, you would get the same source record ID, right? 

[00:09:35] Alli Alosa: The same source. Yes. But it would still have a new record ID 

[00:09:38] Dan Fellars: destination. 

[00:09:39] Alli Alosa: Yeah. 

[00:09:40] Dan Fellars: Yeah, that's interesting. Yeah, we'll see what kind of fun that creates, but yeah, so always use the, the base ID will always be unique.

[00:09:49] So if you're looking for unique IDs, concatenate the base ID with whatever, and that should be unique. 

[00:09:57] Ben Green: There could [00:10:00] be speaking of like unique identifiers and deduplicating bases, there could be a theory that the US government uses. Airtable to keep track of everybody's social security numbers because Airtable doesn't force you to de dupe the database.

[00:10:15] I saw there was some tweet referencing something that Elon had said in there, whatever he's doing with the government the database of U. S. social security numbers allegedly has duplicates in it or like they allow duplicates to happen, which Airtable. Allows duplicates in the primary field to happen.

[00:10:38] So, and he said specifically that the government was not using SQL because somebody had commented back. So maybe they're using air table. Wow. 

[00:10:49] Dan Fellars: Wow. Just have a bunch of tables. That means, yeah, that means they have a much higher record limit than I do. Yeah. 

[00:10:57] Ben Green: Maybe they're, you know, hyper DB they just [00:11:00] migrated.

[00:11:00] Yeah. But even only a hundred million right now, three instances or four instances of hyper DB. 

[00:11:09] Dan Fellars: There you go. There's a good conspiracy theory for you. Airtable runs the government. 

[00:11:19] Ben Green: Oh my goodness. 

[00:11:20] Dan Fellars: Okay, one more. Gallery improvements in interfaces. I believe we've already mentioned this one. 

[00:11:28] Alli Alosa: I don't know.

[00:11:28] Is 

[00:11:29] Dan Fellars: this brand new? Or has this been around? 

[00:11:31] Alli Alosa: I noticed it yesterday for the first time. It's the, you can now select between one and three columns per row. That was old in the, that was one of something that was in the original gallery element from from the inception of interfaces. But I think they're just bringing it back.

[00:11:48] But what I find really nice is the aspect ratio option. You can. Choose whether it's, it's like tall, square, or I can't remember what the third option is, [00:12:00] but it basically just makes the image either be, you know, nice and tall or square 

[00:12:07] Ben Green: or like fit. 

[00:12:08] Alli Alosa: Yeah, or maybe the other one. Yeah. 

[00:12:10] Ben Green: Right. 

[00:12:11] Alli Alosa: Yeah, I like it.

[00:12:12] I played around with it yesterday. There's some cool options. What I did find, though, is the tall one while it looks nice. It's huge. It like takes up the entire screen. So. 

[00:12:25] Dan Fellars: All right. So gallery improvements in interfaces. So those are the two new ones that have been published. Yeah. Next one. This is from the built on air community.

[00:12:36] Kind of similar discussion about open AI, kind of an open ended question. So open AI operator, which I believe is basically inside the browser allows you to manipulate Browser actions through A. I. And I know I haven't played with open A. I. I have played with Google's version of this, and it's pretty interesting.

[00:12:59] So the question is, [00:13:00] is that basically going to take over? No code, low code consultants job of building things. Can you just do it all through open A. I. Commands inside the browser?

[00:13:14] Ben Green: I saw something yesterday, maybe it was this morning about a similar topic to this, not specifically with operator, but with AI in general, and how that impacts like people in low code or no code or code. And what it was saying was, AI is like, first going to replace the most in the coding side of things, because it can code, but what it won't replace is like the.

[00:13:41] Requirements gathering and defining, like, like speaking with people and figure out, like, what actually needs built, because that is the harder part is what this person was saying is actually, like, working with people and getting people to adopt a tool. So, [00:14:00] potentially, some of the configurations, like, we've already seen it with a co builder that currently does the 1st, maybe 25%.

[00:14:08] Of an interface if you're starting from scratch, but it doesn't yet speak with users to gather requirements. 

[00:14:17] Alli Alosa: Yeah, 

[00:14:19] Dan Fellars: yeah, definitely. Definitely will be an interesting, interesting future. 

[00:14:26] Alli Alosa: I had a really hilarious conversation with chat over the weekend. Where it hallucinated wildly, and then when I called it out, it like marveled at what a cool fake idea it had.

[00:14:40] It was like, wouldn't that be awesome though? And I was like, that is weird, like.

[00:14:49] Yeah, 

[00:14:50] Dan Fellars: Next one looks like we kind of, I think we did mention previously that they did an update to the iPad app [00:15:00] and so Scott Rose is pointing out that they fixed longstanding bug that made air table unusable from an iPad web browser, many of air table screen elements. We're completely untappable and therefore unusable, but it looks like it's all working again.

[00:15:17] So that is good news. Excellent. So it looks like that wasn't for the app itself, but if in the browser, if you were browsing from a tablet. 

[00:15:31] Alli Alosa: Very good. 

[00:15:32] Dan Fellars: All right. Last one. Kind of keep in on the A. I. Theme. We've got we've got air table back end with A. I. Web builders like both lovable. This is something I've kind of been curious about.

[00:15:43] I've been kind of following some of these apps and it will be interesting to see how it plays out. So like kind of the legacy one softer glide all of them are incorporating a I, but there's some new ones that are like built from the ground up as a I front end [00:16:00] builders. Bolt and lovable are the ones that they mentioned.

[00:16:03] And so he's wondering if any are are built on top of air table. As kind of the data source. So one that I've been kind of following closely, I think Camille has as well as we web there. They're launching an A. I front end builder. I think this week actually it's on their on their newsletter. What are you guys seeing in this space?

[00:16:26] Alli Alosa: I haven't really seen a lot of people with using full on A. I web builders more along the lines of like softer. You know, they've got all sorts of different places. You can use a I like to help type your like landing page text or even create images right within software, which is really cool. But, yeah, I haven't actually done any playing with, like, full front to back web app builders.

[00:16:56] Dan Fellars: You think you're seeing Ben? No, [00:17:00] just yeah, yeah, it'll be interesting. The, the, like, the demo I saw, it was pretty crazy. You just describe it and then you can modify it as well. It's not just one time like co builder, like you can actually say, okay, I like that, but change this and it'll actually like recreate the screen.

[00:17:20] And then from there you can manually make changes if you want to. So it's a good, like starting place to build something. So yeah, it'd be interesting to see how the front end world evolves with AI. And I'm sure Airtable it's on their roadmap to. Continue to evolve their, their co builder to, to be, you know, just making, you know, tweaks or modifications just through AI instead of manual.

[00:17:50] Absolutely. Actually, Repl. it is pretty, I don't know if you guys have ever played with Repl. it. I played with it long ago. It's, it started as kind of like a [00:18:00] hobby builder, but then they really adopted early the AI wave. And it's, it's pretty amazing. You can build. Full blown apps with it now both web and mobile.

[00:18:11] It's pretty, it's pretty, pretty interesting one to watch. 

[00:18:16] Alli Alosa: Very cool. 

[00:18:18] Dan Fellars: Okay. That kind of concludes around the bases. You're now up to date on everything going on in the Airtable world. Next, we have our sponsor onto where if you run your business on air table, it's best practice to make sure your data stored outside of air table.

[00:18:33] That's where onto where backups comes in. It will back up your data onto box, Dropbox, Google Drive or one drive, and you can rest easy knowing that your data, your attachments, your meta information about your schema is stored. Externally. We also offer the ability to backup or to restore your data back into air table from your backup.

[00:18:56] So check it out onto air. com. You can use promo code built on [00:19:00] there for a discount and get started backing up your data today. Okay. Ben show us the ways scripting without code. I want to share your screen. 

[00:19:14] Ben Green: Yeah. Happy to. So some of this may be fairly basic for Dan and Allie. But as somebody who does not have a passion for writing code or understanding code that has already been written, this is like the, I'd say, the method that I have become accustomed to in Airtable if I can't use a tool like Zapier or Make.

[00:19:40] So I'm gonna, let's see. Before I jump into that, are you guys part of like, AI labs? Is that a thing that is able to be spoken about? Do you know? 

[00:19:52] Alli Alosa: I think it is. I see it on screens where you can, like, apply to join or [00:20:00] enable it. Right? 

[00:20:01] Ben Green: Dan, what do you think? We'll, we'll ask for forgiveness if needed.

[00:20:06] Well, AI labs, I think it's something that everybody can sign up for if you're a part of AI, but I was just thinking about this about generating interfaces using AI and air table from on top of an app you've already built. And if you click on, like, the AI thing, if you in the admin panel, you have to, like, probably accept some NDA that I'm not going to.

[00:20:30] I don't remember what it says about AI labs, but 1 of the things I think recently, like, within the last few months that they added was, you can create, you can add things to your existing base. So you can add interfaces to your existing base. You can create dashboards, great tables as well as create an automation.

[00:20:48] So I'm not actually going to demo this, but if you're interested in AI, I think, Okay. AI interfaces, like we were just talking about with like those other tools, this is potentially something that [00:21:00] could let you build new things on top of a base, but not necessarily, like, enhance an existing interface.

[00:21:07] Dan Fellars: Yeah, I think, I think I know somebody shared that screenshot in the community. So I think, I think we're okay. 

[00:21:16] Ben Green: I don't know if this is like, I think my favorite thing just as a part of AI labs that I like was pleasantly surprised with.

[00:21:26] That I saw come up one time as it suggests the field type. I don't know if this was already this. This may be very old news, but I saw this 1 day and I was like, that's so nice. I don't have to like, go search for the field. I just say due date. And then it says, hey, you should create a day field anyways.

[00:21:42] Okay, so scripting without code. I, I've, I took some coding classes in college. So, like, I have a little bit of fundamental knowledge, but. I think this is applicable for anybody who has never coded before. And you just want to like do something like, [00:22:00] you know, maybe creating an API call is something you want to do.

[00:22:04] And an API calls, basically you're using this other tool that has an API and you want the data in that tool to talk with the data in your air table. So this is like a demo environment that I'm going to use just with a bunch of fake data. The example that I'm going to show is I want to connect this with Asana.

[00:22:22] That used to be like a pretty common thing that people would ask me to do is create some integration, usually on Zapier or Make, where something would happen in Airtable, and I want to go create a task for my, myself or somebody on my team in Asana. That could be a use case, or maybe you want to, like, migrate your data from Asana because you're getting rid of it and you'd rather use Airtable.

[00:22:45] Could be another good use case for making an API call to Asana. I've been doing this in Airtable automations and like, I don't want to use something like Zapier or make, so I have a test one that I was playing with earlier, but I'm just going to start from scratch [00:23:00] on this. So

[00:23:04] I'd say, like, the 101 that you should know about API calls in general that I think is like. Not so much related to scripting, but it's just in general, you should understand what cred means, which is create, read, update and delete. Those are generally the 4 functions that you would ever perform from my perspective.

[00:23:25] Correct me if I'm wrong, but those are the main 4 functions that you would ever perform when you are making an API call where you're wanting like to make this air table data talk to the data in A different tool like a sauna and an example would be, I want to create a task or I want to go get a task from a sauna.

[00:23:45] So you want to read that task, which is the are you may want to go update the status of a task or you maybe want to delete a task. Those are like, that's crud. The 4 things that something happens in air table, then you want to go do this thing and sauna. Is [00:24:00] that accurate, Dan and Nellie? Yeah. So the easy part that I'm going to show is the trigger.

[00:24:09] So I'm going to say something happens and I want to push a task to Asana. I want to go create a task in Asana. I think I created a checkbox that is just trigger. So this is going to be so trigger and then go create a task in Asana. And there's no like native Asana integration. There's all these other ones in here. And there's. Everything from Salesforce to JIRA to Facebook, but there's no Asana. So you're kind of stuck with this option that is run a script. Now this is like where most people, including myself before, like maybe like six months or a year ago, I would just like stop here and like, go try to figure out some other way of doing it because I never wanted to mess with any, any of this.

[00:24:52] And I think to this day, I still haven't really, like, I don't think I've written a full line of code in this scripting. Block [00:25:00] because I don't particularly want to, but it's possible to do all of this without writing a line of code. So what I use is just chat GPT, chat GPT. I found I can do pretty much everything.

[00:25:17] As long as you can talk through the concepts like we just talked about crud, as long as you understand those kind of four different actions you might take with the API, you can do most things. So what I would do in here is I would say I am using air table automations, and I want to create a task. Via the Asana API 

[00:25:45] Dan Fellars: and 

[00:25:46] Ben Green: Asana.

[00:25:47] Can you give me the automation script to do this?

[00:25:59] So it's going to give [00:26:00] you, it knows Airtable Automations is going to use JavaScript. So it's going to say, go get your API key. So if I go here do do do do. One. Just note is the other thing that's kind of core to understand about automation scripts and air table is you may want to make things dynamic.

[00:26:23] So the other core concept you should understand before doing this is static data and dynamic data. Static data is something that's going to be like the same every single time. So maybe you're fine with, like, every time you create a task, it's going to have the same status every time. That's like to do.

[00:26:40] Or incomplete or something like that. That is what I would consider as static data. It's going to be something you don't want it to change for every record that you pass to us on a dynamic data is something like the due date or the assignee or the task name where every time you pass that task into Asana.

[00:26:59] That [00:27:00] piece of data for that task may be different. The project that that task is linked to may also be different. And that is dynamic data. Dynamic data, I would typically suggest passing through, or anything you want to easily be able to change, I would suggest passing it through input. config. So back in here, I notice it, like, it sets a few of these as Constance, I think is what those are called but I'm just going to ask it to convert all of that to input config.

[00:27:46] I don't know if it did it for the API key, but I'm also going to have it do it for the API key.

[00:27:50] And I think that is also 1 downside currently, and I won't spoil any. Airtable product updates, potentially coming to the [00:28:00] API key or having a secret. I'll leave that the way I set it. So all of these, it's now replacing these that's input config. So once this is done creating the script, I'm just going to copy it and put it into Airtable.

[00:28:25] Dan Fellars: It's pretty cool how well it knows the environment, you know, cause that's very specific to Airtable. 

[00:28:32] Alli Alosa: And to Asana, like, it's got to know the, you know, the structure that Asana wants as well. And that's. To me writing API calls like that's like the hardest part is like learning the documentation of the app you're trying to, you know, access their API.

[00:28:48] So this is awesome. 

[00:28:50] Ben Green: So once you copy it in here, when you're first setting it up for these input variables, you have to go to each one of these like input config pieces. And I think it would say this in [00:29:00] the description and chat GBT, but just to save time. I'm going to copy each one of these and put it in over here on the left.

[00:29:12] This is also, you'll see this commonly, this is called camel case, I believe, is when, just like the notation of it, you'll see this all the time from software developers like Dan. I'm going to call Dan out. Dan probably uses camel case on the back, on the back end of ontario backups. Am I accurate, Dan?

[00:29:32] Usually. Yes. Camel case is like a widely accepted thing where the first letter is lowercase and then every word there after the first letter is uppercase. I'm going to pretend like I know all this stuff. So the 1 step we skipped. So, yeah, you can see here. It does say create those input variables.

[00:29:50] We never got the API key. So you would have to click to go to that link and find where you can create a personal access token. You have to create a [00:30:00] token

[00:30:10] and then you copy this token right here. Thankfully, both of these workspaces are not live, so you won't get anything. So the project ID, this is something you're going to want to pass through. I'm going to pass most of this as static. If you want, you ideally would have some of this data structure mapped into your air table to where you'd be able to pull the project ID.

[00:30:34] I don't. So I'm just, I'm just going to pretend that I always want to create a task in the same project every time. And that's going to be this vendor onboarding project. A lot of times air table included the. Like unique identifiers are stored in the, in the URL. And if you want to know, like, what's the project ID, you can often like, just click around and be able to tell.

[00:30:55] So in Asana, if I click around, I noticed that the second [00:31:00] ID in the URL changes. So if I change from list to overview, that changes. So that tells me that that's which visualization I'm looking at most likely like this. I know, in fact, in Asana that this first number is the project ID. So, I'm going to make that static every time I'm going to make that the project ID.

[00:31:23] Here, for fun, to show dynamic data, I will pull the name of the of the task. So, using the little blue plus, you can pull anything from your triggering record, or any step prior to it. You can also pull in any notes.

[00:31:43] And then, assignee email, that I'm going to type in my email, or you can pull in an email from the Asana. Base. I think there was when I was testing this earlier, I had a date in here and it did one of the dates formatted very specifically, like why, why, why, [00:32:00] why dash mm dash dd. And so if you have something like that, where you may have to play back and forth with chat, gbt is like formatting, making sure the data is cleansed and like, is in the right format when you send it.

[00:32:14] So, to start off, this should have an error. Cause I know it's missing certain things that they didn't think of, but I'm going to test this and show how debugging also works without having to learn how to code. So I know it should be missing something that is called the organization ID, but maybe it, maybe it did fine.

[00:32:42] It looks like it was fine. So I created something that should have edit product descriptions for online and it's right there. It has actually didn't even have a single error the first time. That's incredible. 

[00:32:55] Alli Alosa: Scares me a little bit when that happens. I'm like, Oh, what did I do wrong? [00:33:00] 

[00:33:00] Ben Green: Yeah. I planned for an error to happen to show one error that I had earlier was like I had given my secret and it put it wrong in the script.

[00:33:10] So just to show an error, I can like mess with my API key. So it should have an error. And then sometimes what I would do is just feed this air then back into chat. So whenever I had an error, like, if the data wasn't formatted, right, I would just like, feed it back in. So then it like, kind of gives you a response. Or maybe it's going to like, output the air in a more readable format that I'll then pass back into chat.

[00:33:40] The nice thing that I've noticed about ChaiGBT because I've seen some like scripts that whether it's people on my team or scripts I've seen from other people that they've made is the output from ChaiGBT is always like the output of this scripting action is typically very nice. [00:34:00] Now I wish copy this,

[00:34:07] so I'm going to test that again to show what the output looks like. And we'll copy this typically when I'm like. I created this task in Asana. I now want to go update Airtable. This is when I would shift back and just use the native things in Airtable because of things like changing field names. I don't want to have to worry about that in my script. That's like one of the main things from my point of view on why I'd want to do that.

[00:34:30] And the console. log, all of this like should come out, I think, as a good output. So if I go like add a new step and go update the record in the tasks table. Using the record ID from the trigger let's see, I just want to show hopefully, okay, all that output was the Asana task ID. So what I would tell ChaiGBT is please output all [00:35:00] details.

[00:35:12] So, because it only gave me like the idea of the task, I wanted to include any other details. Like, maybe there's certain defaults set on that project that I want to bring in, or maybe something happens in Asana that doesn't. Happened in air table. I would just ask it to update the script. It's going to go rewrite it

[00:35:32] and this is how I script without scripting. I 

[00:35:39] Alli Alosa: just saw something in that script that I have never seen before at the very top where it's defining the constants where it's got. Dan, you would know better than I. I'm entirely self taught, so I don't know what I don't know. The word has constant task notes equals input, input config dot task notes or [00:36:00] no description provided.

[00:36:01] Is that something you can do with all variables? Like if it's not. 

[00:36:05] Dan Fellars: If it's null or an empty string, then it'll go to the default. So that's. That's very common to set a default value. 

[00:36:13] Alli Alosa: I had no idea you could do that. That is awesome. I usually use like a ternary, you know, 

[00:36:21] Dan Fellars: but 

[00:36:22] Alli Alosa: that looks like it's so much cleaner.

[00:36:23] I like that.

[00:36:24] Ben Green: So this still didn't even do it the way that I like. I think I can probably find a different one that did output it. The right way, but I think there's a way with output that's how you can basically have it return everything kind of in a, I want to say it's like kind of in Jason format, but then it's like, you don't have to look at in Jason.

[00:36:48] It still outputs. Everything is like every single piece of data that it found in the API, like, dynamically returns at all. So. This one, it [00:37:00] looks like it's still setting things individually, which is why it looks like this, but yeah, you've seen chat, you do it better than this as well. 

[00:37:08] Alli Alosa: I think you can only output strings and arrays.

[00:37:14] And actually, it's a little annoying because if it doesn't, if you try and output something, that's no. It will give you an error and then if you're trying to like if like you don't always have the same variable names and you're trying to output them all regardless you have to like do some major configuration to get it to all work because if you're missing one it'll error later on in the automation which is quite frustrating.

[00:37:39] Dan Fellars: Yeah.

[00:37:43] Very cool. 

[00:37:45] Alli Alosa: Yeah, I love this. This is great. 

[00:37:46] Ben Green: I think that's That's the main thing. I can just say for as somebody who doesn't really want to write any code, this has been a game changer for me, because a lot of times clients, [00:38:00] they either don't want to use a different tool for some security reason, or they just like actually are prevented from using these other tools.

[00:38:06] And so. Being able to do something like we did this in probably 10 minutes, just like make an API call to another tool. So long as you can understand, I would say CRUD and dynamic versus static data. You're going to be able to tell chat GPT to write you pretty much anything and just keep feeding the errors back into it.

[00:38:27] And I've found it's like, I've been able to do most API calls. I can't think of any. Sometimes the only ones that get tricky that I've seen are like working with attachments. But outside of that, I highly encourage chat, GBT scripting. 

[00:38:45] Dan Fellars: Yeah. Yeah, it's a must. Awesome. Thank you, Ben. Tell us give us a quick update.

[00:38:50] Tell us where people can find you if they want to work with you. 

[00:38:54] Ben Green: The quick update is, let's see, I need to get the [00:39:00] date. Right. So I think Jen might've been on here recently and she's hosting this AI user group. With her table, was she on this podcast talking about that or where she was somewhere? 

[00:39:12] Dan Fellars: We've talked about it.

[00:39:14] She hasn't been on it. So 

[00:39:16] Ben Green: so Jen hosts a group for AI. And then I'm hosting a group for marketing. So I know Jen has a event coming up. So I would encourage you to go check out Jen's. But on a week from today. In 20 minutes, so must be right after the built on air podcast, I'm hosting a session.

[00:39:35] That's air table basics, advanced interfaces for marketers. So basically, we're taking a base from somebody who was using air table, like, 4 years ago, like, mostly to its potential kind of before interfaces were rolled out. And before most automations were. Like really heavily used and showing what it looks like to take that base.

[00:39:57] And now, like, what changes would you make to use air table to, [00:40:00] it's like fullest potential today. So I'll be going through that next week. This is in the air table community platform and the marketing user group. That's like the, one of the places that if you want to get in touch with me again, and then optimize is.

[00:40:16] com. Is our website. But we, we do YouTube videos as well. So I don't know how, how many things I should plug, but I'd say that the YouTube channel or the, the website is the easiest place. I was gonna ask, 

[00:40:29] Dan Fellars: are you, you still doing lots of videos? I know it's been yeah. It's a very prominent on YouTube Optimize is and marketing channel in the community.

[00:40:41] Awesome, Ben. Glad to have you back on. Feel free to reach out to Ben. Any questions on this front? Let's move on. Allie, gonna answer a question from the community. 

[00:40:55] Alli Alosa: All right. 

[00:40:57] Dan Fellars: There we go. 

[00:40:59] Alli Alosa: Awesome. [00:41:00] Okay, so this is a great question. Comes up a lot, and it's not really something that my experience that you think about until it's caused a problem.

[00:41:13] And then you're like, Oh, wait, I should do something about that. So this person is asking how they can design a product table with valid from and valid to prices in a linked table and This is quite a long post, but to summarize essentially what's happening, and this is a very common issue, as I said, is if you've got a table of products and you've got pricing for those products say you're then linking those products to some line items for invoices or whatever it may be, and you're calculating based on that unit price what your subtotal is going to be and these are old, so these This is one of the very first bases.

[00:41:58] I think I ever [00:42:00] made on the, like, as an example for the forum 2019 here these are old invoices. So, theoretically, I would not want to touch this invoice total. Like, this is, this should be frozen in time. It was 140. I don't want that to change when I look back at my historical data. I want this to be always 140 because that's actually what the invoice total was at that time.

[00:42:25] But if I go change and actually I just realized I need to make a quick change that I, I had already put built this kind of thing into here. Let me just do some values. Excuse me.

[00:42:46] All right. And, of course, that already changed it. But starting over, if this was 144, and then I went and changed a couple of my prices to 25, [00:43:00] 15. Prices don't usually go down, but they can. Now all of my historical data is completely messed up. I don't know what the price used to be unless I go back and look at revision history.

[00:43:14] And I don't want that to happen. I want to not affect any historical data when I change the pricing of my products. So one approach to doing that is to actually create a table that is linked to your products and we could call this product pricing. I'm just going to delete. Nope, there we go. Why?

[00:43:46] Delete all three of these fields. I'm going to link to my products and I only want one product at a time. I'm going to include a currency field. [00:44:00] We'll just call it price. And then what they had asked for specifically was like valid from and valid to as dates.

[00:44:17] So we could put in, you know, for item A, item B, item C. Let's see what those Prices were beforehand. They were 17, 20 and.

[00:44:45] So, 17, 20, 30, and let's say these were valid from 2019 up until today for all of those. [00:45:00] And then I'm going to just create. New ones and literally just grab what the prices are now and put them in here.

[00:45:18] So I'm going to then just for my primary field, I 99 percent of the time I'm always using a formula and I'll just have if valid from

[00:45:38] and throw a quick thing in there.

[00:45:48] So we don't have a whole lot of time. So, what I would do probably is set up a formula that says, all right, are we within these [00:46:00] date ranges? And let's actually set this to yesterday. So, you could have a formula field that essentially would say, if this date has passed, then this is inactive. And if this date is on or before today, then we're active.

[00:46:19] To save time, what I'm just going to do is use a single select to turn on and off the ones that are active and inactive.

[00:46:30] And if we have time, we can come back and write the formula afterwards. But essentially, we'll say these 3 are now inactive, and these are now my active prices. Now, if I group by product, And then I like to like, you know, color by status. So I can always see these are going to be my active prices. And I want this value to [00:47:00] be used if I create new line items tied to that product.

[00:47:04] So there's a few approaches from here. What I would do first is instead of having the unit price on my products table, Be a input. I want this now to be dynamic and be based on that new product pricing table that we just added. So what I could do is take this field. I'm just going to edit the same field and change it to a roll up from my product pricing table.

[00:47:37] I want to grab the price, but only include the ones that are the status of active.

[00:47:49] Now, there are a couple of caveats here. You have to make sure that you only have one that's active at a time, because if you have two that are active, you're going to get the sum of those two things. You could have some, [00:48:00] you know, error checking to like, Count how many are active and maybe put output in here like a formula field.

[00:48:06] That's like warning. There's something wrong. But that's just something to note. So now on my line items You could approach this in a few different ways. One approach is I have this unit price override field Where I could set it up to say, okay, every time I send an invoice, I want to go through and just copy the value from this unit price field and put it here.

[00:48:37] So it freezes it in time. And then the formula that I had originally removed because I forgot to do it before this call would just say, you know, if I have unit price override, I want to use that.

[00:48:55] Otherwise use what's the current price of that [00:49:00] product? That's one approach. Another approach, though, is you could actually link each line item here to the current pricing. And you could take advantage of this lovely new dynamic filtering to say, I only want to grab where products has any of dynamically the product that's on this row and the status is active.

[00:49:40] So we'd call it that. So now for this. I'm going to be only showing I should only see one option to choose from. And you could also use an automation to fill this field in. So, as soon as you create a line item for a [00:50:00] product. You could have an automation then go and grab the current pricing for that product and link it here and then have your unit price be based off of this linked field, which would be dynamically changing as you're changing your pricing.

[00:50:16] So, if we just to actually show. What it would have looked like if I had had this set up from the beginning. This would have been all the inactive pricing because these are the old invoices. Item A, item B,

[00:50:42] and then let's just take this and change it to be the product pricing price. And I'm just going to get rid of all of that and have it be the sum of that.[00:51:00] 

[00:51:00] So now I'm back to where I was at before for my subtotal of 144 for that invoice. But if I go now create a new one, and I would then put this filter back on where status is active. So now I'm going to say this is for a new invoice and the product is item A. And the pricing is this one.

[00:51:36] That was weird. I don't know what just happened there. I think I already had a record for that invoice, but either way, now you can see 15 for item A versus 17 a couple years ago, and it's going to be, it won't affect my historical pricing as I create new versions of. That pricing. I hope all of that made sense.

[00:51:59] Dan Fellars: Oh, yeah. [00:52:00] You're essentially creating a version versioning of pricing. 

[00:52:05] Alli Alosa: Exactly. One 

[00:52:06] Dan Fellars: active. Yep. 

[00:52:09] Alli Alosa: I've used that 

[00:52:10] Ben Green: many times. I think I've usually went with like link the link record method. If you link it to this one, it kind of like stamps like what's the current price. But that only works, as you said, if there's one current price at any one time.

[00:52:26] Alli Alosa: Exactly. And even like, If you're going to use an automation, then you would really want there to only be one, but like, maybe you have three different pricing options for the same product, depending on different clients or different Okay. You know, custom prices, you could have several different active versions.

[00:52:45] And then you'd be able to pick for each line item, which 1 applies to this exact transaction or exact invoice. And I like this option as well, because then you can see historically how your pricing has changed over time. Whereas. It's a little more [00:53:00] difficult if you're just, you know, freezing that value in a field.

[00:53:03] Dan Fellars: This is a semi related, but with the status field, now they have the AI ability to determine the value. If you, if you give it a prompt that says, look at the valid dates, and if it's between those dates, set it to active. Otherwise it's inactive. Will it automatically change the status if you were to change the dates?

[00:53:27] Alli Alosa: I don't have a I enabled on this workspace. So I don't actually know the answer. I haven't played with the single select a I fields. Do you know, Ben? 

[00:53:35] Ben Green: I do not know. Yeah, I haven't played with that. I think maybe if you had on January automatically, because I know when it's on January automatically and a field value changes that it references, it does recalculate.

[00:53:49] Dan Fellars: That'd be interesting. Like, you know, like automatic. I mean, I've done a lot of automations to like figure out which one's the active one or whatever. But if the AI [00:54:00] could do it automatically, that'd be pretty interesting. For 

[00:54:03] Ben Green: that one, I feel like you may be better off just using formulas anyways. If you can figure out how to write the formula.

[00:54:10] True. Then using AI for 

[00:54:12] Dan Fellars: it. Well, yeah, that's true. Awesome. Thank you, Ali. Thank you. Okay. Let's move on finish. I'll be quick. Quick shout out. If you're not in our community, join us. Built on air dot com slash join gets you in and gets you access to thousands of air table users talking about it all day as well as our amazing newsletter.

[00:54:39] Keep you up to date on all the news going on that goes out every week. So make sure you subscribe to that and like and subscribe to our YouTube channel as well. Okay, newly released mail hook automations. So what I'm gonna do is I took a screenshot of it. I know there's people out there that are wise [00:55:00] enough to to copy down the email address and potentially spam this.

[00:55:05] So I'm trying to block that. We'll see. Won't Russell call anyone out. But anyway, so I've got just a very basic database. And I actually set this up. But. I think I hit it enough where you can't get the full one to do this, but basically there is now a new trigger type that says when email received and it will give you an email address going to an air table email inbox.

[00:55:31] And you can also put your own prefix on front of it. So that's kind of nice. So you can like name it. So then it makes it easy to show up in your contacts or something. So anything you put here, it will actually put at the front of the email address along with some unique identifiers. So it knows to trigger this automation.

[00:55:52] And then and then we're just going to test this. I actually, this, this is my first time testing this. So we're going to see what, what we do. We had a [00:56:00] couple of questions last time of like, what do you actually get? So we're going to test it out. So I've got show you a screenshot. I've got an email ready to go.

[00:56:09] I'm going to hit send here and blocked out the. Oops, I need to fix that. Add in the CC. Okay, I'm going to send this, and we're going to test it.

[00:56:28] Okay, I just sent it.

[00:56:33] And, we're going back in here. Now we're going to test this trigger. See if it, how long it takes to receive.

[00:56:45] Looks like it has not received. It's not received yet. Okay, let's try it again.

[00:56:57] Yay. There we go. All right. [00:57:00] So we get a unique identifier for that email. That could come in handy. We've got our subject. We've got our sender is me. Our two is, yeah, just the email address. It'll give you the CCs, reply to, it gives you the body. It gives you a date on when it was received, and it gives you the body in two formats, a text format.

[00:57:23] And I had it's interesting. It put in. Oh, yeah. So this is marked down. So it actually so I had this text bold to see how it handled that. So it actually gives you the markdown equivalent. And then here it gives you the html equivalent. And then it also gives you I wondered how it dealt with attachments.

[00:57:44] So basically it gives you the file name and looks like it gives you a unique URL that you can use. So, so what we could do is we could just keep a log of all of our emails that we get sent into here. So I've got this here and we [00:58:00] can just map it to all of the all of the fields.

[00:58:04] We'll just put the address for now. You could map all of them. And depending on what you want. This one I actually marked as, as marked down as rich text. I also had another one for the HTML, and so we talked about the last one, the attachments. 

[00:58:25] Ben Green: Wait, quick question. So the two recipients and the output, is it always going to be the same?

[00:58:33] Or like if I had sent it to like this email and Ali's email, I think it's an array. It looks like 

[00:58:40] Dan Fellars: it's an array. So it would give you both 

[00:58:43] Ben Green: interesting. 

[00:58:45] Dan Fellars: Yeah. So a comment, like I use HubSpot and I have it to where you can automatically like BCC, a HubSpot email address. So you could essentially recreate similar functionality to this, where you could always BCC [00:59:00] an email address, and then it could go into here.

[00:59:02] And then you could put it into a log and that gives us yeah, let's see, there we go. Let me test it.

[00:59:19] I guess. There we go. It didn't work. I gotta send it again, huh? 

[00:59:32] Alli Alosa: You could do run as configured on the create record step. If you click automation history first, which is weird. 

[00:59:42] Ben Green: Yeah, this is a little bit of an annoying UI thing. 

[00:59:47] Dan Fellars: Oh, there we 

[00:59:47] Ben Green: go. Thank you. There we go. 

[00:59:52] Dan Fellars: Okay.

[00:59:57] Apparently it didn't work the first time. Yeah. [01:00:00] Okay, so now you've got it. And then my attachment was a CSV file. Very basic CSV file. So if you wanted to. So I know they have a way to like automatically email directly to a table and sync it. So this could replace it. You would need to write a script or have chat GPT right to a script that would it.

[01:00:21] You'd have to read in that from the URL, the attachment URL, parse the CSV and then update it yourself. I was hoping maybe they would have like a action that could do that for you, but I don't believe they do. So you'd have to write that script yourself or get some help. And so, yeah, so this kind of replaces that.

[01:00:41] It gives you more functionality because you can, you can do whatever you want with that attachment. Plus keep a history here. So pretty powerful. My big concern is, like, email volume is just so crazy, like, you gotta be careful if you're, if you're wanting to log all your email this way, it could add up pretty quickly, so you [01:01:00] might need to keep it clean or do something to, to to delete them after a certain time or something, so.

[01:01:07] Alli Alosa: Absolutely. It's interesting that it was bold, that you, you bolded a part. Of your email, but then Airtable only put one asterisk around it, and then so it changed it to italic when it, 

[01:01:20] Dan Fellars: yeah, that was a good call. Interesting. Yeah. So it didn't, it didn't carry over. So I wonder if that's from the email client being a different syntax for how it does things.

[01:01:35] I don't know. 

[01:01:36] Alli Alosa: Could be on either end. Yeah. 

[01:01:38] Dan Fellars: Yeah. Cool. All right. We're a little bit over. Thanks for sticking around. Thank you, Ben, for joining Allie and we will see you next week. So next week, watch our show episode seven, then go straight to Ben's marketing. Workshop right after everybody have a good week and we will see you next time.

[01:01:59] [01:02:00] Thank you. Thank you.

[01:02:14] intro: 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 air table. We'll see you next time on the built on air podcast.