There are a lot of variables at play. If you allow your users to access the app, without signing in, then you have to build screens that will ultimately direct them to sign in. For this you’ll use the condition of whether “email is (or is not) empty”.
Once the user has signed into the app, then we want to force them to complete onboarding.
This means we need a column to refer to see if the user has completed onboarding or not. I typically use a datetime column for this.
If the datetime column in the user profile table is empty, then they haven’t completed onboarding. If the datetime column is not empty, then they have completed onboarding. This means we need to direct them to a screen where they’ll ultimately push a button to set a date time in that column.
I typically do is use a visibility condition on all tabs that will show the tabs only if that datetime column is not empty. Then I have a separate screen for on boarding that is visible when date time column is empty.
On the screen, I include some entry components that will allow the user to fill out more information about themselves. Once these entry components have been filled out, I display a button that will write the current date and time to that date and time column. This triggers the visibility conditions of the tabs which allows the user to see the app content.
I don’t have a specific video on this, but the very first video in my gamification series uses this technique.
https://community.glideapps.com/t/gamify-glide-apps-updated-2022-11-28-episode-11-craft-items