FULL EPISODE VIDEO
Watch the full video of the show. See below for segment details.
Kamille Parks – I am an Airtable Community Forums Leader and the developer behind the custom Airtable app “Scheduler”, one of the winning projects in the Airtable Custom Blocks Contest now widely available on the Marketplace. I focus on building simple scripts, automations, and custom apps for Airtable that streamline data entry and everyday workflows.
Dan Fellars – I am the Founder of Openside, On2Air, and BuiltOnAir. I love automation and software. When not coding the next feature of On2Air, I love spending time with my wife and kids and golfing.
Round The Bases – 00:03:54 –
Following Articles Used in this Segment:
Industry View – 00:23:31 –
Learn all the ways you can use Airtable within the Non-Profits/NGOs Industry. From pre-made bases, apps, automations, and custom bases, we’ll show you how to set up bases and get your Non-Profits/NGOs organization established in Airtable.
Jen Rudd will walk through how Airtable can be used within the NGO/Non-profit world.
Base Showcase – 00:37:42 –
We dive into a full working base that will Kamille will showcase a demo of a prototype for the character listing of a Table Top Role Playing Game.
Audience Questions – 00:50:38 –
Jason G answers the Airtable question: “How does the scripting handle record ids if not in the view”
Full Segment Details
Segment: Round The Bases
Start Time: 00:03:54
Roundup of what’s happening in the Airtable communities – Airtable, BuiltOnAir, Reddit, Facebook, YouTube, and Twitter.
Following Articles Used in this Segment:
Segment: Industry View
Start Time: 00:23:31
Airtable for the Non-Profits/NGOs Industry
Learn all the ways you can use Airtable within the Non-Profits/NGOs Industry. From pre-made bases, apps, automations, and custom bases, we’ll show you how to set up bases and get your Non-Profits/NGOs organization established in Airtable.
Jen Rudd will walk through how Airtable can be used within the NGO/Non-profit world.
Segment: Base Showcase
Start Time: 00:37:42
Character Sheet for TTRPG
We dive into a full working base that will Kamille will showcase a demo of a prototype for the character listing of a Table Top Role Playing Game.
Segment: Audience Questions
Start Time: 00:50:38
Airtable Question – How does the scripting handle record ids if not in the view
Jason G answers the Airtable question: “How does the scripting handle record ids if not in the view”
The full transcription for the show can be found here:
[00:01:40] I'm not ready. I'm not ready. [00:01:43] Welcome to the BuiltOnAir Podcast. [00:01:46] I need to share my screen. [00:01:47] It's like I've never done this before. [00:01:50] We are live [00:01:52] and we are in our final episode [00:01:56] of the season. [00:01:58] Just one second here. [00:02:01] Let me get my screen up. [00:02:06] We are [00:02:08] the movies. [00:02:09] There we go. [00:02:10] Welcome to the [00:02:11] BuiltOnAir podcast [00:02:13] season 14 episode eight, [00:02:14] final episode of the season. [00:02:16] We'll be off for a month [00:02:18] and then we'll be back in July. [00:02:20] So good to be with you [00:02:22] one final time [00:02:23] before we take a little break. [00:02:24] We have with us, [00:02:26] our regular Jen Rudd. Welcome back, Jen. [00:02:29] Thanks for having me again, Dan. [00:02:31] Yeah, good to have you [00:02:33] and we've got Kamille again [00:02:35] as always. I believe Alli [00:02:36] is out with COVID unfortunately, [00:02:39] this week. So she's recovering [00:02:41] from that and so hopefully she is back [00:02:45] healthy soon [00:02:46] here shortly. So [00:02:49] let's get started. [00:02:50] So we always [00:02:51] do an hour long episode talking about all [00:02:53] things Airtable. [00:02:55] I'll run you through [00:02:56] what we're gonna be doing today. [00:02:57] We'll start as always with [00:02:58] our Round the Bases. [00:03:00] Keep you up to date on [00:03:01] the World of Airtable. [00:03:03] And then a [00:03:04] quick shout out to On2Air, [00:03:06] our primary sponsor. [00:03:08] Then Jen Rudd is going to [00:03:10] walk through how Airtable is used in the [00:03:13] nonprofit world. [00:03:15] And then Kamille is gonna [00:03:17] walk through a base that she is working on [00:03:20] for a tabletop role playing game. [00:03:23] I had to Google what TT R P G meant. [00:03:26] So now I know [00:03:29] and we know a little bit more [00:03:31] about Kamille [00:03:31] what she does on the weekends. [00:03:33] Yeah, [00:03:34] I'm so cool. [00:03:36] That's right. [00:03:37] That's right. That'll be fun. [00:03:39] And then a quick shout out to [00:03:41] join our community [00:03:42] and then finally I'll walk [00:03:43] through a question on dealing [00:03:45] with scripting [00:03:46] and views that came from the [00:03:48] BuiltOnAir community. [00:03:49] So let's start off [00:03:51] with our Round the Bases. [00:03:53] There was [00:03:55] one announcement that came out last week [00:03:58] improvement to timeline views. [00:04:02] So Alex walks us through [00:04:05] some enhancements. [00:04:07] I have not had a chance to [00:04:09] play with these. [00:04:10] Any, anybody play with these yet? [00:04:12] No, I thought the overlap [00:04:13] of the things were pretty cool though. [00:04:15] The overlap of the Light Balls. [00:04:17] Yeah, I've, I've seen them in [00:04:19] action and they are pretty useful. [00:04:21] I was working on a, a [00:04:22] timeline that had [00:04:24] episode releases and depending [00:04:27] on like if it's a movie, there's only one [00:04:29] episode, but if it's, [00:04:32] you know, a show, [00:04:33] it might have 10 episodes. [00:04:34] And so it would like, [00:04:35] you could fit the whole label [00:04:37] on a show [00:04:37] but you couldn't for a movie and you [00:04:38] never know what the name [00:04:40] of the movie is. Well, now you can, [00:04:41] because it just goes [00:04:43] past where that block ends. [00:04:46] So I, I think it's pretty useful. There's [00:04:50] you know, it seems pretty [00:04:52] consistent in what I've seen also [00:04:53] if you continue to scroll, [00:04:55] you can kind of see it in this, [00:04:56] screenshot but like, [00:04:58] if you have a really long [00:04:59] bar and you like scroll [00:05:01] along it. Yeah, it will stick with you. [00:05:04] So you always know what it's called even [00:05:06] if like the beginning [00:05:07] isn't on screen anymore. [00:05:10] Yeah, so it'll show it [00:05:11] like that right there. Yeah, [00:05:14] cool. So nice little [00:05:16] enhancements to the timeline. [00:05:18] That's good to know they're [00:05:20] still working on those, those widgets [00:05:25] and yeah, nice, nice enhancement there. [00:05:30] That was the only, [00:05:31] I think that was the only [00:05:33] like kind of product [00:05:34] announcement that I saw this last week. [00:05:37] So that's the only thing that, [00:05:39] that came out. [00:05:40] Well, I actually I take that [00:05:41] back, there was one more [00:05:43] that came from Russell [00:05:44] in the BuiltOnAir community [00:05:46] seeing the data library feature [00:05:49] starting to be rolled out. [00:05:51] So we talked about this [00:05:53] the last two weeks or so of [00:05:55] they've announced the, [00:05:57] the data library, the verified data [00:05:59] and it looks like that's [00:06:01] starting to roll out more and more. [00:06:04] And so that's cool to see, [00:06:05] I have not yet played with it. I need to, [00:06:07] I need to start playing with this [00:06:10] so I could be wrong, [00:06:11] but I in Russell's post, [00:06:13] he says he wishes he had a way to [00:06:16] replace old syncs with the new masters, [00:06:18] I think [00:06:19] because it's the same source. [00:06:22] You don't do anything. [00:06:23] Unless it's like syncing, [00:06:26] like his old sync is synced [00:06:28] from a similar dataset [00:06:30] that wasn't the one that was [00:06:31] published. [00:06:34] I think if your old syncs [00:06:37] are using the same view [00:06:38] that was added to the data library, [00:06:41] there's nothing different that you need to [00:06:43] do because it really is just a [00:06:45] shared link. It's just like a shortcut [00:06:47] to get there faster. [00:06:49] I could be wrong but that was [00:06:52] my understanding of what it is. [00:06:54] So explain that more. [00:06:56] I'm not quite getting that. [00:06:57] So we have regular shared [00:07:00] views that you can sync [00:07:02] into other bases and it sounds [00:07:04] like Russell has [00:07:05] multiple synced tables set up somewhere. [00:07:09] But then now he's published [00:07:11] to his data library [00:07:13] one source that says current [00:07:14] team and partners [00:07:15] and one that says clients, [00:07:17] if he has any existing syncs [00:07:20] that are syncing from the same source as [00:07:23] the client's data library [00:07:25] or the current team [00:07:26] and partners data library, [00:07:28] I think [00:07:29] it's technically already connected [00:07:31] because it's coming from the same source. [00:07:33] I don't think there's any distinction. [00:07:34] It doesn't like take your data and put it [00:07:36] somewhere special. It just sort of [00:07:39] surfaces, those shared links, [00:07:41] you know, up top. [00:07:42] So you don't have to like find the, [00:07:44] the link or search by base [00:07:46] and then by table and then by view, [00:07:48] I could be wrong. But that is, [00:07:51] that's how I've been [00:07:53] understanding that your [00:07:55] old syncs are just the same. [00:07:57] So basically, [00:07:59] in order to get something [00:08:00] into the data library, [00:08:02] you're essentially sharing it [00:08:03] the same way that you would [00:08:05] to sync a table? [00:08:07] Yes, got you. [00:08:09] OK. [00:08:10] So yeah, so, so the data library [00:08:12] is really kind of more [00:08:14] just a a view of what's [00:08:15] been shared. [00:08:17] Yeah, it's a, it's a [00:08:19] condensed view of like [00:08:21] of your shared links and it's supposed [00:08:24] to be just the stuff that like you're [00:08:25] gonna add to all of your bases [00:08:27] or most of your bases [00:08:29] such as a list of clients. [00:08:30] That's [00:08:30] gonna be [00:08:31] one list that you're probably [00:08:33] gonna use all over the place. So [00:08:35] rather than finding, [00:08:37] you know, a list of clients [00:08:39] every single time you create a new base, [00:08:41] it's just an option under like [00:08:43] add new table. OK, [00:08:45] clients. And you already know [00:08:46] it's pulling from the [00:08:49] correct base and view. [00:08:51] That's the idea. [00:08:53] So is this different [00:08:54] than the verified data feature? [00:08:57] It, it, [00:08:57] it's the same. So [00:09:00] you have your data library [00:09:01] which can contain [00:09:02] any number of, there's probably [00:09:04] some limit any number of [00:09:06] shared views and some of those [00:09:08] can be verified [00:09:10] if they're verified they'll [00:09:11] get a little check mark [00:09:12] and the purpose of verifying them is like, [00:09:15] I guess this makes more sense [00:09:17] on enterprise plans. If you have like [00:09:23] of the, your over overall [00:09:25] company might have a list of clients, [00:09:28] but an individual department [00:09:30] might only have their list of clients, [00:09:32] which is a subset. [00:09:34] Your overall company is gonna verify [00:09:36] like the one, the overall one and that's [00:09:39] the one that gets the check marks [00:09:41] versus clients, [00:09:42] dash marketing or clients dash [00:09:43] accounting or something like that. [00:09:45] So you can tell the difference [00:09:47] on departments. [00:09:47] Alternatively, [00:09:49] you could do it the other way around [00:09:51] where it's the general [00:09:52] all clients and then [00:09:53] your department, [00:09:54] you can have a different [00:09:56] set of verify data than [00:09:57] the accounting department. [00:09:59] So my list of clients [00:10:01] gets the check mark and then [00:10:03] accounting departments doesn't. [00:10:05] So I, you know, [00:10:06] I know, oh I want this one. [00:10:07] I'm in the marketing team. [00:10:09] I want the marketing team's [00:10:10] verify data set. [00:10:12] So just controlling [00:10:13] downstream versions of the data [00:10:15] upstream depending [00:10:16] on how you're viewing the data. [00:10:18] Yeah, it's trying to limit [00:10:20] Daisy chaining of [00:10:21] sync from A to B to C to D. [00:10:23] It's like D is synced from A now, [00:10:26] that's the hope. [00:10:28] Got it. [00:10:30] Very good. OK. So there isn't [00:10:32] in order to get data [00:10:34] into the verified data, [00:10:35] it still resides in kind of a [00:10:37] normal base and table [00:10:38] and then you share it and [00:10:40] then click a check box [00:10:41] saying it's verified? [00:10:42] Yes. [00:10:44] Ideally, I haven't seen this. [00:10:46] I, I would love it [00:10:47] if once you share a link just [00:10:48] in general, it gets like an icon [00:10:50] next to it in the, [00:10:51] the base when you're viewing [00:10:52] it. We sort of add a lightning bolt [00:10:55] to the name of the view to remind [00:10:56] ourselves, but it'd be helpful [00:10:58] if there was an icon [00:10:59] that appeared automatically [00:11:00] and then if it's a verified [00:11:02] or sync data that gets its own, you know, [00:11:05] icon that, that shows the difference, [00:11:07] it'd be really helpful if you could see [00:11:09] that at the base level, [00:11:10] otherwise you have to go [00:11:11] to your admin panel or [00:11:12] something like that. [00:11:13] Interesting, interesting [00:11:15] for some reason, [00:11:16] the vision I thought when they were [00:11:17] talking about this verified [00:11:19] data feature, I was thinking [00:11:21] you would go to some different U I [00:11:23] outside of like a base [00:11:25] to kind of create your [00:11:26] verified global data. [00:11:29] But it sounds like it just works [00:11:31] like all the other bases. [00:11:32] Yeah, you can view it in like [00:11:34] you have in your settings panel, [00:11:36] your account settings or your admin panel, [00:11:39] there's a different place to look at [00:11:40] them all but to create them, [00:11:42] just start like any other shared view. [00:11:45] OK. Very good. [00:11:47] That's helpful. We need to dig into that. [00:11:50] All right. But yeah, [00:11:51] it looks like that's [00:11:52] starting to get rolled out [00:11:54] to enterprise [00:11:56] for now [00:11:57] and good stuff there. [00:12:00] OK [00:12:00] a couple other from the BuiltOnAir [00:12:02] slack. [00:12:05] Let's see. [00:12:07] This question was, does anyone know [00:12:10] if there's a way to sync an updated field [00:12:12] in Airtable to update a cell in Excel? [00:12:15] Not natively. [00:12:19] I'm trying to remember why I picked this. [00:12:23] I don't think this is the one [00:12:24] that I was planning to pick because [00:12:27] this is kind of a, [00:12:28] just a straightforward. [00:12:29] Nothing too exciting about this [00:12:31] one. [00:12:32] So anyways, if you're trying to, [00:12:35] to link Airtable to Excel, [00:12:37] I think there was a different one. [00:12:39] I was trying to link to. [00:12:41] Oh, this is it, [00:12:43] it was this one [00:12:44] I picked. I had the [00:12:46] wrong thread in my link. [00:12:48] This was the one [00:12:49] are Airtable web hooks [00:12:50] counted against your automation [00:12:52] runs? [00:12:53] Can't seem to find documentation [00:12:55] on this except to do that. [00:12:57] So [00:12:59] so just kind of explaining how, [00:13:01] how automations. So basically, [00:13:03] if an automation, [00:13:04] if you're using automations to start [00:13:07] a or excuse me, if you're using web hooks [00:13:09] to start an automation, [00:13:11] then that that counts as an automation [00:13:14] run. So however many times you, [00:13:17] you hit that webhook will count as [00:13:20] one automation run per execution, [00:13:24] right? [00:13:25] It's processing that data for them. So, [00:13:28] yeah, [00:13:28] but if you have a web hook [00:13:30] that triggers a make scenario [00:13:32] that's not an automation for them, [00:13:35] right? Yeah. [00:13:36] Yeah. So if you're hitting [00:13:38] out somewhere else, so [00:13:40] and then Scott clarifies that if you use, [00:13:43] there's a automation trigger for [00:13:46] web hook received that obviously [00:13:48] is an automation run [00:13:49] because that is triggering [00:13:50] that automation [00:13:52] and then separate from that, [00:13:53] there's different web hooks [00:13:55] that you can set up [00:13:55] that are like, [00:13:57] you know, [00:13:58] related to the base [00:13:59] and those aren't automation. [00:14:02] Yeah. [00:14:03] And this was actually the one [00:14:05] I that I wanted, sorry, [00:14:07] it took me three times, [00:14:08] but this is the one I want. [00:14:09] What are we talking about? [00:14:11] All right. All right. [00:14:12] OK. So Karlsten asks, [00:14:14] the largest output that [00:14:16] you can have in a calculated [00:14:17] formula. [00:14:19] So I was thinking about this, [00:14:21] I've never pushed the limits on this. [00:14:23] It looks like others have. [00:14:24] Josh says he's gotten the 9000 [00:14:26] Bill has hit in 100,000. [00:14:29] So if you have a formula [00:14:31] that's generating like a lot of output, [00:14:35] I know the long text field [00:14:38] has a limit of 100,000 characters. [00:14:41] But I've never pushed the limit [00:14:44] on the formula output. [00:14:46] So it looks like 100,000 [00:14:48] somewhere in there. [00:14:51] Have you ever tested that? [00:14:53] No, but I have a couple of different [00:14:56] implementations that sort of log a [00:14:58] history of record changes in a, [00:15:01] a long text field in the form of Json. [00:15:04] And I sure hope it never gets to [00:15:07] this level because I've, [00:15:08] I've tried to do it as [00:15:10] compactly as possible, [00:15:11] but I, I was under [00:15:12] the impression that it's [00:15:13] some 1000 [00:15:15] amount of, [00:15:17] characters and [00:15:18] if it ever gets to that level [00:15:20] then we should be tracking [00:15:21] it that way anyway, [00:15:22] I don't think. [00:15:23] Yeah, I've had some roll ups [00:15:24] of roll ups of roll ups [00:15:26] and it gets pretty gnarly, [00:15:26] but I haven't hit 100 K yet, but [00:15:29] I have maxed out the Google Doc [00:15:31] automation multiple times. So [00:15:32] that was fun [00:15:35] of how much, [00:15:36] how much data you can push [00:15:37] in or like how many, [00:15:38] how many fields you can push in [00:15:40] or how much text you can [00:15:41] put in. So finally [00:15:43] we had to do something crazy. [00:15:44] I can't remember what we did, [00:15:45] but it was like, [00:15:46] definitely [00:15:46] there's like a limit to what [00:15:47] you can push into a Google doc. [00:15:49] Basically. [00:15:50] Interesting. [00:15:52] Yeah, I don't know what, yeah, [00:15:55] I don't know [00:15:56] what our limit is with On2Air. [00:15:58] If we've hit that limit with [00:16:00] pushing data and I, I'm not sure [00:16:02] we'll have to test that. [00:16:04] Cool. Yeah. [00:16:05] So there are definitely limits. [00:16:08] Somebody if you want to, [00:16:10] if you wanna let us know what, what [00:16:12] the max is, if you can get over 100 K [00:16:15] and beat the Bill's output, [00:16:18] that would be great. [00:16:21] We're gonna keep on the theme of limits. [00:16:23] So here's another one. [00:16:24] There's lots of people talking [00:16:27] about limits, limits that like [00:16:29] probably if you're hitting these limits, [00:16:31] there might be other ways to, [00:16:32] to do things. [00:16:33] Here's another one. So with URL prefills [00:16:39] of [00:16:40] how much you can put in [00:16:43] the URL to like prefill a form field. [00:16:46] So browsers do have some limits sometimes. [00:16:49] Like it's, it's a lot. [00:16:51] So depending on your browser, [00:16:53] there might be limits [00:16:54] but it looks like the form [00:16:56] Airtable form itself has a, [00:16:59] has a 16,000 character limit. [00:17:02] And that's what, that's what Scott says [00:17:05] is mentioned in the support docs. [00:17:07] That's [00:17:07] the, [00:17:08] it's pretty, [00:17:09] that's a lot. It's not a small, [00:17:12] it's a URL. [00:17:14] Yeah, [00:17:15] I think the problem is [00:17:16] I have problems even with [00:17:17] form where people will drop part [00:17:19] of the URL just like when they click on [00:17:20] something, even though it's a hidden [00:17:22] URL. So having prefilled [00:17:24] forms is probably not [00:17:25] like good long term just because I [00:17:28] I run into issues inconsistently where the [00:17:30] prefills just drop off and just have [00:17:32] raw form and now [00:17:33] you've exposed all your data. [00:17:34] So, you know, using a third party form [00:17:37] like On2Air sometimes that prefills [00:17:39] with just a random string into these [00:17:42] 1600 or 16,000 characters [00:17:45] might be a better solution [00:17:46] if you're trying to push the limits [00:17:48] because something [00:17:48] inevitably dropped off and you're [00:17:51] just not feeling the data [00:17:53] the right way. So [00:17:55] yeah. [00:17:55] Yeah. [00:17:57] Yeah, for sure. So that's [00:17:59] yeah. And then you gotta [00:18:01] worry about like encoding that, [00:18:03] that long text, [00:18:04] make sure you don't have [00:18:05] any funky characters in there that could, [00:18:07] that could cause some damage [00:18:09] So [00:18:10] yeah, I typically try to avoid. [00:18:12] That's one of the cool things about On2Air [00:18:14] docs or forms is [00:18:17] if your data is already in Airtable, [00:18:19] you don't have to prefill it into the URL. [00:18:21] You can, you can actually [00:18:23] one of the cool features is [00:18:25] you can actually use a record ID as your, [00:18:27] as your template [00:18:29] for your default values. So, [00:18:31] so if you just put that long text [00:18:34] into a random record and then just use the [00:18:36] record ID as your, as your placeholder, [00:18:39] it will then pull all the values from [00:18:41] that record and, and use those as your, [00:18:43] as your default values. [00:18:45] So that's kind of a cool feature [00:18:47] and make it so they can't edit anything. [00:18:50] Yeah. Yeah. And then you [00:18:52] can make them read only. [00:18:54] Yeah. So [00:18:55] anyways, more limits. [00:18:57] Somebody should collect, [00:18:58] maybe we should do that at [00:19:00] like just every limit possible [00:19:02] of Airtable. [00:19:02] That would be a nice resource to [00:19:04] have. [00:19:07] Maybe Scott will do that. [00:19:09] So we're continuing [00:19:11] with the Airtable Forums. [00:19:13] This was a really good article [00:19:16] by friend of the show, Kuovonne. [00:19:18] Just talking about the different roles [00:19:22] and jobs um related to Airtable. [00:19:25] And so if you're thinking about, [00:19:27] I like Airtable, [00:19:28] what are some things that I [00:19:30] could do for a career in Airtable? [00:19:32] This is a really good, just kind of [00:19:35] just, [00:19:36] just breaking out all the different things [00:19:38] that you could do and different roles [00:19:40] and, and people have some [00:19:42] questions about that and [00:19:44] how people got into it. [00:19:47] So worth checking out if, [00:19:48] if that's of interest to you. [00:19:53] And yeah, we've got a couple [00:19:56] representative in this group [00:19:58] as well amongst here. [00:20:00] All right, last one, [00:20:02] continuing last week [00:20:03] if you didn't catch last week's [00:20:05] show, it was all about A I and [00:20:08] we had Bill French [00:20:09] along with Lorenzo Lee talking about [00:20:13] Airtable and A I in the future. [00:20:15] So Bill [00:20:17] continued with that theme and, [00:20:20] and wrote a good article on the [00:20:22] Airtable forums talking about [00:20:25] an A I first mind mindset and mindfulness [00:20:30] and how that can help you in, [00:20:33] in your career. [00:20:34] And so [00:20:37] uses Airtable as an example of, [00:20:39] you know, kind of using A I [00:20:41] instead of maybe [00:20:42] Rejex and the differences between [00:20:44] those two approaches and where A I can, [00:20:47] can take things up a notch [00:20:49] from there. So [00:20:52] good [00:20:53] good, good article. [00:20:54] If you want to dive, [00:20:56] dive deeper into that, [00:20:57] that world of A I. [00:21:00] All right, [00:21:02] I believe [00:21:04] has [00:21:04] had any other news [00:21:05] that you guys can think of? [00:21:08] Not that I can recall. [00:21:12] It's a long weekend coming back from. [00:21:14] So I know I know it was a long weekend. [00:21:16] Yeah. So Airtable probably didn't [00:21:18] push anything. [00:21:19] Maybe this week there will [00:21:20] be some, some pushes, [00:21:22] definitely over the next four weeks [00:21:24] while we're, while we're out, [00:21:26] there hopefully will be some [00:21:28] announcements made [00:21:30] that we'll review when we get back. [00:21:32] Ok. Check out on2air.com [00:21:34] if you are running [00:21:35] your business on Airtable. [00:21:37] It's a suite of tools [00:21:38] and apps that help you [00:21:40] do more with your Airtable. [00:21:42] If you rely on your business [00:21:44] within Airtable, then you [00:21:46] definitely need to check out the, [00:21:47] the suite of apps that Airtable provides. [00:21:50] For today, we're gonna highlight a [00:21:53] case study that we just put out. [00:21:56] Hannah finished this [00:21:58] Walking through with one of our [00:22:00] customers that uses On2Air forms for a [00:22:03] grassroots grocery. Pretty cool use case. [00:22:07] So [00:22:09] it's called [00:22:12] well I guess Grassroots Grocery is, [00:22:15] is what is called. Dan [00:22:17] Zad [00:22:18] is the executive director [00:22:20] and this case study walks through how [00:22:23] they use On2Air forms and Airtable [00:22:26] to set up [00:22:28] groceries that can, that can help families [00:22:31] every Saturday. They kind of have a [00:22:32] an event and the people fill out [00:22:35] what they need [00:22:36] through the forms and they track [00:22:38] everything in Airtable. [00:22:40] So they have 3000 volunteers [00:22:43] fresh produce that [00:22:45] gets distributed to families in need. [00:22:48] So pretty cool stuff. [00:22:50] And he used a partner [00:22:52] give a shout out to Mecca Parker at [00:22:55] Parkwest Digital that, [00:22:57] that helped him set this all up [00:23:00] and has been using On2Air forms [00:23:02] as has Jen Rudd as well. [00:23:04] I know we've done a case study with Jen. [00:23:06] So this is a new one. So [00:23:08] check out On2Air forms if you have [00:23:10] a need for collecting data and getting it [00:23:12] into Airtable and also [00:23:14] updating that data as well. [00:23:16] And check out this case study [00:23:18] to see how they've done that. [00:23:20] So that's a good theme for today. [00:23:22] More, more nonprofits [00:23:26] using Airtable. [00:23:27] All right, with that, Jen. [00:23:29] Why don't you, [00:23:30] share what you've got for us today? [00:23:33] Absolutely. Let me see. [00:23:41] Ok. You can see my screen? [00:23:44] Yes. [00:23:44] Ok. I [00:23:45] have this over here. [00:23:46] So I work with a lot of nonprofits [00:23:49] and one of the biggest, [00:23:51] things that nonprofits have to do [00:23:53] is share their impact. [00:23:54] Meaning they have to say [00:23:55] what's the activities [00:23:56] that they're doing and how it's impacting [00:23:58] those they have set out to work with, [00:24:00] whether they're working with, [00:24:02] underprivileged Children or, [00:24:04] you know, different, [00:24:05] parts of the country of [00:24:06] the world that need assistance. [00:24:08] Sometimes we have to make sure that we're [00:24:10] tracking [00:24:11] the activities that they're doing [00:24:13] and then also the impact [00:24:14] that they're doing. [00:24:15] So, a lot of what [00:24:16] nonprofits do is reporting, [00:24:18] it's nice to get money from funders [00:24:19] but then you have to tell them what [00:24:21] you're doing with that money, [00:24:23] in addition to what you're [00:24:25] actually trying to [00:24:27] do as your activities. [00:24:28] So, what I did today [00:24:30] was just kind of demo, [00:24:31] what it would look like [00:24:33] to create a report [00:24:34] from the activities that you're doing [00:24:36] within an organization. [00:24:37] So basically, [00:24:38] I created this simple base which has a [00:24:40] table of activities [00:24:42] and then attendees [00:24:43] which are people [00:24:44] that would be coming to if it was like [00:24:46] a [00:24:48] I can't think of the word [00:24:49] if they're like coming to [00:24:51] a symposium to talk about [00:24:52] what the the the nonprofit is doing, [00:24:54] you can have different [00:24:56] attendees that you would keep track of. [00:24:58] You also want to figure out [00:25:00] usually a nonprofits [00:25:01] have a couple different [00:25:02] focus areas [00:25:03] or attendance of things [00:25:04] that they're doing. [00:25:05] So being able to track both [00:25:06] the activities of what they're [00:25:08] doing to those focus [00:25:09] areas so they can tie them back [00:25:10] to the reporting is really helpful. [00:25:12] And then also, especially if you have [00:25:14] people interacting with the organization, [00:25:16] sometimes you want to have an [00:25:18] evaluation of these activities. [00:25:20] So basically, what I did here [00:25:22] is I created an activity table [00:25:24] which keeps track of the activity, [00:25:26] name, any notes on it, [00:25:27] the attendees, [00:25:28] the activity date, the location, [00:25:31] what the focus area is [00:25:32] and then also a place [00:25:34] to keep track of all these [00:25:35] evaluations. [00:25:36] And also there's some other [00:25:38] information that they might need to have, [00:25:40] maybe who the actual [00:25:41] attendees are, [00:25:42] but also maybe the number of [00:25:43] attendees that are coming [00:25:45] to this activity or events. [00:25:46] And so basically, we're doing this [00:25:49] because we want to be able to generate a [00:25:51] report by tracking who's [00:25:53] coming to the event [00:25:54] and their evaluations for this [00:25:56] event. [00:25:57] So we have an event here [00:25:58] which is like this global partner meeting [00:26:01] and we can add different people [00:26:03] and I just use a random person [00:26:06] generator to [00:26:06] add a bunch of attendees. [00:26:08] And you can see that I'm using a account [00:26:12] field here which just tells me [00:26:14] the number of attendees that are attached [00:26:17] to this this particular activity. [00:26:20] If you wanted to also keep track of [00:26:22] attendance, you can also roll this up and [00:26:24] say only [00:26:25] count the number of attendees [00:26:27] who actually attended the events, [00:26:28] you might have invited 150 [00:26:30] and only eight showed up. [00:26:31] So it's good to have [00:26:32] those differentials [00:26:33] of both who was invited [00:26:35] and possibly also who actually attended [00:26:38] just for your reporting metrics [00:26:40] and so forth. [00:26:41] So then we have these attendees [00:26:43] and we have this evaluation [00:26:45] and we try to make the evaluation [00:26:47] very generic [00:26:48] because you wanted to use it for [00:26:49] multiple activities. [00:26:50] You might have different evaluation [00:26:52] forms based on what [00:26:53] type of activity they're doing. [00:26:54] Whether it's a meeting, [00:26:55] a symposium, a small group session [00:26:58] or if someone's coming to an event that [00:27:00] you put on [00:27:01] as the foundation. So basically, [00:27:03] I just did a very general evaluation [00:27:05] form that we can use [00:27:06] over and over again for [00:27:07] any activity [00:27:09] that someone attends. [00:27:11] And here we're just linking the activity, [00:27:13] the attendee [00:27:14] their overall experience, [00:27:16] key takeaways, maybe some [00:27:18] suggestions for the next event. [00:27:20] And would you recommend to others? [00:27:23] Then for the attendees, I just [00:27:25] just we talked about pre fills [00:27:27] of the attendee name [00:27:28] into the form. [00:27:29] So that when somebody gets this link. [00:27:32] So for example, this is for [00:27:34] Moana, [00:27:38] you'll see that the attendee [00:27:39] has disappeared because we prefilled their [00:27:42] name. [00:27:43] I think we're, we're only seeing [00:27:45] your Airtable. OK. Share this tab [00:27:49] better? [00:27:50] Yeah. [00:27:51] All right. [00:27:51] So basically here, [00:27:52] if you look at the URL, [00:27:54] I prefilled the attendee's name [00:27:55] with the record ID, [00:27:57] which also is helpful. [00:27:58] We can't, we can't see the URL. [00:28:01] OK? [00:28:02] Try [00:28:02] to [00:28:03] share the window. [00:28:06] I [00:28:06] share a screen, [00:28:09] click on the window. [00:28:12] I'm smart. [00:28:15] Only had one coffee this morning. [00:28:18] OK. Can you see my? [00:28:19] OK. So if you look at the URL, [00:28:21] I prefilled the record ID. [00:28:23] And that's because [00:28:24] sometimes people change [00:28:25] their names or you have placeholder. [00:28:27] So it's always good to use [00:28:29] you can use a person's name [00:28:30] but just because the Dan's point [00:28:33] about encoding U L S and so forth, [00:28:35] an ID, a record ID string is [00:28:38] actual string. So it's much easier [00:28:40] to add to A URL. You don't have to worry [00:28:42] about encoding or weird characters [00:28:44] and it's also just shorter theoretically. [00:28:46] So it also lets them know like [00:28:48] it also, if someone's looking at the URL, [00:28:50] they're not saying, oh, [00:28:51] that's my name. Maybe if I delete this, [00:28:52] if they're nosy, [00:28:53] then they can expose all of the [00:28:55] attendee information. So you're exposing [00:28:57] your entire base. So if I was to [00:29:01] just take out this prefill [00:29:06] and [00:29:08] oh [00:29:10] here [00:29:11] you'll see that you can now [00:29:13] pick from an attendee list [00:29:14] which you may not want to [00:29:15] expose to people in general. [00:29:16] So that's why we use prefills a lot [00:29:18] is to hide the data from people [00:29:21] without exposing the information. [00:29:23] So we're just going to do more on it here [00:29:26] and then we're gonna pick the activity [00:29:29] in the activity [00:29:30] what I did was I created a view [00:29:32] which says, OK, only show me [00:29:34] the events that happen [00:29:35] in the next 10 days. [00:29:37] So they don't have a huge list [00:29:38] to pick from so they [00:29:39] can't pick the wrong one. [00:29:39] So [00:29:40] whenever you have prefills [00:29:41] or just forms [00:29:42] that you want people to fill out the [00:29:43] more that you fill it out for them [00:29:45] or restrict what they can pick the less [00:29:47] chances they have variables [00:29:49] to make changes. [00:29:50] So here we have the global partner, [00:29:51] meaning [00:29:53] they do the overall experience, [00:29:54] their key takeaways, [00:29:56] suggestions for next events. [00:29:57] And then would you recommend to others? [00:30:00] So when somebody submits that form [00:30:04] in the evaluations tab, [00:30:07] it gets linked to that attendee. [00:30:10] And then basically what I did was [00:30:12] I use this a lot for [00:30:14] nonprofits is to roll up the information [00:30:17] that is coming from different fields. [00:30:19] And I'm also adding this new line, [00:30:21] new line. So basically it breaks up [00:30:23] the information. So it'll say, [00:30:25] you know, overall experience [00:30:27] call in overall experience [00:30:29] and the number of stars and so forth. [00:30:31] So when it creates this output, [00:30:34] when it's just a single line text, [00:30:35] you see it as a long string, [00:30:37] but here you could see it, [00:30:38] it's broken up like like [00:30:40] a normal person would type [00:30:41] it out you would say their [00:30:42] overall experience is five stars. [00:30:43] Yours are key takeaways. [00:30:45] So you have these variables [00:30:46] from different people, [00:30:47] but it's formatted in a way [00:30:49] that you can add it to your report. [00:30:52] So then what I then did [00:30:55] is I have [00:30:57] a roll up about that formula field [00:30:59] from the evaluation. So I'm able to array [00:31:01] join [00:31:02] the values, which just [00:31:03] means take everything [00:31:04] and then separate each, [00:31:06] each report output with two lines. [00:31:09] So it then again, looks like [00:31:14] this [00:31:16] as opposed to, you know, [00:31:17] really ugly and so forth. [00:31:19] So it allows you to kind of [00:31:20] break up the information [00:31:21] in a way that would [00:31:22] make sense for a report. [00:31:24] And the reason I did it this way [00:31:26] is that because instead [00:31:27] of somebody typing out [00:31:28] all those responses, [00:31:30] I can now go into Google Docs [00:31:36] and create a document with the [00:31:38] activity name, [00:31:39] the date formatted, [00:31:40] I just did it because [00:31:41] when you put a date in Airtable, [00:31:43] um it shows up with that really [00:31:45] long string. [00:31:45] So this is just more human readable. [00:31:48] And then I have the, you know, [00:31:49] the written information, focus area [00:31:51] and it gives me the focus area fields, [00:31:53] number of attendees and then the feedback, [00:31:55] which is that report output, [00:31:57] fun automation is turned on. [00:32:00] We're gonna a live demo, [00:32:02] we're gonna wait for it to [00:32:04] update. And so whenever I do [00:32:05] automations where I have like [00:32:07] reports generated and [00:32:08] so forth, I just clear out this check box [00:32:11] and especially if you want to make [00:32:13] sure that all the information [00:32:14] is filled in before [00:32:15] you generate the report. [00:32:15] It's always good to have [00:32:16] a check box as opposed to just [00:32:18] all the criteria is met because [00:32:19] it's just a user saying, OK, [00:32:21] go ahead and generate that report. [00:32:24] I generated the report [00:32:26] and see it has the title of the event, [00:32:28] the date [00:32:29] and then it also gives [00:32:30] some of that information. [00:32:32] And so this is really basic, [00:32:34] but what you can do is do [00:32:36] some of the formatting in Google Docs, [00:32:40] you can make this bold, [00:32:41] you can change this to header one [00:32:45] and it's always good to kind of [00:32:51] and its [00:32:52] paragraph [00:32:54] and so forth. [00:32:55] So when you do a new output, [00:33:02] it's not going to run [00:33:04] because I'm done moving live. [00:33:06] Yeah. [00:33:07] Airtable has been [00:33:08] a little slow this morning. [00:33:10] It's OK. It's working. [00:33:12] All right. [00:33:12] So then if I go back and see the data now, [00:33:18] so now you can add a little bit [00:33:19] of formatting when you're using roll ups, [00:33:21] you can't roll, [00:33:22] you can't format roll ups, [00:33:23] which is the only downside, [00:33:24] which is [00:33:25] one of the things I'm running into [00:33:26] as I'm generating like this really, [00:33:27] really long report for [00:33:30] a professional organization, [00:33:32] they have all of this report language [00:33:34] that they already have written. [00:33:35] So basically, we just take that [00:33:37] they select which report language [00:33:39] they want to use [00:33:39] and then we output it into [00:33:40] a Google Doc and they can further [00:33:43] format and add to it in a word doc [00:33:45] afterwards. But we're taking all [00:33:47] does the, [00:33:49] it takes markdown, right? The [00:33:53] the window for [00:33:55] in inserting content into the Google Docs, [00:33:59] it does, but it's, it's, [00:34:01] it doesn't really take [00:34:02] markdown necessarily. [00:34:03] I try different markdown outputs [00:34:05] and it just doesn't really, [00:34:06] it basically whatever the formatting here, [00:34:10] I'm happy to try a mark down. [00:34:12] So like, because I was [00:34:13] running into this when I [00:34:14] was trying to do a link. So like [00:34:17] like here [00:34:24] also whenever you have a Google Doc [00:34:26] or some of those docs where they have [00:34:27] the weird formatting in a place [00:34:29] where you can have marked down. [00:34:31] So if there's like an underscore [00:34:33] or things like that, [00:34:33] it totally breaks [00:34:35] Airtable fields and so forth, [00:34:37] it's really annoying. [00:34:40] So sometimes I have [00:34:41] to shorten the links again. [00:34:48] Okay. [00:34:53] Not see. [00:34:58] No, [00:34:59] no, [00:35:00] we tried, [00:35:01] we tried. [00:35:03] Yeah, it's, it's, it's helpful [00:35:04] for like the first cut. Like, [00:35:06] so a lot of this, like if you just [00:35:08] need an output, it's kind of fine. [00:35:09] But you can always do third parties [00:35:11] to make it prettier like documents. [00:35:12] I've done a lot of reporting [00:35:14] with document for some nonprofits. [00:35:15] So that's really helpful [00:35:17] to use third parties. But I think [00:35:19] the more that you can at least structure [00:35:21] how you want responses or you [00:35:23] have structure [00:35:24] how you want the format of all [00:35:25] these reports to come in [00:35:26] and then request information [00:35:28] or set up information [00:35:29] and Airtable in such a way [00:35:30] that lends itself to that output. [00:35:32] The less time the team members [00:35:34] can be like typing reports and doing [00:35:36] the administrative stuff that's really [00:35:38] helpful that actually helps to, [00:35:39] to generate more funding, [00:35:41] but it also helps them focus [00:35:43] more on driving impacts [00:35:44] and reporting on that impact. [00:35:48] So, [00:35:49] but then [00:35:50] I've shown like six or seven [00:35:52] people how to do the [00:35:54] just the basic reporting output. [00:35:56] And there's like [00:35:57] that is the most amazing thing [00:35:59] ever and it really is just [00:36:01] formatting it in a [00:36:02] formula and then using [00:36:03] that roll up functionality [00:36:05] to drive how it's written out. So [00:36:08] definitely helpful to just again [00:36:10] formalize how you want the inputs to [00:36:13] maximize the outputs. [00:36:17] Very cool. [00:36:19] Maybe what's your experience [00:36:20] been just working [00:36:21] with nonprofits in general, [00:36:23] how has Airtable [00:36:25] helped or impacted those? [00:36:27] It's helped a lot, [00:36:28] especially as like, like [00:36:30] these are these organizations [00:36:31] that are doing great things [00:36:32] and it's either a lot of [00:36:34] distributed teams working [00:36:34] in different locations [00:36:36] at different times or [00:36:37] they're very small grassroots [00:36:39] and they're doing a lot of things. [00:36:41] I've worked with [00:36:43] hood huggers in there in North Carolina [00:36:46] and they do some great things with [00:36:47] community gardens and helping under, [00:36:49] you know, underprivileged youth [00:36:51] and things like that. [00:36:52] So they're doing so much [00:36:53] with a very small team [00:36:55] and using forms like we use [00:36:57] On2Air forms [00:36:58] just so that you can check in for [00:37:00] their [00:37:01] their work times and so forth. [00:37:02] So it's really helpful [00:37:03] because now we don't have [00:37:04] to go in a job form and like [00:37:06] recreate the form each time [00:37:07] they can just change the fields [00:37:09] in Airtable and now it's, [00:37:10] you know, updated on the form [00:37:11] and things like that. [00:37:12] So it's really helpful [00:37:13] to be able to get information [00:37:15] so that they can run [00:37:16] their organizations in a more [00:37:17] effective manner. [00:37:18] But also like be able to spend [00:37:21] more time working [00:37:22] with people because they have [00:37:23] the structure behind it to make sure [00:37:25] that they have everything that they need [00:37:27] to do what they have to do. [00:37:29] Awesome. [00:37:31] Thank you. Thank you for sharing that. [00:37:33] That's good stuff. Very applicable to all, [00:37:35] to all use cases so not just nonprofits. [00:37:39] All right, Kamille, [00:37:41] let's get Nerdy [00:37:44] yay [00:37:46] character sheets for TT R P G. [00:37:50] Am I sharing my screen? [00:37:53] Ok. So there is a new tabletop [00:37:56] role playing game [00:37:57] called Candela Obscura that [00:38:00] just got released recently [00:38:01] and I was looking through [00:38:03] the rule set and it seemed [00:38:05] simple enough that [00:38:07] I wondered, can I build this into an app? [00:38:10] Just because I wanted a, [00:38:13] a side project to work on. [00:38:15] So here is an example of [00:38:17] a character sheet. So [00:38:19] every character is gonna have [00:38:21] a name and here are all [00:38:23] of their skills and you [00:38:24] fill in these dots for how good [00:38:27] you are at moving or things like that. [00:38:31] And then you have [00:38:32] essentially your health are these [00:38:36] three batches of three stripes [00:38:39] over here and [00:38:40] there's a bunch of stuff [00:38:42] on this sheet that [00:38:42] the idea is when you play, [00:38:44] you print it out [00:38:45] and then fill in these different [00:38:47] marks with a pencil and then erase them [00:38:50] as you take a point of damage or fill it [00:38:52] back in as you heal. [00:38:55] But [00:38:56] you know what if this were an [00:38:57] app? Why not? [00:38:59] So I started by creating a [00:39:02] quick prototype in Airtable, [00:39:05] of course, and I was able to get it [00:39:08] pretty quickly. [00:39:11] There's, you could see I have a [00:39:14] handful of tables up top. [00:39:15] The most interesting [00:39:17] piece of it I think is probably [00:39:21] this field here. [00:39:23] There is a concept in the game [00:39:26] that you as a group, [00:39:27] you have 24 points. And [00:39:30] once you get to point 7, [00:39:33] you get some kind of reward. [00:39:35] And if you get to point14, [00:39:37] you get some other reward, [00:39:38] point 21 some other reward and then [00:39:41] there's three more points. After that, [00:39:43] I wanted [00:39:46] some like visual indicator [00:39:48] of that progress as you go. [00:39:51] And so this is a somewhat [00:39:53] complicated formula. [00:39:54] You could see all the substitutes [00:39:56] that are happening [00:39:57] where I'm taking all of that. [00:40:00] I [00:40:00] thought [00:40:00] it would be worse [00:40:02] actually. [00:40:03] Well, you know what, [00:40:05] I it took some time to get this [00:40:07] to work exactly how I wanted it. [00:40:09] And [00:40:11] you know, we, we've shown [00:40:13] on the podcast before, things like, [00:40:16] you know, this is basically the same [00:40:18] thing but simpler, it's basically just a [00:40:19] rating. [00:40:20] Where if I took a point off [00:40:23] it this one would be gray [00:40:25] versus all yellow, [00:40:28] but this one because it was so complex, [00:40:31] the, the output we've reached to the [00:40:33] seventh thing and now it's a goal [00:40:36] and then if I were to [00:40:39] really quickly, [00:40:46] I were really, really quickly [00:40:48] and I say quickly, [00:40:49] it's not gonna be quick because [00:40:51] there's gonna be [00:40:55] some, some problems, [00:40:57] there's gonna be an automation [00:40:59] that's supposed to run [00:41:00] that like creates [00:41:02] a bunch of keys in order to [00:41:05] generate [00:41:06] all of the possible [00:41:08] points that you can get. [00:41:09] It sounds more complex [00:41:11] than it actually is to play the game. [00:41:13] It's more complex when [00:41:14] you're building it into an app. [00:41:15] But looking at this formula again, [00:41:18] I'm saying, how many points do we have? [00:41:21] All right, [00:41:22] repeat [00:41:23] the character f however [00:41:26] many times I have that [00:41:28] I have those points. [00:41:31] And then I wanna create some [00:41:34] empty circles for the ones that [00:41:36] I haven't achieved yet. Repeat that [00:41:39] in intervals of six and then [00:41:41] repeat one [00:41:45] special point like this square here. [00:41:48] This is a milestone that I haven't reached [00:41:51] yet. [00:41:52] So I'm grouping [00:41:54] points of seven where the seventh [00:41:57] point is special three times. [00:42:00] And then at the end of the, the formula, [00:42:03] I'm only taking [00:42:06] the portion of unused points. [00:42:12] I'm taking away like the placeholders [00:42:15] for the ones that I've actually achieved. [00:42:18] I don't think that made any sense. [00:42:20] Does that make sense to you guys? [00:42:24] It does. But my brain hurts [00:42:25] thinking about building that. [00:42:27] It's, [00:42:29] it's, [00:42:30] it's a long and complicated thing. [00:42:32] And the, the reason why I made, [00:42:33] made this project is for [00:42:35] things like this where like [00:42:37] you go back to the character sheet [00:42:38] that isn't actually on this one. [00:42:40] It's on a different one, [00:42:41] but it in real life. This is so simple, [00:42:44] right? You just fill in a dot on, [00:42:46] on a page and then you erase it [00:42:48] when it goes away. That's really, [00:42:50] really simple. But I wanted to try [00:42:53] and do it [00:42:53] programmatically and then this is [00:42:55] what [00:42:55] you get eventually, once you [00:42:58] deal with all the formulas [00:43:00] and then I put it into, [00:43:02] you know, a character sheet, [00:43:03] you have it laid out a particular way. [00:43:05] Here's that same thing again. [00:43:07] But now we're on an interface [00:43:08] and then each character [00:43:10] has their own sheet. [00:43:12] And here's where I started [00:43:13] to run into problems. [00:43:14] You'll see, move, strike control [00:43:17] are the same things as move, [00:43:18] strike control over here. [00:43:20] You can see that the maximum [00:43:22] number of circles I have is three. [00:43:25] But [00:43:27] this one, I don't know if [00:43:28] you guys can see is kind of [00:43:30] like [00:43:31] it has a thicker outline. [00:43:34] That means when you start [00:43:36] as this character, you only have one move, [00:43:38] you have one strike, [00:43:40] you have to hide because [00:43:42] these two are are darker. [00:43:43] The problem I was running into [00:43:45] is I wanted it to look like [00:43:47] the character sheet, [00:43:49] including this sort of diamond [00:43:51] symbol which sometimes [00:43:52] is filled in and sometimes isn't, [00:43:55] I can't really do that well [00:43:57] in Airtable or Airtable interfaces, [00:43:59] I have a rating field that I can [00:44:02] control this formula output, [00:44:04] but I had no real good way of [00:44:06] controlling this sort of [00:44:08] diamonds thing off to the [00:44:09] side. [00:44:10] And that's where I started to think. [00:44:13] Can I build this again [00:44:14] somewhere else? And so I did [00:44:17] this is now glide where the data source is [00:44:21] that same Airtable base. [00:44:23] So we look, [00:44:25] I think better. I think this is a [00:44:27] a cleaner layout than what I'm capable of [00:44:30] doing in [00:44:33] Airtable, [00:44:35] but I can like [00:44:37] control some of these other dots. [00:44:41] But the problem with glide is [00:44:43] I don't have the particular plan [00:44:45] that makes [00:44:46] record updates immediate. [00:44:47] So I just clicked this minus [00:44:49] button and it's gonna [00:44:50] take forever for this to go [00:44:52] from two dots to one dot [00:44:54] Then I thought, can I build [00:44:57] it again somewhere else? [00:44:59] And then I did. So [00:45:02] I've been saying that I wanted to try out [00:45:04] Xano for, for some time [00:45:06] now, this was the project. [00:45:08] I decided to give it a go [00:45:10] with Xano [00:45:11] is [00:45:12] an API builder and a database [00:45:16] that [00:45:17] I was able to create an instance [00:45:20] of in order to design it [00:45:23] again in we web, which is like [00:45:26] web flow, but more like programmatic. [00:45:30] And so all of that to say [00:45:33] I now can go [00:45:37] and look at this version of [00:45:40] effectively the same data [00:45:43] except now this looks [00:45:46] even closer. The layout is instead [00:45:48] of vertical, I made it horizontal, [00:45:50] but that was a, [00:45:51] you know, a design choice. [00:45:53] But the reason why I like this one [00:45:56] the best is because all of these now are [00:45:58] buttons I can click directly on [00:46:01] this diamond shape [00:46:03] and it controls that value [00:46:07] and then the same thing [00:46:08] with all of these dots up here. [00:46:10] Whereas [00:46:11] back in the Airtable version, [00:46:14] I had no way of making this clickable. [00:46:17] This would have to be like [00:46:18] a separate check box. [00:46:20] But there's nine of these, [00:46:21] there's these three, these three [00:46:23] and these three and I didn't want [00:46:26] nine check boxes [00:46:27] in addition to nine rating [00:46:28] fields. [00:46:29] In addition to all the other fields, [00:46:31] it seemed really complex. [00:46:32] So this is probably going to be [00:46:35] how I spend my spare time for some time. [00:46:39] Just trying to figure out [00:46:41] what is the best way [00:46:43] to recreate [00:46:45] this thing [00:46:47] digitally. [00:46:49] And so far [00:46:51] it's been hard. [00:46:54] It's cool though. [00:46:56] Yeah, I [00:46:59] Xano it's, I'll show really quickly [00:47:03] what [00:47:04] I like most about [00:47:06] how I figured it out in Xano. [00:47:09] If I go look at my base and look at my [00:47:13] character sheet, [00:47:15] I have a whole lot of fields [00:47:18] and [00:47:19] you have multiple things called drives. [00:47:22] Each each character has a different [00:47:25] maximum number of drives [00:47:27] per drive and then how [00:47:29] many they have available. [00:47:31] That sounds really confusing. [00:47:35] And it's hard to keep track [00:47:36] of in Airtable [00:47:37] because each of those has to be a [00:47:38] separate field. But in Xano [00:47:40] they have a field type [00:47:42] for a structured object. [00:47:44] So if I look at drives, [00:47:45] I have the three buckets [00:47:47] that they're under [00:47:48] and each bucket can have [00:47:50] a maximum and available and resistance. [00:47:52] And this is different per character. [00:47:55] It's structured in like a [00:47:57] JSON format so that I can have [00:47:59] one field for drives and then just iterate [00:48:02] through those versus having, [00:48:05] you know, [00:48:06] I think I have [00:48:07] like five [00:48:09] no, I have four fields per drive [00:48:13] and that's [00:48:14] annoying. [00:48:15] And one of them is a formula that [00:48:17] just outputs it prettily [00:48:24] excellent. Very cool. [00:48:26] And we web, [00:48:27] so we web talks to Xano just like a post [00:48:30] database. [00:48:31] Yes, it also can [00:48:33] it a native data source is Airtable. [00:48:36] So at the end of the [00:48:37] day, I could build this exact thing [00:48:40] using Airtable [00:48:41] as the data source still in we web. [00:48:44] But I wanted to try out Xano [00:48:46] and I do really like the [00:48:48] option of having a [00:48:49] structured [00:48:50] JSON [00:48:51] field type in Xano. [00:48:54] I wish Airtable kind of had [00:48:57] either a structured data type [00:49:00] field type or like plain JSON [00:49:02] as a field type because I use it all the [00:49:05] time. [00:49:06] Yeah. [00:49:06] Yeah. [00:49:07] Awesome. [00:49:09] Thank you for sharing that. [00:49:11] We'll see how it ends up. [00:49:13] You'll need to [00:49:15] show the company behind [00:49:16] that game, what you're working on. [00:49:19] I mean, I don't think I'll ever [00:49:21] get it into a point where it's like, [00:49:23] hey, [00:49:24] people, you should use this [00:49:26] in your actual games. [00:49:28] I wanna get it to a point [00:49:29] where it's fully functional [00:49:31] and it is at this point, [00:49:32] anything everything [00:49:34] you see on this page works. [00:49:35] But like, [00:49:38] you know, with any game, [00:49:39] there's so many like, [00:49:40] I don't wanna have to put [00:49:42] in all of the rules [00:49:43] as like automations like, [00:49:43] oh when you reach this milestone, [00:49:45] this thing happens. [00:49:46] I don't want to program [00:49:47] that I just wanna make [00:49:49] like any circle you can fill in, [00:49:52] I want to fill in a bowl [00:49:53] and that's it. That's where I wanna stop. [00:49:57] Got you. [00:49:59] Awesome. Thank you [00:50:00] Kamille for sharing that. [00:50:02] Let's move on [00:50:03] quick shout out to join our community [00:50:06] at builtonair.com/join [00:50:07] that will get you into our [00:50:09] slack community of thousands [00:50:11] of Airtable users and [00:50:12] fans [00:50:13] and people just like you. [00:50:14] So join us. [00:50:15] We'd love to have you participate [00:50:17] and also subscribe to our podcast [00:50:20] on youtube. We're trying to get that [00:50:22] subscription count up [00:50:24] or on your podcast listener as well. [00:50:27] You can listen to us on your favorite [00:50:29] podcast. [00:50:31] Let's move on. [00:50:33] We're gonna finish up with [00:50:35] an audience question. [00:50:36] This question came from Jason G [00:50:39] in the BuiltOnAir community [00:50:42] and it involves scripting [00:50:44] and Jason G says in scripting, [00:50:46] if I call view dot Select record [00:50:48] as sync, but one of the record I Ds [00:50:51] is not in that view, will the entire call [00:50:54] fail or will it still return [00:50:56] the rest of the records? [00:50:59] If you don't know the answer to this, [00:51:01] what is your guess? [00:51:02] If you know the answer, [00:51:04] don't, don't, don't say. [00:51:06] I don't know the answer. [00:51:09] I feel like if one is missing, [00:51:13] I don't know if I would want that [00:51:15] to be an error. I think I would. [00:51:16] Well, [00:51:17] do I want to know [00:51:19] that it wasn't I don't know. [00:51:22] I don't, I would throw an [00:51:24] error handler just in case. [00:51:25] Yeah. [00:51:27] Put it [00:51:28] in [00:51:28] a patch. [00:51:29] All right. Let's find out. [00:51:31] I wasn't sure either. [00:51:32] My guess initially was that it [00:51:34] would air out. That was my guess [00:51:36] that it would throw an error [00:51:38] saying invalid record, I guess. [00:51:41] So, let's take a look. [00:51:43] So I've just got a simple, table. [00:51:45] This is just called documents. [00:51:47] That's what it was called. [00:51:49] And I've got four items here, [00:51:52] this one I don't need. [00:51:54] And so in this view, [00:51:56] I'm showing all of them [00:51:58] and I've got all my record I Ds [00:52:00] here exposed. And then in this view, [00:52:04] I'm hiding two of them. [00:52:05] So, so A and C are showing. [00:52:08] So [00:52:09] what we're gonna do [00:52:12] over here. So I've got my, my, [00:52:15] my variables for this is the table ID, [00:52:18] here's the view ID for the view [00:52:21] that lists all of them. [00:52:22] And then here's the view [00:52:24] ID for the one that [00:52:25] just lists two of them. [00:52:26] And then right here, [00:52:28] here's the list of all of the record I Ds. [00:52:30] So I get my table from the base. [00:52:34] So here's, here's a reference [00:52:36] to the table and then [00:52:38] here's the reference to the [00:52:39] view that we're gonna use. [00:52:41] And then here's the command for [00:52:44] for selecting the records as [00:52:47] sync. [00:52:48] And when I was writing this, [00:52:50] I could have sworn, it did this change? [00:52:52] Maybe Kamille, you knew [00:52:53] I thought that there was one [00:52:56] parameter for the record I Ds and then, [00:52:58] and then a second parameter [00:53:00] for your options. [00:53:02] And maybe, maybe I'm just making that up. [00:53:04] But now it's changed to where you pass [00:53:06] the record I Ds [00:53:07] in as part of the, [00:53:09] the object. [00:53:11] I don't recall that being the case. [00:53:15] Any time I've used record I Ds, [00:53:17] which I didn't use for quite some time. [00:53:19] But I've been using it [00:53:20] more and more recently. [00:53:22] It's been a parameter [00:53:23] of the options object. [00:53:26] Yeah, [00:53:26] maybe, yeah, maybe I was [00:53:29] just hallucinating. [00:53:31] But [00:53:32] but anyway, so this is how [00:53:34] you get the record I Ds. [00:53:35] And then this is a quick shortcut [00:53:37] to get all the fields [00:53:39] so it doesn't complain [00:53:40] about not specifying the [00:53:42] the field parameters, [00:53:43] you just get them all from the [00:53:45] table. [00:53:47] And so, and then I'm just just [00:53:49] out putting them to see what it is. [00:53:51] So [00:53:52] this one, I'm gonna run it first [00:53:54] with all with the view [00:53:55] that has all of them. [00:53:56] So this one as you expect should [00:53:59] return all of them because [00:54:01] all of those fields are in there. [00:54:03] So we see we get all four [00:54:05] back with all four records. [00:54:08] So now if we change this view [00:54:10] to be the view sum, [00:54:13] we'll find out [00:54:14] if it's gonna throw an error [00:54:15] gonna return them all or maybe it [00:54:17] just ignores it. Maybe it says [00:54:20] if you're asking for all the record I Ds, [00:54:22] then I'm gonna give you all of them [00:54:23] regardless of what the view has filtered. [00:54:26] So those are probably the, [00:54:27] the three options that it could do [00:54:31] and [00:54:32] it returns no error and it just gives [00:54:34] you the two that are in that view. [00:54:36] So it actually ignores the other [00:54:39] two that you're asking for. [00:54:41] So the filter is what, what [00:54:43] besides not the record ID [00:54:45] as being specified. [00:54:47] Yeah. [00:54:48] So it basically, [00:54:49] so this record ID, it says [00:54:51] return us all record I Ds [00:54:54] that exist in this view, [00:54:57] what about if you only [00:54:59] wanted to see one of the record [00:55:00] I Ds in that view? [00:55:02] Then you would need to specify that [00:55:05] in your list here. [00:55:07] And [00:55:08] so I don't only return one? [00:55:11] Yeah. [00:55:12] Yeah. If you did this, [00:55:14] then it would just return [00:55:15] that one. [00:55:16] Yeah. [00:55:17] Now the question is [00:55:20] question is if the record ID was invalid, [00:55:24] then it just returns empty. [00:55:26] So basically treats [00:55:28] those unknown record I Ds as invalid. [00:55:32] So if he pats in an invalid record ID, [00:55:35] it's not gonna throw an error. [00:55:37] It's gonna just [00:55:38] assume that, that [00:55:40] it, it's a search effectively. [00:55:43] It's like how many results [00:55:45] match your query. [00:55:46] In this case, it's [00:55:47] record ID equals this or [00:55:50] is one of these and [00:55:51] if none of them match it, [00:55:53] then to Airtable, I guess [00:55:55] that's not an error. It's just none match. [00:55:59] Yeah. So you do that if you're [00:56:00] trying to see of all these records, [00:56:02] which one of them fits this criteria, [00:56:04] which is the, the filtered view. [00:56:06] Yeah. [00:56:07] yeah. Yeah. [00:56:08] Yeah. So, I wonder if, yeah, [00:56:10] under the hood it might be [00:56:12] converting this to a [00:56:15] a [00:56:15] filter, [00:56:18] or a select filter formula [00:56:21] and it might be saying if record ID [00:56:25] equals this or if it equals the others, [00:56:28] that's what we do a lot with, [00:56:30] when you use the API, [00:56:31] it doesn't have this where [00:56:32] you can pass in record I Ds [00:56:35] to the API, [00:56:36] you can do a single one where you [00:56:38] just pass in the single [00:56:39] record [00:56:39] to get that. [00:56:41] But if you are saying return multiple [00:56:43] like specific record I Ds, [00:56:46] then you have to use like the [00:56:49] or, and you say record ID equals [00:56:52] A or record ID equals B [00:56:54] and so in that scenario, [00:56:56] it would work the same. [00:56:57] So I wonder if it's, [00:56:58] that's what it's doing under the [00:56:59] hood. [00:57:02] So [00:57:03] that is good to know [00:57:04] we've solved that mystery. [00:57:06] So I'll reply back to Jason G [00:57:07] and let him know that [00:57:09] mystery is solved. [00:57:13] Yay. [00:57:15] We did it [00:57:18] all right. [00:57:19] And that concludes [00:57:22] the season. So we will be back [00:57:25] in 4 to 5 weeks at the beginning of [00:57:28] July. So probably [00:57:30] after the fourth of July. [00:57:32] Maybe we'll start a week later, [00:57:35] but excited to see what [00:57:37] comes out in the next [00:57:38] couple weeks while we're off [00:57:40] and thank you all for joining [00:57:42] and we will see you next time.