Improving Research Workflows using Templates, Widgets, and Forms in LabArchives Research Notebooks

So I'll pull up a couple of slides on this real quick. So templates, widgets, and forms are one of those conversations we could have for three hours, and it would not be very interesting, so we're not going to do that today. I'm going to keep things kind of high level and kind of the basics.

Now, if you attended the previous session, you've heard me talk about the word FAIR, Findable, Accessible, Interoperable, and Reusable. That's kind of the summary, in my opinion, of templates, widgets, and forms, right? Making sure that we can find our data, making sure we're very consistent with how we use and work with our information, and making sure that it is useful in the long run, right? There are plenty of very fancy widgets that you could make using lots of JavaScript and everything else, but if it's not useful in the long run, that might be a problem. So that might be something to kind of talk with your team, and I think that's the biggest conversation when we talk about standardization of data is you are the experts, right? So your team knows what you do, how you do it, and how you should organize your data.

So talk with your team is always the first step. Now, I think it's helpful to define what we need. So when I say page template, I mean a page that has entries, rich text entries, headings, attachments that are pre-formatted for what you want to do.

Anyone can make them. Anyone can copy them. Anyone can use them, and they're easy to make, right? It takes five minutes to make an Excel file that's pre-formatted.

A widget takes a little more work and allows you to collect drop-down lists, checkboxes, required fields, and these can be made in our widget manager. If you know HTML or JavaScript, you can get very fancy. We are not going to do that today.

We're going to keep things kind of light. And the newest of the three is Forms. So Forms came out, I think, last year and allows you to collect standard information.

A lot like a widget, it's going to be checklists, drop-down lists, things like that. The difference is that you can pull a central aggregate. I can pull the data from my forms to a central CSV file.

For a lot of the folks on the call, if you're trying to decide, hey, what's right for me, I'd encourage more and more people to move towards Forms because I feel like they're easier to make, easier to update, easier to manage. So we'll talk about that. Now, to give three examples.

So here we have a page template, a widget, and a form. Left-hand side, this is some rich text entries, some headings. If you attended the earlier sessions, this might look suspiciously similar to some of the stuff that we showed.

So we have a project phase, a start, end date, the team members who are involved. In the middle, I have a widget. This has drop-down lists, checkboxes, and a little more formatting, right? I can have red text.

I can have a black background. I can have things bolded. On the right-hand side, we have a form.

Now, forms are new, so they're still a little simple, right? It doesn't have quite as many formatting options as a widget, but you can collect the same information. The big benefit being with a form, I can pull that data together to that central aggregate, whereas a widget, that's pretty much the final resting place of that data, right? You can just read it. Now, I mentioned before, you are the expert on your process.

And this might sound like simple advice, but we have a lot of times when people will set up one-on-one calls with us. And it's one of my favorite parts of my job, is just to sit down with groups and hear what they do, what they're struggling with. And ultimately, you know your process.

You know your team better than anyone. So talk to your team. What templates, what forms, what widgets would be useful? What processes can you make more efficient? Because a widget that you make or form or template, you might use it hundreds or thousands of times.

So thinking about small improvements, right? If you have a preference for Arial size 16 bold font, build that into your form. Build that into your widget so it's ready to go. You don't have to spend thousands of, you know, seconds going and changing the font.

And also, talk with your team and test things before you say, hey, guys, this is the form I made. Everyone go and use it. Because you might have a typo.

You might have a mistake. You might have done something wrong or maybe people just don't like it. So don't just kind of make something and push it out immediately.

And I always recommend putting, having it as an open process, right? These are living documents. If a process change, a new piece of equipment comes in, a new workflow is developed, update it, right? You can always make new templates. You can always make new forms.

You can always, you know, set aside time to make sure the new employees coming in know how the forms are used and how things should be documented and that things are kind of passing on to the next generation of folks coming into your group, right? It's not that you've built all these hundreds of widgets and then when you leave, no one knows how to update them. The other thing to talk about is widgets, templates, and forms are some of the more advanced features for LabArchive. So if you have any questions or like I mentioned, you want to sit down one-on-one, reach out to us.

We're happy to do that. You can reach out to our help center, our knowledge base, quick start guides or email our support team. And we're happy to chat and take a look at what you built, offer some guidance and go from there.

