Description Transcript
AI Build Week #2 — Day 1 of 4
Every day, millions of visitors land on U.S. government websites—but which ones are trending right now?
On Day 1 of AI Build Week, we’ll use Retool’s AI-assisted app generation to build a traffic visualization app on top of analytics.usa.gov in just minutes.
During the session, Keanan Koppenhaver, Developer Relations Lead at Retool, will walk you through how to:
Import an OpenAPI spec and let AI generate your app's structure.
Refine that base into a polished dashboard showing live trends across U.S. government websites.
Read more 1:13 Hello, everyone! 1:15 This is live. Hi, Keanan! 1:18 Good morning. Welcome to the second round of AI Build Week. I am Sarah Sherman. I work on the community team here at Retool. 1:29 I'm super excited for another few sessions of AI Build Week. 1:34 We had our last sessions back in July. They were a huge success. You could check them out on our YouTube channel and in the community. 1:44 But this week, we are going deep into Assist and all of our new AppGen capabilities. 1:53 If it is your first time, welcome, we're super excited to see you and see some new faces. If you attended last time, welcome back. 2:04 So these sessions are meant to be super interactive. It's meant to feel like a conversation with your really smart coworker, or with Keenan here. So, he will 2:16 be kicking it off today with our presentation. 2:20 We'll be answering your questions live. We'll be dropping quick polls and questions and chatting with you in the chat here in Zoom or in the community. 2:28 You could chat there too. So hold for the end, and we will be answering a lot of your questions live. 2:33 And, so let's kick off in the chat. Let us know where are you tuning in from, and also, for fun, if you can build an app in just 5 minutes, what would you build? 2:44 So let us know in the chat, let us know where you're tuning in from, and your quick app. 2:51 And also, make sure you check out the schedule for the rest of AI Build Week. We have a lot of really great sessions coming up, and so I'll drop that link in the chat as well. But, hey, Keenan! 3:03 Hey, good morning, thanks for that intro, Sarah. And yeah, great to see everybody here for the second iteration, as Sarah mentioned, of AI Build Week. 3:10 I, myself, am calling in from Chicago this morning, and I'm a little biased, because we've already decided what the topic of this session is, but 3:18 my 5-minute app today is gonna be, an app on top of, some government data. 3:22 So, excited to, dive into that. But yeah, please, jump in the chat, engage with all the folks there. 3:27 We've got a few folks from Retool in the chat, too, who are keeping an eye on things for questions, and you know, things we'll cover at the end. 3:37 So yeah, James, thanks for the shout out there. Awesome. Let's dive into it. 3:41 So, as you may have, seen on the invite that you replied to, today we are taking a look at how to visualize U.S. government web traffic, with Retool, right? 3:55 For a little bit of background, if folks have, not been keeping up with everything that's been going on here, basically last couple weeks at our Summit event, 4:04 we introduced what we are calling Enterprise AppGen, and talked about how Retool is going to be an application generation platform for the enterprise, specifically using AI and leaning into 4:15 the advancements that that technology has brought us. So, what that looks like is, you know, your typical sort of Retool interface that you might be familiar with. 4:23 But as we'll see in this session, there's a new Assist tab, which Sarah mentioned, which is a panel where you can have, basically a chat back-and-forth free tool. 4:31 You can prompt it to build certain applications, and you can see in real time what it's building, how it's making edits. 4:38 So, you know, people building applications really quickly is kind of where we started, but we very quickly realized that because it's native to Retool, it can also do things like explain how a specific application is working, or 4:49 Dive deep into how a component is connected to a query, or think about, okay, what kind of components would I need to build this type of application I want to build? 4:57 So, it's really, that's why we called it Assist, is because that's exactly what it is. It's an assist for anything you might want to do inside of Retool. 5:04 And so, that allows our users and us in this session today to take the, you know, speed of building and retool and kind of accelerate it even further. So, we're going to take a look at exactly how that works. 5:16 And there are kind of three core components to why this is not just, you know, another AI builder, right? Number one is a lot of the builders that we see in the market are, you know, really great at generating user interfaces, at putting components on the screen, and even hooking them together sometimes. 5:30 But there's this kind of core piece that helps you take something from a prototype to something that your team and users can actually use in production. 5:37 And that's the fact that it's built on top of your data. So, for years, Retool has been sort of a platform that can integrate all your various data resources and places where your data lives, other business systems, and we're building on top of that with this new launch, right? 5:51 So, apps and automations are automatically generated against your data and the schemas of your data, as opposed to, you know, using mock data or anything like that, which you can do as well, but… 6:00 We think the real value in generating these things quickly and making them absent and things that folks can use is building on top of your data. Secondly is deploying to your cloud. 6:07 With a lot of the other prototyping tools out there, they're kind of… you get to this point where it's a little bit of, like, a what's next step, where you have a bunch of code that's been generated, but, it's just running for you, and it's kind of hard to figure out, okay, where do I deploy this? How do I use this? 6:23 And you know, Retool has long had a wide variety of environments that you can deploy your apps into. 6:29 So if you want… if you don't want to worry about the infrastructure at all, you can deploy into Retool's cloud environment. 6:35 That's basically the default, where, you don't even have to think about any of that deployment or infrastructure. But we also allow our customers to, self-host Retool on their own infrastructure, and this AppGen technology works across all of those different deployment options. 6:49 And number three, is secure by default, right? Another big gap that you have to jump over when you go from something that just you yourself are working on to rolling it out to your entire team is, how do you authenticate people? 6:59 How do you decide, you know, what permission levels they should have? Can they use certain parts of the application? 7:04 With a lot of the, you know, other AI app gen tools, this is really difficult. But all of these permissions and this governance is already built into the Retool platform, so that when you build on top of Retool, now using AI, you get all these features, basically included as part of that. 7:19 And so, once your security team kind of sets up and defines that governance, any of these apps that are generated and built on the Retool platform, basically inherit that as well, right? 7:28 Those are kind of the three… the three pillars that, make up our enterprise opt-in platform that we will look at today. So, what are we building? Let's get a little bit more specific, right? 7:38 So it turns out, there's this URL right here, analytics.usa.gov, and I stumbled across this the other day, and I noticed that it's kind of a cool dashboard of, like, exactly what's going on across all of the different federal government websites and apps. 7:45 So basically anything that has a .gov URL on the end. You can just go to this website right here, and you can look at exactly what's going on with the different, properties, 7:57 and what languages people are accessing in, you know, what cities people are coming from, all the sort of stuff you might expect to see in a, like, Google Analytics account or something like that. 8:11 It's public information across all these federal government websites. And so, this is really cool, and I started kind of diving into this data, and looking around and clicking the different things, 8:21 and I realized that this dashboard is relatively static, right? 8:26 You can't really make any modifications. But then I saw this button up here where it said API. I was like, oh, that's interesting, okay. 8:33 There's an API, that means I can maybe build something on top of it, and I can, you know, just get the raw data and start to kind of create the user interfaces that I want to. 8:42 And so, that's what we're going to do. Basically, we're going to make our own version of this dashboard that looks at a couple specific statistics and, lets you kind of dive deeper into those things. 8:53 So, the first step, as with most steps in building anything in Retool, is to add our API as a resource. 9:01 And crucially, what I will say is that this API has what's called an OpenAPI specification, and so if we go here… 9:09 USA.gov, open API. What this means is it has a specification file that allows any sort of system, and specifically the assist functionality in Retool, to understand how the API works. 9:24 So, this is what it looks like. I'm not going to go too deep into this. 9:29 Just because it's a little bit, verbose, as you can see. But basically, this is an entire explanation of how this API works, what sort of parameters it expects you to pass in, everything like that, that a computerized system, including Retool, can understand. 9:44 So, that will come in handy a little bit later, when we actually start working with this API, but what we need to do first is add this API as a resource into Retool. 9:53 So, if you're not familiar with how resources work, basically, they're where your data comes from and where your data lives in Retool. 10:00 So, if we go to Create New Resource, I just want to show you here all of the different options for the native integrations that Retool already offers. So, if you use any of these systems, 10:09 you basically can, you know, in most cases, insert your API key, or insert your credentials, and Retool basically is able to natively integrate with any of these things. 10:19 But for integrations that we don't offer natively, for example, the Government Analytics API, we can use the REST API integration, right? 10:27 And so what that looks like here is we've added this as our, you know.gov analytics data resource. I've named it, I can give it a description if I want to, and I can just give it this base URL. 10:38 So this is basically the part of the URL for the API request that stays the same, no matter what data I'm accessing. We set that as the base URL, 10:46 And we also give it, our API key. 10:48 So if you dive deep into the docs for this particular API, it tells you that you need an XAPI key header, and because I didn't want to expose my API key to everyone watching this, and folks who might watch it in the future on YouTube, 11:01 we've stored that API key as an environment variable inside of Retool. If you want to try this yourself, you can go over here, and I believe there's just an authentication section. 11:11 Yeah, where you could put in first name, last name, and email, and it took about, I think, 60 seconds, maybe 90 seconds, and they emailed me with an API key. So, if you want to try this yourself, you can go over to open.gsa.gov slash API slash DAP, and you can sign up for your own API key and do the same thing. 11:29 So, we've got our base URL, we've got our API key in here, and that's basically all we need to set up this resource, right? 11:35 So, in this case, we're doing this more, like, cooking show style a little bit. This is already kind of pre-configured, but you would hit Save Changes here, and you would have a brand new resource that connected to this API. 11:49 So next, let's build our dashboard. 11:51 There are 3 kind of key things that I want folks to look out for while we're building here. 11:55 Once it gets going, it's going to start to kind of move along pretty quickly, so I wanted to call these out ahead of time. 12:01 Number one, you can at-mention resources. So, if you've used ChatGPT with custom GPTs, or maybe Claude Code with custom sub-agents, you're familiar with the syntax, right? 12:10 Even if you've just used Slack, and you've basically wanted to mention a coworker, right? 12:15 And in Retool, basically, this works the same way. If you have a particular database or a particular resource that you want Assist to build on top of and to use that data. 12:24 You can basically use the at symbol to select that resource, and then Assist will know, okay, this is data that I have access to, we can dive even deeper and figure out the schema, how this data is laid out. 12:35 And all of that, you know, intelligence that it can use because it has access to your data and your resources, right? 12:41 The other thing is, we covered this a little bit earlier, but Assist has full context of what's going on. Because it's built right into Retool, it knows where all your components are, how they're laid out, what queries exist, 12:52 what resources exist, and what it has access to, and so it's able to build fully functional applications because it has that full context. 13:05 And so we'll see a couple different places here where it dives deeper and uses that sort of Retool native knowledge to its advantage, right? 13:06 And number three, we're also going to show this, but, you know, we are very focused on, keeping the user in control of what's going on here, right? 13:13 So, as it starts to look at the API, and as it starts to generate queries, you'll see that, number one, it takes into account any of the permissions we already have set up on our Retool account, and number two, it will actually explicitly ask the user for permissions to run each of the queries that it writes, right? 13:27 After I show you a couple of those, I'm going to turn that off and say, okay, I can, you know. 13:33 I approve you running any and all queries you want to. I personally call that YOLO mode. 13:37 But we'll see how that works, and we'll see… you can basically, handhold it as much as you want. And as much as much as you feel comfortable with. 13:45 And that kind of sort of depends on what resources you're using as well. If you're using resources that have potential, you know, irreversible consequences, that's probably a case where you'll want to review and approve every query that's written. 13:56 If you're using, you know, you're more prototyping, or you're using other resources that are a little bit safer, that's where you might just auto-approve everything and let it run for a longer period of time. 14:06 We'll call these out as they happen, but I just wanted to flag those to folks before we get started. 14:11 So… enough talking. Let's get into a demo and actually see how this works. 14:16 Here's our resource, and we're just gonna go to Apps, and we're gonna create a brand new app here. 14:24 And this brings us to the Retool canvas. I'm gonna try to balance the zoom a little bit so folks can see what's going on, but also see what's going on with Assist, so we'll see how we do. 14:33 And you'll notice here, if you're familiar with Retool, this panel, like I mentioned, is brand new. You can toggle it on and off by using this icon down here in the bottom left. 14:41 And so, you can see that we're going to use AI to design UIs. 14:43 If you just want to see kind of an example, you can choose one of these four prompts that are already pre-written for you. 14:49 But we're gonna do our own thing because we know what we want to do. So once again, like I mentioned, cooking show style, we have a little bit of this pre-written here. 14:57 So what I'm going to do for my initial prompt is I'm going to say, please build me a dashboard using D, and then this is a placeholder where I'm going to actually at-mention my resource. 15:06 So I can say at government analytics data, and you see it gets called on in this little chip view here. So, build me a dashboard using the government analytics data. 15:14 I want to look at the defense and commerce agencies' operating system data to show the differences in technology stacks between the users of each agency. 15:22 I was kind of curious when I was looking at that dashboard of, okay, do the majority of people accessing these sites use Windows or Mac, or are people going to these sites on mobile? 15:31 And I thought it'd be kind of interesting to see that breakdown. So, I'll use that prompt here, and you'll see right away, Assist is thinking. 15:39 There's a little bit of an update here as to what's going on, but you'll also start to see things, come out here in the chat. 15:46 This is the place to keep an eye on for, okay, is it waiting for something for me, is there a query that I need to approve, etc. 15:51 But also just to kind of keep an update on what's going on. So you can see what it's going to do is it's going to explore the API for us, it's going to design a wireframe, 15:58 it's going to create a tech spec, and then it's going to build the plan, and actually lay out the components. 16:02 Again, all we gave the resource was that base API URL, right? And so, it's going to need to explore and see what it actually has access to. 16:11 So you can see here, it's going to make a GET request to the agency's endpoint, which it found using that OpenAPI specification. 16:19 And it's asking me, do I want to run this query? I'll say yes, that's fine, we can run it. 16:23 And it's going to go ahead and explore what agencies it has access to. 16:27 Like I said before, my prompt, I asked it about the defense and commerce agencies, and so it's going to go looking for those. 16:32 And so it's okay, it found this other endpoint, right? Agency's defense reports OS data. 16:37 So this looks like potentially what we want, right? It thinks it's gonna get the operating system data for the defense agency from, this endpoint, right? So again, I'm going to go ahead and say, yep, you can run that. 16:47 And it's gonna decide what it wants to do next after it runs that. 16:52 So, it did get the data there, and you can see that it got, its results here, and so we can see, basically, it's making all of these queries, now it's going to do the one for the commerce agency. 17:00 At this point, I'm feeling pretty good about what it's doing here. It seems to be making the correct decisions, so I'm going to go down here, and I'm going to say, auto-approve all queries on this resource, 17:09 which basically means anytime you want to make a request to this API, like, go ahead and do it, you don't have to ask me. 17:15 My other option is auto-approve all queries. I don't necessarily want to do that yet, but I'm going to auto-approve all queries on this resource. It seems to be making good decisions. 17:23 I trust it for now, and that will let it run a little bit faster in the background while we're… while we're sitting here watching, right? So… 17:29 Again, at any point, the steps are delineated here for you to take a look at, and so if you say, oh, what did it do when it got this endpoint again? 17:36 You can basically click in here and see, okay, it got, you know, you used this endpoint here, it called this method, and here are all the results it got. 17:45 So it does look like it's pulling operating system data for us. 17:48 Windows, it's got Android here. 17:51 So that looks pretty promising. So that looks good. So we'll close this back up, and we'll see what's going on here. 17:57 It found the API, it has looked and decided it has the data it needs, and it's created those queries to retrieve the operating system data from the dashboard. 18:04 So step one, it's calling complete. 18:08 Step two now, as we remember, it decides on the wireframe, right? So the wireframe, number one's theme and colors, 18:13 it looks like it's choosing a, you know, actually a very similar-looking theme to, if we go back here and look at the, the actual analytics dashboard that we're kind of basing this off of. So that's kind of cool to see. 18:24 And then as far as Wireframe, it's gonna dive in, and this is where it starts looking at specific components that it actually needs to build for this. 18:31 Tech spec is gonna be similar, where, okay, we need to now decide how our components connect to queries. 18:36 What our components are called, all these different things that, if I was building a Retool app myself, 18:41 I would have to do and kind of work through as part of my process, Assist is doing for us. 18:44 And so finally, now on the implementation plan, it's going to create the skeleton, it's going to add all the components, it's going to label them and title them, connect the queries, and then it's going to review it with us. 18:54 I'm going to zoom out a little bit here so we can see a little bit more what's going on. We can see that, you know, things are happening over on our dashboard, right? 19:02 You can see all these different components being generated here. It's actually putting stuff onto the canvas. 19:07 And again, at any point, we can, you know, specifically look at any of these components. 19:11 If we want to say, okay, the OS comparison chart, if we click on that, you'll see that it opens the inspector over here, which, as we'll see in a little bit, because these are all just Retool components under the hood, 19:18 even if you generate an app using our AI-assisted tooling, you can basically jump in at any point and still, make manual edits. 19:30 So, you can see these charts are basically just placeholder data for now. Sales and spend don't have any sort of correlation to the app that we eventually want, 19:38 but that's where it's now writing these queries, and it's going to go in and start to fill those in. So if we zoom out a little bit more, we can see that, 19:47 this is starting to come together here. It's pulling in some of our data, it looks like, down here into this table, but it still has some modifications and consolidations to make. 19:56 So, what I like about this sort of, kind of, incremental build is that I can see the decisions it's making in real time and see kind of how it's putting things together. 20:04 At any point, if I wanted to, kind of push this in a different direction, for example, one of the versions of this tool that I built, with Assist, it chose to use pie charts. 20:12 So, if I wanted to say, no, we need to go back and use pie charts, like this example, I could hit on, you know, stop response, and basically then re-prompt it and say, okay. 20:24 You know, this is how we need to do this, and add more specification. 20:25 This is also the kind of thing that I could have asked for up front in my prompt. 20:29 So I could have said, please, you know, demonstrate this data using two pie charts, and then Assist would be able to say, okay, Retool has a pie chart component, 20:37 I can use that and drop that on the page. So because I left it pretty vague, I'm giving Assist a lot of room to make its own decisions. 20:44 Which is kind of cool, because you get a slightly different dashboard every time. 20:48 So, if you have more concrete specifications, though, you can, you can basically make those… make those specifications known up front. 20:55 So once it starts actually editing the components and putting them together, you can see exactly what is changing. 21:01 So you can see here, it renamed the dashboard title to Agency OS Technology Stack Comparison. That's this component right here. 21:08 And this is really just to give you full visibility into what is going on and, how it's, you know, laying things out. 21:14 So again, now that we're in here and it's creating queries, we can look at, okay, exactly the code that it's writing to kind of aggregate all this data in a certain place. 21:23 And how it's actually putting all this data into a chart. So, again, this is AI-generated code, but at any point, because this is still all built in Retool, if you wanted to come over here and sort of edit this yourself. 21:34 You could absolutely do that. And that's one of the main ways we suggest folks use the technology, is use the AI for what it's good for, 21:41 but don't overly rely on only prompting, when the easiest way to make a change or update an app might be to just go in and do it yourself. 21:49 So, now we are here at the end. It says, I've built your app. We're comparing defense and commerce agencies. The dashboard features show total visits, a group bar chart, differences, and detailed data tables. 21:59 All right, so let's close that and just look at what we've got here, right? So we've got, exactly what it said, basically. We've got a bar chart that shows 22:08 the different, comparisons. So it looks like, far more people access the, Commerce Department's website on Android versus Defense. 22:17 Whereas, you know, you can see how all these different ones break down here. 22:22 And if we wanted to, look at the data for each of these tables, we could just go down here and say, okay, cool, here's our, you know, Windows data for October 26th, that was yesterday, here's our Windows data for the 25th, that was the day before, etc. 22:34 So we can get pretty specific here, and because, again, this is the same retool table component that you're familiar with, you can do things like filter. 22:42 You know, if we want to only include the Windows results, we can do that. And then we see, you know, Windows site visits going all the way back to… as far as the data supports, right? 22:54 Lots of things you can do with the fact that your generated app is just 22:58 Retool components under the hood, right? 23:01 So this is cool 23:03 But it's a little bit less flexible than I would like, because, again, we're only comparing the defense and the commerce agencies here. 23:09 There are a ton more agencies in the federal government that I'm also curious about, and so what I think I'm going to do is pop open ASSIST again. 23:16 And, number one, if I wanted to basically create a checkpoint here, I could create a release, and basically what this would do is this would give me a point that I can roll back to at any point in time, right? 23:29 For example, like, if you've used any of these vibe coding tools before, you are probably familiar with, kind of. 23:34 getting something good working, and then going down the wrong path, and then it being really hard to go back to the kind of working version that you had, and kind of undo that. 23:43 So, at any point, when you're doing anything with Assist and Retool, once it gets done working, you can create a release, which saves that checkpoint. 23:50 Especially if you're using source control inside of Reachable, it's very helpful. But you can also see here, you can revert to a previous version, right? 23:57 So if we go ahead and do this next thing that we're gonna do, and we really don't like it, it really kind of messes up what we were trying to do, we can just go ahead and revert back to this sort of known working state, which, gives me, you know, as a builder, a lot more confidence in what I'm building, and allows me to take some more risks. 24:19 Because I know that as long as I'm kind of saving my work along the way, I can revert back to those versions as we go. 24:20 So what I'm gonna do is take my next prompt here, and I don't want you to worry about reading all of this, but basically, we'll just read this top part here. 24:28 So what I want is, a drop-down so that we can select the departments for, for each column. Let's say departments to compare. 24:37 And so, again, like we said, we don't just want to compare defense and commerce, we want to be able to dynamically sort of select, you know, which departments we compare. 24:45 So, this is an example of, now that we've generated an app with Assist, you can also edit existing apps. And this is one way we're going to do that. So I want to say. 24:52 I need two dropdowns that update, you know, both the underlying chart, but then also the data in this table, these titles, etc, 25:00 And so, what I've done here is given it, you know, the label, and then the API name for all of the different agencies that are available in the API, so that it's able to basically populate that dropdown with this data. 25:12 And so, if you want to copy and paste this prompt and try it yourself, it is available in in the resources folder that Sarah shared up at the beginning of the talk, and we will make sure that everyone has that at the end as well. 25:24 Basically, we're gonna say, can we add a dropdown, select departments, and here's all the data that I want my dropdown to contain. 25:30 Let's go ahead and hit enter on that. 25:33 And you can see some of the examples here, you know, Commission on Civil Rights, or Postal Inspection Service, right? Things that I'm actually kind of interested in seeing, okay, like, what is… what is the breakdown for these? And so. 25:42 It's very excited to help us add these drop-down filters. And so it's going to follow much of the same process, right? It's going to, number one, figure out the… if it needs any new resources. In this case, it shouldn't, because 25:54 We're using the same API, then it's gonna pick the drop-down components, it's gonna add them, and then it's gonna have to do the kind of query logic to hook up, okay, the table needs to be updated when this drop-down changes, the charts need to be updated when the drop-down changes, etc. 26:01 So it's going to do all of that, for us here, as evidenced by the plan. 26:10 So we can see it put our dropdowns on the canvas, and then decided, well, these should really be up at the top of the view, which makes sense to me. 26:17 If I see them up here, I know that I can configure them right away, versus scrolling all the way down here to find them. 26:22 So that was good there. Now that it's got them on the screen, it's gonna have to go ahead, and I would assume that it's not going to have label be the final text that goes here. 26:31 It's also going to have to put the options into the dropdown itself. 26:35 So, we're gonna have it do that real quick. While it's doing that, I could actually go down here, and it looks like it created this gap here, but didn't fill it. 26:43 So, we're gonna look at that in a second. But again, because these are all just components, we can just go ahead and move this up here to kind of clean up our dashboard a little bit, even while Assist is still working, right? So… 26:54 Let's see, what is it doing right now? Configuring the drop-down options and the labels, perfect. 27:03 Alright, so if we jump in here, we can see, okay, here's all of our copy-pasted, values. 27:12 Sorry about that. Here's all our copy-pasted values, and so we have first department, second department. 27:18 And if we click into this list, you can see all of our values are now in here, right? So that's pretty cool. 27:24 And that seems to be working, but I would imagine that if I change this, yeah, it doesn't seem to affect, much of what's going on in here, right? So… 27:34 That's where it's going to update these queries, to use the departments that we've actually selected, as opposed to the hard-coded queries that were there before. 27:43 So you can see here where it's updating this endpoint. Let me just dive back into this real quick. 27:50 instead of defense being a hard-coded value in this URL call, it actually updated it, 27:55 so now it uses Retool's double curly brace syntax to use the actual live value from the dropdown when it makes this API call. So that's exactly what it's doing there. 28:05 And now, when we change those drop-down options, it should update all of our underlying data, and thus our components as well. 28:13 So, based on this, it needed to update, you know, from this, again, hard-coded defense visits to our more dynamic view of what the department is. So it updated both of the charts. 28:24 And it updated the titles for each of the tables as well, right? So… Now it says, great, you know, I've added these dropdowns, and that looks good. 28:30 So, before we create another release, let's go ahead and just test this to make sure it works the way we want it to, right? 28:37 So we've got our first department drop-down. We can see now that we selected the Agency for International Development, and our label here matches. 28:44 It looks like our chart values don't… our kind of legend here for our chart doesn't yet match. 28:51 And there's maybe an issue with the blue data, which in this case would be the Agency for International Development. 28:56 I'm assuming this is because there's such a discrepancy. 63 million visits is so much more than 269,000. 29:01 I think it's because it's just so much of a difference that it's not showing up on the chart. You can see here, these numbers are much, much lower, so… 29:09 I don't think that's necessarily a problem in how the app's built, that's just a problem with this kind of comparison. 29:14 Let's go ahead and pick a bigger department. Let's do Department of Agriculture. 29:20 Right, so we can see here now, since the numbers are much more comparable, we can see that, you know, we're seeing different data here. It updated our title here. 29:29 I'll note again that it didn't update our labels here, but everything else, it looks like it updated pretty well. 29:36 So, this is an example where we could go back to Assist and say, hey, by the way, you didn't update the legend on the chart, like, we really need that to be dynamic as well. 29:45 But, you know, as an analogy that we use inside of Retool pretty frequently, that would be the equivalent of, you know, asking Alexa to turn on the light when you're standing 29:54 right next to the light switch. So this is something we can just kind of do ourselves, and we can see that by clicking on this comparison chart, popping open our inspector, and we see, okay, series, Defense, Commerce, right? 30:01 So instead of defense, we really want this to be you know, our dynamic sort of syntax again. 30:11 We can go ahead and see, how do we do this up here? Department 1 select… 30:16 dot selected item… yeah. So I'm just gonna go ahead and copy this. 30:20 And come back down to here. 30:24 and put in our name, right? So now, we see, okay, Department of Agriculture, and we're gonna go ahead and back out to the graph. 30:33 Yep, and for our second one, we're gonna do the same thing. Instead of Department 1 Select, it's just gonna be Department 2 Select, right? 30:41 So now we have Department of Agriculture, Department of Defense, and we are all set there. So… 30:46 Oh, we need to filter these on. Perfect. So now, again, we could have gone to assist, waited a couple minutes for it to go through and do that, 30:53 but because you basically still have full control over all these applications that you're generating in your building. 30:58 We were able to just do that ourself. So, now these labels are dynamic. If I go ahead up here and I pick something else, let's say education. 31:07 We'll see that, you know, Department of Education updates, our numbers update. 31:11 And everything down here updates as well. So everything's dynamic, it's all together, and we're at a point now where we have a working application where I can ask it to, you know, make any type of edits that I would like to, 31:23 or I can do that sort of thing myself. And so, this looks pretty good to me, so I'm gonna pop open Assist again, so scroll all the way to the bottom. 31:31 And I'm gonna create another release, right? So this is, again, another sort of checkpoint, where it's like, okay, this is working, I feel good about this, etc. 31:39 So, a couple more things that I just want to highlight here before we jump into the Q&A. 31:44 This is still, very early days on Assist, and so you'll notice that as you go down here, there is a little kind of thumbs up and thumbs down icon that appears. 31:54 If you get a response from Assist that's really quite good, I would please ask you to click on that thumbs up. 31:59 And likewise, if you get something that really just doesn't work, or it doesn't kind of show you what you were expecting to see, click on that thumbs down. Our team watches that feedback very closely, and it allows us to tune how we interact with the underlying AI models. 32:13 To make Assist even better at building apps in Retool that people like to use. 32:19 The other thing that I wanted to call out is these two couple buttons up top here. Number one, this is a sort of history tab, right? 32:25 So again, as we sort of create these releases and look at different generation versions, we can roll back to them at any time, which is pretty powerful. 32:34 And number two, we can also create new threads, right? And so, if you're working on a couple different things at once, or you're editing different parts of the application, 32:43 sometimes it's helpful to group all of the same type of work into a particular thread, right? And so, in this thread, I might ask, can we change all the headings to blue? 32:56 Right, so this might be a thread where I work on, okay, I need to make some, some style updates to make this, you know, fit more of my 33:03 my branding, right? In this case, we want to make it similar to this API. So, you can manage different conversation threads in actual different chat threads, and this helps you keep things a little bit more organized 33:15 while still being able to take advantage of all the features and functionality of Assist. 33:20 In this case, it's gonna go through and it's gonna try and swap out these headers to be blue. 33:26 And we can look at, you know, exactly what it's doing there. It changes this particular hex code. 33:31 And so, yeah, that's starting to come together and, be a lot more… a lot more on-brand, I guess, in this case. I made a very specific request here. You can also make much broader requests. 33:40 If you saw our presentation a couple weeks ago, you know, for example, we asked it to take a dashboard that we had created, but make it, you know, 33:48 Spotify branded, and it used that, you know, familiar black and green and all that stuff. So if you have a sort of brand guideline set that you already have. 33:56 Especially if you already have that stored in Retool as a theme, you can ask it to make those sorts of modifications as well. 34:03 All right. So hopefully … this was pretty helpful and, gave you a little bit of an insight into how we're building these types of things, even more quickly in Retool now. I think, if I'm being honest, like, I probably could have built this, myself. It would not have come together anywhere close to as quickly. 34:21 as it did here, and I think most of y'all probably would have bounced before I even got to having any data on the screen. 34:28 So, what I view this as a really powerful tool to build things even more quickly, kind of get early versions going, but the fact that those things are built in retool means that when I want to go to production with those things. 34:38 I don't have to throw them away or start over, they're not just prototypes. Keanan Koppenhaver: They can be actual production applications that can work for you and your whole team. 34:45 So, yeah, we have our agency operating system technology stack dashboard. 34:51 We can go in here and kind of click around and see, you know, what, what different organizations use. 34:57 From what I've seen, Windows is still most common among most of these, but every once in a while, you'll find an agency, for example, apparently, you know, there's a… 35:08 There's a gap here where… much more people are accessing the Department of Education's website on 35:12 versus, you know, Department of Justice. So, it's kind of cool to click around and be able to see this data, and again, the only sort of thing we had to give Assist to be able to… 35:22 for it to be able to explore and start to make these connections were the base URL, and it could then read that sort of specification that it had access to. 35:30 Pretty powerful technology, and something that I'm pretty excited about, so… 35:35 Now, we do have some time for, questions. I'm gonna stop sharing my screen real quick, as we go into some of these. 35:41 But yeah, we have, some time for questions, and again, you can put those in the chat. There are retail folks there who are, looking at some of those, which means I can look at some of those that they've flagged. 35:53 And we can hopefully get questions for some folks answered. 35:58 Alright, cool. Question from Daniel. Can it handle login slash sign-up logic, etc? 36:04 Yeah, so, I would be curious as to what you mean by login slash sign-up logic. 36:11 But basically, if the question is, 36:14 Like, can you build your own, sort of, sign-up logic instead of retool? 36:19 You definitely can. 36:22 That is sort of external to the main app building experience, which is not a surface that Assist can touch right now, but if you want to kind of make this accessible to other users, the kind of infrastructure to build, log in, sign up, etc. 36:37 is available, in Retool, but that's just not a surface that Assist has access to. Although we will be sort of growing, the presence of that over time, right? 36:44 So that's something to keep an eye on the lookout for. 36:49 Cool. Michael's got a question, welcome back. Thanks for coming back to AI Build Week, by the way. His question is, can we give guidance for how data transformation should be written closer to our coding-style Retool? 36:59 For example, prefer query JSON with SQL over, you know, JavaScript with loadouts, etc, over CustomJS? 37:04 Absolutely, right? So, just in the same way that you might coach ChatGPT, or Cloud Code, or Cursor, or anything else to write code for you, if you have a specific style of transformation or query that you want, you can specify it in that initial assist prompt. 37:21 So, again, we left our prompt very vague. We said, here's an API, like. 37:25 I want this data out of it, go find it for me. 37:28 But if you wanted to give it specific API endpoints, if you wanted to give it specific coding styles. 37:33 You can absolutely do that. And one of the things that we're looking at, internally, and potentially to build into the product is 37:39 there a way that we can sort of generalize that across an entire organization, right, so that you don't have to supply that to the prompt every time? 37:48 So if you have, as an organizational rule, we always want to write queries that, you know, take in JSON and output data as a flat array, 37:55 is there a way that you could sort of make that preference known and not have to rewrite that every time? So, right now, you can absolutely just put your preferences in the prompt. It's very good at reading and understanding those. 38:08 Yeah, but in the future, we're looking at, more, ways to kind of operationalize that across your entire organization. 38:17 Josh has a question, does ASSIST have access to the full context of the database that's set up as a resource, or just the queries in the app against that resource? Yeah, good question. 38:27 So basically what I can do, as we looked at earlier, I'm gonna start a brand new thread here, 38:33 let me do this. We'll try and build a new app, because I know that I have a database in here. 38:41 So the short answer to your question is, it has access to query and explore the schema of any of the databases that you give it access to, right? 38:48 So that means either at-mentioning the database, like we looked at earlier, or clicking on this little database icon here and choosing a resource, right? 39:02 So for example, in this example, I'm going to choose, read the database because I have… I know I have a table of data stored in there. 39:03 That we're gonna take a look at. So, all I'm gonna say here is, please build me a dashboard 39:09 using the airports table in RetoolDB. 39:15 And just to be safe, even though I've already given it access to that, resource… 39:23 I'm just going to do an at mention instead. 39:26 Yeah, perfect. 39:27 Alright, so I have this table of data, in RetoolDB called airports, it's just a bunch of data about airports. But again, I've given ASSIST no further information about anything that's in that table. It doesn't know if it's, like. 39:39 if the columns are nested out, if it's just a bunch of JSON, etc. And so the first thing it should do, we'll see if it does here, is it should just go into that table and sort of inspect the data and say, 39:49 okay, what is the shape of this data? What information do I have access to? And it will then be able to use that to inform what sort of interface it creates and what pieces of information it highlights, etc, right? 40:00 It's able to do that sort of exploration 40:04 when you give it access to that data. But again, any of those queries that it's going to run, any of those exploratory searches it's going to run, it's going to flag to me first and say, do you want to approve this, etc. 40:14 You can really keep a pretty tight leash on that if you want to, and if you don't want it to go just, like, exploring through your whole database. 40:23 Cool. 40:25 So we'll let that run for a second. We get to some of these other ones. 40:29 Michael asks, would those feedback buttons, thumbs up, thumbs down, also share the prompt and or data of the underlying app with Retool. 40:36 Good question. I believe that it does have some context in there of what you're working on, to help us kind of debug and see, okay, what… why did this, behave incorrectly, but… 40:45 As a general rule, like, we are not, you know, going deep on customer data, we're not looking at any of that stuff. 40:51 You know, that's, again, the whole, like, premise of Retool is that, kind of, you own your data, you own your environment, and so… 40:57 Keanan Koppenhaver: Yeah, that just helps us flag, if this is happening more often. 41:02 Maybe we need to look at something shift in the underlying, in our system prompt or in the underlying models, etc. 41:10 Awesome. Yeah, cool. Question from, Alex. Assist does not seem to understand the idea of creating a new page. Will this get fixed soon? 41:17 Yeah, so we were really excited to get Assist out and get people starting to use it. So right now, we've scoped, its capabilities to a sort of single-page application. So in the context of a single page, it's able to understand the components and queries and everything that works on that page. 41:33 But we are, as we continue through this kind of beta period, we are, working hard on the ability for Assist to be able to work with multi-page apps, because we know there are a lot of folks who use those. 41:44 Daniel has a question. Does this have the capability to deploy? Yeah, I think that question needs a little bit more context, as in, you know, where are we deploying this to? 41:53 So again, we saw that it's integrated with, source control, and we're only kind of continuing to strengthen that integration. 42:01 But, right now, kind of where you deploy this is up to you. If you're using Retool Cloud, the only sort of deployment step is basically clicking this 42:09 bright blue publish button up here. If you have different environments or different, you know, production, staging development versions of an app that you want to, like, promote this into, each of our customers kind of has their own custom flow. 42:22 So, right now, this doesn't really handle as much of the deployment, because that's just a different question for each particular user. 42:36 With the login sign-up question, does this allow access to Okta or something? Yeah, so Sunil asked, does this allow access to Okta? 42:42 And that's where, this is not really an assist-specific question, this is more of a, what does Retool the platform support? And so, you can absolutely use, whatever your single sign-up provider of choice is to log into Retool. 42:54 and then bring those, whatever permissioning and user groups you have set up in a system like Okta, bring those into Retool as well, and so all of that permissioning and governance can sort of flow through to your apps, right? 43:05 So, you can absolutely do that. That's not Assist-specific, that's just a retool thing that you get sort of included with the platform if you decide to, you know, do this type of building on Retool. 43:16 All right, yeah, let's jump to… Bobby's got a question here. I assume with the right settings and prompts, this can make write-back applications that would allow users to engage and update things. 43:24 Think, for example, Salesforce, or overlay apps that allow us to build something like an account planning 43:29 app with first and third-party data, update fields and retool, and then right back to Salesforce as an example. Yes, absolutely, right? 43:36 We've looked at basically a bunch of read-only queries here, in the context of what we've been building, but 43:41 you know, there's nothing that would prohibit Assist from writing, instead of this being a select query, for example, having this be an update query, right? 43:47 So we've generated apps that do exactly what you're talking about, where they write back to Salesforce, where they write back to Databricks. 43:53 If you have those permissions configured in your environment, you can absolutely build apps that do that sort of writing back as well, 44:00 and that's part of what we're seeing folks do, instead of Assist, because that functionality exists in Retool, and Assist is happy to write queries that let you do that. 44:12 Okay, good question from Marwan. Can we connect to CoreLogic or an IDX service? 44:16 I'm not exactly sure about that. I don't believe that's a native integration that we have, but if there is a REST API or some other API method like that of communicating with that data, you can configure most any sort of API in Retool by using that REST API resource. 44:32 That would be something that I would, what I would look into. 44:35 Alright, here's a good question. Seems like the .gov data is fairly clean, in air quotes. I like that. How does this functionality handle dirty data? 44:42 Many of us have probably experienced data cleaning is one of the more time-consuming steps of data analysis. Will Ritual suggest and implement data cleaning steps after connecting with the API? And can we prompt that to include that as a step in its plan? 44:53 Yeah, so good question. The API data that we're dealing with here is relatively clean. The API endpoints make a lot of sense, the data comes back in JSON, it's grouped together, but what I will bring to your attention is, actually, if we go back to the app that we looked at before… 45:11 This one, 7 minutes ago. 45:13 the data wasn't exactly in the format that we needed for our graphs to work, and so that's why if we look here, we see there are a couple queries where Retool is aggregating the data, for example. 45:26 And it's also transforming it into a format that is gonna work with the chart. 45:31 Assist wrote these for us without us even asking, because it realized that there was a mismatch between the format of the data that we got in, and the data that was needed for the chart, right? 45:43 So, some of that happens automatically, for you, but you can absolutely specify that in your prompt, and something we've seen work well is, 45:52 being specific in your prompt up front, but then being very willing to sort of give it feedback when the query that it writes isn't exactly what you need. 46:00 And so, another thing you can do, just like you can at-mention specific, resources. 46:04 You can also say in a follow-up prompt, hey, look at the, you know, aggregate query that you wrote over here. You can just call it out by name. This is not working how I want it to be. Here's X, Y, and Z things to fix. 46:16 And it will, you know, it forces us to, like, look at that specifically and do some more of those, like, investigative, data steps to get an even better sort of output. 46:25 So, just being able to… being able and willing to go more than one round with it and be more specific and give it feedback as it goes. 46:32 It is one way that it deals with… you can deal with that sort of less clean data, but as you can see, it's already able to infer a lot of the steps it needs to take automatically. 46:45 Should this format the table which is dynamically implementing the columns? I'm not exactly sure what that was related to. 46:51 Maybe it was our airport app that was generating over there in the other tab. But yeah, again, if there's some sort of formatting or anything that you disagree with or want to change. 46:59 You could just immediately follow up and ask, ask Assist to do that for you, right? 47:04 So I think where we were, it was… yeah, right, so we were… we were stuck here because I was talking instead of 47:10 Approving… approving the query was asking me to approve. 47:14 Yeah, so this is just the query that I didn't approve down here in time. But yeah, as we would have gone down the further steps, once it had the query set up, it would have gone through and updated this from sample data to using our actual data. 47:26 We just got kind of stuck halfway. So this is where I would go in and say, you know, okay, great, can you continue where you left off and hook up the queries? 47:36 Alright, can you use Figma design to create the UI? So, at the moment, Lorenzo, good question. At the moment, we can't import Figma to create UIs in here, but that is a team, a thing the team is actively working on. 47:46 Our head of product is super excited about sort of pushing that forward, so that you would be able to say, here is a Figma mock-up of my app, I want to turn this into a Retool 47:55 application, just sort of drag and drop into Assist, and haven't used that as the baseline for things. Something we're actively working on, for sure. 48:03 Alright, Elliot asks, in the future, would I be able to use pre-built SQL sort procedures? 48:08 Yeah, that's a pretty cool idea. I don't know if that's something we've actively considered, but something we do think a lot about is 48:15 people build a lot of things in Retool. They build queries, they build securely accessible resources, they build backend functions, they build workflows, they build agents. 48:24 And so something we're constantly thinking about is how can we use all of these things that people have built to make Retool better for everyone else inside their organization? 48:32 So, a lot of ways that that manifests is, have someone… has someone built a workflow that you could reuse instead of having to build it yourself? 48:39 Or has someone in your organization written a complex database query that you could just pull in? 48:44 And so, making that sort of discoverability better and easier, both for Assist, like the AI that's working in the background on your behalf, and for users in your organization, 48:52 is something we're pretty focused on, so I definitely do see a world where, if you have, sort of, stored queries or stored procedures, that you would be able to prompt Assist to discover and use those, but that's not something we support out of the box right now. 49:06 All right, question from Mike, can you point it to a private foundation model, i.e. bedrock, if you have governance rules you have to follow? Absolutely, right? So, if you are a, Retool, self-hosted customer, who needs a little bit more, sort of, privacy in how you, pass data to LLMs. 49:24 We have settings for, sort of configuring and setting up the underlying model that ASSIST will use. 49:32 So that functionality is available to folks, who need a little bit more of that sort of fine-grained privacy and control. 49:38 And yeah, if you are a self-hosted customer, you can look for that under the settings, I believe, and get that going with your specific API keys and your environment configuration. 49:49 Yeah, alright. Marwan asks, when will assist become available for mobile apps? Yeah, good question. We don't have a concrete timeline for that right now. 49:56 We're really prioritizing, like, a few of the features that I mentioned, getting it working for web apps, getting it working for multi-page apps, figuring out how to pull in more and different data sources. 50:06 And all of that. So we are currently sort of in this public beta period where it's out there, it's able for folks to use. 50:12 If you have a Retool account, you can log in today and use it for free until at least the end of the year. 50:18 And so, we're really focusing on using all that feedback that folks are giving us and everything to make this a really solid experience for web apps, and expanding the functionality inside the web apps that it's able to generate. 50:29 So, at some point, we will, you know, push it from public beta into general availability, and that's when we'll evaluate, okay, 50:36 what's on the roadmap and what's next as far as getting it into more different areas of the retail product, besides the app builder. 50:46 All right, I think that's everything that folks had in the chat. Oh, okay, it looks like there's still a couple more coming in here. Yeah, okay, this is a good one. 50:54 Are there any preferred ways to prompt assist? What is the ideal way to feed in technical documentation? Yeah, that's a good question, and I have a couple different answers here. 51:01 Number one is, like you saw, the easiest way to do this is just to copy and paste, like I did with that giant list of drop-down items that I wanted in there. 51:11 That was not formatted the best, but underlying large language models work really well with parsing, kind of, unstructured data, so it was able to do that pretty effectively. 51:23 Something else I've seen, it basically… I would recommend similar techniques to 51:28 What you would… how you would prompt any sort of large language model? 51:32 Which is giving it structured data in any way that you can, so if you want to include stuff in XML tags, or if you want to paste in some JSON that has information there, or use Markdown for things like pasting in technical documentation. 51:43 that is all really helpful. But kind of the biggest things, like, at a more macro level are, you know, if you have something that's really complicated, 51:52 requires a lot of documentation and explanation, just kind of going step by step and not trying to, like, one-shot the entire app in one go. 51:59 A lot of times what I'll do is, if I don't know exactly the shape of, like, the data that I need to work with, or, 52:06 kind of how that work is going to work. You can specifically ask Assist to generate you an app with mock data, which means it will just create a fake JSON file, and it will populate the UI with that data, which you can then go in and swap out for real data at any other time. 52:21 But overall, just being specific and, you know, walking through kind of the… if you were gonna build it, how you would build it, your plan, and give it as much context as you, as you want to or can. 52:34 To have it, work through that. Another thing I would recommend, actually, sort of tangentially related to this topic, is if you're familiar with this sort of screen, 52:45 this is where, kind of, the details for all your apps live. And so if you want to, you know, generate technical documentation for your app that you've built, you can now do that with Assist as well. 52:56 And so what this will do is basically, populate this editor, README, so that other folks who are coming in to use your application 53:04 have some of the details about how your app works. And again, because it knows all about the components that are on the canvas and how the queries are connected, it's able to generate a pretty comprehensive README here for your application. 53:18 Alright, we'll let that run a second. 53:25 Yeah, alright, so I think that's, all the questions we have. Oh, there's one other one here, sorry, but before we get to this, I just want to let folks know, please, just in the chat, and we're gonna put a brief poll in there, let us know what you thought of today's session. 53:32 We've got a few more this week. 53:40 So, you know, we constantly want to be figuring out if we're, you know, on the right track, what folks want to see, or, you know, we're completely off-base and we should try something else. 53:48 And so, yeah, please let us know in the poll that just popped up on your screen what you thought of today. 53:53 And we hope that folks will come back for tomorrow. We'll have Anjali presenting. 53:58 Another sort of app build on top of, on top of Stripe this time, instead of an API. 54:02 But yeah, so those are kind of two closing things before we get to the last couple questions here. 54:07 Alright, Michael, it'd be great if we could auto-approve read queries, but require approval on write queries. Yeah, that's a good call-out. Right now, I believe that it does… 54:19 require approval before it does any sort of query that's not a read. What you could do is basically use a sort of less, less important SQL resource and test that out, but 54:30 Yeah, the main options that are present in the user interface are ask me about every query, auto-approve all the queries on this particular resource, or auto-approve all the queries everywhere. 54:42 And so, again, as we… as we get folks in and have them start testing it, now that it's public beta, it's possible that we will add, sort of, more… more granularity there, but, 54:52 Yeah, at the core of it, we want to make it so that, 54:55 you know, folks have the right guardrails that they need, and so if that's a… if that's a common request, and folks, you know, it's the right queries that folks are really concerned about, we'll make sure that we have that in the product as well. 55:16 Yeah, so like Sarah mentioned, 55:19 We'll have a recap of all the questions. If you didn't catch something or you want to go back in the recording, you can be able to watch that all over in the community, so that link's right there in the chat. 55:29 And as Daniel put here, we have our link to Day 2. So, Angelik will be here with you all tomorrow, building on top of Stripe, and yeah, thanks everybody for coming. 55:37 Thank you so much, Keanan! All right, everyone, if you didn't get your question answered, as Keanan said, you could check it out in the community forum, and we'll see you back here tomorrow. All right, bye! 55:46 Thanks, y'all.