Multi step Application Funnel

I’m generating a job board, where applicants can apply for a job.

When a applicant wishes to apply, they need to go through several steps.

Step 1. Information about you
Step 2. Contract signature
Step 3. More information about you
Step 4. Thanks for your application

Currently, I have custom forms on each step, which information goes to an Airtable.

What I find quite strange is the url for each step.

The url is currently.
www.websitename.com/step-1
www.websitename.com/step-2
www.websitename.com/step-3
www.websitename.com/step-4

From what I have seen previously, with multi step applications, you usually have a url that looks like this:
www.websitename.com/application/3942478 (applicant ID).

I can then use this applicant ID in Airtable to bind all the information together. The url does not change on each step, even though the UI changes.

Anyone who has thoughts about this, is it possible today?

And just to add on this as well: in the ultimate scenario, the forms does not actually send any information to the Airtable unless the person who is filling out the application form has done all the steps.

Hi Erik,

I have a similar process on my marketplace app.

  • Users sign-in using the regular softr sign-in block and are redirected to an “onboarding page” with a tally.so form embedded.
  • I have an Airtable table where tally sends the collected information.
  • I have an Airtable automation that triggers when a new row is added to that table. It finds the corresponding user record_id in my user table and copies the info received in the form to that user’s row.

I had to pass the record_id of the user in the page URL of the “onboarding page” so the record_id can be added to the form as a hidden field.

the custom code to pass the record_id looks like this (just to be clear you paste this in softr as a custom code block on the page you want the form, instead of the code tally gives you):

<script>
    let tallyUrl = 'INSERT TALLY FORM URL HERE';

    if(window['logged_in_user'] && window['logged_in_user']['airtable_record_id']) {
        tallyUrl = tallyUrl + '&record_id=' + window['logged_in_user']['airtable_record_id'];
    }
 
    document.write('<iframe src="' + tallyUrl + '" width="100%" height="500" frameborder="0" marginheight="0" marginwidth="0" title="My Application"></iframe>');
</script>
  • I also created a user group for users that are “not onboarded”/“onboarded” where “not onboarded” people can basically only access that form on the entire app.

Doing this you can have multiple pages on your tally form but the user stays on the same page URL, and the info is not added to your airtable until the user completely finishes the application.

I hope it helps and makes sense.

Hi Erik,
A subsequent explanation of what you can do.

You can use a Softr customizable form and grab the applicant ID (the user ID I guess?) by adding a hidden field. In this hidden field you will choose loggedin user recordID

Also note that you can use a single page for all your 3 onboarding steps.
In order to do this, you can create 4 user groups.

User group 1 which would be the group where onboarding step 1 is not complete. The condition would be that the last question of the onboarding step 1 would be empty

User group 2 which has successed in passing onboarding step 1. Condition would be that the last question of onboarding step 1 is not empty and the last question of onboarding step 2 is empty.

User group 3 which has successed in passing onboarding step 2. Condition would be that the last question of onboarding step 2 is not empty and the last question of onboarding step 3 is empty.

User group 4 which has successed in passing onboarding step 3. Condition would be that the last question of onboarding step 3 is not empty.

In your onboarding page you add three forms corresponding to the three onboarding steps. You set the visibility condition of each block accoridng to the right user group. The main setup to add is to choose the option, within form 1 and 2, Action => “open page”. You will choose the current page (so it will simply reload the page).

Form 3 will be set up with an action “open page” - the page you want them to go.

Hi Matthieu and Steven,

Thanks for taking the time to elaborate. I think both of your cases are clear and straightforward.

I should have specified, in my case, I would need to create this for non-logged in users, which is where I find the challenge.

Should be even easier and faster then!

Just take them to that page with the tally form embedded. You don’t need to pass any info in the URL so no need to worry about the custom code or the Airtable automation I mentioned.

Hi! I’m new to website building - this is my first one.

Can you tell me, how can I do:

  1. I had to pass the record_id of the user in the page URL of the “onboarding page” so the record_id can be added to the form as a hidden field.”
  2. “I have an Airtable automation that triggers when a new row is added to that table. It finds the corresponding user record_id in my user table and copies the info received in the form to that user’s row.” - with one one code I managed to get users ID in the airtable, but I belive I did something and that code broke and I couldn’t fix it. But while it was working I tried to make automation as well…