# Force Onboarding screen after sign-in

**URL:** <https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807>\
**Category:** Ask for Help\
**Created:** [December 18, 2023, 1:44pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807 "2023-12-18T13:44:21Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lucas\_R](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lucas_r/32/61017_2.png) [@Lucas\_R](https://community.glideapps.com/u/Lucas_R)\
**Post date:** [December 18, 2023, 1:44pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/1 "2023-12-18T13:44:21Z")

</div>

Hey everyone,

I know this question was asked before but I couldn’t find an answer to my proper case.

I have an app with optional sign in.  
Non-signed in user has access to a tab with various element, and if he signs in, he has access to the same tab but with more options.  
If user wants to create an account, I want that the first screen he see to be a profil set up screen to add his personal information.

Difficulty: The tab for signed in user and non-signed in user must be the same. I don’t want to create two tabs with different visibility set up.

in short:  
Non-signed in user: access to all with restricted options  
Signed in user who didn’t do onboarding: Access only to onboarding screen  
Signed in user who did onboard: Access to all with all options

Any Idea how I can do that?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [December 18, 2023, 2:32pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/2 "2023-12-18T14:32:20Z")

</div>

If you want to do it all on a single screen, organise your components into containers and apply visibility conditions to the containers.

---

<div class="post-metadata">

**Author:** ![Lucas\_R](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lucas_r/32/61017_2.png) [@Lucas\_R](https://community.glideapps.com/u/Lucas_R)\
**Post date:** [December 18, 2023, 3:34pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/3 "2023-12-18T15:34:44Z")

</div>

I don’t necessarily want to do all of this one a single screen, the set up screen can be another tab but yeah having all on the same is possible too.  
However, it doesn’t answer to my question at all.

Basically my issue doesn’t come from if I should apply visibility condition… it comes from WHAT visibility conditions I should apply precisely.

In my logic the condition should apply to a non-signed in user and a signed in user who did onboard but not to a signed in user who didn’t onboard.

This condition sounds a little bit tricky to me, that’s why I asked for help.

---

<div class="post-metadata">

**Author:** ![Lucas\_Pires](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lucas_pires/32/64863_2.png) [@Lucas\_Pires](https://community.glideapps.com/u/Lucas_Pires)\
**Post date:** [December 18, 2023, 4:27pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/4 "2023-12-18T16:27:42Z")

</div>

Hey Lucas! Take a look at this 👇

> [@wave How to create Onboarding screens Flow](https://community.glideapps.com/t/how-to-create-onboarding-screens-flow/26404/17):
>
> Hey guys! wave Pretty soon, I’ll be launching a new video and app template for all of you to create an amazing onboarding expererience in your app! Wait for it!

I’m just waiting for approval from Glide 🕐

---

<div class="post-metadata">

**Author:** ![nathanaelb](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nathanaelb/32/43079_2.png) [@nathanaelb](https://community.glideapps.com/u/nathanaelb)\
**Post date:** [December 18, 2023, 4:31pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/5 "2023-12-18T16:31:15Z")

</div>

> [@Lucas\_R](#):
>
> WHAT visibility conditions I should apply precisely

Add an OnboardedTimestamp basic date column in the the Users table. When a user finishes the onboarding, the click on the final button will write the ‘Now’ timestamp to that column and perform a ‘Go to tab’ action back to a tab of your choosing.

The way I understand it, you have 3 types of users and therefore 3 visibility conditions.

Set the access configuration of the application to ‘Public + Optional’.

1. The users is a visitor (no sign-in, no onboarding done yet):  
No visibility condition needed

2. The users is a signed-in user and has not yet done the onboarding:  
Show component when email is not empty AND OnboardedTimestamp is empty.

3. The users is a signed-in user and has finalized onboarding (by clicking on the last button of the flow):  
Show component when email is not empty AND OnboardedTimestamp is not empty.

These visibility conditions can be applied to components or tabs.

---

<div class="post-metadata">

**Author:** ![Lucas\_R](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lucas_r/32/61017_2.png) [@Lucas\_R](https://community.glideapps.com/u/Lucas_R)\
**Post date:** [December 18, 2023, 5:52pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/6 "2023-12-18T17:52:21Z")

</div>

Hey, your proposal is interesting, sadly a condition is also applied to guests (non signed in). Ex.: show only if X is not empty will also hide it for guests.

The issue I’m talking about is the complete user flow.

User is a guest, then user register. At this point I need that the freshly arrived user could only see a setup screen. The rest of the tabs will be unlocked once he finish the registration.

At the moment, the only way I found to execute this is to have a copy of the tab. One made for guest, one made for logged in users. My aim is to change strategy and have only one tab for both logged and guest.

The condition must hide everything but the onboarding screen (or element) to a logged in non onboarded user while displaying to guest and a logged the principal tabs (only some options changes)

---

<div class="post-metadata">

**Author:** ![nathanaelb](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nathanaelb/32/43079_2.png) [@nathanaelb](https://community.glideapps.com/u/nathanaelb)\
**Post date:** [December 18, 2023, 6:14pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/7 "2023-12-18T18:14:10Z")

</div>

> [@Lucas\_R](#):
>
> At the moment, the only way I found to execute this is to have a copy of the tab. One made for guest, one made for logged in users. My aim is to change strategy and have only one tab for both logged and guest.
> 
> The condition must hide everything but the onboarding screen (or element) to a logged in non onboarded user while displaying to guest and a logged the principal tabs (only some options changes)

I don’t think it really matters if you apply conditions at the component level or tab level. @Darren_Murphy suggested you apply conditions to containers, which I thinks makes a lot of sense, since this would apply visibility conditions to a group of components.

I still think what I suggested is the correct direction: 3 types of users, 3 visibility conditions. Have you tried to implement to see if it works?

---

<div class="post-metadata">

**Author:** ![Lucas\_R](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lucas_r/32/61017_2.png) [@Lucas\_R](https://community.glideapps.com/u/Lucas_R)\
**Post date:** [December 18, 2023, 6:55pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/8 "2023-12-18T18:55:12Z")

</div>

It won’t, the central element which is a list, should be displayed to both guest and logged in user with onboard completed. So both of users must share the same visibility conditions. Now the problem is that it’s difficult to find a visibility condition that both can share.

Your solution would work if having a copy of an element with a different visibility setting would be possible. But that’s precisely what I need to avoid.  
I’m already using containers visibility for specific options that are only available to logged in users.

Maybe my explanations aren’t clear…

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [December 18, 2023, 7:05pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/9 "2023-12-18T19:05:28Z")

</div>

Why do you need to put a condition on something that doesn’t need a condition and is visible to everyone?

---

<div class="post-metadata">

**Author:** ![Lucas\_R](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lucas_r/32/61017_2.png) [@Lucas\_R](https://community.glideapps.com/u/Lucas_R)\
**Post date:** [December 18, 2023, 7:17pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/10 "2023-12-18T19:17:37Z")

</div>

It shouldn’t be visible to logged in users who didn’t onboard.

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [December 18, 2023, 7:22pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/11 "2023-12-18T19:22:32Z")

</div>

Then it would be a condition with an OR.

Show when onboarding complete OR user profile email is empty.

---

<div class="post-metadata">

**Author:** ![Lucas\_R](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lucas_r/32/61017_2.png) [@Lucas\_R](https://community.glideapps.com/u/Lucas_R)\
**Post date:** [December 18, 2023, 7:28pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/12 "2023-12-18T19:28:45Z")

</div>

I’ll check it up

---

<div class="post-metadata">

**Author:** ![Lucas\_Pires](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lucas_pires/32/64863_2.png) [@Lucas\_Pires](https://community.glideapps.com/u/Lucas_Pires)\
**Post date:** [December 19, 2023, 9:52pm UTC](https://community.glideapps.com/t/force-onboarding-screen-after-sign-in/68807/13 "2023-12-19T21:52:16Z")

</div>

@Lucas_R check it out!

> [@busts\_in\_silhouette Users Onboarding template](https://community.glideapps.com/t/new-users-onboarding-template/68857):
>
> Hey gliders! saluting_face hope you’re doing good! Many people asked me for it and here it is! Improve your users’ experience with the new [User Onboarding template](https://www.glideapps.com/templates/user-onboarding-gk)! [[User Onboarding · Template Demo] ](https://www.youtube.com/watch?v=Rg0S43NUna8) The [User Onboarding template](https://www.glideapps.com/templates/user-onboarding-gk) is a complete solution for creating a personalized onboarding process for your users. With it, you can offer 3 different onboarding options: Welcome video: A custom video that introduces your app and its key features. Simple steps: A step-by-step onboar…
