Use Webform to email users with query parameter or argument?
Pass that value in the URL to identify the user to locate, to know where to send the mail
  Load and check the user from that passed value before showing the form
  If the user is not a certain role, serve a 404 instead of a form (only certain roles can be contacted).
  Preferably have a url like /staff/{FOO}/contact where {FOO} is my custom value.
  


If you want to make a webform integrated module, you can achieve all of the above by altering certain webform's route(s) &amp; maybe service(s).