Every level has a Game Mode Override. You can find it in the World Settings. So you can make several different game modes, which get loaded per-level.
So you can make a “start level” with a game mode that checks the server, finds the character, etc. That can be the default level in your project settings, so that it gets loaded first.
For loading the next level, you can use the Game Instance. It can load the different levels based on something that happens in the current level, and it stores data even when a level gets closed. So, your “start level” game mode can find the character info and other things you need, store it in a variable in the Game Instance, and and tell the game instance “now load the gameplay level with this character info”.
Next, you can load the “gameplay level”, which has a different game mode. It can ask the Game Instance “what is the character that needs to load?”, and read the variable that your “start level” set before.