I recently figured out how to launch applications in sway on login (or config reload) in specific workspaces. I tried doing this a year or so ago using procedural calls to swaymsg with manual changes to workspaces but it failed due to the delay in launching apps (the workspace would change too quickly). However, I recently figured out how to actually do it by combining swaymsg with assign.
First, you'll want to get the app_id, class or title of window you want to launch. Then you'll want to add it to the your sway config file.
The syntax looks like: