You can use an onboarding app in combination with the Portal_client_id feature to collect information from your users before they sign up and then pre-populate their account. That way when your new user signs in for the first time, their data is waiting for them and ready to use.
To do this, start by creating the onboarding app that you want to use to collect the information for pre-populating your user's portal account. For example, say you were building a portal for small business clients, so you created an app like this to onboard the client:
On the final block of the onboarding app, you would then need to send that data into a database so it can be retrieved when your client signs up for an account:
Note that we used the session_id variable as the Key for the row that's being created in the database. You don't have to use session_id for that value but you need to make sure whatever value you use is unique to that specific user (for example, an EIN or a complicated, joined text string like Company_Name + Company_Incorporation_Date + Company_Incorporation_Date). Since session_id generates a unique text string for each session, it's a good option in scenarios like this.
Now that you've created a new row in your database and stored your user's data there, you need some way of retrieving that data for that specific user (and displaying it as discussed in Use Case 1 above) after they create a new account.
One way to do this is to first add a Button (via the Element dropdown) to your final block that links directly to the sign up page of your portal. (Your sign up page is the webpage users use to automatically create new accounts when you have auto-signups enabled.)
Next you need to add what's called a "URL parameter" to the end of your sign up page url in order to define the user's Portal_client_id. A URL parameter consists of a variable and value pair with an equal sign separating them.
For example, if your sign up webpage URL looked like this https://demo.portal.law/#/sign_up/demo-portal, you'd need to first add a ? to denote the start of one or more URL parameters and then you'd need to add the variable Portal_client_id plus an = plus the value you want that variable set to.
In this example, that value is session_id so we would use the Add Variable button to add session_id to the end of the URL. The final result is this:
This means that when the user uses that button to advance to the sign up page, the sign up page will automatically set that new user's Portal_client_id to the same value as session_id.
Once the user signs into their new account, you can then retrieve the data you stored about them, for example, by having the apps they run use Portal_client_id variable to index into the table you stored the data in. You could also selectively show them rows from a Data Connection (as discussed in detail in the Use Case 1 section above) by configuring the Data Connection filter to filter on the Portal_client_id like so: