Related Posts
I’m going to go ahead and get started. Again, welcome to everyone, and thank you for joining me today for our webinar—our Knack 101 webinar. My name is Roe, and we will be learning the basics today and getting you started with Knack
So again, my name is Roe. I am part of our onboarding team here at Knack. You will also notice on the call we have Max with us. Max is also part of our onboarding team here.
If you’ve got any questions, he’ll be monitoring our Q&A area. So at the top of the call, I mentioned keeping an eye out in the chat and the Q&A. We only have our Q&A open today, but keep an eye out for the Q&A section and feel free to drop your questions there. We’ll be taking a look at that toward the end of the webinar and answering any questions that we see live, if we can.
So again, thank you everyone for joining us today.
What to Expect in This Webinar
Today we’re going to talk a little bit about what you can build with Knack. We’re also going to demo an app and do a live build of that particular app—and more on that in a second. If time permits at the end, we’ll have live Q&A where, again, you can ask your questions and we will do our best to demo live.
Also keep in mind, in the coming weeks, we’ll be offering some additional webinars. You’ll see more Q&A—all Q&A–style webinars—as well as webinars that are topic-focused. So if you’ve got some topics that you definitely want us to cover, also feel free to drop that in the Q&A section and we’ll make note of it and keep that in mind in the coming weeks.
Alright, so with that said, if you’ve got questions, drop them in the Q&A—we’re keeping an eye out there.
Exploring Knack’s Capabilities
So just quickly—what can you build with Knack? If you’re new to Knack and you’re just trying to figure out what things are, you may have found us by doing a Google search, and you’ve got a specific use case that you want to build.
There are a lot of things that you can build with Knack. It’s a no-code platform. You’re given a blank slate, and then you can build out your workflows and business processes and manage your data—all with the features of our platform. So you can build custom business applications. You’ll see here on our list: data management, customer portals, internal tools, all the way down through data sharing and monetization platforms.
If we dive into these in a little bit more detail, just so you have a broader or more specific idea of what Knack can do—everything from project management to inventory management, client dashboards, learning management systems, and event registration.
There’s a lot of information here on this slide, but feel free to grab a screenshot. We can also share this link out if you want to take a look at it in detail. This information is also on our website. But as you can see, Knack is capable of handling quite a few workflows.
That’s the beauty of the product—you can build your apps and customize them as you see fit.
Again, adding on to that list—we’ve got some e-commerce solutions that you can potentially build, reporting and analytics. Oh—it looks like my slide did not update here. Let me see here.
If I hit refresh… no. We didn’t update that. I’ll have to go back in here and update. But then we’ve got compliance and auditing tools. So you can use Knack to track audits on things like real estate or records—specific records. It just depends on what it is that you need to track and audit or see a history of changes on a record.
Same thing with mobile applications.
Our platform—while it’s a web-based application—is mobile responsive. So it’ll reduce to the size of your screen, and you’ll see things start to stack and layer within the platform. You can also build custom forms, as well as, again, do some data sharing if you want to share out your data and charge for access to that information.
Live Demo: Building an Expense Tracking App
So let’s dive into a quick demo and a live build. Today’s use case that we are going to go through is a budget and expense-type tracking app. So what does that look like? Let’s take a look at a very simplified live app, and then we’ll dive into how you would build something like this out.
So give me just a moment here.
So, hopefully, everyone’s still able to see my screen.
We’re going to take a look at our—let’s see—our budget manager, expense manager.
I believe that’s here. Right now, it’s going to take us to our builder, but before we dive into the builder and what things look like on the back end, we’re going to take a look at our live application.
So we’re logged in here in our expense management–type app. We’ve got different banks that we’re tracking expenses and transactions with, and we can dive into each one of these records. But before we dive into each one of these records to look at how Knack works in detail, Knack has a variety of ways of displaying your data within your application.
So here we’re looking at a grid view, but we’ve also got additional reporting views, search views, and different ways to display your data. We’ve got form views so you can edit your records. You can also add new records to the system with our form views. But we would refer to this as a “view.” We’ll have more on that here in just a little bit and dive into what is a view and how many views you can add to a page.
So in this particular page here, we can see a view, a button, a menu view that allows us to link to a form—that allows us to add a new record. So we can add a new potential bank.
And if we had an address and phone number, we could do that. We can enter in a starting balance and hit submit, and that’s just going to capture that new record here within our platform.
You’ll also notice within our grid view we have some additional features that are available.
We’ve got links to view more details about a particular record. So if we wanted to view more details about this Capital One information, we can click on the view and now we can see some very detailed information related to this particular bank. We can see the address, we can see the phone number, we can see our starting balances, our total debits and credits, as well as what the total balance is for the account.
Knack is relational, so you’re able to relate your tables with one another. We call those “connections,” and we’ll talk more on that in a little bit. But we’ve got our detailed information for our bank here, and we have the relational part where we are able to show a table or a grid of all of our transactions related to our bank. So we can now see the different transactions here.
And, again, we have a menu view that allows us to add a form. We can say, “Hey, this is going to be a credit to the account.”
We’re going to add some money, and we’ll add, let’s say, two thousand five hundred.
And we can hit submit, and you’ll see that information update in our database here. Again, with Knack, there are lots of ways to customize each one of these views. Specifically, looking at this transaction table here—we’ve got a variety of field types. You can see we’ve got a date field, we have our multiple choice field here, we’ve got a text field here—so we’ve got short text, paragraph text, but we also have currency fields. Then our tables have even more features that allow you to run a summary or a sum to be able to get a total for a specific column. So if we wanted to see all of this information totaled up here, we could. It may not make sense in here if we’ve got debits and credits, but there are ways you can definitely update this to make sure that it’s calculating correctly.
We’ll talk more on that in a little bit—how do we get this total debits and credits calculating correctly and giving us our correct total here within that.
Again, we’ve got links that allow us to link to areas where we can update these records.
Now depending upon who has access to your system, Knack is really good with allowing you to create different roles—different groups—who can have access to the system, and then you can limit what each one of those users can do within the platform.
We’ll back out of this here. Again, this is a very simple expense management platform, so we’re going to actually build this from scratch.
And if you have any questions as we go along, again please don’t hesitate to drop your questions in the Q&A section of our webinar conference room.
Navigating the Builder Environment
We’re going to jump back into that builder here. This is actually the builder of the app that’s already been built.
Just giving you a tour. Again, if you’re new to Knack and you’re wanting to understand the environment and what you’re looking at—currently, we are in our Knack builder here. So our builder—we’re in a specific app, our expense manager, and we are working on building out this application here.
I’m going to walk through everything on the left-hand side of our dashboard here—our builder environment for our app. You’ll see our Home option. This is going to take you back to the account dashboard where you can find other template apps, where you can find—if you’ve created more than one app—you can see your apps there. You can build new apps from scratch from here.
But then as we start to move down here inside the builder, you’ll see we’ve got our Data tab, which just relates to all of our tables that we have built out, including our user role tables.
We can add new tables, we can add new user groups, and we can also enable e-commerce, which is available with our Pro plan.
However, it is available to test out during the trial.
This is our Data tab. We can click on an individual table here and, as you will see on the right-hand side, you’ll see some options—some additional options pop up for you.
We have our fields, and you’ll notice we’re on our field option here. We can continue to build this out and add new fields if we needed to. Earlier, I mentioned we had a variety of field types that you could add to your tables, and we were looking at our date field and our currency field. This is where we’re going to find all those different field types.
So you can select those, you can drag and drop them into place, you can click on them and add them new. So if we wanted to add a link field, you can see we’re given the settings for this link field. We can change the name of that—the label on that link field.
We can also set it to required. We can enforce uniqueness—make sure that it is the only value that we have in our tables for this particular field.
We can set default values. We can even share a description internally for our builders or developers who are building out the app to let them know, “Hey, why did I create this field?”
And more.
All of your fields will have their own settings, so please keep that in mind as you’re building out your application.
You can get back into your field settings by just clicking anywhere on our field in our table, and that’s going to open up those settings for you.
Again, you can make changes. You’ll also see some new options for validation and conditional rules.
I won’t go into too much detail here, but I do want to encourage you all to explore the platform. Make sure you give yourself time to see what the features are about. Click on things before you actually start building.
Again, these are our fields. We can add fields by clicking this option here, and we have our field types that are listed here. You can edit fields by clicking anywhere on it. You’ll also see your three dots—your ellipses—here, which also have the settings listed underneath here. So that’s another way to get to those fields.
Again, each one of these will have their own bit of settings, so make sure you take a look at that. We’re looking at our currency field here, so you’ll see we have some format settings as well. One other thing to make note of is your tables all have their own settings for editing. So if we wanted to edit this table, we can go into our settings, and this is going to allow us to edit the name of the table.
So if we wanted to change it, we could. We could set our display field, which is basically our lookup field. It’s allowing us to—if we were setting up relationships between tables and we wanted to, let’s say in our transaction table, choose the correct bank to attach that to—we would want to see the display name, the name of the bank in that dropdown field. It doesn’t make as much sense when I’m walking through it this way, but I can take you through an example here in just a moment.
But this display field sets up what you would see in those connected fields—those connection fields—which are like a multiple choice field in your child table. The sort order, again, is just going to refer to how that table’s default sorting will be in those dropdown fields or those multiple choice fields.
So you’ve got some settings there. You can also get there from here.
Making our way down, we’ve got our Records option. In our Records option, we can see all of the records in our system. We can do some things like batch importing, we can export, we can update our records, and we can also do some batch deleting from here. You can also add records from this view as well.
So again, Records here refers to your records here. So if you’re on any selected table, you can get there by clicking here or you can just click right on that Records option there. You’ll notice your records here have a few options. You can click into these records and make changes.
You can also click on the Edit Record here, and that’s going to bring up a form that’s going to allow you to edit that record. And then with our Pro Plan and above, you do have access to record history. So if you want to see the changes on a particular record, you will be able to click on this option, and then you’ll see when it was created, who it was created by, as well. That’s available again with our Pro Plan and up, so something to keep in mind if you are wanting or need that ability to see record history.
Automating Tasks Within Knack
Let’s see. Jumping down to Tasks—you won’t see this in your application with the trial—but Tasks are a way to automate things within the system.
So let’s say we wanted to send an email when our bank balance is low. We could use a Task to check for that trigger, and then if it meets that trigger, you can trigger an email to be sent. Tasks are pretty straightforward. You can say, “Email when balance is low,” and you can set it to run daily, weekly, or monthly.
And then once you’ve determined when you want it to run, you’re just going to specify when this action will happen. So actions that can happen—you can update records, you can update connected records.
You can insert connected records, you can send a custom email, and then you’ll just basically say when will that email happen. We could say total balance is higher than or lower than a specific number, and then we can say send us an email. So again, Tasks are really great.
They’re available with our Pro Plan and above. If that’s something you’re interested in, we do have some information in our Knowledge Base about it as well.
Understanding Connections and Display Fields
So that’s our Tasks. I wanted to jump quickly here to our transaction table. I know we were talking a little bit about connections a little bit ago. We were also talking about our display field.
In this example, we’ve got our banks and our transactions.
If we were wanting to connect our transaction to a specific bank, we would add it as a connection field—like what you would see here. So we could actually click on this, and it acts as a dropdown field, and you’ll see we’ve got the different bank names that are located here. This is what our display field refers to. So when I was mentioning in your settings—if we go into the settings for Banks and we have this display field—if I were to change this to a phone number field and say save those changes, we go back into Transactions, and you will see now my phone number is displaying here instead of the bank name. And if there is not a phone number that exists, you will see blank. It will appear blank.
It will appear as a blank record. So something to keep in mind as you are building out your application—think about when you’re setting that display field. You want to make sure it’s going to be a value that’s required or will have a value listed in there. So I’m going to set that back to our bank name, and you’ll see that that updates here in our dropdown as well. Hopefully, that clears that up.
Navigating the Pages Section
Continuing on down through the builder here, we have our Pages.
I like to say this is where all the magic happens within your application.
This is where we start to build out what our users are doing within the system. We’ve worked through the data, we’ve gotten our tables set up, our structure set up there, we’ve maybe set up relationships between our tables, we’ve added some records—and Tasks we might tackle once we have a better sense of that. But once we get to Pages, this is where we start to set up those workflows.
In this particular application, I was already logged in to our expense manager, but if I wasn’t, my user would have been hit with a login page that you see here. Then they would have logged in and seen what we saw—which was our button here to add a bank, and a grid here that allows us to see all of our banks within the system, and then all the details and actions that we could take, where we can edit that record or view more details about that.
Each link here in our table also refers to the link here. So if I click on my Add Bank, I’m going to see my form on this page that allows me to add a bank. If I click on Edit, it’s going to be another form—an edit form that allows me to edit my record—and then so on and so forth. If I wanted to go to a details page for the account or for the bank, we can now see all of the details related to the bank, the individual bank record, plus any child tables that we see here.
Setting Up User Workflows
So again, we can continue to build out, but this becomes our sitemap on this left-hand side.
I’m going to take probably the next ten minutes here to build something out from scratch—where we just start building out a table that’s going to manage our banks, how we set up our transactions, and how we set up our relationships, and then build out something similar to what we saw earlier.
Please keep in mind—I’m just keeping an eye out here on the chat, so we don’t see any questions here. But again, feel free to drop those questions in there in the Q&A. Also, if you are interested in other webinars and you want to see other things, please let us know your thoughts.
Alright, I am going to spin up a brand-new app. Again, we talked about our dashboard here. I can jump into this dashboard—it takes me back to my environment. And once we get loaded up here, I’m going to hit this Create New App option here, and I’m going to start from scratch. And so once I start from scratch, it’s going to give me a blank application.
So now you see I have a completely blank app. I don’t have any tables created except for the one. I don’t have any users set up. I can jump over to my Pages, and you’ll see that I don’t have any pages set up as well.
So we’re going to actually start building from scratch. Let me clear out some of our tabs that we had open.
Deciding on Necessary Tables
One of the first things that we’re going to want to do is decide on what tables need to be built.
In that use case that we shared, we had banks, so we’ll want to create a bank table. We were also tracking transactions, so we want to make sure we have a transaction table. And then we want to start building out a portal for our admins to be able to log in and make updates, and for our users—individual users—to be able to log in and make updates to that budget information.
So again, we’re looking at expenses. Maybe in our use case, we’re not looking at banks. Maybe we’re looking at a budget for different departments, and we want to track those budgets for the departments. The build is the same.
It’s just going to depend on what it is that you need to collect. So we’ve got our Table 1 here. Again, I’m going to update this and I’m actually going to go with my latter idea—where we’re looking at departments that are then tracking specific budgets. So I’m going to call this our Departments table.
If I can spell—and we’ll leave things as is. So we’ll capture our department name. One of the other things that we might want to capture here is what that starting budget is that we have available for our department.
This is crucial to make sure that we’re capturing early on—and it’ll make more sense here in a little bit—that we want to be able to track this initial budget, because obviously, we want to see ongoing what is available, what’s left within our budget.
Tracking Budgets and Expenses
I’ve got the name of the department, and I’ve got our starting budget.
One of the other things that we’re going to want to track is expenses—what expenses are coming out in regard to that budget—and we want to track those expenses.
Again, we’re going to want to be able to see in real time what’s available within our budget.
So we are going to add a new table. You create a new table by clicking this button here—this plus button. This is going to take you to a screen where you can either import your data or you can start with a Google Sheet, and you have the option to start from scratch or start with a table catalog.
So I am going to start from scratch, and I’m going to call this my Transactions table.
So now we’ve got my transactions.
Again, this could be named Expenses.
We can name this whatever we want—whatever makes the most sense within your organization.
We can give a name to the transaction—that feels good. We can also rename this to “Description”—it’s entirely up to you.
Adding Fields for Transactions
But I can continue to add some new fields here that are going to allow us to capture more details about that individual transaction or expense.
I’m going to jump down and grab my Currency field. This is going to capture the amount of that transaction.
Again, we have our format settings here. I’m going to leave those as is. So I’ve got my number field here—or my currency field—and I’ve got the name.
One other piece that we would want to make sure we add is: how do we tie these two together?
How do I say that this transaction or this expense is captured with this particular department?
The way we do that is with our Connections.
Connections act as your foreign key within your child table. It’s like your lookup field that says, “Hey, let’s have a dropdown field or multiple choice field that connects to our Departments table and lets us choose which department we want that transaction to be associated with.”
And I’m going to update this name here because I’ve decided I don’t like “Transactions.” I like “Expenses,” just to give it so that we’re staying on a theme here—with departments and the expenses coming out.
We’ve got the name, we’ve got the amount, and we’re going to add a connection.
So we’ve got our Connection field here. If we add our fields here, it’s down here as well. So you’ve got two places you can access it. I’m usually one to jump over here on the right-hand side, so I’m going to add that connection, and I’m going to select my Departments table.
Again, if I have a department that can have many expenses—in that statement, we want to make sure we’re going into our table that is associated with many expenses. We’re going to go into our Expenses table, and that’s where we’re going to set up our Connection field. I’m going to choose my Departments to connect on.
Each expense can connect with only one department, and each department can have many expenses. This reads true for me, so I’m going to leave it as is to add that connection.
Now there’s no need for us to, in this use case, to go back into our Departments table and set up a connection back and forth. We don’t need to do that. We just need the one to set that up.
Understanding Connection Types
Now, in some instances, you may need a many-to-many, and you’re quite alright to do that. Nine times out of ten, one-to-many will work for you, but many-to-many does work well in cases where sometimes you do need that.
One-to-one is very rare, so I always say proceed with caution with that because it will take away functionality in your Pages when you’re setting things up, because it’s going to be looking for that one connected value.
So one-to-many should be fine for you when setting up your connections.
So that’s it. We’ve now tied our department to our expenses.
Now one thing I forgot to mention in all of this—and my apologies—is it’s not very clear sometimes what fields are available to you. So you’ll notice if I say “Add Field” here and I’m looking at my number options, this is what you’ll typically see. You’ll see these four options under number. But if we have a connection that’s in place, you will have some new fields that are revealed to you.
Creating Summary Fields Across Tables
I’m going to jump into our Departments table. Because our Departments and our Expenses are captured together, and we’ve got a currency field—we’ve got a number field involved—when we go to “Add a Field,” you’ll now see that we have these new fields that are added here. This will allow us to do cross-table calculations.
Now we can say, “Hey, I want to total up all of my expenses that are tied to an individual department.” We can say, “Let’s add a sum field to give us our total expenses,” and we can choose which field that is within our Expenses table. We only have the one currency field, but if we had other number fields—like a quantity or another currency field—we’d see those as well here and we’d be able to choose them. But this allows us to do cross-table calculations.
Using Formula Fields for Calculations
So now we’re able to look up on that child table and run this calculation.
This is a great way to think of inventory as well—if you’re doing inventory management and you want to track your inventory across your products and across orders that are going out, or incoming products that are being added to your inventory—you would do the same thing. You would just need to make sure that connection is in place. Then you could use these formula fields to run the calculations to say how many of my inventory items have gone out, and then continue to add some equations here—which we’ll do in a second—that’ll start to give you the remaining balance here with our budget and expense tracking or an inventory scenario, to give you what inventory is on hand.
So I can come in here too—since we’re dealing with currency and I want to see a total of my expenses—I’m going to do some formatting for my currency.
And let’s say we did call this our Transaction table.
In my previous use case, we were able to choose a debit and a credit for our budget.
So how did we manage that and filter to only calculate our debits and only calculate our credits?
That would be managed here under this “Formula Filters” option. So right now, we don’t have a field that’s capturing the type of expense—or, if we were calling this our Transactions, the type of transaction.
Implementing Formula Filters
So we could, in essence, capture that, and then we could say, “Only calculate that type of transaction that is a debit,” and then give me that total. So I wanted to point that out.
Formula filters are there for you to further limit what gets calculated in this sum option.
So I’m going to go ahead and add that field. So now we’re going to get things starting to total up for us with total expenses. So whenever a new expense record gets added, it just gets summed here, and we will be able to see that running total.
Now, if we want to get what’s remaining in our budget, we can do some simple math where we can use our Equation field to do that. We can just say “Remaining Budget,” and now we can come into this equation and start to set up our formula. So this is going to be a numeric equation. We will have different functions we could choose from if you needed that within your application.
In this one, it’s really straightforward. We just want to go: Starting Budget minus that Total Expense—that running sum.
That’s it. We’re going to set that up. It’s pretty straightforward. Again, we can set up our format for our currency here, and we’re going to make that consistent.
Testing Data Entry
And that’s pretty straightforward. That’s all we need. So we are able to now enter in a new department and their starting budget, and then we’re able to enter in expenses and then see a running total here and get what that remaining budget is. I’m going to jump back here to our Data tab where we can see our Departments and Expenses.
My next step is usually to start adding some test data just to make sure that things are working as is. Now, you can certainly import your data within Knack and start your applications with an import.
I always say I prefer to start with very little data—start with test data, a sample set.
Then, once you’ve built out your application, you have a better sense of how Knack works. Then you can start to import your data within Knack.
So right now, I’m just going to add some simple data to make sure I have things set up correctly. So I’m going to do our Marketing Department.
They’ve got a budget of ten thousand. We’ll hit Submit, and now you’ll see our total expenses—we don’t have any expenses yet—but we’ve got a remaining budget, so we know the math is working here. We can do another department here.
Again, we’ll just continue to add some numbers. We have a couple records here. We can also jump into our Expenses table and start to add some test data.
And we’ll do something here. We’ll choose our Marketing Department. Again, here is our connection field. You can see that dropdown is referring to that display field.
This is how we set this up.
Now we are starting to add some expenses.
We’ll add another couple more expenses.
Choose our Marketing department. We’ll do one expense for our other Research team.
So now we’ve got some dollar amounts here. We jump back into our Departments table. We should start to see those calculations working correctly. So we’ve got our ten thousand minus our two thousand six hundred, we’ve got seven thousand four hundred—and vice versa. Picked a really odd number there for us to go with so that the math is easy.
Then we’ve got our seventy-one zero four here for our Research. So everything is calculating correctly. We know that whenever an expense record gets added, we’ll be able to see this running total here.
User Roles and Access Control
So a couple other things. Let’s continue to build this out for our users because, again, we’ve set up our data, we’ve got some test data going on in there, and we know we have a group of users that we want to log in to be able to see all of the departments and the expenses related to each department.
One of the first things you may want to do as you are building out your application is start to think through who needs to log in and who needs to have access to the application. So, we will need to enable our user roles to do that. And this is something you’re going to want to do at the very beginning of building out your application—meaning before you even start to build out your pages.
Because if you have part of your workflow where you want to limit who has access to information, this is the way to do it. This starts with our user roles and then carries over into our pages where we start to set those permissions up.
So, I’m going to go ahead and enable my users, and I’m going to do a couple of roles. I’m going to do my Admins, and then I might do my Department—if I can spell—Department Users. Who’s a department user? A department user is somebody tied to one of those departments. Maybe you want them to log in and only see their department information and nothing else.
So I’m going to set up these two users, and I’m going to add those roles and enable them.
That’s it. These tables are similar to your tables up above. They’re just now user role tables. You can continue to add fields to these three tables. You’ve got an Accounts table, you have your Admins table, and you have your Department Users.
Creating User Role Tables
Accounts just refers to all of the users in the system, and you may leverage this to give access to everybody in the system.
The Admin table allows you to lock things down just for admins. Department Users allows you to lock things down just for your department users.
And these tables, again, can be built out similar to how you would with your tables above. So we can add different fields. If we wanted to capture phone number, address, hire date—tied to our department users—we certainly can.
So now that we’ve got this set up, I’m going to go ahead and create some test data within these two tables as well. Reason being is I need to be able to log in when I’m testing things out as one of these roles to be able to see and make sure that things are showing up the way I want them to show up.
So I’m going to go ahead and add a quick Admin record. I’m going to add myself as Admin—keeping it simple for testing purposes.
And then I’m going to jump down to my Department User, and we’ll go ahead and add Max.
So now you’ll see that we’ve got—under our Accounts table—we have our two users in the system and the different roles that they’re a part of, and we will see them in their individual tables as well.
So again, you are going to want to create that user role to allow yourself to log in and test things out, because it will not be the credentials that you use to set up your Knack account when you signed up.
You will need to create them individually for each one of your apps, and we call these your live app users.
Creating and Customizing Pages
Alright. So now that we’ve got our table set up, we’ve got our different user roles set up, let’s jump over to our Pages to start building things out. By default, an app will give you a Home page. This Home page is a public page.
So what do I mean by public page? You have two options for viewing your live app. You’ve got the “Go to Live App” here. This is going to open up your live app.
You will see I have “Untitled” for the name of my app and it is completely blank. There is nothing on that page.
I can continue to add views.
Adding a view to a page is allowing you to display your information within your database. So if you remember at the very beginning, we talked about those views in our budget/expense app. We had the menu view—which was like a button. We had our grid view—which was like a table that we could view all of the banks within the system.
We call these “views.” These are elements that you can add to the page that allow you to, again, view your data and add and update your database.
We have a variety of views here.
I’m just going to add a Rich Text view here, and I’m just going to say “Welcome,” just so you all have some context as to what this is. Then I’m going to hit Save.
Again, you’ll see now my Home page has this Welcome message. I can jump over into my Live App here. You will not see any information here until I hit refresh.
So something to think about as you’re building out your application: when you make updates here in your builder environment, you do need to hit refresh.
You can also just click on “Go to Live App,” and you’ll now see that I’ve added this Welcome message to my page. So we can continue to build this page out with whatever it is that we want our users to see and do on this particular page.
We do that just by adding views.
Implementing Login Functionality
Again, this is a public page. Let’s talk about putting this application behind a login. We want to force our users to actually log in before they can see any of this information.
So how do we add a new page? This one was created for us by default. To add a new page, we have this pink plus button again. So we can click on that and you’ll see our options here. We can add a Public Page, which is what we have with our Home page; we can add a Login Page; or we can add a Dropdown Menu, which just allows you to group a bunch of pages and put them all into one singular dropdown.
For our use case, we want to create a Login Page. This is where we start to get into permissions.
We are starting to tell Knack—or tell the page—who we want to have access to this page. We can give permission to all of our users, or we can limit it to a specific user role.
In this use case, I only want my Admins to have access to this page. I don’t want anyone else to be able to see what’s on this page for my Admins, because I’m going to give them a little bit more power to do things—edit records, and to see everything in my database.
So I’m going to click Admins, and I’ll just call this my “Admin Dashboard.”
And we’re going to add the page. So now, again, we’ve got this dashboard. I can click “Go to Live App”—it’s going to take me to the page that I’m on right now, which is my Admin Dashboard. If I were to quickly jump back here, you’ll see I have my Home page.
I have this Admin Dashboard, which is going to have my login form. And then I’ll have my Admin Dashboard page, which is blank. If I jump into the Live App, you’ll see I have my login form. I created those credentials earlier, so now I can log in. You’ll see it’s now blank. You’ll also see up at the top I have the start of a navigation.
My navigation menu up here—you can see my Home page, and you can see my Admin Dashboard. If I navigate back to my Home page, you’ll see my Welcome option.
And if I navigate to the Admin Dashboard, it’s a blank page as well.
So exiting out of that—whenever we add this page using this option here, keep in mind it’s creating your navigation at the top.
Building the Admin Dashboard
So we now have our Admin Dashboard, and it’s blank. Now we start to think through what do we want our Admins to do. We want our Admins to be able to view all of our departments and be able to see the transactions per department. So again, we’ll start with adding our views. We’ll say, “Hey, we want to show a grid in this view,” and we’re going to choose our Departments.
Admins—we’re going to give them all the power. So we want them to be able to edit.
We want to link them to a Details Page that’s going to say, “Hey, let’s take a look at the Marketing Department and see all of their expenses,” and we can continue to build out that page as well. So this Details Page is going to show us that individual Marketing Department, but we need to build it out further to show additional information—like a grid of the connected expenses.
This is helping us to quickly build things out because Knack already knows about the relationships. Because we set up the permissions and the connections—what the relationship is in the database—to be able to show again those departments and the related expenses.
So that’s it. We’re going to click Continue and we’re going to add that grid.
And it’s that simple. Once you’ve added the grid, Knack by default drops you into the settings for that grid. So you’ll see on the left-hand side where we have a new widget screen area that’s open—not a widget per se—but a settings area for our grid. If I were to unselect this area here, you’ll see that this slides back open and I see my sitemap that is going to show me all of this information here. You can see I can click on this view or click on the pencil icon to open up those settings, and I will encourage you to explore everything that you’re seeing here.
Customizing Grid View Settings
So we have our Source area that’s going to tell us what we’re looking at—we’re looking at our Department records.
We can filter if we need to. We can set our sort order if we want to here. So there are lots of options. We can go into our Settings here.
We have the keyword search added. I can remove it—you’ll see it disappear on the right-hand side. We can turn on record exporting.
We can do lots of things. You see the column summary here—we can add that, and you’ll see my totals here start to add up. We can even turn it off at the column level.
If you notice I’m hovering over these columns, I have Edit Settings within these here, and I can say, “No, I don’t want to see a total there. No, I don’t want to see a total here.”
So again, you can turn this off if you don’t need it. You can leave it on if you want.
So I will encourage you again—please give yourself the time to explore. Knack has a wealth of settings here for you to be able to dig into.
So we’ve got that here.
You have access to your connection then—your connected table fields. So if we wanted to pull in other fields from related tables, you can do that as well. We could say, “Hey, pull the amount from my Expenses table.” It may not make sense in this use case here, but you have those available. And then you have some additional links here. We can say, “Hey, I want to give my Admins the ability to delete this,” if we wanted to. Or you can say, “Let’s take that away. I don’t want them to be able to take these actions.”
So everything here that you can see can be customized further.
Just make sure to give yourself the chance to explore.
Previewing the Admin View
Alright. So I’m going to hit Save on this.
We can preview this by clicking “Go to Live App.” That’s going to open it up in a new tab, which we’ve been doing before. You’ll see your Knack personalized URL here. You can share that with users.
You can also click the “Preview” option.
This is really nice if you’re doing a lot of editing. You can jump into the Preview, see how things look, see how things behave. “Hey, let me look to see more details about this department.” I can see the department, and I can see that information tracking here is correct.
Everything looks good. If you think, “Oh, you know what? I want to give them an option to edit this record,” we can hit Stop Preview, and you’ll actually be on this page to then make changes. So it’s really nice if you’re using the Preview option.
I’m just going to go in and customize this further. Again, I’m working on a portal for my Admins to be able to log in and take specific actions within the database—be able to edit and have the power to do some editing. So, we’ve got about ten minutes here. I’m going to walk through—
Setting Up Department User Access
I don’t see any questions, so I’m going to continue walking through setting this up for our other user group—which is our Department Users—to be able to log in and view only records that are connected to their specific department that they’ve been assigned to. I’m also going to take you through some of the nuances of Knack and being able to troubleshoot or figure out why you’re not seeing what you might be expecting to see.
We have our Data tab here. We want to start showing our logged-in Department Users only their department information.
Let’s say I jump back over to My Pages. I am going to start over again. I am going to hit my plus button here. I’m going to create a Login page. I’m going to limit this. Now I’m going to say this is for my Department Users group.
I’m just going to say “User Dashboard” for right now.
Then I’ll add that page.
I can show details for their department at the high level, because we only care about the one department that they’ve been assigned to.
If I were to click “Details,” I don’t have an option here to choose my department. I have my Department User, and that’s going to show details about the department user—but not necessarily my department.
So I’m going to discard those changes. Now I’m going to try this again. I want to show a grid of, maybe, Expenses.
You’ll see I don’t have a way to limit this to say “Only show the expenses…” Knack actually—we’ll see on this page—we’ll jump back up here, we’ll click Grid, we can say Departments. Again, I don’t have anything that’s going to allow me to limit and say “Only show the department that this user is logged into.”
So when you see things like this, this is about how your data is structured under your Data tab.
Connecting Department Users to a Department
Somewhere in our steps, we need to make sure that we have told Knack how our users—our Department Users—are tied to a department.
So we don’t have any information in our user table that’s tied to the department, nor do we have any information in our Departments table tied to the user.
In our use case, if a department can have many users, we want to go to our user table and we want to add our Connection field to the department. So we were missing some information there.
So we can jump into our Department Users table, and we can go ahead and add a Connection field to connect to our Departments.
This is going to allow us to say, “This logged-in user is connected to this particular department.” A user can connect with that one department. A department can connect with many users. Sometimes this many-to-many is necessary—if a person is part of more than one department, you can certainly set that up as well. But I’m going to leave this one-to-many, and I’m going to then go into my Records here and tie Max to our Marketing Department.
So now we’ve got our user associated with a department.
That will then change the behavior of our Pages.
Verifying Connection-Based Views
So again, what does our Page know about in this use case? If I wanted to say I want the user to see the details about their department—before, we only had these two options. Now we can show the department connected to our logged-in Department User.
So that’s great. We can add those details. We can further add another view to show a grid of expenses connected to the same department that’s connected to our logged-in Department User. Now we can really start to limit what this person is seeing. They’re only seeing expenses tied to the department that they are connected to.
Before, we didn’t have those options, so again, it’s about making sure that we’re connecting—our connections are set up in a way that makes it easy for Knack to know who needs to have access, or what that group needs to have access to. And again, we could leave this and give them options to edit, or we can make it read-only, and they can only review that information.
So that’s it. We’re able to limit that information.
Addressing User-Specific Data Views
If I jump back to my view here—or my user login information—I can go to, let’s see… I can jump into “View This.” You’ll see that we are logged in as Admin, so we don’t have access. I think I did departmenttest.com. We’ll see.
Good job, me, on the memory.
You’ll see now that I’m logged in as Knack, the only thing I can see is the department I have access to and those expenses related to the department. Again, the Home page—since it’s public—everybody will see the same thing. But my User Dashboard is only showing me information. You don’t see the tab up at the top for Admin.
Again, based on who you give permission to that page, all of the tabs that they have access to will appear. If they don’t have access, they won’t see that tab.
I thought I saw a quick answer here…
Max, if there’s anything you want to add here—or if you want to give me a summary—feel free to jump in with one.
I think we’re all good.
I mean, that one question was around custom coding. Unfortunately, we don’t provide support for custom coding, but we do support it within Knack, which I indicated. But no, it’s a quiet webinar this time, which I think shows how good of a job you’ve done, Roe, just explaining everything.
Thanks, Max. Yeah, just to echo what Max said with custom code—this is kind of a good segue, good stopping point here.