Okay, so for anyone interested:
The stuff I was looking for is called conditional slot logic:
Here’s what I did (hope it’s not gonna crash at some random point):
def required_slots(tracker: Tracker) -> List[Text]:
"""A list of required slots that the form has to fill"""
if (tracker.get_slot('email')!= None) & (tracker.get_slot('userid')!= None):
return ["email", "userid", "isconfirmed"]
else:
return ["email", "userid"]