All right, so I wanted to start by just showing some example page templates. Then we'll get into making a widget and we'll get into making a form. But are there any questions on anything so far? Okay, I don't see any.

All right, so I like to put my templates in a designated folder. And sometimes it makes sense to give read-only access to this that only those who are allowed to make them can edit. Everyone else gets view-only access.

And I like to have them up at the top, right? Here are all my templates in my new book. The one that you've probably seen me talk about before in the earlier session is this one. This is the most basic example I can think of.

I call it the high school chemistry class, right? In high school chemistry, you had a purpose, a procedure, experimental data, and so forth. Real science doesn't look like this, to be honest with you. But it's an example of how you might document this.

With the idea being, when I want to use this, I copy our page, copy all the entries. I can input a page name and it brings over all of that experimental data. And I start at the top and work my way down.

In the real world, these can be much more advanced. So this is more of kind of a codebook example for our more programming and software-oriented folks. So for folks who do more data analysis, lab archives, it becomes more of sort of a snapshot in time.

Here is my code, my scripts, my analysis as of October 28th. And I come back November 28th and do the exact same thing. So that is what this template is designed to do.

So at the top, I'm going to tell you where my data is located. So maybe it's in some Columbia University high-performance computing cluster. I can point to the paths there.

I can provide software, operating system, patches, and more. And even include a data dictionary with various variable names and descriptions and identifiers. So that if I come up with a term that means something to me, I can explain it to other people.

And this is very helpful in code because we're sometimes guilty of creating terminology that makes sense to us. Often, the output data sets and codes or scripts can be uploaded to lab archives. So I have spaces for that, as well as many output files, right? And I have all of this work that develops into one figure for my publication.

Maybe I include the figure right here. And again, the idea of this page template is whenever I want to use it, I copy this page and fill in the blank of kind of that snapshot in time of my work. Obviously, these can take many different formats.

What I like to bring up is this example. So this is kind of a real world example. This is a researcher out of the University of Sydney.

It is an open science and open source project. That's why I'm able to view their notebook. I should add.

And it's a big notebook. Every single page is really, really well labeled. So here is my friend Edwin.

He is running an experiment on compound 22. This is trial number two. We have outcome, rationale, procedure, notes.

Then we have the chem draw file. If I pick a different page and a different experiment, here's experiment 68. I have that exact same structure.

So here is, in this case, the chemical structure that we are working with. Again, outcome, rationale, procedure, notes. They included photos this time.

Here's what the compound looked like while it was in a vial. Here's after stirring and adding the addition. I scroll further down and I have safety information.

The reason I like this example is they have hundreds of pages that are identical, more or less, right? The actual data is different. The compound they're making, the results are different. But I can quickly go down to this extremely long compound and find what I need to find, right? Find the reaction mechanism.

Find the safety information. Even though I don't know Edwin. I just know that he's very consistent with his notebook pages and I can find what I need.

So this is a great example of just applying a page template across a big team. Sometimes people ask us, how do I make a page template? You make a page and you put entries on there that you want to copy. Like I mentioned, I recommend putting page templates into a designated templates folder.

Maybe a designated templates notebook where they all go and you can copy from and update those from there. All right, so page templates are the easiest. And then we're gonna hop into forms before we do that.

So any questions on page templates? So we can chat, so we'll keep moving along. So forms. So forms are kind of the next level up, a little bit more work, a little more features.

So I'm gonna show an existing form, but the word new and select form. And these are two forms that I've created for my group. So we have an equipment calibration report and an equipment maintenance report.

We'll take the calibration report where my colleagues are expected to tell me their name. So we're gonna say Hannah, the date of calibration. It's gonna be today.

What safety equipment we had. And if I apologize, this entire keyboard, the middle row is one letter over. So it makes my typing really bad.

I calibrated the thing. Great, we're gonna save this. This is the big difference with forms.

So when I click save and submit, this information I just input is sent over to form center. So in form center, I can say, hey, every time equipment calibration has been performed across all my notebooks, pull this together into one spreadsheet. This is really important.

When we talk about reproducibility and long-term record keeping, having that ability to kind of query your data is really useful. And we'll go ahead and hit save and submit. And that's being sent off to form center.

