It is a good practice to have the task URL in the custom email notifications, custom email notifications are generally sent using attached timer events which are not repeatable and start after task is created/assigned
The URL patters is
http://{serverhostname}:{server port}/teamworks/process.lsw?zWorkflowState=1&zTaskId=xxxx
To get the task id from the task you can use the following call in the post assignment of the timer event since the timer is attached to the task the current step is the task
tw.local.taskID = tw.system.step.task.id