S23-E02 – BuiltOnAir Live Podcast Full Show
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.
FULL EPISODE AUDIO
Listen to the full Audio podcast for this episode here. Or add to your favorite podcast player
Listen On: Apple | Overcast | Spotify
The BuiltOnAir Podcast is Sponsored by On2Air – Integrations and App extensions to run your business operations in Airtable.
Start a FREE 14 Day Trial of On2Air Now
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.
Episode Summary
In this episode, Kamille walks us through a demo of a habit tracker in Airtable, showcasing how to use complex formulas and automations to create a system for repetitive tasks. The discussion covers how to set up a habit tracker, how to create a system for repetitive tasks, and tips and tricks for debugging complex formulas. The conversation also touches on the use of emojis in formulas, formatting formulas as dropdowns, and the importance of testing and comparing formulas.
⏱ Timeline:
- 2:47 - Demo of habit tracker in Airtable
- 5:21 - Explaining the use of linked record fields
- 11:08 - Breaking down the formula for next due date
- 18:02 - Debugging complex formulas
- 21:38 - Tips for debugging formulas
Full Transcription
The full transcription for the show can be found here:
[00:00:02] welcome back to the BuiltOnAir podcast[00:00:05] we are in season twenty three episode two
[00:00:09] and uh as i mentioned last week we’re
[00:00:11] kind of changing our format we’re gonna um
[00:00:15] just kind of be here we don’t have
[00:00:17] any slides or anything to kick us off
[00:00:19] or anything but uh last week we went
[00:00:20] through got you up to date on everything
[00:00:23] in the world of Airtable
[00:00:25] And this week,
[00:00:25] we’re going to do a deep dive and
[00:00:28] spend some time really learning the ins
[00:00:30] and outs of Airtable with the use case.
[00:00:33] And so, yeah,
[00:00:35] I don’t think there is any big news,
[00:00:37] anything worth mentioning,
[00:00:41] relatively quiet week.
[00:00:43] Yeah, nothing new.
[00:00:47] Yeah,
[00:00:48] I think all of the good stuff happened
[00:00:50] while we were gone.
[00:00:51] And now it’s kind of like a little
[00:00:53] bit back to basics.
[00:00:55] Digesting everything.
[00:00:57] So cool.
[00:00:59] With that,
[00:00:59] so Kamille is going to walk us through
[00:01:01] a demo and talk us through it.
[00:01:03] And we’re going to go deep into this.
[00:01:06] So I’ll share your screen on here.
[00:01:09] And go for it.
[00:01:11] All right.
[00:01:11] So this kind of use case came to
[00:01:15] me just as a like, oh,
[00:01:17] I wonder if I could do this without
[00:01:19] a script.
[00:01:20] It’s come up a couple of times in
[00:01:23] the forums and a couple other places where
[00:01:26] people have the need for records that are
[00:01:29] based on some sort of date to repeat
[00:01:32] over a specific event.
[00:01:34] interval.
[00:01:35] And that interval can be simple,
[00:01:36] like do this every Monday,
[00:01:38] or it could be a little bit more
[00:01:40] complex of do this every Monday, Tuesday,
[00:01:42] Wednesday, or at the end of every month,
[00:01:46] etc.
[00:01:47] And I think I had done this previously
[00:01:50] in the past with a script.
[00:01:52] And yeah,
[00:01:54] I was really curious what I could do
[00:01:56] if I said nope,
[00:01:59] we’re gonna do it all in formulas.
[00:02:01] And
[00:02:02] as few automations as possible.
[00:02:04] So with that,
[00:02:06] what we’re currently looking at is a very
[00:02:07] simple interface I threw together.
[00:02:09] And the example use case I came up
[00:02:12] with was a habit tracker.
[00:02:14] So I used to have an app on
[00:02:16] my phone that was supposed to keep you
[00:02:19] honest on the stuff that you’re supposed
[00:02:21] to do frequently.
[00:02:22] And I put together a list of chores
[00:02:26] and then set them on a schedule.
[00:02:28] So
[00:02:29] I’m a millennial,
[00:02:30] so all of the mail that I get
[00:02:32] is just junk mail.
[00:02:33] So I really only check my mail like
[00:02:35] at the end of the month,
[00:02:36] to be honest.
[00:02:37] So if I expand my settings section,
[00:02:43] I have it set up where each one
[00:02:45] of these records can have a repeating
[00:02:48] schedule attached to it.
[00:02:50] This is kind of where I miss the
[00:02:52] ability to hide
[00:02:56] have conditional visibility on interface
[00:02:59] sections.
[00:03:00] Not every one of these sections settings
[00:03:04] over to the right are relevant for all
[00:03:06] of these,
[00:03:07] but just to read out some of the
[00:03:08] ones that I’ve already baked in here at
[00:03:11] a set interval would let me do the
[00:03:13] first two.
[00:03:14] So I could do any number of days,
[00:03:18] weeks, months.
[00:03:18] I could have expanded to quarters and
[00:03:22] years,
[00:03:22] but didn’t think that was necessary for
[00:03:24] this demo.
[00:03:25] on specific weekdays would be just this
[00:03:28] one here, where I’m linking to Sunday,
[00:03:32] Monday, Tuesday through Saturday.
[00:03:35] And I’ll talk about why that is a
[00:03:37] linked record field instead of a
[00:03:39] multi-select field as we sort of get
[00:03:41] deeper into the
[00:03:43] how I set all of this up.
[00:03:45] And then the last two,
[00:03:46] fairly straightforward,
[00:03:47] on the first day of the month or
[00:03:48] on the last day of the month.
[00:03:50] And with this example,
[00:03:51] it’s set to on the last day of
[00:03:53] the month.
[00:03:54] I also added in the ability to have
[00:03:56] habit streaks.
[00:03:57] So if you do your chores or whatever
[00:04:02] these records are called,
[00:04:04] every record in a row,
[00:04:07] you add on to a streak.
[00:04:08] But if you miss one,
[00:04:09] it starts a new streak.
[00:04:12] And then if I scroll down to the
[00:04:14] calendar,
[00:04:15] you can see that the fourth time that
[00:04:18] this chore was supposed to happen was at
[00:04:20] the end of last month, which is December,
[00:04:22] twenty twenty five.
[00:04:23] And then the next one coming up is
[00:04:26] January thirty first.
[00:04:28] And if I scroll back,
[00:04:29] these are color coded.
[00:04:31] So green means I did it when I
[00:04:33] was supposed to.
[00:04:34] And light green means I did it,
[00:04:36] but late.
[00:04:37] And I think gray means that it just
[00:04:39] hasn’t happened yet.
[00:04:40] So that’s my way of visually taking track
[00:04:44] of those streaks.
[00:04:47] And the last thing that’s on this
[00:04:49] interface is this automatic button here.
[00:04:52] If I scroll,
[00:04:54] you’ll see that my records sort of stop
[00:04:57] in January and then I don’t have any
[00:04:58] more after that.
[00:05:00] There’s none for the end of February.
[00:05:02] If I click this button,
[00:05:04] it’s going to run an automation that’s
[00:05:06] going to
[00:05:07] create all of the next set of chores.
[00:05:13] I stopped at five and you’ll see why
[00:05:16] I stopped at five when we get to
[00:05:18] the automation that controls this.
[00:05:22] It goes all the way to the tenth,
[00:05:23] which would put us in June and I
[00:05:24] can keep clicking this and it would create
[00:05:26] the next five always popping on when the
[00:05:29] date should actually be.
[00:05:31] You can see it’s still going and then
[00:05:33] it’s done.
[00:05:34] So that is the general setup of what
[00:05:38] this looks like.
[00:05:39] And it works the same,
[00:05:41] let me go back to today,
[00:05:44] for the more complicated ones,
[00:05:46] like do this on specific weekdays.
[00:05:50] Like I said,
[00:05:51] there’s some good reasoning as to why this
[00:05:53] is a linked record field instead of a
[00:05:55] multi-select field,
[00:05:57] mostly because I wanted to be able to
[00:06:00] handle,
[00:06:01] I’ve conveniently
[00:06:02] linked Monday, Wednesday,
[00:06:03] Friday in the order in which they appear
[00:06:06] in a week.
[00:06:07] But what if I didn’t link these in
[00:06:11] the actual order?
[00:06:12] So if I did Sunday and then Tuesday,
[00:06:16] I wanted the formula behind the scenes to
[00:06:19] be able to account for
[00:06:22] Yes, you put in all the days,
[00:06:23] but you didn’t put them in in the
[00:06:25] right order.
[00:06:26] That’s easier to do with a linked record
[00:06:28] field.
[00:06:29] If I scroll down,
[00:06:31] it’s going to take into account whatever
[00:06:33] you had selected at the time,
[00:06:34] and it’s going to count going forward.
[00:06:37] Monday already happened in this week.
[00:06:39] So it started with the next day in
[00:06:41] the cycle, which would have been tomorrow,
[00:06:43] which is a Wednesday and then Friday.
[00:06:46] And then next week there is a Monday
[00:06:48] that’s eligible.
[00:06:49] So Monday, Wednesday, Friday.
[00:06:51] And if I run this again,
[00:06:52] the next time it goes,
[00:06:54] it’s going to do Sunday and Tuesday as
[00:06:56] well.
[00:06:58] and then the more simple example is on
[00:07:01] a set interval repeat every three days so
[00:07:05] those are all of the different um
[00:07:08] configurations that i’ve set up and now we
[00:07:11] can kind of talk about my way of
[00:07:14] doing this now you could do this in
[00:07:17] a considerably different manner than i did
[00:07:20] this but
[00:07:22] I wanted to make this hopefully easy to
[00:07:26] understand.
[00:07:26] And then I gave up after a while
[00:07:28] because it’s I think it’s easy to
[00:07:31] understand,
[00:07:31] but you really have to look at it
[00:07:33] for a while.
[00:07:33] At least that’s my interpretation of it.
[00:07:36] So to start with.
[00:07:39] It’s you start with the questions you want
[00:07:41] to ask.
[00:07:42] How often does this thing repeat?
[00:07:44] And so the first thing I had to
[00:07:45] grapple with is what are the scenarios
[00:07:48] that I even wanted to cover?
[00:07:50] There’s several other types of repetition
[00:07:53] that are not in this space,
[00:07:55] but could be like do this on every
[00:07:58] third Thursday, for example.
[00:08:01] That’s not something that this base can do
[00:08:02] quite yet,
[00:08:03] but it’s something that I could add.
[00:08:06] And then
[00:08:08] We need things to repeat.
[00:08:10] So I’m linking to another table called
[00:08:12] tasks, which is just pretty simple.
[00:08:15] It’s a link of what the chore is
[00:08:19] or the habit.
[00:08:20] And then a number to indicate this is
[00:08:23] the first time, the second time,
[00:08:24] the third time when it’s due.
[00:08:27] We’ll talk about streaks later.
[00:08:29] And then a simple status of yes,
[00:08:31] it was done or no,
[00:08:32] it hasn’t been done yet.
[00:08:35] And then from there,
[00:08:37] now we need specific information about
[00:08:39] that repetition.
[00:08:40] So if you chose a set interval,
[00:08:43] I need to know a number of times
[00:08:46] to like skip.
[00:08:47] So this is what this field is,
[00:08:51] the repeat interval number,
[00:08:54] simple number field, nothing special.
[00:08:56] And then repeat interval period,
[00:08:59] simple single select field.
[00:09:01] Like I said before, you could do,
[00:09:04] Hours, if you wanted,
[00:09:06] you could do quarters or years.
[00:09:09] I stuck with days, weeks, and months.
[00:09:11] The process is going to be the same
[00:09:13] no matter what you pick.
[00:09:15] And then for that,
[00:09:17] I’m going to kind of scroll to the
[00:09:19] right and you can kind of preview.
[00:09:21] It takes a couple of different formulas
[00:09:24] for this to work in the way that
[00:09:26] I wanted it to work.
[00:09:29] And it all kind of culminates in this
[00:09:32] one field called next due date.
[00:09:36] In order to do this and keep it
[00:09:37] clean,
[00:09:38] I have the simple overarching formula here
[00:09:44] of depending on what your when to repeat
[00:09:46] is, your schedule,
[00:09:48] it will output the date of some of
[00:09:50] these more
[00:09:53] more complicated, more specific formulas.
[00:09:56] That way,
[00:09:56] this formula remains pretty legible.
[00:10:00] So at a set interval,
[00:10:02] we want to take the last due date
[00:10:04] and add this number of periods.
[00:10:08] So the date add field is pretty great
[00:10:11] in that all it needs is a starting
[00:10:13] date, a number,
[00:10:14] and whether it’s
[00:10:15] days, weeks, months.
[00:10:17] And that’s why I formatted those other two
[00:10:19] fields in that way.
[00:10:20] So the date add portion of it could
[00:10:24] be pretty straightforward.
[00:10:25] You just plug in those days.
[00:10:27] The other ones needed a little bit more
[00:10:30] help.
[00:10:31] So they are all based off of the
[00:10:35] latest due date,
[00:10:36] which is taking all of the records from
[00:10:38] the task table that are linked to that
[00:10:41] habit or chore.
[00:10:43] And they’re trying to find, well,
[00:10:45] what is the latest due date?
[00:10:47] And if there isn’t one,
[00:10:48] this is just a roll-up field with max
[00:10:52] as the aggregation.
[00:10:53] If there isn’t one, just use today.
[00:10:56] So we don’t have any errors in any
[00:10:58] of our date calculation.
[00:11:00] We need to give it something.
[00:11:03] The most complicated interval to go over
[00:11:08] is on specific weekdays.
[00:11:10] This one took the majority of my time
[00:11:13] to figure out.
[00:11:15] Like I said before,
[00:11:17] it’s based off of a table of weekdays.
[00:11:20] Also,
[00:11:20] I could have a sort or a number
[00:11:22] field associated with each of them.
[00:11:25] And that allows me to more easily add
[00:11:28] or subtract days depending on when we need
[00:11:31] to offset.
[00:11:33] So if I scroll,
[00:11:34] it takes several formulas to get to where
[00:11:39] I need to go.
[00:11:41] Starting with latest weekday,
[00:11:42] we take the latest due date,
[00:11:44] which is the one that we just went
[00:11:45] over, and we format it as a day.
[00:11:49] Or it’s a weekday.
[00:11:50] So starts pretty simple.
[00:11:52] One date time format.
[00:11:54] And again, this is why we output today.
[00:12:00] Why we output today if we don’t have
[00:12:02] any tasks yet.
[00:12:03] It’s so that all the remaining formulas
[00:12:05] don’t need that if clause of if date,
[00:12:08] then calculate.
[00:12:09] If not, leave empty.
[00:12:11] This just lets all of the remaining
[00:12:13] formulas, and there’s a couple,
[00:12:15] be as simple as they can be.
[00:12:18] So now we need to know what is
[00:12:21] the position of the latest weekday.
[00:12:25] And when we say position,
[00:12:27] we’re talking about this formula.
[00:12:30] This is the most hacky portion, I think,
[00:12:33] of my implementation that I’ve done.
[00:12:35] It’s all of the weekdays in the
[00:12:39] three-letter format and then repeated
[00:12:42] twice.
[00:12:42] The reason being is because if you have
[00:12:46] something repeat, say, Monday, Wednesday,
[00:12:50] Saturday,
[00:12:51] and
[00:12:51] It was very difficult for me to write
[00:12:54] a formula that says, well,
[00:12:56] if today is Saturday,
[00:12:58] the next thing in the sequence should be
[00:13:00] Monday.
[00:13:01] And if I stopped the sequence at Saturday,
[00:13:05] there would be nothing left in the
[00:13:06] sequence.
[00:13:07] So.
[00:13:09] if i repeat it twice if today is
[00:13:11] saturday it can keep going and say it’s
[00:13:14] monday you don’t need to keep repeating it
[00:13:17] infinitely because if you’re using the
[00:13:20] find function in a formula it’s going to
[00:13:22] find the first time saturday appears so
[00:13:25] we’re actually never going to get to the
[00:13:27] second saturday we’re always going to
[00:13:28] start here and then it’s able to skip
[00:13:30] forward and say oh the next thing in
[00:13:32] the sequence is monday
[00:13:34] So is there another way to do that?
[00:13:36] Probably.
[00:13:37] This is the way I did it.
[00:13:39] So that’s the position of where,
[00:13:44] in this case,
[00:13:45] Friday is in this very long string of
[00:13:49] every weekday repeated twice.
[00:13:52] Now we need to know when the next
[00:13:53] weekday is in the sequence.
[00:13:57] So
[00:13:59] This is where it starts to get a
[00:14:00] little bit complicated.
[00:14:01] So what we need to do is take
[00:14:04] if the current or the latest weekday in
[00:14:07] the sequence of all the tasks that we
[00:14:09] have is Friday,
[00:14:11] we need to know what the next one
[00:14:13] in the sequence is.
[00:14:15] If you’ve only set one day that it
[00:14:19] repeats on, it repeats every Friday.
[00:14:21] Well, then you can just say, all right,
[00:14:23] well,
[00:14:23] then the next weekday is whatever the
[00:14:25] latest weekday is.
[00:14:26] That’s this first condition kind of gets
[00:14:29] you out of doing all of this complicated
[00:14:30] logic.
[00:14:32] And then, like I said before,
[00:14:35] I did this where Sunday is the start
[00:14:38] of the week.
[00:14:38] If you want to replicate this where Monday
[00:14:41] is the start of the week,
[00:14:42] you would adjust what your special day is.
[00:14:45] For me, my special day is Saturday,
[00:14:47] which is the end of the week.
[00:14:50] If the latest weekday is Saturday,
[00:14:53] then you know that the next weekday is
[00:14:57] whatever the first day in the sequence is.
[00:15:00] That’s what this is because the week is
[00:15:02] over.
[00:15:02] It’s going to be whatever the next day
[00:15:04] is.
[00:15:06] And then all of the other ones are
[00:15:10] a calculation of find today or what the
[00:15:15] latest weekday is in the sequence and then
[00:15:19] find what the next one is and then
[00:15:23] calculate the distance between them.
[00:15:26] The reason why the number three is all
[00:15:27] over the place and then it increments
[00:15:30] three, six, nine,
[00:15:31] twelve is because of the way I formatted
[00:15:34] all of the names of the days.
[00:15:36] Sun is three characters long.
[00:15:39] That’s why three was all over that
[00:15:42] formula.
[00:15:44] All of that gives me enough information to
[00:15:46] calculate what the next weekday is.
[00:15:51] So I can plug it into the overall
[00:15:54] formula of on specific weekdays.
[00:15:58] I now know how many days to add
[00:16:00] to my latest due date.
[00:16:03] And it’s always going to be adding days.
[00:16:06] The next two, much more straightforward.
[00:16:09] First day of the month and last day
[00:16:10] of the month.
[00:16:12] Go back to the long formula,
[00:16:15] not the switch, but the, yeah, this one.
[00:16:21] Well, no.
[00:16:22] This one.
[00:16:23] Okay.
[00:16:24] So when you get a formula like this,
[00:16:26] where there’s lots of stuff going on,
[00:16:29] how do you debug this?
[00:16:30] How do you get this working?
[00:16:31] What are some tips and tricks to get
[00:16:34] a complex formula like this?
[00:16:36] Yeah.
[00:16:37] So originally I came up with a formula
[00:16:40] that worked in the test scenario that I
[00:16:43] came up with.
[00:16:44] And then I kept testing and realized it
[00:16:46] didn’t work at all if the last day
[00:16:48] was Saturday.
[00:16:49] So I had to add extra stuff at
[00:16:51] the top.
[00:16:52] So really what helped with writing this
[00:16:55] was coming up with a couple of different
[00:16:57] scenarios I wanted to test for.
[00:16:59] I wanted to test
[00:17:02] How simple could the formula be if you
[00:17:05] know you were repeating on one weekday?
[00:17:07] Right.
[00:17:08] then you don’t need all of this
[00:17:10] complicated logic about the sequence or
[00:17:12] anything.
[00:17:12] If it’s the same weekday,
[00:17:14] then it’s just add seven days to whatever
[00:17:17] the last one is.
[00:17:19] And then I had to figure out what
[00:17:22] to do Saturday, and then I realized, well,
[00:17:25] if I order all of the weekdays,
[00:17:28] one through seven,
[00:17:30] and I know that Saturday is the last
[00:17:32] one, then…
[00:17:34] what if I have my weekdays in the
[00:17:36] sequence,
[00:17:36] the next one is gonna be whatever the
[00:17:38] first one is.
[00:17:39] So that’s how I came up with like
[00:17:41] this workaround.
[00:17:42] And then this was all about repetition.
[00:17:45] Well, this is kind of long.
[00:17:47] This is the same formula,
[00:17:49] Over and over and over again,
[00:17:51] where the only difference is where you
[00:17:53] start from three, six, nine, twelve, etc.
[00:17:57] So I really had to think through I
[00:17:59] try to put it in words of what
[00:18:02] I was trying to do and what I
[00:18:04] was trying to do.
[00:18:07] Was I know that the latest weekday is
[00:18:11] this field and I wanted to find where’s
[00:18:14] the first time this word appears in this
[00:18:17] sequence.
[00:18:18] And then I know the next thing I’m
[00:18:21] looking for.
[00:18:24] based on the weekdays that I’m repeating.
[00:18:28] So I want to get from here to
[00:18:30] where the next word appears in that
[00:18:32] sequence.
[00:18:33] So talking it out kind of helped me
[00:18:36] figure out what I needed to write.
[00:18:38] And then it was just a lot of
[00:18:40] tweaking, at least for me.
[00:18:43] of, like,
[00:18:45] now that I have it in words that
[00:18:47] at least I understand,
[00:18:49] I need to find a way to make
[00:18:50] it repeatable so that if I need to
[00:18:52] change this going forward,
[00:18:55] I might have to make several changes,
[00:18:56] but they’re predictable changes.
[00:18:58] So in this case, right,
[00:19:00] if I wanted to move from weeks start
[00:19:04] on Sunday to weeks start on Monday,
[00:19:06] all of the
[00:19:08] numbers can remain the same but i’d have
[00:19:10] to change saturday to sunday instead
[00:19:15] because that would be when the weeks end
[00:19:17] now yeah so those are the kind of
[00:19:19] things that i like started to think
[00:19:21] through and the reason why i have multiple
[00:19:25] formulas you could in theory have done
[00:19:28] this all in one big formula but then
[00:19:30] it would have been really really really
[00:19:32] hard to read
[00:19:33] So I took it where each of my
[00:19:36] repetition intervals had their own set of
[00:19:39] formulas if they needed them.
[00:19:41] That way,
[00:19:42] if I wanted to tweak how first day
[00:19:44] of the month worked, for example,
[00:19:46] I can go to just the formula that
[00:19:48] controls that one and not have to dig
[00:19:51] through a very long formula that controls
[00:19:53] all of them.
[00:19:56] Ali,
[00:19:56] any other tips or tricks with debugging
[00:19:59] complex formulas?
[00:20:02] Yeah, I mean, just in general,
[00:20:04] I typically duplicate the field,
[00:20:07] especially if it’s a formula that’s like
[00:20:09] already being used and has dependencies.
[00:20:11] So always duplicate it first.
[00:20:13] And then the first thing I do is
[00:20:15] I put a little test tube emoji in
[00:20:17] front of the field name so that when
[00:20:19] I’m looking at it,
[00:20:20] I know which one’s my test one and
[00:20:21] which one is the real one.
[00:20:25] breaking it out into several different
[00:20:26] formulas like Kamille was just touching on
[00:20:29] is my number one tip, I think,
[00:20:31] for debugging formulas.
[00:20:32] And if you’re having trouble,
[00:20:34] it’s like you might not know if you’ve
[00:20:36] got a lot of nested pieces of that
[00:20:39] function,
[00:20:40] you really need to know like which part
[00:20:42] of it is throwing off the rest.
[00:20:44] So breaking it out into its smallest
[00:20:47] components and kind of working from there
[00:20:49] is, in my opinion,
[00:20:50] the best and easiest way to debug.
[00:20:53] I also had a couple of like temporary
[00:20:55] formula fields.
[00:20:56] Like when I was doing, not this one,
[00:20:59] this one, at the beginning,
[00:21:04] the first version of this formula,
[00:21:06] it was take this and then do this
[00:21:08] and then do this and then do that.
[00:21:10] And it wasn’t coming up with what I
[00:21:11] wanted.
[00:21:12] So I had a separate formula field where
[00:21:16] I would test each of those thises
[00:21:18] where I found what the output of just
[00:21:21] this part of the formula was,
[00:21:24] and that helped me figure out, oh, okay,
[00:21:26] well,
[00:21:26] the first three steps of this formula are
[00:21:28] doing what they’re supposed to,
[00:21:29] but the fourth step,
[00:21:31] I did something wrong there.
[00:21:32] It’s outputting, you know,
[00:21:34] it’s not outputting a string,
[00:21:35] it’s outputting a number.
[00:21:36] So I need to figure out what I
[00:21:38] can do to just this part to get
[00:21:40] it back into the format that I’m expecting
[00:21:42] so that steps five, six, et cetera,
[00:21:44] can work the way that they need to.
[00:21:46] So having those temporary separate
[00:21:49] formulas help you do that debugging as
[00:21:52] well.
[00:21:52] And once you’ve figured it out,
[00:21:54] you can get rid of them and they’re
[00:21:55] out of the way.
[00:21:56] Similar to Ali about adding a specific
[00:21:59] emoji to the start,
[00:22:01] you’ll notice that some of my formulas
[00:22:04] have this sort of white dot and some
[00:22:06] of them don’t.
[00:22:06] have this gear icon in front of them.
[00:22:09] That’s more kind of like naming convention
[00:22:11] to help me understand the difference
[00:22:13] between a lot of these fields that are
[00:22:15] going to have similar names because
[00:22:18] they’re like helper fields for another
[00:22:20] field, if that makes sense.
[00:22:22] So in this instance,
[00:22:24] all of the gear icons are like,
[00:22:26] this is a setting that should be displayed
[00:22:28] to the user.
[00:22:29] So we want people to go back and
[00:22:31] edit how many days are in between the
[00:22:34] repetitions or what weekdays,
[00:22:36] so they get the gear icon.
[00:22:38] And then the white dots are more like,
[00:22:40] well,
[00:22:40] these are all helper fields that you don’t
[00:22:43] really need to look at.
[00:22:44] Once you’ve written out all of these
[00:22:46] formulas,
[00:22:47] you don’t need to look at them again
[00:22:49] until you want to change something
[00:22:51] foundationally about the date calculation.
[00:22:54] And then the last field that is actually
[00:22:57] used for creating these new records,
[00:23:00] it doesn’t have any emoji at the start.
[00:23:02] It’s a simple formula that outputs the
[00:23:05] desired end result.
[00:23:07] And then, um,
[00:23:11] One thing I started doing with switch
[00:23:13] statements.
[00:23:14] Um, and if,
[00:23:15] so if you’re not familiar with the switch
[00:23:16] statement, it’s essentially like a big,
[00:23:18] if else, if,
[00:23:19] if you said the first value and then.
[00:23:23] It’s kind of a weird one because it’s
[00:23:25] like the first one is what you’re
[00:23:26] basically looking on and then you’re
[00:23:28] comparing that with the second and then
[00:23:31] third.
[00:23:32] So it’s like every other entry is a
[00:23:37] comparison on the first entry.
[00:23:39] Anyways,
[00:23:41] one thing I started doing with something
[00:23:42] like this is
[00:23:44] using linked records for the values
[00:23:47] instead of a dropdown and then using the
[00:23:49] record IDs.
[00:23:51] So that, you know, cause my biggest fear,
[00:23:53] especially in formulas, if you’re using,
[00:23:55] if you’re comparing any field with a value
[00:23:59] of a dropdown,
[00:24:00] that somebody is gonna change the value of
[00:24:02] that dropdown.
[00:24:04] And then it messes up all your formulas.
[00:24:08] I sometimes will use emojis in like those
[00:24:12] drop down values.
[00:24:13] So like if it’s like, you know,
[00:24:15] say to do in progress done,
[00:24:17] I might have like an X,
[00:24:19] a
[00:24:20] So long as they don’t change the… Yeah,
[00:24:23] exactly.
[00:24:23] And I tell them, like,
[00:24:24] you can change what the words are,
[00:24:25] but don’t change the emoji or something
[00:24:28] like that, just so it’s… Yeah.
[00:24:30] But then it wouldn’t work in a switch.
[00:24:32] The switch has to be the full value.
[00:24:33] You could choose the first part to say,
[00:24:37] like, left one of the thing.
[00:24:41] So it’s whatever the first character is
[00:24:43] and make that that.
[00:24:45] But yeah,
[00:24:46] both of those great solutions for the
[00:24:49] switch because I’m terrible at spelling
[00:24:51] apparently.
[00:24:52] So it is often the case where like
[00:24:55] the logic is fine and then it will
[00:24:57] output nothing or whatever the default is.
[00:25:00] And then I’ll look back and it’s like,
[00:25:01] oh,
[00:25:01] I added two ends to the word month
[00:25:04] for whatever reason in the dropdown.
[00:25:07] And so you have to go back and
[00:25:08] rename it and make sure that your formula,
[00:25:11] which is dependent on it,
[00:25:13] they have to match spelling.
[00:25:15] So another thing with the switch as well,
[00:25:20] sometimes it’s helpful to wrap whatever
[00:25:22] you’re sending in as lower so that you
[00:25:27] don’t have to worry about cases matching.
[00:25:30] I accidentally wrote this as a lowercase
[00:25:32] a,
[00:25:32] if you wrap whatever your comparison value
[00:25:35] is up at the top in lower or
[00:25:38] upper, if you would prefer,
[00:25:39] then you can know that what you’re typing
[00:25:42] in for what to compare it against is
[00:25:44] going to match at least on that front.
[00:25:46] Yeah.
[00:25:47] And then trim.
[00:25:48] If you want to be really, really careful,
[00:25:51] you’d wrap whatever it is in whatever
[00:25:54] tricks you’re doing and then wrap the
[00:25:55] whole thing in trim so that you know
[00:25:58] whether you’ve added an extra space or not
[00:26:00] to your comparison values.
[00:26:02] And then having it in trim,
[00:26:03] make sure that whatever you’re comparing
[00:26:05] it against also doesn’t have that extra
[00:26:08] space at the end.
[00:26:09] Very true.
[00:26:11] And also one of the cool things,
[00:26:14] it’s been a year or two that they
[00:26:16] added the formatting so you can actually
[00:26:19] format it like a dropdown of these values.
[00:26:23] But that becomes tricky if you’re
[00:26:25] dependent on those and you get the wrong
[00:26:27] one and it goes to the default state
[00:26:30] and then I’ve had it mess up automations
[00:26:34] because the spelling wasn’t the same as
[00:26:37] what the output was.
[00:26:40] yeah um the format formula as drop downs
[00:26:44] and check boxes i use all the time
[00:26:46] they’re i think they’re one of my favorite
[00:26:49] little adjustments um in recent Airtable
[00:26:52] history um they’re not as relevant for
[00:26:56] this workflow here i don’t know if i’ve
[00:26:58] used that anywhere in this space but
[00:27:01] It is, they are so helpful,
[00:27:04] but you do kind of run into that
[00:27:05] same sort of, it’s not a trap,
[00:27:08] but the same sort of potential outcome of
[00:27:10] if your thing doesn’t match,
[00:27:13] Airtable is not going to do what you
[00:27:15] would hope it does.
[00:27:16] I had the funniest or it ended up
[00:27:19] being a funny situation.
[00:27:20] I was banging my head against the wall
[00:27:22] for a while over it involving those single
[00:27:25] select formatted formula fields.
[00:27:29] I had I was trying to update the
[00:27:30] formula.
[00:27:31] So I had duplicated the field,
[00:27:33] redid the formula, saved it.
[00:27:35] And then what I always do is I
[00:27:36] do a comparison formula.
[00:27:38] So I
[00:27:39] I do a new field and say,
[00:27:40] if this one does not equal this one,
[00:27:43] throw a value.
[00:27:44] And I compare them to make sure.
[00:27:46] I look at the records that are about
[00:27:47] to change and make sure I agree, yes,
[00:27:49] those are the ones that should be changing
[00:27:50] values.
[00:27:52] So all of them had the x.
[00:27:54] They all were like,
[00:27:54] these are all different.
[00:27:55] But I was looking at them,
[00:27:56] and I’m like,
[00:27:57] they all look exactly the same to me.
[00:27:59] I was staring at it for probably a
[00:28:02] couple of days.
[00:28:02] I kept coming back to it, being like,
[00:28:04] it’s the same thing.
[00:28:06] It’s literally the same thing.
[00:28:10] They finally figured out.
[00:28:11] I had set the default value to one
[00:28:14] of the values on the list,
[00:28:17] and it had the shrug emoji in it,
[00:28:19] like somebody being like, hmm.
[00:28:21] And in my new formula,
[00:28:23] when I had typed the shrug emoji,
[00:28:24] I chose the little brown,
[00:28:27] it had black hair, the little figure.
[00:28:32] But in the other formula,
[00:28:34] it had blonde hair.
[00:28:35] And it was the default was set to
[00:28:38] the one with blonde hair.
[00:28:39] And I was like, literally,
[00:28:40] it was just the different color hair
[00:28:42] emoji.
[00:28:42] Wow.
[00:28:44] Be very careful with the people ones
[00:28:46] because they all there’s so many
[00:28:47] variations, and you know,
[00:28:49] hard to even tell which one it is.
[00:28:51] So long story,
[00:28:52] but I thought that was kind of funny.
[00:28:54] I was like, Oh, it’s relevant.
[00:28:57] If they don’t match.
[00:28:58] Cool, cool.
[00:29:02] Yeah.
[00:29:03] Also, Kamille,
[00:29:03] this is such a creative solution.
[00:29:06] Like I love having the,
[00:29:08] how you did the thing with the weekdays
[00:29:09] all out the two weeks in a row
[00:29:12] helper field.
[00:29:12] Like that had,
[00:29:13] that just gave me a bunch of ideas
[00:29:15] too.
[00:29:16] Like I once, once upon a time,
[00:29:19] like one of the very first projects I
[00:29:20] ever did, somebody asked me if they could,
[00:29:23] if I could write a formula to figure
[00:29:25] out how many Fridays fell in between two
[00:29:28] dates, which I don’t know.
[00:29:33] I went to the forum,
[00:29:34] someone gave me a formula and I thought
[00:29:37] it worked,
[00:29:37] but years later I revisited it and I
[00:29:39] was like, this does not work.
[00:29:42] But I wonder if you could do something
[00:29:44] using this technique.
[00:29:46] You probably can.
[00:29:47] It’s like you have…
[00:29:52] It sounds like a simple question,
[00:29:54] but it’s tougher than it sounds because
[00:29:57] first you need to figure out how many
[00:29:58] weeks are between the two dates that you
[00:30:00] have.
[00:30:01] And then you have to figure out, well,
[00:30:03] what is the weekday of both the start
[00:30:06] and the end?
[00:30:07] And that will tell you if the start
[00:30:11] date is a Saturday, for example,
[00:30:12] that’s one fewer Friday that could be
[00:30:16] between those two dates.
[00:30:18] And if the end date is a Thursday,
[00:30:21] that’s another fewer Fridays that could be
[00:30:24] between those two dates.
[00:30:25] So that’s why the weekday of the start
[00:30:28] and end are important to know.
[00:30:31] But if, you know…
[00:30:33] If you start on a Thursday and end
[00:30:35] on a Saturday,
[00:30:36] that’s two extra Fridays that are between
[00:30:38] those dates.
[00:30:39] So you have to first figure out that,
[00:30:42] and then you figure out how many weeks
[00:30:44] are between the start and the end date,
[00:30:47] and then you just subtract that.
[00:30:49] is somewhere between zero and four.
[00:30:52] So it’s like,
[00:30:56] you have to answer a couple of questions
[00:30:57] before you can answer that question.
[00:30:59] And this workaround, I thought of,
[00:31:04] it wasn’t the first thing I thought of,
[00:31:05] it was like the second thing I thought
[00:31:06] of.
[00:31:06] And I was like, no,
[00:31:08] I don’t have to resort to that.
[00:31:09] I’ll figure it out.
[00:31:10] And then I spent another maybe hour and
[00:31:13] a half
[00:31:14] really digging through that other formula
[00:31:16] and trying to think through every possible
[00:31:20] you know, like edge case.
[00:31:25] And then I was like, well,
[00:31:26] unfortunately this solves all of them.
[00:31:29] It’s like, you can’t,
[00:31:31] you’re never going to have more than two
[00:31:35] weeks at a time that you need to
[00:31:37] take into account for what my formula is
[00:31:40] trying to do.
[00:31:41] And this formula is just me typing this
[00:31:45] twice.
[00:31:45] Yeah.
[00:31:47] It feels so silly.
[00:31:48] And again,
[00:31:49] the reason why this is a separate formula
[00:31:52] is so that I don’t have to type
[00:31:53] that string seven times in that other
[00:31:56] formula.
[00:31:57] I can just refer to it multiple times
[00:32:00] and it keeps the other formulas shorter.
[00:32:04] I love it.
[00:32:05] It’s like simple, brilliant.
[00:32:07] Yeah.
[00:32:07] Yeah,
[00:32:10] I wouldn’t have come up with that idea.
[00:32:13] It took a while.
[00:32:14] But that’s the explanation of how all of
[00:32:17] the formulas work.
[00:32:19] The last bit is the automation piece.
[00:32:23] So there’s two automations,
[00:32:25] and that’s it for this space.
[00:32:28] Let me collapse things down a little bit.
[00:32:32] If I go back to the interface really
[00:32:34] quick,
[00:32:34] that button in the top right triggers the
[00:32:37] first automation,
[00:32:38] which creates the next set of tasks.
[00:32:43] The reason why I did it this way
[00:32:46] is, again,
[00:32:46] I was trying to avoid a script.
[00:32:48] If I had a script in here,
[00:32:50] I could make it do thirty new tasks
[00:32:54] at a time, fifty, a hundred.
[00:32:57] But because I’m not using a script,
[00:32:59] you have to have separate create record
[00:33:01] steps for each new task that you’re trying
[00:33:05] to create.
[00:33:08] And there is a workaround that I was
[00:33:10] considering and ended up not doing to make
[00:33:13] this more than five in a way that’s
[00:33:16] not annoying to do.
[00:33:18] And I’ll talk about that later.
[00:33:20] But broadly,
[00:33:21] what this is doing is that button on
[00:33:24] that interface checks a checkbox.
[00:33:27] And whenever that checkbox is checked,
[00:33:29] this automation will run.
[00:33:31] So there’s a simple condition at the top.
[00:33:34] um in order to create the next task
[00:33:36] i need to know when the next due
[00:33:38] date is which was the result of all
[00:33:41] of those formulas we just went over so
[00:33:44] take that next due date and create a
[00:33:48] new record where the due date is that
[00:33:50] date
[00:33:51] And then I didn’t show it,
[00:33:52] but there’s a,
[00:33:55] I call the field an auto number.
[00:33:56] It’s not.
[00:33:57] It’s a number field that I’m auto
[00:33:59] incrementing by just taking whatever the
[00:34:02] max number is and adding one.
[00:34:04] That way each task has their own auto
[00:34:06] number.
[00:34:08] that they don’t run all together,
[00:34:12] this task can have one through ten and
[00:34:14] the other task can have one through ten.
[00:34:17] So the first one is simple.
[00:34:20] And the second one,
[00:34:22] while this looks pretty similar,
[00:34:25] it is doing something similar,
[00:34:27] except it’s not reading from the trigger
[00:34:29] anymore.
[00:34:30] It’s reading from the previous output.
[00:34:32] So these are created in a defined
[00:34:35] sequence,
[00:34:37] where first it’s going to create this
[00:34:40] record,
[00:34:40] and then it’s going to create this record.
[00:34:42] And that allows me to say,
[00:34:45] the due date of this second task should
[00:34:51] be based on the first task that I
[00:34:54] created.
[00:34:55] The formulas that we went over already are
[00:34:59] going to calculate again because the
[00:35:02] roll-up field would have updated itself
[00:35:05] and then all of the formulas I talked
[00:35:07] about are going to do their calculation
[00:35:09] and figure out what the now next due
[00:35:11] date is.
[00:35:12] And I’m bringing that in as a rollup.
[00:35:15] So after this first task is created,
[00:35:19] the rollup gets updated and I can bring
[00:35:21] that in.
[00:35:22] And same thing with the next auto number.
[00:35:24] So this task is now reading from the
[00:35:28] second task that’s created.
[00:35:31] Now that the second task is created,
[00:35:33] the due date updated again.
[00:35:34] So pull that in and that’s what the
[00:35:37] next due date is.
[00:35:39] So I could have kept going.
[00:35:41] The limit of steps, I think,
[00:35:43] is twenty five for an automation.
[00:35:48] So I could do twenty five minus two
[00:35:50] because of these two other steps that I
[00:35:52] needed to do.
[00:35:54] I didn’t want to.
[00:35:55] So I stopped at five.
[00:35:58] And then at the end of it all,
[00:36:00] I’m just clearing that checkbox.
[00:36:02] And this other condition,
[00:36:04] if I don’t have a next due date,
[00:36:06] that’s after today.
[00:36:08] it’s doing the same thing of clearing the
[00:36:10] checkbox.
[00:36:11] If I can’t calculate the next due date,
[00:36:14] don’t even bother.
[00:36:15] Don’t create new tasks,
[00:36:16] there’s something wrong.
[00:36:17] So that’s what this automation is doing.
[00:36:22] The potential workaround I was considering
[00:36:25] was if on the interface I had somewhere
[00:36:29] where you could put in a number field
[00:36:32] of create,
[00:36:34] this many tasks,
[00:36:38] I could have the automation create just
[00:36:44] one task and then decrement that number
[00:36:49] that you entered.
[00:36:49] If you put in ten,
[00:36:51] decrement that number by one,
[00:36:53] so it puts in nine.
[00:36:55] But then I was having an issue where
[00:36:58] I could have the automation be triggered
[00:37:02] whenever that number field is updated,
[00:37:06] create a new task.
[00:37:07] And I just didn’t want it to run
[00:37:09] one extra time because it’s going to get
[00:37:12] down to updating the number field to zero.
[00:37:16] And then it would run again because it
[00:37:18] was just updated.
[00:37:19] And I just felt that would be sloppy.
[00:37:21] I could do it.
[00:37:22] There’s no real reason not to do it.
[00:37:24] And that does make it more flexible,
[00:37:26] but it would chew through your automation
[00:37:29] runs like crazy.
[00:37:30] So just something to consider.
[00:37:34] This is where.
[00:37:35] I think last week we talked about like,
[00:37:36] man,
[00:37:37] if they could just have a conditional,
[00:37:39] a loop that was sequential,
[00:37:43] then you could do this in an easy
[00:37:45] loop where you just, you know,
[00:37:47] say just set up a loop of five
[00:37:49] or however many you want to run.
[00:37:51] And you wouldn’t have to,
[00:37:52] you would just have one create record
[00:37:53] inside of a loop.
[00:37:55] I went through the whole motion of
[00:37:57] creating a multi-select field that was
[00:38:01] like a
[00:38:04] it was multi-select and the values of each
[00:38:07] of them were one, two, three, four, five.
[00:38:10] And I would loop through,
[00:38:12] if you chose four,
[00:38:15] you would have to choose one, two, three,
[00:38:16] four,
[00:38:17] and it would loop through each of those
[00:38:19] and create these five records at a time.
[00:38:22] But I wouldn’t be able to
[00:38:24] to know when the first loop finished or
[00:38:28] even when the first loop started so you
[00:38:30] had to you have to structure it so
[00:38:33] one loop ends definitively and then you
[00:38:36] start the next loop which you can’t do
[00:38:39] really in the um loop setup that air
[00:38:45] table has natively you kind of have to
[00:38:46] create your own loop and then that’s when
[00:38:49] i was like yeah let’s just do five
[00:38:50] at a time
[00:38:51] yeah so it’s so frustrating like sometimes
[00:38:55] i’ll have like a like a second like
[00:38:58] account field and like you know a roll
[00:39:00] up to be like how many of these
[00:39:01] records that are linked to this record
[00:39:03] have been processed by the loop so i
[00:39:05] can know when all of them have been
[00:39:07] but like that’s not reliable because that
[00:39:09] doesn’t mean like if one of them failed
[00:39:12] like i still want to know that the
[00:39:13] loop is over and i would never know
[00:39:15] in that case yeah yeah
[00:39:20] Someday, maybe.
[00:39:24] Maybe.
[00:39:24] The last thing,
[00:39:25] and I’ll go through this part really
[00:39:27] quickly, is the notion of streak.
[00:39:29] So let’s look at the data structure really
[00:39:31] quickly.
[00:39:32] Each of these tasks,
[00:39:34] which are repeated elements of that first
[00:39:37] table with all the crazy formulas,
[00:39:39] can be linked to a streak.
[00:39:41] And then there’s a status, and then…
[00:39:45] This is just to help you know,
[00:39:48] or help the automation know rather,
[00:39:50] if we’re on like the fifth instance,
[00:39:52] for example,
[00:39:54] we want to check if the previous instance
[00:39:59] has completed.
[00:40:01] So in this case,
[00:40:01] the previous instance was four,
[00:40:04] it was completed.
[00:40:05] So if I do the fifth one on
[00:40:06] time, I’m continuing that streak.
[00:40:09] But if the fourth one wasn’t completed on
[00:40:12] time,
[00:40:13] then this should be its own new streak.
[00:40:16] And then the streaks table,
[00:40:18] I’m linking to the overall record as the
[00:40:21] individual tasks that are relevant for
[00:40:25] this streak.
[00:40:26] And then a couple helper fields to give
[00:40:29] it a name that sort of matters.
[00:40:31] So the first week was from instance one
[00:40:34] through two,
[00:40:35] and then I messed up one month and
[00:40:37] now it’s just,
[00:40:38] we’re on the fourth one and let’s see
[00:40:41] if we do the fifth one in time.
[00:40:43] So the way that automation is running of
[00:40:45] whenever a task is complete,
[00:40:48] we get the previous task using that
[00:40:50] previous calculation,
[00:40:52] which is just what’s this number minus one
[00:40:55] and making sure that it’s part of the
[00:40:57] same habit.
[00:40:59] And if there is a…
[00:41:05] If there is a matching record, well,
[00:41:08] then we want to attach this task that
[00:41:11] just completed to the same streak as the
[00:41:14] previous one.
[00:41:15] If not,
[00:41:16] we want to create a brand new streak
[00:41:18] that is linked to whatever tasks just got
[00:41:20] completed.
[00:41:21] So this one actually relatively
[00:41:23] straightforward.
[00:41:24] And I know it’s a little early for
[00:41:27] this one,
[00:41:28] but if I were to go in
[00:41:31] for January and mark this as complete,
[00:41:36] what that should do is update the streak.
[00:41:39] So I’m currently two instances in a row.
[00:41:44] And then if I go back and look
[00:41:46] at my data,
[00:41:47] check mail instances four through five.
[00:41:52] Just checking it from the other end.
[00:41:53] Yep, January,
[00:41:55] which is the one that I just updated
[00:41:57] was attached to the same streak as the
[00:41:59] previous record.
[00:42:03] Very cool.
[00:42:06] Maybe I’d love to look at the interface.
[00:42:09] Let’s talk a little bit about building out
[00:42:11] the interface.
[00:42:13] Sure.
[00:42:14] Okay.
[00:42:14] So what kind of page format are we
[00:42:16] using here?
[00:42:17] This is the record review.
[00:42:19] The actual like overall page that I used
[00:42:23] doesn’t,
[00:42:25] I didn’t put too much thought into it.
[00:42:28] I think I had that old app I
[00:42:30] was using in mind where you could kind
[00:42:32] of easily switch back and forth between
[00:42:35] the different chores or habits that you
[00:42:38] were tracking.
[00:42:39] And record review is kind of the only
[00:42:43] modern one that lets you see the detail
[00:42:46] page pretty easily with whatever list
[00:42:51] you’re looking at without taking up too
[00:42:53] much space.
[00:42:54] So if I…
[00:42:55] get out of preview mode,
[00:42:56] the detail page takes up the majority of
[00:42:59] the screen real estate.
[00:43:01] And then I’m doing this on the team
[00:43:04] plan,
[00:43:05] which means I don’t have conditional
[00:43:07] visibility available.
[00:43:09] But I do, I mean everyone does,
[00:43:12] the ability to have collapsible sections.
[00:43:14] So I took all of the settings fields
[00:43:17] and put them together up at the top.
[00:43:20] So if I don’t need to edit my
[00:43:21] settings,
[00:43:21] which you rarely do after you set up
[00:43:23] your habit, you can just hide them away.
[00:43:26] So they’re not completely hidden,
[00:43:28] but they don’t take up too much space.
[00:43:30] The next section was about the streaks,
[00:43:33] which are pretty simple of just two
[00:43:37] numbers up at the top, which have some,
[00:43:41] like they’re looking at the same field,
[00:43:43] except for this one has a condition.
[00:43:45] Is current streak being true or not?
[00:43:49] And then this has all of the streaks
[00:43:54] formatted as a chart.
[00:43:56] This one,
[00:43:57] I don’t know how useful this would be
[00:43:59] in practicality,
[00:44:01] but it’s every streak that’s relevant for
[00:44:03] this habit.
[00:44:05] with the day that streak started and how
[00:44:07] many times in a row it happened.
[00:44:10] So would this be useful?
[00:44:12] I don’t know,
[00:44:13] but I added it in because I thought
[00:44:15] it’d be a nice visual.
[00:44:16] And the last bit is put every task
[00:44:19] on a calendar.
[00:44:20] There’s only one due date.
[00:44:21] So this one was fairly straightforward and
[00:44:24] I have coloring on by status.
[00:44:27] So it just takes the color of that
[00:44:29] status field.
[00:44:33] Cool.
[00:44:36] love it awesome this is great hopefully uh
[00:44:39] you all enjoy this new format we go
[00:44:42] much deeper than we have in the past
[00:44:43] talking about some real world use cases
[00:44:46] and some tips and tricks that hopefully
[00:44:48] help you all out in your Airtable
[00:44:50] building and we’ll do it again next week
[00:44:53] as well we’ll do another demo
[00:44:55] And yeah,
[00:44:56] so if you have not joined our community,
[00:44:58] join us,
[00:44:59] builtonair.com slash join gets you into an
[00:45:01] amazing community of Airtable users
[00:45:04] talking daily about Airtable.
[00:45:07] And we are also looking for guests to
[00:45:09] come on and showcase what you’ve built as
[00:45:11] well, even as early as in two weeks.
[00:45:15] So if you would like to reach out
[00:45:18] to me,
[00:45:19] you can DM me in the community.
[00:45:20] I’ll post also a link to the signup
[00:45:23] form as well.
[00:45:24] and get some guests on um so that
[00:45:27] is today’s show and we will see you
[00:45:29] next week take care thank you