> For the complete documentation index, see [llms.txt](https://docs.beefree.io/beefree-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.beefree.io/beefree-sdk/resources/videos/beefree-sdk-spotlight-session-hosted-saved-rows.md).

# Beefree SDK Spotlight Session: Hosted Saved Rows

{% embed url="<https://www.youtube.com/watch?v=BSqWRusx2fg>" %}

{% tabs %}
{% tab title="About" %}
In this Beefree SDK Spotlight session, we'll showcase how you can give your end users the ability to save and reuse their content through a simple toggle - no additional development resources needed in real time. We'll also walk through the various configuration options that'll enable upselling or provide additional customization options. For a comprehensive walkthrough of Hosted Saved Rows, check out the tutorial here: [![](https://www.gstatic.com/youtube/img/watch/yt_favicon_ringo2.png)Hosted Saved Rows: A Faster Way to Save an...](https://www.youtube.com/watch?v=5m80DgKW0x8)

Chapters:

* [1:43](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=103s) Introduction to Hosted Saved Rows&#x20;
* [2:39](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=159s) Benefits of Enabling Saved Rows&#x20;
* [3:22](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=202s) Implementation and Customization of Hosted Saved Rows&#x20;
* [4:03](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=243s) Activating the Feature in the Developer Console&#x20;
* [5:30](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=330s) Front-End Functionality Demonstration (Saving & Managing Rows)&#x20;
* [8:42](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=522s) Restricting User Access (Saved Row Boolean & Advanced Permissions)&#x20;
* [10:28](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=628s) Advanced Permissions&#x20;
* [12:17](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=737s) Customizing Tab Visibility & Order&#x20;
* [13:29](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=809s) Default Tabs Order&#x20;
* [14:30](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=870s) Customizing Modal Look and Feel (Translations & Theming)&#x20;
* [18:04](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=1084s) Exporting Hosted Saved Rows&#x20;
* [20:38](https://www.youtube.com/watch?v=BSqWRusx2fg\&t=1238s) Q\&A Session 45:44 Closing Remarks
  {% endtab %}

{% tab title="Transcript" %}
The following text includes the complete transcript for this video.

```
0:00:03.400,0:00:10.680
And we're live! Hello, everybody! 
Hi, everyone! How's it going?

0:00:10.680,0:00:18.760
Welcome! Looks like we still have a 
few people joining. Out of curiosity,

0:00:18.760,0:00:29.960
has anybody introduced our 
Hosted Saved Rows feature yet?

0:00:33.840,0:00:37.240
Well, if not, this is the perfect webinar 
for you to be on because we're going to

0:00:37.240,0:01:00.600
walk you through everything you need 
to know. I just want you all to know,

0:01:00.600,0:01:05.760
the chat is at the bottom right-hand side 
of the screen. If you have any questions

0:01:05.760,0:01:11.360
as we go through this webinar, please 
feel free to drop them in the chat,

0:01:11.360,0:01:24.680
and we'll also be sharing some resources with you 
throughout this office hours in there as well.

0:01:24.680,0:01:27.080
I think, uh, I think we may have everyone.

0:01:27.080,0:01:29.920
The number's started to slow down. Do 
you want to go ahead and get started?

0:01:36.760,0:01:43.080
Yeah. So, alright. So, if you want to go 
ahead and go to the next slide for me, um,

0:01:43.080,0:01:47.200
just want to introduce myself real quick. Uh, my 
name is Kyle, and I'm a Senior Customer Success

0:01:47.200,0:01:53.400
Specialist at Beefree, and today I'm going to be 
introducing you to our Hosted Saved Rows feature.

0:01:53.400,0:01:57.360
Quick overview: it's a powerful feature 
in Beefree SDK that makes content creation

0:01:57.360,0:02:02.280
more efficient and streamlined. Uh, following 
that, our fantastical technical writer, Zier,

0:02:02.280,0:02:07.360
is going to walk you through how to implement the 
feature, and then we'll finish off with a Q&A.

0:02:07.360,0:02:12.520
So you may be asking yourself, what is 
a saved row? Uh, in essence, in the SDK,

0:02:12.520,0:02:17.720
uh, content is organized into groups of content 
blocks that we call rows. And a saved row allows

0:02:17.720,0:02:23.160
your end users to save and reuse these content 
structures or rows across multiple projects,

0:02:23.160,0:02:26.400
eliminating the need to recreate them 
from scratch each time. So think about

0:02:26.400,0:02:31.640
common elements like headers, footers, or product 
display layouts. By saving these rows, uh, your

0:02:31.640,0:02:37.600
users can easily insert them into new designs, 
ensuring consistency while saving valuable time.

0:02:37.600,0:02:46.720
So why should you enable saved rows in 
your application? Go to the next slide.

0:02:46.720,0:02:51.880
So first, it significantly reduces content 
creation time. Uh, your users can save hours

0:02:51.880,0:02:56.240
each week by reusing pre-designed rows instead 
of building them from the ground up every single

0:02:56.240,0:03:01.800
time. Second, it minimizes errors. So instead of 
manually creating layouts, your users can rely on

0:03:01.800,0:03:06.960
these saved content rows to ensure consistency 
and accuracy across every design. And finally,

0:03:06.960,0:03:10.960
it enhances user loyalty. By providing an 
intuitive, time-saving feature like this,

0:03:10.960,0:03:14.400
it makes your application even more 
valuable, helps increase engagement,

0:03:14.400,0:03:18.320
and most importantly, helps you retain your 
customers. So there's a little background on

0:03:18.320,0:03:21.440
what the feature is. I'm now going to pass it 
over to Zier, who's going to walk you through

0:03:21.440,0:03:26.360
the how and how you can get this feature 
set up in your application. Thank you.

0:03:26.360,0:03:30.600
Awesome. Thanks so much for that introduction, 
Kyle! Hi, everyone! My name is Zier. I'm the

0:03:30.600,0:03:35.840
Lead Technical Writer here at Beefree SDK. 
And for this portion of the presentation,

0:03:35.840,0:03:41.480
we're going to be talking about not only how 
you can implement Hosted Saved Rows within

0:03:41.480,0:03:45.280
your applications, but also talking 
a little bit more about how you can

0:03:45.280,0:03:51.000
customize the experience of Hosted Saved Rows 
altogether for your applications and users.

0:03:51.000,0:03:57.600
So to get started, we're going to do a few 
demonstrations. So I'll be navigating between

0:03:57.600,0:04:04.480
a few different tabs here as you follow along, 
but the first thing we're going to do is identify

0:04:04.480,0:04:11.440
where the toggle to activate Hosted Saved Rows 
actually is within the Builder. So to do this,

0:04:11.440,0:04:18.360
I'm going to navigate into my own developer 
console account and navigate to the application

0:04:18.360,0:04:23.880
that I want to toggle this feature on for. 
For this presentation, I decided to use

0:04:23.880,0:04:29.720
this QA environment, so it's a development 
instance. And I just click on details there

0:04:31.160,0:04:40.480
and head on over to application configuration. 
And when I click "View," now I'm in the space

0:04:40.480,0:04:45.520
where I can identify the toggle. And here in the 
Saved Row section, you'll notice that there are

0:04:45.520,0:04:51.760
two toggle options, and you'll want to toggle on 
"Hosted on the Beefree SDK infrastructure." I've

0:04:51.760,0:04:57.560
already toggled it on because this is my demo 
environment, which we'll be jumping into next.

0:04:57.560,0:05:02.960
But when you toggle this on, just keep in mind 
that you'll get a pop-up, and that pop-up will

0:05:02.960,0:05:07.360
mention that usage-based fees may apply for 
Hosted Saved Rows depending on the quantity

0:05:07.360,0:05:11.720
of rows that you're saving. So make sure you 
familiarize yourself either through reading the

0:05:11.720,0:05:19.200
documentation or connecting with a CSM like Kyle 
to make sure that you're familiar with those fees.

0:05:19.200,0:05:23.800
Alright, now that this is toggled on, and again, 
once you toggle this on, just make sure you click

0:05:23.800,0:05:29.920
"Save" in the upper right-hand corner. Um, we're 
going to go ahead and take a quick look at how

0:05:29.920,0:05:38.920
Hosted Saved Rows functions on the front 
end. So I have a test environment here.

0:05:38.920,0:05:45.160
I'm going to go ahead and reload it. If 
you want to follow along, I did include

0:05:45.160,0:05:52.560
all of the code as code samples in this GitHub 
repository, so you can use this repository to

0:05:52.560,0:05:59.640
follow along in today's presentation, or you 
can use it later on for your own reference.

0:05:59.640,0:06:05.200
I'll go ahead and share that there. Hopefully 
everyone is able to access it. Let me know if

0:06:05.200,0:06:11.920
you aren't for any reason. But basically, this 
is the code that we'll be using in today's demo.

0:06:11.920,0:06:19.400
Alright, perfect. So now I'm in my application. 
I'm in my code sandbox. When I click "Build an

0:06:19.400,0:06:27.080
Epic Email Now," I'm navigated over 
to the Builder. And in the Builder,

0:06:27.080,0:06:32.320
you'll notice that when I click on a row, I 
now have the option to save it. So this is

0:06:32.320,0:06:37.640
the out-of-the-box functionality that comes with 
Hosted Saved Rows. And you'll notice that as an

0:06:37.640,0:06:45.160
end user, I'm directed to add a row name and add 
a row category. So here, I'm going to add a row

0:06:45.160,0:06:50.960
name. It'll be "My First Row." And the category, 
I'll go with the default category, which is "My

0:06:50.960,0:06:58.800
Saved Rows." When I click "Save" there, I get a 
confirmation that my row was saved. And as an end

0:06:58.800,0:07:07.080
user, when I navigate over to the Rows tab and 
that category, I see "My First Row" here. I'll

0:07:07.080,0:07:14.080
also have the option—and I'll make this a little 
bit bigger just for the time being—I also have the

0:07:14.080,0:07:23.800
option to add a new category. So if I wanted to 
add something like "Coffee Headers" and just save

0:07:23.800,0:07:32.160
that new category, I absolutely can. And then I 
can also manage existing categories. So let's say

0:07:32.160,0:07:41.800
maybe I don't actually need that new category, I 
can delete it. And we also have row-level actions

0:07:41.800,0:07:48.520
that end users can perform. So there's the "Edit 
Info." So actually, I lied, this isn't "My First

0:07:48.520,0:07:54.440
Row," it looks like it's actually "My Third 
Row." So I'm going to change the name to "My

0:07:54.440,0:08:02.080
Third Row," update this, and now you can see the 
new name of "My Third Row." And I can also decide

0:08:02.080,0:08:08.520
whether or not I want to delete it or keep it. So 
that's the front-end functionality in a nutshell.

0:08:08.520,0:08:13.560
Now let's talk a little bit more about how we 
can customize this experience on the front end

0:08:13.560,0:08:20.120
for application end users. I'm just going 
to keep moving along in the slide because

0:08:20.120,0:08:26.360
it helps me keep the pace on the topics that we're 
discussing. So the next topic we're actually going

0:08:26.360,0:08:34.160
to cover is once you toggle on the Hosted Saved 
Row functionality, it becomes available to your

0:08:34.160,0:08:39.680
end users. But maybe there are certain end users 
that you don't want to have access to this feature

0:08:39.680,0:08:47.880
because you want to use it as incentive for an 
upgrade or some other reason. If that's the case,

0:08:47.880,0:08:53.920
you can use the savedRow boolean, which we 
talk about in the technical documentation,

0:08:53.920,0:09:00.800
to restrict which users can and cannot access 
Hosted Saved Rows altogether. In this example,

0:09:00.800,0:09:07.080
you'll notice—and I'll make this a little bit 
bigger, hopefully it's big enough on my screen,

0:09:07.080,0:09:11.840
if not, just let me know in the chat and I'll 
make it bigger—um, so you'll notice here,

0:09:11.840,0:09:18.720
savedRows.uid can be "admin" or uid can be 
"designer." And you'll notice right here where

0:09:18.720,0:09:26.760
we have the Beefree config defined before that 
we have this variable uidIsAdmin. So right now,

0:09:26.760,0:09:34.000
what we're looking at in the Builder is the admin 
experience. This person has access to um, the save

0:09:34.000,0:09:40.280
toggle and all of the modals and functionality 
that comes with Hosted Saved Rows. And if I were

0:09:40.280,0:09:46.680
a designer, I would still have access to that 
Saved Rows icon that I clicked on. But what if

0:09:46.680,0:09:55.600
I changed the role from "admin" to "copywriter" 
because I actually don't want copywriters to

0:09:55.600,0:10:05.200
have access to saving a row within the Beefree 
SDK? So I navigate over here, click on a row,

0:10:05.200,0:10:12.000
and you'll notice that the icon, the save icon 
that we saw earlier, is no longer there. So it

0:10:12.000,0:10:20.400
means that we were accurately able to restrict 
this feature for uid equal to "copywriter."

0:10:20.400,0:10:25.680
I'll go ahead and delete that, 
set it back to "admin," save this,

0:10:25.680,0:10:29.320
and now we're going to jump into our next 
topic, which is advanced permissions.

0:10:31.080,0:10:41.680
So when we talk about advanced permissions, we're 
not talking so much about the save icon anymore,

0:10:41.680,0:10:50.040
but we're talking more about the granular level 
permissions and which role has access to which um,

0:10:50.040,0:10:57.880
type of behavior within the Builder. So here 
in advanced permissions, we have a rows object

0:10:57.880,0:11:03.600
and then behaviors, and in behaviors, we have 
four different uh, behaviors that we can set

0:11:03.600,0:11:08.880
permissions for. You'll notice that the admin 
has permissions to delete a row, edit a row,

0:11:08.880,0:11:17.400
manage a row category, and to add a row category. 
But in this case, the designer only has access to

0:11:17.400,0:11:25.320
editing the hosted row. So let's set ourselves to 
the designer experience. If I edit "admin" and put

0:11:25.320,0:11:37.720
in "designer" and save this, now when I navigate 
to the Builder, I should only be able to edit. So

0:11:37.720,0:11:43.440
the three vertical dots that we had earlier, 
they're no longer there. If I clicked on "My

0:11:43.440,0:11:50.360
Saved Rows" and I click on these three vertical 
dots for this particular row, you'll notice that

0:11:50.360,0:11:56.120
the only permission I have is to edit the row's 
information. So I can edit the name, edit the

0:11:56.120,0:12:05.560
category, but I can't delete the row or anything 
else. So that shows a simple example of how you

0:12:05.560,0:12:11.920
can leverage advanced permissions and these 
different behaviors that are set within here.

0:12:11.920,0:12:20.320
Um, on another level, let's talk a little bit 
about tabs. So within advanced permissions,

0:12:20.320,0:12:29.240
you can also determine whether or not you want 
to show or lock the Rows tab altogether. So maybe

0:12:29.240,0:12:37.200
you want to show the Rows tab but you want to 
keep it locked because we're operating within

0:12:37.200,0:12:43.840
that same um, scenario as before where maybe 
you want to use the row tabs as an incentive

0:12:43.840,0:12:49.880
for an upgrade in the future. Now your end users 
will see this experience where they're able to

0:12:49.880,0:12:54.800
navigate with the content tab or interact 
with the content tab and the settings tab,

0:12:54.800,0:13:00.920
but the Rows tab, they can't click on it. So 
it creates an element of curiosity of like,

0:13:00.920,0:13:07.720
what is beyond, what's going on with the Rows tab, 
what kind of benefit can I get out of activating

0:13:07.720,0:13:16.560
that tab in my experience? So that's locked. And 
"show" just determines whether or not we see that

0:13:16.560,0:13:26.000
tab. So I'm going to go ahead and save this back 
so now we can interact with the Rows tab again.

0:13:26.000,0:13:32.160
Alright, so we talked a bit about that. Now, 
now let's talk about another customization we

0:13:32.160,0:13:39.680
can use within the Builder, which is 
default tabs order. So you'll notice

0:13:39.680,0:13:45.800
that originally the order of the tabs 
within the Builder were content, rows,

0:13:45.800,0:13:51.160
and then settings. Let's say I want the focal 
point to be rows. That's the first tab that I

0:13:51.160,0:13:58.640
want an end user to see when they land in the 
Builder. And then I want them to see settings,

0:13:58.640,0:14:06.040
and then I want them to see content. I can 
use defaultTabsOrder and define the new order

0:14:06.040,0:14:15.320
of the tabs within this array. So I go here, 
and now you can see that "Rows" is the first

0:14:15.320,0:14:24.760
tab here. Now I'm able to easily navigate 
that, navigate to that tab as the end user.

0:14:24.760,0:14:33.360
Alright, and now let's talk a little bit about 
how you can customize the modal and the overall

0:14:33.360,0:14:40.760
experience and look and feel of Hosted Saved 
Rows that way it matches the look and feel of

0:14:40.760,0:14:50.040
your application. So let's say, for example, I 
take a look at the modal and I think to myself,

0:14:50.040,0:14:56.440
"Hmm, perhaps I want to add my own text here and 
edit this a little bit. Maybe instead of 'Save

0:14:56.440,0:15:03.840
your row,' I want it to say something like 'Enjoy 
your new saved row.'" Well, you can absolutely

0:15:03.840,0:15:09.800
do that. In the GitHub repository that I shared 
with you at the beginning of this presentation,

0:15:09.800,0:15:17.240
I include a translations.json file. And within 
that translations.json file, you will find, uh,

0:15:17.240,0:15:23.640
this type of information: hostedContent and 
then, uh, these different types of sections,

0:15:23.640,0:15:31.280
which include modals, toast messages, error 
messages, um, pretty much anything that is related

0:15:31.280,0:15:38.280
to Hosted Saved Rows altogether. And you can use 
that information to override the default text with

0:15:38.280,0:15:46.560
your own text. So in this simple example, I use 
translations within the Beefree configuration,

0:15:46.560,0:15:51.240
and instead of saying "Save row," I want the 
top to say "Hello row," and instead of the

0:15:51.240,0:15:58.920
default text for the title, I want it to say 
"Enjoy your new saved row." When I save this

0:15:59.800,0:16:08.000
and I navigate back to my Builder and I 
click on the save icon, I'll be redirected

0:16:08.000,0:16:16.520
to a modal with the uh, text that I put in the 
Beefree config to override the default text.

0:16:16.520,0:16:22.120
And if we want to take the customization one 
step further, we can also change the font and

0:16:22.120,0:16:30.520
the coloring of the modal. In this example, I'm 
going to navigate back to the developer console,

0:16:30.520,0:16:38.440
click on application defaults, and oops, not 
application defaults, application details,

0:16:38.440,0:16:45.640
click on application details and then themes. 
And I'm going to enable a theme. So here we see

0:16:45.640,0:16:52.160
the default theme that we're working with right 
now, and what we're going to do is we can use any

0:16:52.160,0:16:58.840
of these three other options, or we can scroll 
down and define the colors, fonts, and so on,

0:16:59.520,0:17:05.200
uh, in terms of styles that we want to use. But 
if we select this theme just to make it quick,

0:17:05.200,0:17:14.440
and we update the theme and we save it, and when 
we navigate back to the Builder and reload here,

0:17:14.440,0:17:22.400
we should now get a new look and feel when 
we open up the Hosted Saved Rows modal. Okay,

0:17:22.400,0:17:29.120
so now we have a new text, we also have new 
font, and we also have a new color over here.

0:17:29.120,0:17:33.800
So we're really able to customize 
that experience of Hosted Saved Rows,

0:17:33.800,0:17:39.920
just like how we're able to customize other 
things within the Beefree SDK ecosystem.

0:17:39.920,0:17:49.080
And the last thing I'll talk about is how you 
can actually, let me just make sure that this

0:17:49.080,0:17:58.840
is good to go over here, uh, all right. 
So the last thing I'll talk about today

0:18:00.080,0:18:08.840
is how you can actually use your Hosted 
Saved Rows. And the Hosted Saved Rows,

0:18:08.840,0:18:17.560
just like any other row, can be transformed in 
terms of uh, Beefree JSON into other formats. So

0:18:17.560,0:18:24.200
it is also compatible with exporting plain 
text, exporting HTML, exporting to a PDF,

0:18:24.200,0:18:32.840
and exporting to an image. So if we were to 
take one of our Hosted Saved Rows here, add it,

0:18:32.840,0:18:42.240
now we know our new row is here, save this design, 
we automatically get the entire template JSON in

0:18:42.240,0:18:49.440
here, and we can click "Export Plain Text," and 
we should be able to see the plain text. I know

0:18:49.440,0:18:58.960
this screen is a bit small, so you can also follow 
along in the um, in the GitHub repository there,

0:18:58.960,0:19:04.800
a larger environment that you can use. But for 
the purposes of this demo, I'll just show you here

0:19:04.800,0:19:09.920
the plain text appeared. You can see the plain 
text for not only the hosted row but the entire

0:19:09.920,0:19:17.240
template. You can do the same thing by exporting 
HTML and click that button. Maybe your end users

0:19:17.240,0:19:28.720
want to export the HTML. If I take the HTML 
actually, and I copy this all, I'm just going to

0:19:29.640,0:19:41.480
and over here copy and click here and type paste. 
I can also do "Export PDF." So let's see what uh,

0:19:41.480,0:19:49.120
PDF looks like. You can see, yeah, my Hosted 
Saved Row is included in there. And then the very

0:19:49.120,0:19:56.160
last thing I'll do is click the "Export Image" 
option, and then I can see, yep, the Hosted Saved

0:19:56.160,0:20:03.640
Row transformed perfectly into an image, and it 
integrates seamlessly with the rest of my design.

0:20:03.640,0:20:09.440
So that's Hosted Saved Rows in a nutshell. We 
talked about how you can implement the feature,

0:20:09.440,0:20:16.360
how you can go ahead and interact with all of 
the different types of customizations within

0:20:16.360,0:20:23.800
Beefree SDK. If you're interested in um, the type 
of experience that I created here too with these

0:20:23.800,0:20:29.680
four buttons, I can include a separate GitHub 
repository link in here where you can just copy

0:20:29.680,0:20:38.840
and paste the code um, into Glitch and use that 
as a server for these um, four export options. Uh,

0:20:38.840,0:20:46.400
thank you so much and Kyle, I think we're ready 
to open it up for questions if folks have any.

0:20:46.400,0:20:52.400
Great. So I do see one uh, question in the chat 
here about what happens to a saved row if part

0:20:52.400,0:20:58.720
of that category is deleted. Um, I don't, 
I'm not sure I have the full context here,

0:20:58.720,0:21:03.800
but uh, to answer what I think the question 
is, uh, essentially, if you delete a category,

0:21:03.800,0:21:08.120
the rows inside that category will be deleted 
as well, uh, and they won't be accessible

0:21:08.120,0:21:13.080
anymore. Um, but if the hosted rows are used 
inside a specific design, there will be no

0:21:13.080,0:21:17.640
effect on that. So I would suggest if you're 
going to delete a row or delete a category,

0:21:17.640,0:21:24.640
move that row to a separate category first so you 
don't lose that data. Um, yeah, if anybody else

0:21:24.640,0:21:37.720
has questions, feel free to put them in the uh, 
questions tab down the bottom right. Let's see.

0:21:37.720,0:21:54.480
I'll take a quick look. Um, I see a question about 
forms: "We would like to use form elements in the

0:21:54.480,0:22:01.160
landing page feature as a standalone feature 
to build and deploy uh, forms on your website.

0:22:01.160,0:22:13.160
Is this possible?" And then, so my understanding 
of rows is that they integrate as an additional

0:22:13.160,0:22:20.040
content block that you can add to your landing 
page. So if you're building a landing page within

0:22:20.040,0:22:26.960
the Beefree Builder and you drag and drop the form 
content block onto the landing page stage, that

0:22:26.960,0:22:36.280
form will uh, be integrated in there, and when 
you export it, then you can go ahead and create

0:22:36.280,0:22:45.200
your own um, your own landing page with the form 
in there. I mean, I think it would be up to you

0:22:45.840,0:22:50.440
how you want to customize the landing page, but 
the form functions as a portion of that landing

0:22:50.440,0:22:58.440
page. And I hope that answers your question. If it 
doesn't answer your question, please let me know,

0:22:59.360,0:23:03.120
and we can talk about it some more. 
I'll also leave my contact information,

0:23:03.120,0:23:07.960
so if folks want to email me after this 
webinar, you can absolutely email me,

0:23:07.960,0:23:15.240
and we can follow up with more answers to your 
questions. Um, okay, I see one about AI here:

0:23:15.240,0:23:20.640
"We are evaluating the AI features in Beefree 
SDK, but are concerned about costs and data

0:23:20.640,0:23:28.440
privacy. That's a really great question. And is 
it possible for users to integrate their own chat

0:23:28.960,0:23:37.160
API key instead of using a shared AI service?" 
Oh, I see you already answered, Kyle. We also do

0:23:37.160,0:23:42.520
have the Trust Center, um, and in the new Trust 
Center, we talk a little bit more about this,

0:23:42.520,0:23:49.920
where you can reference more resources around 
um, the data security and privacy best practices

0:23:49.920,0:23:55.560
that we use here at Beefree SDK. It's also 
linked at the very end of the docs page,

0:23:55.560,0:24:03.640
but just for easy reference, I will 
share the link within the chat too.

0:24:03.640,0:24:09.400
And Alex, just to touch on the cost piece as 
well, um, we do have some tools that you can

0:24:09.400,0:24:15.160
use to mitigate cost in this matter. You 
can limit tokens by user, uh, a lot of,

0:24:15.160,0:24:19.120
you know, individual things to help, 
you know, manage those costs. So, uh,

0:24:19.120,0:24:26.720
happy to talk after this call. Feel free to shoot 
me an email, we can talk more deeply about it.

0:24:26.720,0:24:40.200
And let's take a quick look at the other 
questions. Oh, I think that covers all

0:24:40.200,0:24:46.720
the questions. Did anyone else have any 
other questions, anything else you'd like

0:24:46.720,0:24:58.320
to know about Hosted Saved Rows or any 
Beefree SDK functionality in general?

0:25:05.720,0:25:28.320
Thank you, Jeff, for being here. We 
appreciate it. Give it another minute here.

0:25:48.320,0:26:02.240
Okay, we've got some more questions coming 
in. Oh, okay, I see a question here, um,

0:26:02.240,0:26:07.480
about: "Are there any recommended ways 
of providing default rows or templates

0:26:07.480,0:26:13.960
in Beefree?" So you can absolutely provide 
your end users with the default rows. Um,

0:26:13.960,0:26:20.400
they can either be default rows that we have 
available, um, there's actually a Boolean called

0:26:20.400,0:26:26.600
defaultRows that you can set to true within the 
Beefree configuration, and that'll activate our

0:26:26.600,0:26:32.240
default rows. But if you're more interested in 
your own that you created and built, you can use

0:26:32.240,0:26:39.200
the custom rows feature and provide your end users 
with access to the custom rows that you built um,

0:26:39.200,0:26:45.360
whenever they load the Beefree SDK Builder. 
Uh, I'll provide links to both of those,

0:26:45.360,0:26:51.520
the Boolean and also custom rows, in the chat that 
way you can read a little bit more about it and

0:26:51.520,0:26:58.240
experiment with those two features. But that would 
be our custom rows and default rows offering.

0:27:14.200,0:27:28.160
I'll go ahead and get those links 
very quickly. Yeah, let's see.

0:27:32.560,0:27:51.840
And I'll add this in the chat. Um, and then I'll 
also share my email in the chat. I think you can

0:27:51.840,0:27:57.320
reach out to me, and I'll make sure that you 
get uh, in contact with the right person to

0:27:57.320,0:28:04.720
help you out for any AI related inquiries. 
And let me see, was there another question

0:28:04.720,0:28:11.840
in here? I may have missed it, but, "Is there 
any way to limit the number of saved rows that

0:28:11.840,0:28:18.840
can be created? Uh, for example, ensure that 
someone doesn't create a thousand rows?" Yeah,

0:28:18.840,0:28:31.840
so that's an excellent question. I know, 
um, that's an excellent question. Let me

0:28:31.840,0:28:38.080
do some additional research. I know that we can 
create a maximum of how many rows are displayed,

0:28:38.080,0:28:49.200
but I don't know if we actually limit 
the number of rows a person can create,

0:28:49.200,0:28:58.040
but I'd be happy to follow up with 
you on that after this presentation.

0:29:00.600,0:29:06.760
And then I think I saw another question about 
self-hosted saved rows. Let me take a quick

0:29:06.760,0:29:15.000
look. Where was that question? "Do you have 
more documentation?" Yes, so I will share a

0:29:15.000,0:29:28.200
link in the chat here so that way you can 
take a look at that. We also in GitHub,

0:29:28.200,0:29:34.640
we have um, some sample code that you can 
reference with a simple integration or

0:29:34.640,0:29:44.160
implementation of self-hosted saved 
rows. So I'll include that here.

0:29:44.160,0:30:03.280
Okay. Alright, looks like we, we may be at 
time here, but if anybody has other questions,

0:30:03.280,0:30:07.080
feel free to follow up with us after this webinar,

0:30:07.080,0:30:11.680
and we're happy to help in any way we can. 
Uh, thank you all so much for joining!

0:30:11.680,0:30:21.160
Yeah, thank you, everyone! Have a 
great one! Enjoy the rest of your day!

```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.beefree.io/beefree-sdk/resources/videos/beefree-sdk-spotlight-session-hosted-saved-rows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