So where's form center? Triple dot menu, you'll see form center. Now, not everyone gets access to form center. The notebook owner and account admin have access.

So if you want to make forms on behalf of the notebook owner, great. You need to be an account admin. I would recommend making sure the notebooks are owned by the PI or supervisor before you start making a bunch of forms because it's controlled by the notebook owner.

You wanna make sure that notebook owner is the PI. Make sure they own the widgets and the forms as well. So form center opens up in a new tab.

Like I mentioned, you could be an account admin for several labs. This is very common. If someone has like a shared lab manager, you can actually switch between different labs up at the top here.

And we are gonna create a brand new form. First up is making a title. So I'm gonna call this our experimental, I promise this keyboard is not normal, 2026.

I recommend a description, just kind of telling someone what this is, what's contained within it. And the form editor. Now, my favorite thing about this is it's drag and drop.

So the first thing I want from my group is an experiment name. So I'm gonna grab a text field, drag and drop, experiment name. And I can even make this field required.

So every experiment needs an experiment name. Let's say I want a date next. I add a date.

And we'll say the start date. After that, maybe I want a dropdown list or what's called a selection field. So we're gonna say what type of experiment is it? So type of experiment.

It could be imaging, it could be cleaning, or it could be sequencing. Great. Now, the other options here, like a radio group, that's gonna be like an option A, B, or C, like a multi-choice test, or a checkbox where it's like a list of items you can check off and say, yep, check, check, check from within there.

On a preview form, this is what your form would look like in the notebook. So I have the start date, I have the dropdown list. Again, this is one of those things where I'm gonna save and I'm gonna walk over to my colleague and say, hey, take a look at this.

What do you think? Do you like it? Do you dislike the fact that Hannah was lazy and didn't capitalize the word cleaning? Should we fix that? Probably should, but I'm not going to. So it's an opportunity to kind of pause, have a conversation. Under sample data export, this is what it would look like if this form had been used throughout my notebook.

So it kind of gives you an idea of what this export would look like. You get a link to every entry where it was used. The name of the notebook where it was used, when it was added to the page, the last change made, who made that change, and then the data.

So we have experimental name, start date, type of experiment. This is what the export would look like. And we'll save.

Now, forms have a status of draft, published, and archived. So draft means I can go back in and make changes to our experimental summary if I want to and add more fields, update. When I click publish, this means, hey, it is available to everyone in our group.

They can start using it in the notebook. They can start adding this entry wherever they want. I cannot edit a lot of forms.

So when it's published, I can't go add more fields. I can't remove fields. That's something to keep in mind.

So talk with your team before you publish the form. If, let's say, this is the old version of the form I made a few months ago. We're not using it anymore.

I can choose to archive that form. When it is archived, you would no longer be able to edit the instances where this form was used. You can't add it to new notebooks.

It's saying, hey, this is the old version. Use the new version going forward. And you can select that option there.

Just to show you an example of what the export would look like, you see this is a form I've used a few times. If I click export data, it's all going to be created as a CSV. It takes a few minutes.

You'll probably hear my phone go off. It'll be a CSV phone, get an email notification. It takes, it could be up to an hour.

I say that, I literally just got the email. It was about 30 seconds there. So it takes a couple minutes.

It depends on how much data you're querying. So there's our form. And we can export it.

And it's used for a lot of analysis and project management. So I could say, okay, here is all of the calibrations we've done this year. Who did them? How many have they done? Is there an equipment calibration we didn't do or a strange result that we had? And I can kind of take a look at that CSV on how to learn form.

Now, forms are new, meaning that there is a lot of new and upcoming updates that we're working on with forms. And we're really grateful for anyone who plays around with forms to give us some feedback, give us some suggestions and recommendations. Something we've heard a lot is people want to be able to have form data be able to be accessed via our API.

So via the API, you could actually pull that form data into a database. You could build dashboards. You could do analysis based off of what's in those forms.

I've also heard a lot about formatting, right? People want to have purple text and green text and bold and text. So some options like that, you might see down the road as well. So keep an eye out.

It's an active part of Lab Archives. There's lots of new stuff coming around with forms. All right.

So that's the basics of forms. Are there any questions on forms before we hop into widgets? All right. So widgets.

