Star Rating Reviews & Detailed Form - Single Cell - No sign-in option

Hi guys,

I created a star ratings & review workflow (EDIT: and used the same concept to create a detailed application form) that does not increase the number of rows in the app and records all submitted data to a single cell. At the moment it works like a charm for adding new reviews. It’s an alternative if you need to strictly limit your row usage and don’t mind a bit more rigidity in the review structure. Although, it is quite flexible in terms of formatting and scaling.
Note: I did not involve a user column since my app is set to “no sign-in”.
This is my first time tinkering solo so let me know what you think and if there’s an easier way to do it. :palm_tree:

Like what was demonstrated by @Robert_Petitto, I created the Stars table:

Instead of creating a Review Log table, I added a user specific column for the reviews and a user specific column for the ratings to my primary table with all my businesses (to gather new the data there).

Additional columns to feed Star Ratings:

  1. All Stars – Text Column to output current incremented star ratings

  2. Stars Combining – Template column to concatenate current star ratings with newest submission

  3. Star submissions - Number column to track the number of submissions (via increment action)

  4. Average Star Rating – Math column

  5. Round average star rating – Math column

  6. Relation to Star Display table – Relation column

  7. Star Display lookup – Lookup column

  8. Ratings Display – Template column
    image

  9. Rating ITE – If then else column to display ratings in text component
    image

Additional columns to feed Reviews:

  1. Rating timestamp – date & time column
  2. All Reviews – Text Column to output current incremented reviews (to display reviews in rich text component)
  3. Combining Reviews – Template column to concatenate current reviews with newest submission and create HTML format
    image
<p>(UserStarRating★) {timestamp}</p><p>{UserReview}</p><hr><br>{AllReviews}
  1. USC Rated? – Boolean column (triggered by submit action)

Finally a custom action is used to get current date & time, then set column values All Stars and All Reviews, increment Star submission # and set “USC Rated?” boolean column to true (to use for component visibility).

Customized Rating submission components:
image

**Important note: For the custom action, I needed to set the timestamp column value first or else it might not be placed in the review.
Then I set the All Stars and All Reviews column values as shown below:
image

**EDIT
I have also used this method to build a single row Add Business form - no sign-in option. Full record of applications exist in a single formatted cell. Easy for anyone to create!

Single Line Form Vid

Send email action added:

3 Likes

So you’re storing the log of all ratings in two basic columns: All Stars and All Reviews, is that correct?

You are delimiting them by “+” characters, and not using JSON?

1 Like

yes

Kind of but it isn’t used as a delimiter for the star values… I’m using “+” to create a Summation string then dividing by the # of submissions increment in my Av Star Rating math column.

There isn’t a conventional delimiter in this method. The “Combining Reviews” template column outputs to “All Reviews” in HMTL format and the reviews are read using Rich Text in a slide in overlay.

1 Like

Ya, I was thinking it would be clean if you store a JSON of all reviews, then use JSONata for querying out the average.

Oh ok! how is that done?

The current columns look like this. The Combining column already sees that 3 is being written. When I click submit, the user specific rating of 3 will be added to “All Stars” and the Av Star Rating will update.

For the full reviews, no math is done, only concatenating and formatting for display:

Something like this I guess.

1 Like

I’ll check it out. thanks!

1 Like

I looked at the Trebuchet videos. Very sophisticated!
@Robert_Petitto is a real gem for sharing that with us.

Correct me if I’m wrong though… I don’t think it fits my use case since I’m not working with signed-in users so that pretty much throws user editing out the window. Another hiccup is that I assume the Trebuchet method also triggers updates and since my app is a free, public community-type app (ultimately targeting 1.4 million people), I definitely wouldn’t want to risk using any integrations that would incur additional cost - I’m limited to 500 updates/month.

If the JSON integration is (update-)free, definitely let me know because it can certainly help me with the task of removing any spam reviews on the back end - currently I’d do this by manually editing the All Reviews text column.

The workflow I showed here is a basic, layman-style workaround, that involves: 10 columns and a static reference table to set up and display the average star ratings; 4 columns to add review comments; 1 custom action to bring it all together. Do you think there’s a way to condense these further in order to simplify the process (without cost, of course :grin:)?

If you’re on the latest plan and use Glide Tables, it doesn’t incur updates.

1 Like

ok great. I’ll see if I can make the workflow more sleek with JSON.
Is there a list of free integrations that I can refer to? I pretty much never click on integrations because I’m afraid of using updates.

**oh, another question. My app has slowed down in the past month. Would using JSON slow it down more?

If you’re on a new free plan, then you shouldn’t have access to anything that will consume updates.

hi @Darren_Murphy , I’m on the maker plan.

In your case with the Maker plan, if you used Google sheets, then the data changes in the sheet would incur updates. Other than that, any integration that uses updates will explicitly tell you how many updates it uses when you try to add it.

2 Likes

ok, thanks for this info!

1 Like

Well it says itself on how many updates it incurs when you add the integration, so you can try it on your own.

Without knowing much about how your app is built, I can’t offer more insights. I don’t think JSON would slow it down.

1 Like

This is my main structure:

I didn’t explicitly show the containers with minor components that reside on the homescreen.

App link: https://hiptnt.glide.page

1 Like

I actually think it’s loading nicely on my end. Which part of it is slow for you?

And thank you for taking the time to draw the structure diagram.

1 Like

did you load it on mobile or on pc? the loading time seems really slow on mobile

A bit more time on mobile, but only on the initial load (since we have a lot of images to load), but went well afterwards. Safari on iOS 17.5.1.

1 Like

Is there something I can do to reduce the time? I got tips from @Himaladin so I’m slowly replacing my png/jpeg images with webp files.
He also mentioned that too many containers on a single tab can slow the speed but i tried deleting a few and the loading time remained unchanged.