10/10/2023 – BuiltOnAir Live Podcast Full Show – S16-E02
Duration: 60 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.
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.
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.
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.
Show Segments
Round The Bases – 00:03:12 –
Meet the Creators – 00:27:23 –
Meet Melanie Smith from Blue Tree Data Consulting.
Base Showcase – 00:32:32 –
We dive into a full working base that will It started as a way to document our data/tech stack and data wrangling processes for our clients. The Vault has continued to grow in usefulness now that we have good metadata about our clients’ setups. Out of this, we’ve created an easy way to track tech renewals, budgets, license costs, user assignments, and privacy policy links, with other (typically un-fun) things on the roadmap. It sends notifications to Slack and Clickup at increasing frequencies the closer a renewal date gets, and I’m working on a snooze button with the new actionable Slack message to make it stop if the reminder is no longer needed or desired. We keep an internal base that feeds each Client’s Tech Vault using sync’d tables, where we keep a master table of tech tools and their metadata handy to minimize Client data entry. From the Client’s base, they can choose to link into it or not, and if they don’t find what they want in it, the client can one-click request new additions or corrections to our dataset using AirTable forms. We also have Web Clippers attached to this base so that when we find new tools and vendors to add to our database, it’s easy for us as well. We’re also able to clip articles and attach them to those tools for reference later.
Automate Create – 00:48:56 –
Watch as we review and work through automations. Kamille follows up with her automation base from last week and covers the n8n automations to complete the project.
Full Segment Details
Segment: Round The Bases
Start Time: 00:03:12
Roundup of what’s happening in the Airtable communities – Airtable, BuiltOnAir, Reddit, Facebook, YouTube, and Twitter.
Segment: Meet the Creators
Start Time: 00:27:23
Melanie Smith – Melanie Smith founded Blue Tree Data in 2017 to wrangle data and empower non-technical leaders in the small to mid-size business and nonprofit industries. Most recently she has launched Data Capacity Builders Alliance which brings together experts in different subject areas who specialize in serving nonprofits and funders. Melanie has a doctorate in computer science and 15+ years of tech and data experience across a variety of industries: healthcare, marketing, academia, research, finance, oil, government contracting, nonprofits, and engineering. Passionate about seeing organizations and small businesses transform, one of her superpowers is coming alongside non-technical leaders to help them navigate confidently through complex tech and data challenges. Nonprofit grant management and reporting is a particularly painful process for most organizations and is where the “Tech Vault” that we’ll be exploring today got started. As a computer scientist who loves databases and building useful, practical tools, but prefers not to code if there’s a way around it, Melanie fell in love with Airtable about a year ago.
Meet Melanie Smith from Blue Tree Data Consulting.
Segment: Base Showcase
Start Time: 00:32:32
Tech Vault
We dive into a full working base that will It started as a way to document our data/tech stack and data wrangling processes for our clients. The Vault has continued to grow in usefulness now that we have good metadata about our clients’ setups. Out of this, we’ve created an easy way to track tech renewals, budgets, license costs, user assignments, and privacy policy links, with other (typically un-fun) things on the roadmap. It sends notifications to Slack and Clickup at increasing frequencies the closer a renewal date gets, and I’m working on a snooze button with the new actionable Slack message to make it stop if the reminder is no longer needed or desired. We keep an internal base that feeds each Client’s Tech Vault using sync’d tables, where we keep a master table of tech tools and their metadata handy to minimize Client data entry. From the Client’s base, they can choose to link into it or not, and if they don’t find what they want in it, the client can one-click request new additions or corrections to our dataset using AirTable forms. We also have Web Clippers attached to this base so that when we find new tools and vendors to add to our database, it’s easy for us as well. We’re also able to clip articles and attach them to those tools for reference later.
Segment: Automate Create
Start Time: 00:48:56
Airtable Automations – n8n automations with Airtable
Watch as we review and work through automations. Kamille follows up with her automation base from last week and covers the n8n automations to complete the project.
Full Transcription
The full transcription for the show can be found here:
[00:01:41] Welcome back. We are in episode two [00:01:44] of season 16 of the BuiltOnAir [00:01:46] podcast. Good to be back with everybody [00:01:49] we have with us today myself, [00:01:51] Alli and Kamille as always [00:01:53] and special guest, Melanie Smith. [00:01:56] Welcome Melanie. [00:01:58] Good to have you on our show. [00:02:01] We will we'll learn more about Melanie [00:02:04] and her story and what she's up to [00:02:06] later in the show. [00:02:07] But I will kick us off with what [00:02:09] we're gonna be talking about today. [00:02:11] The BuiltOnAir Podcast is an hour long [00:02:14] show where we talk about everything [00:02:15] Airtable. Keep you up to date on [00:02:17] all things Airtable. [00:02:19] We always start with our [00:02:20] Round the Bases of what people [00:02:22] are talking about in the different [00:02:24] communities, new features, [00:02:25] new functionality from Airtable. [00:02:28] Then a quick shout out to [00:02:30] On2Air, [00:02:30] our [00:02:30] primary sponsor [00:02:32] and then we'll learn more about [00:02:34] Melanie and what she has [00:02:36] going on and how she [00:02:37] came into this world of Airtable. [00:02:39] And then Melanie is gonna walk us through [00:02:42] one of her bases and call that she [00:02:44] calls the tech vault. [00:02:46] And then, [00:02:49] and we will give a shout out to [00:02:51] how to join our community. [00:02:53] And then finally, [00:02:54] Kamille is going to finish up [00:02:56] if you watched last week's episode. [00:02:58] This is a continuation on [00:03:00] using n8n with Airtable [00:03:03] and some automation work on that front. [00:03:06] So with that [00:03:08] our Round the Bases, [00:03:12] first thing I was gonna highlight, [00:03:14] obviously, I don't think any of us are [00:03:16] in France right now, but there is a big [00:03:18] conference going on in France. [00:03:20] The No Code Summit, [00:03:22] which I believe is a, is a organization [00:03:26] based in, in France. [00:03:27] And [00:03:29] I know there are some people [00:03:30] in our community that are out there, [00:03:32] so shout out to them. [00:03:33] Hopefully you're having fun, [00:03:35] but if you wanna follow what's going on, [00:03:37] this is their, their Twitter handle. [00:03:39] I think they had a live stream going. [00:03:41] Yeah, it might be going right now [00:03:43] or maybe this is a replay. [00:03:47] So [00:03:48] fun stuff. I don't, I haven't, [00:03:50] I haven't seen any [00:03:51] announcements or anything. [00:03:53] I, I do believe Airtable [00:03:54] was there. This was a bigger one than, [00:03:56] than just Airtable. So it's kind of all [00:03:58] no code low [00:03:59] platforms. [00:04:02] But [00:04:03] yeah, [00:04:05] yeah, I saw a photo of some of [00:04:07] you know, fellow consultants, [00:04:10] just sort of at a cafe, [00:04:12] you know, just a group, [00:04:13] a group photo in France and [00:04:15] like [00:04:16] Jealous [00:04:17] Ne [00:04:18] next year. Maybe we'll see. [00:04:20] Yeah. [00:04:22] Yeah. [00:04:23] Yeah. I think there is people [00:04:25] that have been on the show [00:04:26] that are presenting and [00:04:27] so good stuff going on there. [00:04:30] Ok. As far as announcements, [00:04:33] there was one announcement from Airtable, [00:04:37] new formatting options. Who's had [00:04:39] a chance to play with this and can walk us [00:04:42] through the updates? [00:04:45] I am slightly confused about them [00:04:48] because my, I couldn't [00:04:50] see them in a currency field, [00:04:52] but in this screenshot, [00:04:54] you know, it has the dollar sign for, [00:04:58] you know, the second number. [00:05:00] I don't know if my, it just isn't [00:05:02] fully rolled out yet, [00:05:03] but I tried it yesterday [00:05:04] and [00:05:05] wasn't able to get it to [00:05:07] do it in currency fields. [00:05:09] I did it, I was able to do it [00:05:11] with a formula [00:05:12] that's formatted as a currency. [00:05:14] So I don't know, I [00:05:15] can, [00:05:16] I can't do that either. So, [00:05:19] so yes, it's there for number [00:05:21] just to explain what it is. [00:05:23] It's you could already have had [00:05:25] a decimal places, [00:05:26] but now you can control the [00:05:28] formatting as in, [00:05:29] is the comma your 1000 separator [00:05:33] or is it your decimal? [00:05:35] And then [00:05:38] I like that there's an option for a local, [00:05:40] so it presumably will read your [00:05:42] browser settings and [00:05:43] will adapt if you're in America [00:05:46] where we use a comma [00:05:47] for the 1000 separator [00:05:49] or period. If you're, [00:05:50] I think Europe uses [00:05:52] periods. [00:05:55] You can also abbreviate large numbers. [00:05:58] One of my colleagues here has been [00:06:01] asking for this specifically [00:06:02] for currency fields, [00:06:04] which is why I was surprised. [00:06:05] I, I couldn't see it. [00:06:06] I'm sure it's probably there today. [00:06:08] But yes, you can shorten things up [00:06:10] to if you're dealing with millions [00:06:13] as a number, you can just put the M [00:06:16] symbol which makes numbers [00:06:18] much smaller and easier to understand. [00:06:22] Absolutely. Yeah, I'm not [00:06:24] seeing the currency placeholder. [00:06:27] Well, it would be in [00:06:28] a currency field still. [00:06:30] Can you change the type to currency? [00:06:33] Which at this point [00:06:35] do we need a separate field type? No, [00:06:38] right. [00:06:39] Ok. So you have the options. [00:06:41] I didn't have the options. [00:06:43] I assume it will show up [00:06:44] in my account [00:06:46] today. I was trying on an enterprise [00:06:47] account which is why I was surprised. [00:06:49] Yeah, [00:06:52] Scott Rose says most countries are [00:06:54] opposite of what America does in terms of [00:06:56] comma versus period. [00:06:58] This is true. [00:07:00] II I know a lot of especially European [00:07:03] users were asking for this for years now. [00:07:06] So this is really exciting stuff. [00:07:09] I'm sure for them. [00:07:10] Yes. [00:07:11] If there were ever a week to release it, [00:07:13] it's when you have a no co conference [00:07:15] in France. Absolutely. [00:07:18] I'm still waiting for the ability [00:07:21] to format currency [00:07:23] values with a formula [00:07:24] so you can get a currency string. [00:07:26] That would be the biggest thing for me. [00:07:29] I would kill for that. [00:07:30] I would agree. [00:07:31] I think there surely there's some, [00:07:34] you know, if this is all code underneath, [00:07:37] I would love if that were a formula [00:07:39] function as well that if I needed text [00:07:42] along with whatever number [00:07:44] is being represented. I could format [00:07:46] it, with a, a decimal separator, [00:07:49] a comma seperator [00:07:50] or abbreviated. That'd be great. [00:07:52] Absolutely. [00:07:55] Yeah, two things, two things [00:07:57] that I think are still needed. One is, [00:08:01] the ability to just set like [00:08:03] the defaults because you have to do [00:08:05] this on every field, you have to configure [00:08:07] it. Right. So, [00:08:08] it's pretty annoying [00:08:10] if you want a standard [00:08:11] currency across all your base, [00:08:13] you gotta go to every field. [00:08:15] So if you're using lots of field numbers [00:08:18] formatting would be nice to [00:08:20] set like a base level default. [00:08:23] I would agree [00:08:24] way back when I made a script [00:08:27] and also a custom app [00:08:28] that was never released that [00:08:30] would bulk change [00:08:32] field configuration options. [00:08:34] It obviously is incompatible [00:08:36] with these new settings [00:08:37] because they were added [00:08:38] recently and I can't see them [00:08:40] in my account them. [00:08:41] But it is possible to develop a solution [00:08:45] that will kind of run through every [00:08:48] number field or currency field [00:08:50] in your base [00:08:51] and adjust the settings for you. [00:08:53] Although it [00:08:54] feels like that should be a first party [00:08:56] feature and not something that you would [00:08:58] have to code yourself, [00:09:00] which is why I never released it, [00:09:01] but it is possible. [00:09:03] Well, do we know if these new features [00:09:06] can be updated that way? [00:09:09] They, [00:09:10] they certainly should. [00:09:11] I feel like it would be weird [00:09:13] if they added a different [00:09:14] under the hood if you've [00:09:15] ever played with [00:09:16] creating a new field or editing fields [00:09:19] programmatically. Each field type has [00:09:22] an options parameter and under options [00:09:24] it will change depending on the type of [00:09:26] field. So [00:09:27] for current [00:09:28] a [00:09:28] number, it used to be decimal places. [00:09:32] you know, some number up to 10, I think. [00:09:34] And now it would make sense to me [00:09:36] to put that as a property under that same [00:09:38] options parameter [00:09:40] for thousands [00:09:42] for abbreviation. [00:09:44] If they put it somewhere else, [00:09:45] I think that's for [00:09:46] design, [00:09:48] I'm gonna assume they, [00:09:50] they were consistent. [00:09:53] Well, [00:09:53] one thing [00:09:56] that I don't believe is there yet is [00:10:00] so like you, I think Alli mentioned [00:10:02] that under the hood, this is still just a [00:10:04] number. So if you're using a third party [00:10:06] tool like a portal or something, [00:10:08] this information does not get [00:10:11] passed along yet in the API [00:10:13] and so you can't, so it, the formatting [00:10:17] does not carry forward in other tools, [00:10:20] which is unfortunate. [00:10:22] So those tools you would have to [00:10:24] configure them again [00:10:25] to format it the way you [00:10:26] want if they support it, [00:10:29] right. When you're scripting in [00:10:31] inside of Airtable, you have the option [00:10:34] of doing get cell value or get cell [00:10:36] value as string [00:10:37] for which the API had the [00:10:39] same thing. Because if you [00:10:40] got the cell value as a string, [00:10:43] presumably it would read [00:10:45] dollar sign 61.9 M. [00:10:47] So you wouldn't have to format it, [00:10:50] you know, yourself in [00:10:51] whatever [00:10:52] you know, front end you're using [00:10:54] it wouldn't be a number obviously [00:10:56] because M and dollar [00:10:57] aren't numerical. [00:10:59] It would save you time. [00:11:02] Yeah. Yeah. [00:11:05] Yeah. Well, this is a huge, [00:11:06] you know, monumental. I think [00:11:08] this is probably one of the top [00:11:10] requested features for 10 years and [00:11:14] it's finally there to some, [00:11:16] to some extent. [00:11:18] Awesome. [00:11:19] So [00:11:20] that is good. Here's some discussion. [00:11:23] MEREDITH says, Hallelujah [00:11:25] commas periods [00:11:27] way more formatting for number [00:11:29] and currency fields now available. [00:11:31] So lots of discussion here [00:11:33] in the BuiltOnAir community about it. [00:11:35] And I know I saw it on Reddit [00:11:37] and Facebook and other places. [00:11:39] So [00:11:40] that is good. It's finally going out. [00:11:45] OK. Continuing on with the [00:11:47] the BuiltOnAir community. [00:11:49] This was something [00:11:50] I first saw this from Scott. [00:11:52] I also saw this posted [00:11:53] elsewhere [00:11:54] but mentioning that the co [00:11:56] the paste feature where it would [00:12:00] auto expand rows some [00:12:01] at some point a few days ago broke. [00:12:04] And I haven't tested this. [00:12:06] What does it actually do? [00:12:08] Does it just not, [00:12:09] it just doesn't paste the rows [00:12:11] that you were pasting? [00:12:13] I've seen it not paste [00:12:15] and I've also seen it [00:12:16] like kind of transpose all the values to [00:12:20] vertical [00:12:22] instead of [00:12:23] actually in all of the fields [00:12:25] that you're trying to paste it into. [00:12:28] I have not tested it [00:12:30] in the last two days though. [00:12:33] Hopefully, [00:12:35] I know that a couple of people [00:12:37] reached out to support [00:12:38] and support was like, [00:12:38] yeah, that's a known issue. [00:12:40] We're, we're working on it. [00:12:43] But I don't know the [00:12:44] like as of a day ago [00:12:45] it was still happening. [00:12:49] So [00:12:51] yeah, that's unfortunate that, [00:12:53] that cause that's, that's been there, [00:12:55] that was, that's been there [00:12:57] from the early days [00:12:59] and it's very useful. [00:13:00] I mean you, [00:13:01] it's pretty common, you paste and [00:13:03] expand the table. [00:13:07] Yeah, I think the workaround [00:13:08] is probably the, [00:13:09] if you right click on a [00:13:11] stable name, you can do [00:13:14] import or insert one of those and [00:13:18] paste table data is an option. So [00:13:20] you, [00:13:21] you'd likely be able to do it there. [00:13:23] I don't think the bug affects that method [00:13:25] but it is less convenient and it means [00:13:27] you can't do it from within an interface. [00:13:29] So [00:13:30] hope that it is fixed soon. [00:13:33] Absolutely. That is the workaround [00:13:35] that Airtable suggested. [00:13:38] I think it was brandy that shared [00:13:40] a screenshot [00:13:41] of supports response to her in [00:13:42] the Facebook group. [00:13:45] and they recommended [00:13:46] exactly what Kamille just said [00:13:49] in the interim. [00:13:51] Yeah. [00:13:53] Yep. [00:13:54] Sounds good. [00:13:55] So hopefully they, they get that fixed. [00:13:58] You would think that would be like [00:14:00] it was working before. [00:14:01] So the code is there. [00:14:02] You think it wouldn't be too hard [00:14:04] to [00:14:04] bring it back. [00:14:06] Yeah, I don't, I don't know what [00:14:08] recent update [00:14:09] would have broken that feature. [00:14:10] So, [00:14:11] yeah. [00:14:11] Yeah, [00:14:12] it's also good to know that I'm not [00:14:14] the only one that releases bugs and [00:14:16] production code and breaks things [00:14:19] that happens to the best of us. [00:14:21] Yeah. [00:14:23] All right. Here's one. [00:14:25] This is kind of cool, Marcus [00:14:27] In the BuiltOnAir community [00:14:30] gives a shout out to the podcast. [00:14:32] We did an episode a few, [00:14:34] I think it was last [00:14:35] season [00:14:36] and using the sleep feature. [00:14:39] And he reached out to me [00:14:40] and said, hey, can I get that script [00:14:43] to basically put a pause [00:14:45] in your automation. [00:14:46] And I thought this was kind of cool [00:14:48] how he uses it. So basically, [00:14:52] he doesn't show the base, [00:14:53] but my assumption is [00:14:55] he's expecting people to fill out [00:14:57] things and [00:15:00] then you can click [00:15:02] a button to like validate [00:15:03] the, the record to see if everything [00:15:05] has been filled out correctly. [00:15:07] And if you haven't filled something out, [00:15:09] it must update a cell that says you forgot [00:15:12] to fill this out and then it waits [00:15:14] there like 30 seconds to, [00:15:17] to see to give you time [00:15:19] to fill it out or something. So [00:15:21] it's kind of interesting built like [00:15:24] U I inside of automations. [00:15:26] You don't see that very often. [00:15:29] Very cool. [00:15:31] So, [00:15:34] yeah, [00:15:35] that was cool. [00:15:37] All right. [00:15:38] Continuing on. Here's another one. [00:15:40] This was kind of cool. [00:15:42] This was I saw it on Twitter or on X and [00:15:47] Ian [00:15:49] put together [00:15:51] a base that pulls data from Zillow. [00:15:53] If you're, if you're house shopping [00:15:56] or looking [00:15:57] and he actually kind of created, [00:15:59] the site, he put it up on product hunt and [00:16:03] so you can actually, purchase it. [00:16:06] What I liked about this is, [00:16:07] you know, Airtable. I think lots of people [00:16:10] have always kind of had this idea of [00:16:12] using Airtable is like a, [00:16:15] a way to build some kind of mini [00:16:16] app and then sell that app. [00:16:19] But it, it's not great, like there's [00:16:21] a lot of issues with it that it hasn't [00:16:23] worked out well. [00:16:25] But this was kind of a, [00:16:27] a good use case of it that [00:16:29] it's not too difficult. [00:16:31] So basically how it works is [00:16:33] you, [00:16:34] I guess you pick [00:16:36] the market that you want and then you, [00:16:39] and then you duplicate the base [00:16:41] and then he must have automations [00:16:44] in there that pull from the API [00:16:47] to populate [00:16:48] the, the market that you're looking for. [00:16:51] And so kind of a cool use case of actually [00:16:55] being able to repurpose a mini application [00:16:58] that, that could have commercial use [00:17:01] built inside of Airtable. [00:17:04] So [00:17:04] we'll say good luck [00:17:06] with that. [00:17:07] I don't know how much it costs. [00:17:10] Let's see how much it costs [00:17:12] $40. [00:17:13] So, oh, [00:17:14] monthly [00:17:15] per [00:17:15] month, $2 a month. [00:17:18] Ok, good luck with that. [00:17:21] But yeah, so it is possible to, [00:17:24] to build some kind of business application [00:17:27] directly in Airtable. [00:17:30] Absolutely. [00:17:32] Yeah. Any comments? [00:17:35] No exciting stuff. [00:17:37] I like it [00:17:39] Yeah, hopefully I would [00:17:40] love for Airtable to [00:17:42] make it [00:17:43] actually possible to do this more and, [00:17:46] and truly use it as a, as a platform [00:17:49] to build and sell commercialized apps [00:17:52] but not quite there yet. [00:17:54] Yeah, I think the biggest, [00:17:56] it would probably be like pushing, [00:17:57] you can't push new updates [00:17:59] to the people that [00:17:59] have duplicated your template. [00:18:01] So it's like whatever time [00:18:03] you duplicate that [00:18:03] template, it's frozen, [00:18:05] you don't get the new features. [00:18:07] Yeah. So [00:18:08] yeah. [00:18:09] Yeah. [00:18:09] Yeah, that's, that's why I never [00:18:12] really went down that path. [00:18:13] I've had lots of ideas of things [00:18:15] that could be done, but [00:18:17] more headache I think than, [00:18:19] than benefit at this point. [00:18:24] OK, so moving on to table forums, [00:18:27] a great website for communication or [00:18:31] discussion of, of Airtable related stuff. [00:18:34] Scott did just a shout out to [00:18:36] Scott, who I think is on listening. [00:18:39] He did a webinar with [00:18:43] using Airtable and no loco [00:18:46] and he, he also demoed how to use no [00:18:49] loco on our show [00:18:51] on the last, last season. [00:18:54] And so went into more detail. [00:18:56] This was sponsored with no [00:18:58] loco [00:18:59] and [00:19:00] gives great insight into that. [00:19:02] So if you're looking for a portal, [00:19:04] I feel like I'm seeing no loco [00:19:05] more and more, maybe it's just from Scott, [00:19:07] but I've seen it from other people [00:19:08] promoting it more. [00:19:10] So this is starting to get [00:19:12] a lot more traction [00:19:13] as being a a viable solution [00:19:15] at the portal side. [00:19:17] Excellent. [00:19:20] And then lastly also from the table forums [00:19:25] only in, you know, amongst real [00:19:28] Airtable enthusiasts, will you get such a [00:19:30] heated discussion of [00:19:32] check boxes versus drop downs [00:19:35] versus text fields. [00:19:37] But it's a great question [00:19:40] Airbender Marcus asks, [00:19:42] when do you use check boxes, [00:19:44] when, when she use a single [00:19:45] select field or a text field to [00:19:48] kind of automate triggers and whatnot? [00:19:51] So good discussion. [00:19:54] Scott talks about not using text fields [00:19:57] because of the issue of typing [00:20:00] and that will trigger [00:20:01] the automation multiple times. [00:20:03] So a drop down is, [00:20:05] is beneficial [00:20:06] to just trigger it on select. [00:20:09] And then Kuovonne [00:20:10] goes into more detail and kind [00:20:12] of all the pros and cons [00:20:14] of each and when you [00:20:15] might use one versus the other. [00:20:18] I tell people [00:20:21] whenever I'm doing consulting [00:20:22] or I'm setting something up, I [00:20:24] really try hard to steer people [00:20:26] away from check box fields. [00:20:28] They're [00:20:29] so easy to accidentally check [00:20:31] and uncheck [00:20:32] without even noticing you did it. [00:20:36] The single select field [00:20:37] requires two clicks. [00:20:39] So it's much more intentional if [00:20:40] you want to change that value. And that's [00:20:43] generally what I'll do is I'll have [00:20:44] a single select field. One of the options [00:20:46] has like a little lightning bolt emoji [00:20:48] that's like start automation or whatever, [00:20:50] I'll name it appropriately. [00:20:51] And so if you [00:20:52] set it to that, [00:20:53] it's much more intentional. [00:20:55] It actually triggers the automation [00:20:56] and then that same automation [00:20:58] can change the value to say [00:20:59] automation run or whatever. [00:21:03] I find it so much more [00:21:05] safe, [00:21:06] I guess for lack of a better [00:21:08] word. [00:21:10] Yeah. [00:21:12] Yeah, [00:21:13] I'm similar in my methodology. [00:21:15] I do have several instances [00:21:18] now where I'll [00:21:18] build a base and interface for, [00:21:22] you know, the intended team, [00:21:23] but they don't have access to the base. [00:21:25] So in those instances, [00:21:27] I might have a automation [00:21:29] drawn up a check box because [00:21:30] it's triggered by a button click in an [00:21:32] interface. And it basically means [00:21:35] you can only click it once, [00:21:37] which [00:21:38] sometimes is [00:21:40] intentional, like apply this template. [00:21:43] I only want you to do that once [00:21:44] you shouldn't be [00:21:45] reapplying a template four [00:21:46] times to the same record. [00:21:48] But in the instance where you may [00:21:50] not want or need that [00:21:52] or if you want to have, [00:21:54] you know, [00:21:55] to report to the end user. [00:21:57] If an automation failed [00:21:58] with the error was sometimes [00:22:00] I'll use a single select field [00:22:02] and have extra options for error [00:22:04] record, not found or error, [00:22:08] run runtime error or something [00:22:09] like that so that you could communicate, [00:22:11] not only did it fail by [00:22:14] rather than them having to like [00:22:15] dig through their emails and [00:22:16] trying to find [00:22:18] those kind of alerts. [00:22:21] Absolutely. Yeah. [00:22:24] Yeah. Here's one, here's a counter [00:22:27] argument for check boxes [00:22:29] over single select [00:22:30] is that single select can come [00:22:32] sometimes get overridden with non [00:22:34] wanted values [00:22:36] if you like paste accidentally into it, [00:22:38] you'll get, it will automatically add [00:22:40] that value to the drop down list. [00:22:44] Or you can [00:22:45] create a lot of times I'll like misspell [00:22:48] something and then like hit enter and [00:22:49] it creates the misspelled version [00:22:52] and add that to the drop down. [00:22:54] So there are some [00:22:55] caveats to drop downs [00:22:58] but also similar with, with check boxes, [00:23:01] you can't set a default value [00:23:02] but you can with single select. So that's [00:23:05] a [00:23:06] plus for a single select. [00:23:09] I like to use [00:23:10] single selects, especially [00:23:12] in interfaces to trigger [00:23:14] different automations like [00:23:15] like because then I can just use one [00:23:17] automation and the button [00:23:19] on the page, [00:23:20] I have several different buttons that set [00:23:22] that same single select to different [00:23:24] values. [00:23:26] So then I can use conditional logic [00:23:27] and be like if it, if the value is this, [00:23:29] do this part, if it's this do [00:23:31] this part and it saves on [00:23:32] the number of automations I have to have. [00:23:35] Yeah, [00:23:36] it's great not to have 10 trigger fields. [00:23:40] Exactly. No. [00:23:42] And [00:23:44] yeah, exactly what Jan said there. [00:23:46] I like the idea of an action field to host [00:23:48] multiple triggers. [00:23:49] That's exactly what I do. [00:23:50] I I usually call it interface [00:23:51] actions [00:23:52] and [00:23:54] it's just that like field [00:23:55] that's not visible [00:23:56] in the interface but the buttons [00:23:58] all [00:23:58] drive it. [00:24:01] Nice. [00:24:04] So yeah, so hopefully that's some [00:24:06] some best practices for you to [00:24:08] carry out in your, in your builds [00:24:11] and that kind of concludes [00:24:13] you know, last week [00:24:14] there was a lot of discussion of, [00:24:16] of news and updates. [00:24:17] This week was relatively quiet. [00:24:21] One major new feature, one major new bug [00:24:25] I par for the course with Airtable [00:24:28] I have one other bug that it keeps [00:24:30] happening. I don't know if I call it a bug [00:24:31] but [00:24:32] some people were talking about it [00:24:35] in the community on Facebook [00:24:36] where in Chrome, [00:24:38] chrome thinks that every keystroke [00:24:41] I make is a password field in Airtable [00:24:44] now. So, like [00:24:46] if I search for a field name [00:24:48] or if I'm, even if I'm scripting [00:24:50] or like anything, I'll type something [00:24:52] and it'll be like, do you want to update [00:24:53] your password to [00:24:55] first name? [00:24:56] Like [00:24:58] it's, and it's infuriating. It's like [00:25:01] been going on for at least a week now [00:25:04] and it [00:25:05] really is bothersome. [00:25:07] Interesting. [00:25:09] Some [00:25:09] of [00:25:09] us [00:25:09] have [00:25:10] reported that as well. [00:25:11] Yeah. [00:25:14] Yeah, that would be annoying. [00:25:16] So, they must have done [00:25:17] some kind of update to [00:25:18] their U I cells. Yeah. [00:25:23] I wonder if they switched [00:25:24] out a library or something [00:25:26] or updating, [00:25:28] possibly. Yeah. I'm not sure [00:25:29] if it's on Airtable or Chrome side, [00:25:31] but Airtable [00:25:32] is the only site that it's happening [00:25:34] to me on. [00:25:35] So I'm guessing it's on Airtable set. [00:25:38] Yeah. [00:25:40] Yeah. [00:25:41] So, [00:25:42] well, all right. Airtable [00:25:44] get to work. Make those fixes. [00:25:47] Ok, let's move on. [00:25:48] Let's talk about backups. [00:25:50] So, yeah, you want your data, [00:25:51] not get overridden with passwords [00:25:53] and whatnot. [00:25:54] So you want to back up your data [00:25:56] outside of Airtable. That's best practice [00:25:59] On2Air backups is the solution for that. [00:26:02] We'll help get all your [00:26:03] data plus your attachments [00:26:05] and outside store it in [00:26:08] box dropbox or Google Drive [00:26:11] to make sure that your data is secure [00:26:13] and available. If anything were to happen, [00:26:16] would happen to your Airtable account. [00:26:19] And so today we're talking [00:26:21] about snapshots. [00:26:22] We're talking about that all [00:26:23] month. [00:26:24] We have a new guide that will explain [00:26:26] everything there is to know about [00:26:28] snapshots how they work in Airtable [00:26:31] and [00:26:32] thought we'd end with a comedic relief. [00:26:35] Hannah posted this in the BuiltOnAir [00:26:37] community. Always make [00:26:39] sure to have screenshots [00:26:40] drop the database. [00:26:42] But don't worry, I made a screenshot, [00:26:44] you mean snapshot, [00:26:45] snapshot, right? [00:26:47] So difference between [00:26:49] a screenshot and a snapshot. [00:26:51] We want snapshots for backups. [00:26:54] Ideally, [00:26:56] ideally, yes, screenshots [00:26:57] maybe gives you a little bit, [00:26:59] you'd have to retype it [00:27:00] all yourself. But yeah, [00:27:04] awful. [00:27:07] Yeah. So [00:27:08] check us out on2air.com. [00:27:10] You can also use BuiltOnAir [00:27:11] for discounts when you sign up [00:27:14] and that will help you out. So, [00:27:17] all right, let's move on [00:27:20] Melanie. Let's learn a little [00:27:22] bit about Melanie. [00:27:24] Yay, welcome. Thank you. [00:27:26] It's great to be here. [00:27:28] Great to have you on the show. [00:27:31] Do you wanna maybe start out by [00:27:33] telling us a little bit [00:27:34] about your background [00:27:35] and how you discovered Airtable. [00:27:36] Sure. [00:27:37] I am a computer scientist by education and [00:27:42] quickly learned that I really [00:27:45] didn't enjoy coding. So [00:27:47] I've always been someone who looks [00:27:49] for the tools that just don't need as much [00:27:52] coding support. [00:27:53] But I love data and so, you know, [00:27:56] databases are kind of my love language. [00:27:59] And [00:27:59] so being able to combine those two, [00:28:01] I think I looked at Airtable a [00:28:03] long, long time ago and just wasn't [00:28:05] totally impressed [00:28:06] and then I found it again [00:28:08] maybe a year ago. [00:28:09] And it kind of fell in love with it. [00:28:11] I was like, this is what access was [00:28:13] supposed to be back in the days [00:28:15] of Windows 95. And [00:28:16] you know, all of them, [00:28:18] all of that kind of era. But [00:28:21] anyway, I've a client turned [00:28:23] me on to it again [00:28:24] and they had me kind of redo [00:28:26] their, their database. And I was like, [00:28:29] man, this is a really solid tool. [00:28:30] I am dealing with a little bit of, [00:28:33] I call it software rage. [00:28:35] After all of the pricing changes [00:28:37] and that kind of [00:28:38] has changed some of the plans for [00:28:40] what I'm actually gonna [00:28:41] show you guys today. [00:28:42] But [00:28:42] anyway, it's been a good relationship [00:28:45] so far for the most part, [00:28:47] that's why I appreciate the decor [00:28:49] in the background. [00:28:50] Really driving home your [00:28:52] values. [00:28:52] Yeah, [00:28:53] you two could have 10, it's a wait, [00:28:56] here we go. [00:28:57] Yes. [00:28:59] Etsy, great place. Love that [00:29:02] binary heart. [00:29:03] That's [00:29:03] good. [00:29:05] Oh, my goodness. [00:29:06] That's awesome. So, were you doing [00:29:08] consulting work before you discovered [00:29:10] Airable? And [00:29:12] yeah, so I started Blue tree data [00:29:15] in 2017 and with the hopes of doing [00:29:17] analytics for whoever [00:29:19] would pay me dollars. [00:29:20] And what I realized is that no one [00:29:23] was ready to do analytics, [00:29:25] they needed help with like, [00:29:28] do we even have data? [00:29:30] And what does that data look like? [00:29:32] And is it clean? Is it reliable? [00:29:34] And how do you deal with that? And [00:29:36] oh gosh, our software doesn't work [00:29:38] together and all of those things. [00:29:40] And so [00:29:40] I kind of morphed from, [00:29:42] I would say the data science, [00:29:44] data analytics kind of [00:29:46] area [00:29:46] back into, [00:29:47] I would call it data architecture [00:29:49] and data warehousing and that sort [00:29:51] of thing. [00:29:52] So it worked across a bunch [00:29:55] of verticals, hospitals, [00:29:57] Engineering finance, nonprofit world, [00:30:02] all different kinds of [00:30:04] genres. They all have the same needs, [00:30:07] they all have messy data, [00:30:08] they need somebody to clean it up [00:30:10] before you can actually make it useful. [00:30:11] So [00:30:12] I've spent a long time doing [00:30:14] just kind of that data [00:30:16] warehousing fundamentals [00:30:17] and I'm finally raising up better clients [00:30:20] that are ready to kind of go to that [00:30:22] next step. [00:30:22] I mean, it's a smaller percentage [00:30:24] than the ones that just need clean [00:30:26] up. But [00:30:26] it's definitely a fun space. [00:30:29] Absolutely. And do you use Airtable [00:30:31] to do a lot of that normalization of the [00:30:33] data? [00:30:34] So [00:30:35] I actually have more complex [00:30:37] use cases than what Airtable can handle. [00:30:40] So we use a lot of tableau prep [00:30:43] in the background [00:30:45] and I've been exploring trifecta, [00:30:47] which is an altri [00:30:48] product that is white labeled [00:30:50] by both Google and Amazon. [00:30:53] And it's, it's a super expensive tool [00:30:56] but it's, it's a nicer tool, [00:30:58] more mature tool than tablet prep. [00:31:00] But they all do that etl work [00:31:02] of [00:31:03] you know, sucking data out [00:31:05] and transforming it [00:31:06] and putting it into a good format [00:31:07] and then [00:31:08] usually once that flow runs, [00:31:10] I will then import it [00:31:11] into Airtable if that's the [00:31:12] end goal there. So [00:31:15] excellent, excellent. So are you using [00:31:18] a lot of like the data visualization [00:31:20] tools in Airtable now? [00:31:21] Or actually building out like [00:31:23] full on like apps [00:31:24] and [00:31:25] yeah, [00:31:26] I would say both and [00:31:27] for super simple use cases, [00:31:29] Airtable is great. [00:31:30] I'll show you a couple of them, [00:31:32] you know, simple stuff. [00:31:33] But I would say [00:31:35] the majority of my clients [00:31:36] need something more like a power B [00:31:39] I or whatnot. So [00:31:41] it's, it's kind of a, it's a trade off, [00:31:43] right of you can have real time [00:31:45] connected to your data, [00:31:47] but super simple or you can, you know, [00:31:49] go this other path and, [00:31:51] and go power bi I tableau [00:31:52] whichever front end. [00:31:54] So, [00:31:55] yeah. Absolutely. I agree. It's, [00:31:57] it's cool. The, the charts are nice [00:31:59] but they're not quite where [00:32:02] exactly. [00:32:03] If you wanna hit a wall fast, [00:32:06] try and make a pivot table. [00:32:08] I, [00:32:09] I, you're gonna run into [00:32:10] several limitations. [00:32:12] Yeah, it's, it's rough. [00:32:15] Absolutely. [00:32:16] Well, I'm excited to see what you've [00:32:17] got to show if you want to share your [00:32:19] screen and [00:32:20] give us. [00:32:21] Yeah, [00:32:21] absolutely. [00:32:26] My [00:32:27] second. [00:32:28] All right. So yeah, you're [00:32:30] gonna show us your, your tech vault [00:32:31] if you wanna [00:32:32] get your screen ready. [00:32:33] Let me I'm gonna try to pull this out [00:32:36] so I can see you guys at the same time. [00:32:38] So hopefully that doesn't [00:32:40] mess up my sharing. [00:32:42] Yeah, you're good. Perfect. All right. [00:32:45] So I'm just gonna start on the interface [00:32:48] side because I think that that is [00:32:50] the majority of where we use this tool. [00:32:53] But [00:32:55] so kind of the use case for it was [00:32:58] because we do a lot of data cleanup, [00:33:01] we are trying to um just [00:33:04] figure out how to document [00:33:06] what everybody has. I get lost a lot in, [00:33:09] you know, you have 40 clients and [00:33:11] which version of Quickbooks [00:33:12] are you on? [00:33:13] And you know what tool are you sucking [00:33:15] data out of? [00:33:16] And where is it all headed [00:33:17] and all of that? [00:33:18] So I needed something to kind of be [00:33:20] the crm of technology [00:33:22] for my clients because [00:33:23] everyone has a fairly complicated stack. [00:33:26] And all of that and [00:33:28] all the CRM tools, you can kind of [00:33:29] some of them, you can finagle to kind of [00:33:31] track some of that. But it's not, [00:33:33] it's not elegant, it's not really, [00:33:35] it doesn't have all the reporting [00:33:37] that I would love to have. [00:33:38] So part of what we have been doing [00:33:41] is building this out as just kind of this [00:33:44] is our internal documentation [00:33:46] for those types of client projects. [00:33:48] And then all of a sudden I realized, [00:33:50] hey, this could actually be useful to the [00:33:52] client for all these things [00:33:53] that people don't love doing [00:33:55] and why not have both be true. [00:33:59] So what you're seeing today, [00:34:01] I call it the tech vault because it is [00:34:04] basically all the metadata [00:34:06] about all the tools [00:34:07] that are part of your toolbox. [00:34:09] I'm super original with my naming. So [00:34:13] suggesting [00:34:14] you're welcome. [00:34:16] So this is just kind of the dashboard, [00:34:18] but I'll come back to it in a second. [00:34:20] This is the core of the data [00:34:23] is just the toolbox of. [00:34:26] Here's all the technology [00:34:28] that is, you know, in use. It is [00:34:33] it's got a lot of just metadata [00:34:37] about it. And [00:34:38] what I really love is that [00:34:40] I've gotten all the formulas [00:34:42] down here of here's your [00:34:43] cost per user, here's your, [00:34:45] you know, base cost [00:34:46] that's maybe annual and then you [00:34:48] have a monthly user cost or whatever. [00:34:50] So it gets to where you can get a [00:34:53] comfortable annual cost in there. [00:34:56] I can add users to the paid list [00:34:59] or the free list [00:35:00] cause most tools have, [00:35:02] you know, some kind of combination there. [00:35:05] Renewals are in here, [00:35:07] the renewal frequency is in here. [00:35:09] I always forget about those renewals that [00:35:12] are every three years [00:35:13] or something like that [00:35:14] and I forget to put it in the budget [00:35:17] and then I feel very sad [00:35:19] when that comes around. And so [00:35:21] this is just kind of, [00:35:22] you know, my brain needs it. [00:35:24] But what's really cool is that I have [00:35:27] linked this to what I just call base [00:35:29] tables. And so if you think [00:35:32] of just CRM tables of this is the [00:35:35] where we've got all the logos [00:35:37] loaded and most of the websites were still [00:35:40] filling in the privacy [00:35:41] and security policies, [00:35:42] compliance capabilities [00:35:44] because we deal with a lot of clients with [00:35:47] sensitive kind of data. [00:35:49] So just being able to know if [00:35:51] if a tool is capable [00:35:53] of a certain compliance [00:35:54] standard. [00:35:55] And then having the, [00:35:58] you know, what type of licenses [00:36:01] and what kind of nonprofit discounts if [00:36:03] you don't live in the nonprofit world, [00:36:06] generally, software tools are very [00:36:08] generous with different [00:36:09] types of discounts. And so [00:36:11] some of them publish it on the website, [00:36:13] some of it you have to go through [00:36:14] tech soup or another kind [00:36:16] of third party verification. [00:36:17] And all of that. So, [00:36:19] this is where we have internally [00:36:23] kind of created this base. [00:36:25] And [00:36:26] what that means is that our clients [00:36:28] don't have to enter all that data. [00:36:30] So [00:36:31] when I [00:36:33] link the tool here to the tool [00:36:36] in the base, it sucks in the logo, [00:36:40] it sucks in, you know, all of those links [00:36:42] that way. [00:36:44] I don't know, it's just easier. [00:36:46] We also have a ticketing thing [00:36:48] in the background. That is kind of cool. [00:36:51] So I'm not in love with my buttons yet, [00:36:54] but I was trying to preserve real [00:36:56] estate on the screen. [00:36:59] But if I go in here [00:37:01] and of course, it's not working. [00:37:04] So because it's already there. [00:37:05] So it basically links to [00:37:08] a record request form [00:37:10] and there's a new or correction option [00:37:13] and it's prefilled with all the [00:37:16] URL parameters that [00:37:18] that are out there and then [00:37:20] it just ask what needs fixing? [00:37:22] And when you, [00:37:24] when you send that in, [00:37:26] it actually creates kind of just [00:37:29] a little ticket in here of here's, [00:37:32] here's that request. [00:37:33] And then kind of some just add it [00:37:36] to the library if it's brand new or edit [00:37:39] the record, just kind of some shortcuts [00:37:41] for my office manager to go in and [00:37:43] update those records has a [00:37:45] callback URL [00:37:46] we've been trying to automate. [00:37:47] So like when this gets done, [00:37:49] can it just automatically [00:37:51] update the other one? [00:37:53] And we're getting close. [00:37:54] We haven't won on that front yet, [00:37:56] but it's [00:37:58] I don't know, I get excited [00:37:59] about that kind of thing. [00:38:01] So the other button is [00:38:04] the new seeing it's the same form, [00:38:07] it's just different request type. [00:38:09] Again, it's prefilled [00:38:10] with the name at least, [00:38:12] and then they can provide some [00:38:14] extra information if they have it. [00:38:16] And that goes through [00:38:18] the same ticketing interface. [00:38:20] So anyway, [00:38:21] that kind of makes it pretty easy [00:38:24] for managing just the, [00:38:25] they don't have to go look up [00:38:27] where the security and [00:38:28] privacy policies are. [00:38:29] So [00:38:30] that's kind of the back end [00:38:32] I would say [00:38:33] on just the data that gets entered. [00:38:35] The renewals is something [00:38:38] that I have been loving [00:38:41] and [00:38:42] being able to go here and I've got [00:38:44] the links to the billing site and [00:38:46] and I've got it where it's sending [00:38:48] an email to click up and [00:38:49] some slack messages here and there [00:38:52] of just reminders [00:38:53] cause I don't know [00:38:54] if you guys are like me, [00:38:56] but it is a constantly evolving ecosystem [00:39:00] of trying new tools [00:39:02] and swapping things out. So [00:39:04] being able to get those reminders [00:39:06] in time to actually shut down the account [00:39:09] or whatever instead of after it charges [00:39:11] and then you go through the refund and [00:39:13] you know, all of that kind of stuff. So [00:39:15] this is one of my favorite pieces. [00:39:18] Something that's interesting with [00:39:20] nonprofit world is the concept of programs [00:39:23] and so being able to budget [00:39:25] according to programs. [00:39:27] So in small business world [00:39:29] that would be like product line [00:39:31] or entity or something like that. [00:39:33] But basically each of the tools [00:39:37] can be linked to whichever program that [00:39:41] that the [00:39:44] organization has. So that way [00:39:46] it comes up with a cost per program [00:39:48] still working on how if it belongs [00:39:51] to more than one, how to split that out. [00:39:54] So that it's an actual [00:39:56] split cost, which is very similar [00:39:59] to like how you would [00:40:00] split fixed assets or [00:40:02] that kind of stuff [00:40:03] in the accounting world. [00:40:04] So anyway, it's just, it's basic [00:40:07] right now and it's good enough. [00:40:10] I have an idea for how [00:40:12] you might be able to do that. [00:40:14] Please [00:40:15] share [00:40:16] if you presumably you have an [00:40:19] annual cost field on the tool level, [00:40:22] right? [00:40:23] You would also have a link to the [00:40:26] program associated with that tool. [00:40:30] I would have a account. That's [00:40:32] how many programs is this tool [00:40:34] included in. And then a formula field that [00:40:37] divides the annual cost by that count. [00:40:40] And then this annual cost number [00:40:42] that we're seeing here rolls up the [00:40:44] that that formula [00:40:45] instead. [00:40:46] So it's only, yeah, [00:40:48] because [00:40:48] the default is gonna be 1 [00:40:50] 0, I guess the default zero, [00:40:52] it's not linked to anything [00:40:54] so it shouldn't mess up [00:40:56] your other instances. Awesome. [00:40:59] Yeah, that's a great idea. [00:41:00] I think that would work [00:41:01] for the cases where like [00:41:02] level loading, the cost is [00:41:05] is the method, there's some [00:41:07] more complex methods of like, [00:41:09] you know, this one has three users [00:41:11] that are part of this [00:41:12] and two years that are [00:41:13] part of that. And so [00:41:15] I would have to, [00:41:16] I [00:41:16] think you would have to need [00:41:18] like a middle table [00:41:19] to kind of define some of that. [00:41:20] But [00:41:21] anyway, [00:41:21] but yeah, I love your idea. [00:41:23] That may be like a, [00:41:24] you know, an 80% solution [00:41:26] or something there. So [00:41:27] that's your beta. [00:41:28] Yes, absolutely. So, [00:41:31] yeah, so that's what these programs are. [00:41:34] Then I've got the same thing [00:41:36] for people. So, this is me, [00:41:38] I cost my company 2800 bucks a year. [00:41:42] And I cost my other company 200 [00:41:45] bucks a year. My office manager, [00:41:48] I've got some vendors in there that [00:41:51] have, you know, some licenses [00:41:53] that we either build back [00:41:56] to them or we just [00:41:57] cover for them depending [00:41:58] on the, the case there. [00:42:00] The really fun part here, I think it's fun [00:42:04] is that here's your budget. [00:42:07] So I know that I need 11 400 a year. [00:42:12] And here's my monthly numbers. [00:42:17] I haven't figured out how to get no [00:42:19] months for like months that don't need a [00:42:21] budget to show up in the graph, but [00:42:23] it's fine. [00:42:24] And then I've got it rolled up [00:42:26] by quarter just to, [00:42:28] you know, show that kind of view. [00:42:30] Because you can see that we have [00:42:32] a really big month in May [00:42:33] where we pay a lot [00:42:34] of bills. But we have some [00:42:36] really low months later on. [00:42:37] So [00:42:38] being able to properly save up [00:42:40] for that and all of those [00:42:41] things is really great. [00:42:43] We also do a review every, [00:42:46] at least every year. But [00:42:48] sometimes it's more often [00:42:50] of going through all of our monthly [00:42:52] subscriptions and logging in [00:42:54] and making sure [00:42:55] that we're on the best pricing [00:42:56] so that if we need to move up to annual or [00:42:58] whatever. [00:42:59] And [00:43:00] there's also some future consideration [00:43:03] pieces in here. So if I'm thinking about [00:43:05] a tool, I can kind of add that in and [00:43:07] filter the budget differently [00:43:09] and get kind of those numbers. [00:43:10] And then on the privacy and security side, [00:43:13] this is something that [00:43:15] I don't remember who it was, [00:43:16] but it was a web developer [00:43:17] was working on privacy policies [00:43:20] and talking about how it [00:43:22] just makes sense to [00:43:23] include links of all the tools [00:43:25] that you throw data [00:43:27] into in your own privacy policies [00:43:29] so that it's very clear. [00:43:31] And all of that. [00:43:31] And so, [00:43:32] this is basically, here's the list [00:43:35] and you can see I've got some filling in [00:43:38] to do in that, that base table there. But [00:43:40] being able to identify which ones [00:43:43] have, you know, [00:43:45] I call it basic pi I versus [00:43:46] sensitive pi [00:43:48] I, [00:43:48] that's really important for insurance [00:43:51] applications and all of that. [00:43:52] And so this has been really a fun [00:43:55] project to kind of put together and just [00:43:58] kind of dream about how it's useful. [00:44:00] Because none of this is actually [00:44:02] what we intended to use it for, [00:44:04] but it's super useful for us internally. [00:44:08] So anyway, I think that that is [00:44:12] that's kind of the the interface side [00:44:16] of things. So that's really the bulk of [00:44:18] what I had. I'm happy to jump [00:44:20] into the base if there's [00:44:21] questions or anything. [00:44:22] But [00:44:22] yeah, [00:44:24] I had, I had a business question. [00:44:26] So do you offer this as a service to your [00:44:28] clients of like [00:44:30] tracking there? [00:44:31] Yeah. [00:44:31] So it was interesting [00:44:33] to hear your Zillow use case. [00:44:35] I really wanted to deliver this [00:44:38] as you know, [00:44:39] that point in time copy of your [00:44:41] base. So everybody's base is a little [00:44:44] bit different, it's tweaked to their [00:44:45] needs. [00:44:46] But really the service that we're [00:44:50] offering is this base table database of [00:44:53] keeping that up to date. [00:44:55] And with synced tables that makes it [00:44:58] really easy for the data to then be [00:45:00] pushed out to everybody. [00:45:02] I am feeling a little insecure [00:45:04] about being able [00:45:06] to offer that to clients on [00:45:07] the free plan. [00:45:08] Nonprofits don't have [00:45:10] a lot of extra dollars [00:45:11] to spend even though Airtable [00:45:13] has great nonprofit discounts available. [00:45:16] So anyway, I [00:45:19] am still trying to figure out [00:45:21] how that's gonna land. [00:45:22] But we're working on version two, [00:45:24] that's gonna be a super based stack with a [00:45:26] different front end on it. So [00:45:29] figuring out how to keep all of that [00:45:31] kind of master data in in sync is gonna be [00:45:34] a really fun project [00:45:36] in the near future, for sure. [00:45:39] Yeah. [00:45:40] So you have so you have one [00:45:44] base that you keep track of everybody [00:45:47] and then you and then you have a base for [00:45:49] each client that has the interface. [00:45:52] That's the, [00:45:53] that's the current Airtable side design. [00:45:56] I had, at one point [00:45:58] I had wanted to be able to [00:46:01] pull the client data back [00:46:04] into another master base [00:46:06] so I could run reports of [00:46:08] how many clients are using Quickbooks [00:46:10] online, the nonprofit version versus the [00:46:12] advanced version or whatever. [00:46:15] And kind of run some [00:46:16] of those metrics. But [00:46:19] anyway, I think that's going to be [00:46:21] in the version two [00:46:22] where everybody is kind of [00:46:23] in the same database to begin with. [00:46:25] So [00:46:27] yeah, that's cool. [00:46:30] I [00:46:30] mean, what's cool is like this [00:46:32] is a real product [00:46:33] like III I haven't done any [00:46:35] research but I think there are like [00:46:37] paid solutions that cost a lot of money to [00:46:39] kind of keep track of all of this. But [00:46:41] it all [00:46:42] on Airtable. [00:46:43] Yeah, they do cost a lot of money [00:46:45] and I already spend way too much money on [00:46:47] software. So [00:46:49] yeah, [00:46:51] and graphically it just looks nice, [00:46:54] a [00:46:54] very clearly defined color palette [00:46:57] that you've stuck with on every page, [00:46:59] which is something [00:47:00] I don't do but should [00:47:04] allow me to inspire you. [00:47:06] It was actually more accidental [00:47:08] than purposeful, [00:47:10] but it does [00:47:11] it because they have the [00:47:13] the drop downs that are colorful, [00:47:15] a lot of this is just because [00:47:17] it's colored by the same drop down. [00:47:19] So, [00:47:20] yeah, [00:47:22] looks great. [00:47:23] Thank you. [00:47:25] Well done. Thank you, [00:47:26] Melanie for sharing that with us [00:47:28] and people can find you [00:47:30] especially. Do you, [00:47:31] do you only work with nonprofits? [00:47:33] Are you open to all [00:47:33] clients or [00:47:34] no? So, I actually have two companies. [00:47:37] So Blue Tree Data, [00:47:38] we work with small businesses [00:47:40] and nonprofits [00:47:41] then data capacity builders [00:47:43] is kind of our nonprofit arm that [00:47:46] I am working with a finance expert [00:47:49] to kind of collaborate and [00:47:51] kind of what I've done for data sets. [00:47:54] She does for books and budgets and all [00:47:57] of that. And so tying those together [00:47:59] is what we do over there. [00:48:01] So anyway, yeah, we would welcome anybody. [00:48:06] Check her [00:48:06] out at bluetreedata.com [00:48:09] and thank you, Melanie for [00:48:12] enlightening us with your [00:48:13] tech fault. That's awesome. [00:48:15] Yeah. Thanks for letting me [00:48:17] share with everybody. [00:48:19] Yeah. [00:48:20] All right, quick shout out. [00:48:21] If you haven't already, [00:48:23] please join our community [00:48:24] builtonair.com/join [00:48:26] that will get you in. [00:48:27] We have a very active [00:48:29] Slack community of thousands [00:48:32] of Airtable users and fans and [00:48:34] you can ask questions, [00:48:36] share what you're working on [00:48:38] and just join [00:48:39] an awesome community. Also [00:48:41] subscribe to our BuiltOnAir [00:48:44] youtube channel. [00:48:45] Make sure you're getting access [00:48:47] to all the latest podcast episodes [00:48:50] with that [00:48:52] Kamille. Let's finish up [00:48:54] our automation sequence. [00:49:00] OK. So [00:49:02] here's where we left off [00:49:04] with the last episode just as a refresher. [00:49:08] What I built is a [00:49:10] dynamic watch list which is basically [00:49:13] me saying here are these [00:49:16] different fields in [00:49:19] some base or bases in my, [00:49:22] you know, workspace [00:49:24] I want to be alerted on [00:49:26] certain field changes, [00:49:28] but I want those alerts to go to [00:49:31] specific people either [00:49:33] controlled statically. In this case, [00:49:36] you know, always alert Kamille [00:49:39] for this field being [00:49:41] changed or dynamically. [00:49:43] So in [00:49:44] this case, alert, whoever is assigned [00:49:47] in either of these two field I DS [00:49:49] for [00:49:51] this field being changed. [00:49:53] So the base that I'm using to demo [00:49:56] is a simple podcast, you know, [00:49:58] tracking thing. It's one of [00:50:00] Airtable's [00:50:00] templates [00:50:01] and you can see I have two [00:50:03] I have three different assignment fields, [00:50:06] hosts, producers, editors. And the whole [00:50:09] idea is I have a couple of [00:50:11] different dates in the status and [00:50:13] some people are gonna [00:50:15] be interested in the recording date [00:50:17] and some people are gonna be [00:50:19] interested in the release date, [00:50:20] but it may not be necessarily [00:50:23] both producers and editors. [00:50:25] So that's sort of the background. [00:50:28] And last time we made a [00:50:30] n8n automation that will automatically [00:50:34] create and update your [00:50:36] Airtable web hooks which are required [00:50:38] for this particular methodology to work. [00:50:41] And then the next step is to actually log [00:50:44] updated changes. [00:50:46] So in order to demonstrate that [00:50:48] it's pretty straightforward, [00:50:50] I'm just going to add a date [00:50:53] to this field. [00:50:56] That's it. So in the background, [00:50:59] I should have [00:51:02] an execution that will have run. [00:51:08] Oh, [00:51:09] that's interesting. [00:51:11] It's not here. [00:51:12] Well, I'll talk through [00:51:15] what should have happened [00:51:16] in the background. [00:51:18] It's like, OK, [00:51:19] so basically, [00:51:23] it's not letting me stay [00:51:26] where I want to be, [00:51:29] see if I can force [00:51:32] technical difficulties. They're fun. [00:51:34] Basically what's happening is [00:51:36] I'm waiting on a web hook to be tracked. [00:51:38] Again, those are Airtable web hooks [00:51:41] that are fired when [00:51:42] the specified fields are updated. [00:51:46] Next, I wanna do what [00:51:49] what happens when you [00:51:51] trigger a web hook in Airtable, [00:51:54] it will just give you basic information [00:51:56] about that web hook, [00:51:57] what you need to do after that is [00:51:59] get the web hook payload. So that's [00:52:01] the information that was actually passed [00:52:04] to that web hook in any of its [00:52:06] previous iterations. [00:52:09] The next thing I'm doing is a code [00:52:11] block that is getting the last pay [00:52:14] payload in that you know, [00:52:17] array of any time it's ever been run. [00:52:20] I only care about the most [00:52:21] recent change because [00:52:21] that's [00:52:22] the [00:52:22] one that just happened. [00:52:23] This is using n8n's code block. [00:52:26] Some of this can likely be done [00:52:28] with some of their more no code or low [00:52:32] code tools for [00:52:33] some of this process. I've just elected to [00:52:36] just write it out in javascript. [00:52:39] I'm sure someone would [00:52:40] be able to adapt this [00:52:41] workflow, [00:52:42] but [00:52:43] I'm just transforming it by getting [00:52:45] information that is relevant that I want [00:52:48] to store for later on in the process, [00:52:50] the web hook ID, what was just called [00:52:53] the table ID, the record ID, [00:52:55] what is the record that just changed? [00:52:58] What, you know, give me [00:53:00] the time stamp of that change? [00:53:04] And then [00:53:05] what's really nice about Airtable's [00:53:07] web hooks is that we'll give you [00:53:08] the current cell values and the previous [00:53:11] cell values and that's what I care [00:53:13] about because [00:53:14] what I wanna do at the end of the day [00:53:17] is send an email that says this value [00:53:19] went from X to Y [00:53:21] and I need both of those [00:53:22] values in order to do that. [00:53:24] This area here, [00:53:26] the sort of diamond formation [00:53:28] is splitting it up so that I have. [00:53:31] What did the values used to be [00:53:33] and what are the values now? [00:53:35] Organized by record [00:53:36] and then I can compare. [00:53:38] So using this handy, [00:53:41] pre-existing node, I'm able to [00:53:44] take the row or record ID and compare it [00:53:47] against those two different arrays and [00:53:49] find [00:53:49] only the field values [00:53:51] that have changed between them. [00:53:53] And then I just do some more, [00:53:55] cleaning up. That's just orienting it in a [00:53:57] convenient javascript object. [00:54:01] And then from here I'm doing a simple, [00:54:05] get record call from Airtable. [00:54:09] I'm doing a filter by formula. [00:54:11] This should be familiar [00:54:13] if you've ever used, [00:54:13] make, it's the same process. [00:54:15] I'm filtering down [00:54:17] this sort of meta table [00:54:19] that I've established [00:54:21] and I'm looking for, [00:54:23] anything that has that Web hook [00:54:26] ID. So I'm able to find [00:54:28] the appropriate record, that is relevant. [00:54:32] I changed the recording date. [00:54:34] I just know that that would be [00:54:36] this, [00:54:39] this field here, [00:54:40] for all dates, this watch list [00:54:43] and the last bit of this [00:54:48] workflow is parsing any logs changes [00:54:51] and returning any new applic [00:54:53] changes. [00:54:54] So this diamond over here [00:54:56] is telling me what has just changed, [00:54:58] when this web hook was fired, [00:55:01] give me those new changes [00:55:03] and then add it to anything [00:55:05] that was previously [00:55:06] logged before. [00:55:07] I'm dumping all of these changes into a [00:55:10] Json field and you can see, [00:55:11] what the sort of running history [00:55:14] is basically, I went in and just deleted a [00:55:16] bunch of dates. [00:55:18] And those are sort of the pre-existing [00:55:21] values that, I've been recording [00:55:25] and then I'm combining those together [00:55:27] and then just putting them back into [00:55:29] Airtable. [00:55:30] So, hopefully, [00:55:32] that makes sense. I now have [00:55:34] one record in this separate base [00:55:37] that is logging [00:55:39] for as long as I want my reporting [00:55:42] period to be, I've done this daily, [00:55:44] weekly or monthly. [00:55:45] Here's are all of the changes [00:55:47] that have happened, [00:55:48] which record changed, which field changed? [00:55:52] What did it used to be? [00:55:53] And what is it now? [00:55:56] The last step in this process [00:55:58] would be something that, [00:56:00] you would again have on [00:56:02] a running schedule. [00:56:04] In this case, [00:56:05] if I do it daily. [00:56:07] But the general idea is [00:56:09] whenever it's time to send these [00:56:12] updates, [00:56:13] find any watch list that has [00:56:15] something to report. So in this case, [00:56:17] these two have data in them, this one [00:56:20] has no changes. [00:56:21] So it's not gonna get sent anywhere. [00:56:25] The next thing it's doing is [00:56:28] what I've done to store [00:56:30] values in as compact way as possible, [00:56:34] long text fields have a very generous [00:56:37] character limit, but there is a limit [00:56:38] nonetheless. So instead of storing [00:56:41] the table name and the field name, [00:56:43] which could be quite long. [00:56:45] I've stored them as the I DS [00:56:47] which have been consistent [00:56:49] and short length. [00:56:50] That's also helpful because if you [00:56:53] change the name of say recording date to [00:56:57] something else, [00:56:58] down the line [00:56:59] and you continue to log changes. [00:57:01] This [00:57:03] object here is not necessarily going [00:57:06] to be able to tell that those are the same [00:57:08] field. So logging it as the [00:57:10] field and record I DS makes, [00:57:13] everything consistent as it goes. [00:57:16] So this process here is just, [00:57:18] looking at my table schema [00:57:20] finding those field [00:57:21] I DS and replacing them [00:57:23] with the field names. [00:57:24] Because when I get an email, [00:57:26] I don't really want to see IDs [00:57:28] I want to know [00:57:29] which record is which [00:57:30] and which field is which? [00:57:33] So that's all this is doing. It's just [00:57:35] replacing field and record I DS [00:57:38] with [00:57:38] there. [00:57:40] And then from there, this is a very [00:57:44] annoying process to figure out. [00:57:46] But what I wanted was [00:57:48] for every unique change, [00:57:50] record a field a [00:57:53] I want to [00:57:55] identify who cares about that [00:57:57] record in that field again [00:58:00] in my table that's [00:58:01] determined by [00:58:02] who's assigned to it. [00:58:05] And it's also determined by the watch list [00:58:07] who I've just determined [00:58:09] cares just generally [00:58:11] which field I should look at or [00:58:13] fields. [00:58:14] And then I want to duplicate [00:58:17] that unique change [00:58:18] for each person that cares about [00:58:20] it. [00:58:20] Then I wanna split that up into [00:58:24] if Clark Kent is subscribed to all [00:58:27] of these different changes, [00:58:29] I wanna get all of the changes [00:58:31] that are relevant to Clark [00:58:33] and put them over here. [00:58:34] And I want all of the changes [00:58:35] that are relevant to Wally [00:58:37] and put them over here [00:58:38] at the end of, [00:58:41] this sort of row. What I, [00:58:43] what I will have arrived at is [00:58:45] one email per watch list, [00:58:48] per person with every record that matters [00:58:51] to them in a single email. [00:58:53] And then, [00:58:54] simple html trickery [00:58:56] to make your email look good [00:58:58] and then outlook [00:58:59] to actually send the email. [00:59:01] So if I run this manually, [00:59:03] the hope is that it works [00:59:06] so we can watch it sort of go along. [00:59:12] It's now finding each change [00:59:14] that has happened. In this case, [00:59:15] you could tell that there's [00:59:17] a lot that has happened, [00:59:19] which is why it's taking a long time. [00:59:20] There's, [00:59:21] I think 24 [00:59:23] rows that were changed. [00:59:25] It's then splitting it up [00:59:28] by relevant people. [00:59:29] It became 46 because it's the same change [00:59:33] duplicated across who cares about that [00:59:36] record [00:59:37] and then it's grouped back down. [00:59:39] So there's only six unique [00:59:41] people who need to [00:59:42] be alerted and those are their, [00:59:45] those are their updates [00:59:47] and then sending them out. [00:59:49] And then what I'm doing [00:59:50] at the very last step [00:59:52] is you could see it just ran. [00:59:54] I'm resetting this back to nothing. [00:59:57] So the next time that I run this process, [00:59:59] I won't be alerted of those same [01:00:01] changes. Again, [01:00:03] if I [01:00:04] refresh my [01:00:06] email, [01:00:08] you should be able to see [01:00:12] they all stay me. But [01:00:15] you can see here are Diana's [01:00:17] updates with [01:00:19] the names of the records [01:00:21] and I kept the I DS just in case [01:00:23] and then each of the fields [01:00:25] that changed. But if I go to Bruce's, [01:00:27] it's a slightly different list because [01:00:30] he's assigned to different things. [01:00:32] And then Wiess is again a different list. [01:00:35] This is actually a different, [01:00:39] this is a different watch list entirely. [01:00:42] You can see it's not showing [01:00:44] the other two fields [01:00:45] because Wally doesn't care [01:00:46] about those other two fields. [01:00:48] But here are the changes [01:00:49] for the one he does care. [01:00:51] And I think that's basically it. [01:00:54] This was a long and annoying task that [01:00:57] I've assigned myself. [01:00:58] But [01:00:59] so far I think I've been able to get it to [01:01:03] work somewhat reliably. [01:01:06] It did take three separate [01:01:08] automations to do. [01:01:12] That's cool though. That's, [01:01:14] that's powerful. [01:01:16] What I, what I was impressed with is, [01:01:18] is n8n, like just watching that I haven't [01:01:21] played a ton with it but like [01:01:22] for being an open source solution, [01:01:24] like it looks pretty robust. [01:01:27] It is. I really like it, I did say [01:01:29] last week that it's open [01:01:31] source, mild correction. [01:01:33] It's not quite open source. [01:01:35] It's very nearly open [01:01:36] source. You can look at the code [01:01:38] is what I was thinking, [01:01:40] but you do require a special license [01:01:42] if you wanted to [01:01:43] reuse the code of n8n [01:01:45] and some other thing. [01:01:46] But [01:01:47] my n8n plan, right [01:01:50] now I did this entirely on their trial. [01:01:52] I don't actually think you need a pro [01:01:55] plan to do any of what I've shown. [01:01:57] If you do, it's, I think very fairly [01:01:59] and reasonably priced. If you were to get [01:02:01] it, [01:02:02] you can self host it or you can use [01:02:04] their cloud solution. I'm currently using [01:02:06] their cloud solution and they have [01:02:08] many, [01:02:09] many pre-existing modules. [01:02:11] You'll notice I've interspersed, [01:02:13] predefined things like the filter [01:02:16] module, which is really nice. [01:02:17] Give me specific items from a list, [01:02:20] and the [01:02:21] code module which [01:02:23] is just straight javascript [01:02:24] or straight Python if you prefer [01:02:26] to [01:02:26] code in [01:02:27] Python. [01:02:27] So, [01:02:29] very helpful, very useful. [01:02:31] I learned it pretty quickly and, [01:02:34] I recommend people just give it a shot [01:02:36] if you're already used to make. [01:02:38] Why not try? [01:02:42] Awesome. [01:02:42] Very nice. [01:02:44] Thank you Kamille. And I think that will, [01:02:51] get mine on there. Oops, [01:02:55] it [01:02:55] never happened before. [01:02:57] There we go. [01:02:58] All right. [01:03:00] And that concludes our, [01:03:02] our show for today. [01:03:03] Thank you all for coming. [01:03:05] And we will be back next week with [01:03:06] episode three. Take care. [01:03:09] All right.