Now, again, widgets are something that there are different flavors of widgets. First off, there are all of the built-in widgets. So click the word widget.

You're going to see a whole bunch on this dropdown. Any of these with the Lab Archives logos are ones that our team has made as ideas, suggestions. Maybe I want to calculate acid and base.

This is an example of how you might do that. A lot of people like the chemical sketcher widget. If you're a chemist, you can draw a chemical reaction and even do a quick stoichiometry table.

It's not ChemDraw, but it's helpful for quick instances where you need to calculate reactants and products. It'll give you that little table there. So there are some built-in.

Feel free to play around. What I always recommend to folks, make a test notebook, make some test pages. You can't break it.

So don't feel like you have to only do official work. You can play around. It's totally fun.

And you see in my list of widgets, there's ones with these head and shoulders. These are ones that I've made. So I'm going to show this one, which is a little more advanced, and then we're going to make our own.

So this is a cell counting widget. If you joined the earlier sessions, you've probably seen this. This one has dropdown lists, checkboxes, and it does some math.

So if I try to save without a sample ID, I get a warning. And if I have a date, I can pick a date. Dropdown list, I can pick a dropdown.

And for math, I can type in, and down here it does the math form. Now, if you are someone doing complex mathematics, something you would do in MATLAB or Python or whatever, excellent, go use those tools. But if it's something more algebra, basic math, a widget is a great option.

And I always point out to folks, sometimes Excel might be the easiest because in Excel, you can quickly add cell one, cell two, divide by cell three pretty easily. So it's sometimes worth a conversation with your group of how much time do you want to spend making a widget if you can make an Excel spreadsheet that does the same math in less time. So always a conversation with your group about what makes the most sense.

And that's something to bring up about widgets. This is kind of the, I call it the final resting place, is viewing it on the page. I could print this page, I can make a PDF, I can look at it, but I can't easily query and say every time this cell counting widget pull this data into a spreadsheet for me or pull this into an analytics platform.

This is pretty much my cell counting, here's the result. There's lots of documentation that's like this, like chemical health and safety is a very common use case. So you have all your SDS sheets and your safety information.

A widget is a great place for that kind of thing because you're filling it out all the time. It can be some check boxes. You're not gonna query every SDS across your group.

You just need to have a copy of it. All right, so we're gonna hop into the widget manager. Any questions on this so far? For, was it for widgets or for forms that a group can suggest that we make it available if they're like homegrown widgets, make it available to the rest of the community? Both.

Okay. So excellent point. That's something we would chat with our site admins about.

Let's say you make something and you say, this thing is so cool. I want it to be available to everyone at Columbia University. Talk to your site admins first.

What they may wanna do is just have a conversation with the person. Maybe it's a blog post or an article or you have screenshots or something like that that you share with folks. Or maybe you make something that is genuinely useful for everyone.

So like one of my universities has a bunch of animal care documentation where you say, like you build out a cage card. So it says, this is the mom mouse. Here's the dad mouse.

Here's their cage tags, all of that. They made a widget for that. And it's a site-wide widget.

So everyone who has mice across all campus can use that widget. They don't need to mess with HTML or anything else. It's just one of their widgets.

If you would like that, reach out to our site administrators. We will coordinate that with them to get that set up. There's some neat stuff you can do on that side if that's of interest to you.

I've also seen it used for like IRB documentation, stuff like that. That's just like, everyone needs a copy of this thing. Let's just save some time.

So, all right. So let's talk to the widget manager. Triple dot menu.

If you go down to widgets, you will see widget manager if you are the notebook owner, the account admin, or the notebook administrator in the currently selected notebook. And we open that up. So you'll see in the list of widgets, all of the ones that are by default and the ones that I've made here.

If you click the word new, this is how to make a new widget. First thing is add a name. So 10, 28, 26.

We're going to call this our experiment summary. Now, I recommend getting the habit, if you're making a very complex widget, hit save every couple of minutes. Almost everything in LiveRx has an autosave.

Widgets are one of the rare exceptions to that. So if you walk away from your computer, make sure you click save for your changes. And down here we have, if you're familiar with web archives, this might look familiar.

It looks a lot like our old rich text entry. This is all formatting. So the entire top row, this is how I make bolded text or underlying text, a numbered list.

