FAQ: How do I do something automatically the first time someone uses my app?

How do I setup/register a new app user automatically?

How can I do something automatically the first time a user uses the app?

This example assumes your app requires sign-in, and that you have a table named Users, each row of which describes a single user of your app. Such a table is a common way to store information about your app users and as an alternative to User Settings to store their individual app settings. The Users table is assumed to have a column named Email to store the email address each user uses to sign-in.

The process presented here does not replace the need for signed-in users to be registered as app users in the app editor.

If your app does not require sign-in, the best you can do is automatically detect a new device, which may or may not correspond to an individual user. Without user sign-in, you might have a Devices table instead of a Users table, and should use CONTEXT("Device") rather than USEREMAIL().

Try this:

  1. Create a table or slice with exactly one row to serve as a menu for the new user.

  2. Create a Data: add a row to another table using values from this row action for the table (1) that adds a new row to your user table for the current user if the user is not currently in the user table, with an Only if this condition is true expression like: NOT(IN(USEREMAIL(), Users[Email]))

  3. Create an App: go to another view in this app action for the table (1) with a Target expression that uses a LINKTO…() function to navigate to a desirable starting view after the user addition.

  4. Create a Grouped: execute a sequence of actions action for the table that performs both actions (2) & (3).

  5. Create a deck, gallery, or table view atop the table or slice (1) for the new user start view.

  6. Set the Row Selected event action for the new user start view (5) to the Grouped action (4).

  7. Set the Starting view in UX >> Options to an expression that directs the user to the new user start view (5) if the current user is not currently in the user table, like:

    IF(
      NOT(IN(USEREMAIL(), Users[Email])),
      "new-user-start-view",
      "existing-user-start-view"
    )
    

    replacing new-user-start-view with the name of the new user start view (5), and existing-user-start-view with the name of a view existing users should see first.

  8. Use Show if in all other views to hide them if the current user is not registered, to prevent the unregistered user from bypassing registration.

Sample apps:

See also:











11 Likes

You are always so thorough @Steve. I appreciate your work a lot.

5 Likes

Nice one @Steve. Tried the “Welcome New User” sample app. Very useful.

2 Likes

Thanks @Steve… Very thorough… Great Use Case… Bookmarked… :ok_hand:

2 Likes

Boom! :facepunch:

1 Like

This will help a lot of new AppSheet users. Great job.

1 Like

Outstanding as Always @Steve :fire: :fire: :fire: :notes:

1 Like

Yo hice una aplicación que se conecta a las bases de datos de diferentes usuarios por cada movimiento que hacen me avisan si estan en linea o no

1 Like

Nice!! Great Reference!! Thanks Steve!!

1 Like