James,
Make sure to associate the profile entity, containing the data James will enter, with the user entity. Then when James opens the profile data create a microflow that checks if the profile data for james already exists, if not this microflow will create the new profile record associated (1-1) to the user James (this user is available as the $currentUser in the microflow) and then opens the profile that was retrieved or created.
This will allow for the function you described above.