I can center my text. I can choose a font color. Maybe you're someone who likes Arial size 16.

Great, you can set that. I personally like to build a lot of my widgets inside a table. I think it looks nice, but that's optional.

And for our experimental summary, I'm going to first ask for experiment name. We're going to say the start date. We're going to have some comments and we're going to say type of experiment.

So relatively similar to what we built in that form. And I can come in here and change the formatting. If I want red and blue text, I can.

If I want to make it nice and large, I can do that as well. Now the preview tab and the script editor tab. The preview tab, this is what this widget would look like on my page.

I usually recommend scroll down and make sure you see the word okay. If your widget does not work, if your widget has an issue, you're going to see a bright red error. On the script editor tab, this is the JavaScript.

If you are someone who feels comfortable in JavaScript, you want to make a cool thing that you select option A and then second drop down options B and C are shown. But then if you select option D, it has all of this branching logic. Go for it.

Have fun. If you'd like for your life to be a little easier, don't bother with this tab. You don't need to touch it.

Usually our JavaScript folks take and run with it. If you don't want to, that's fine as well. So we have some text that we show on our table.

This is the non-interactive text. And I usually recommend adding that first. Now we need to add each of the boxes we can type into.

So these are form elements right here. The most common is the text field, the little A, B box here. And we'll add a name.

So I'm going to say experiment name. The number one most common question we get in our technical support team is, help, I made a widget. It's not saving.

It has all these errors. It's not working properly. 97% of the time, it's because of the experiment name or the name of that text field.

It needs to be unique, lowercase, without any special characters. Don't put an asterisk. Don't put a and sign.

Don't put underscores unless you're trying to play with JavaScript, in which case, go for it. So make sure we have a text field, click OK. Now I'm going to break the rule that I just said.

And I'm going to use an underscore this time for our date. So we're going to click text field. And we are going to say the word start.

And this might be a little bit hard to see because of the formatting. There's an underscore, right, for the word date. This tells LabArchives, this is a date field.

I only want the date in this field. Don't allow text. Just pop up a little calendar.

Let people pick a date, drop down. And click OK. Now type of experiment.

This could be a text field where they're allowed to type in that it's an imaging assignment or whatever. But maybe I want this to be a drop-down list. So I would select this button right here for our selection field.

So the first thing always, type of experiment. Text and value are the options on the drop-down list. So this is another example of why I recommend forms.

If you want things that are simple, you just type in and click add option and you're good to go. There's a little more formatting here. So type of experiment.

We're going to have an imaging experiment. Every option needs a unique value. So we're going to say imaging, sequencing, and testing.

Great. And add. So now when my group uses this drop-down, there's three options.

Imaging, sequencing, or testing. Again, this is one of those examples where widgets are a little more complex than a form because there is a little more formatting there. The last thing I want to add is a comments field.

So rather than just being a little small box, I want this to be nice and big. That you can have a couple sentences. So a text area is more appropriate.

So I would say this is our comments. And I can put the size. So it's going to be 80 columns wide, five columns long.

And I get a nice big comments box. And we talk about widgets. It's always worth thinking about, again, long-term use of that data and things like that.

You can make a very large widget. Just physically large, quite wide, quite long. That doesn't fit on a normal 8.5 by 11 sheet of paper.

We don't permit you from doing that. But I would encourage, if you plan to print off that page, have it fit on 8.5 by 11 sheet of paper. So sounds like common sense, but it's just kind of good design.

Now, we've added some fields here. I could continue on adding more and more fields, making checkboxes with the checkbox option. But I like to stop every so often and test.

Because I am a bit of a mess of a human being and make mistakes constantly. So if I come to the Preview tab, this is what our widget would look like. On Preview for Editing, this gives you another kind of idea, right? There's drop-down lists.

There's a little calendar. But I like to check on a page. So we come to our test page.

We select Widget. And select our brand new widget, 10-28-2026. And we'll go ahead and use this on our page.

Now, this is an opportunity to take a step back. Be patient. Don't just immediately go to your team.

Hey, guys, I made this cool widget. Everyone, go use it. Pause.

Take a second. Get some feedback. Because let's say I had misspelled the word experiment.

I should...