CS:GO Surfing?

hello

i was wondering for my new game im making i wanted to make a CS:GO like surfing levels i cant get my head wrapped around how i would do it i have been fooling around with the physics and cant seen to get my player to stay on the platform and move on the platform. any scripts, videos or a simple guide would be much appreciated.

Make something like
OnCollisionStay(){
move forward
}
OnCollisionExit(){
colliding = false;
}
Update(){
if(!colliding){
slow down
}
}