A gentleman going by the name of GorangeNinja, who's an active member of CS:GO surfing community made a tool to automatically turn your surfaces into trigger_teleports.
How it works:
1. You mark your faces you want to have teleports on with a certain texture (pick something that is easy and short to type)
2. Drag your .vmf onto the .exe and fill in everything you need (tele height, texture name, destination, etc. Pick the CS:S option for TF2 maps).
3. Get a generated_triggers.vmf that will contain all your triggers
4. Use paste special to copy triggers in your map
5. Use the video tutorial above because it explains everything in a better way
Then, I have slightly changed this piece of software to work with TF2 entities that are mostly painful to place manually: func_nogrenades and func_clip_vphysics. Same algorithm, less stuff to type in, just the height and texture name.
Please note that some complicated faces may be corrupted and have to be remade manually and there is a limit of 1 trigger per solid. So if you have a big cube covered with the "triggify texture", the trigger will only be placed on top of the solid.
Shoutout to Victor for sharing this in RJWeekly discord.
Download:
trigger_teleport (original):
https://github.com/GorangeNinja/Triggify/releases/download/v1.1/drag_map_onto_me.exefunc_nogrenades:
https://github.com/match-tf/Triggify/releases/download/1.1tf/nonadefy.exerollers:
https://github.com/match-tf/Triggify/releases/download/1.1tf/rollerfy.exe