It would be great if we could use or detect URL params to hide some custom fields.
At the moment, the workaround I have around this, is to create a field such as "hide_email", and then pass the param with a pseudo-boolean value such as "true" or "false" (pseudo because is a string meant to represent a boolean, and not a true boolean), and fill the "hide_email" field with such string value.
Then, I go to the show/hide options on the form, and check if the value of "hide_email" is equal to "true". If that's the case, then I do hide the "email" field, using the rules on the CRM.
I think this is an overkill, and I think this is possible to include as a future feature in the forms.