Utterence twice in form Validation

I have a form which consist of two slots(email, contact no). I take the email id first from the user and validate it against a regex expression. If it is validated correctly, then I ask for the contact number. The problem is when I valiadate email and email is valid, then it return twice utter_message like “Email validated, Kindly provide contact number”. The validation function is like;

class ValidateContactForm(FormValidationAction):

def name(self) -> Text:
    return "validate_contact_form"


def validate_email(
    self,
    slot_value: Any,
    dispatcher: CollectingDispatcher,
    tracker: Tracker,
    domain: DomainDict,
) -> Dict[Text, Any]:
    """Validate email value."""

    email_id=slot_value
    if(re.fullmatch(email_regex, email_id)):
        dispatcher.utter_message(text="Email Vaildated, Kindly provide your contact number!")
        return {"email": email_id}
        
    else:
        dispatcher.utter_message(text="Kindly provide valid email address.")
        return {"email": None}
def validate_contact(
    self,
    slot_value: Any,
    dispatcher: CollectingDispatcher,
    tracker: Tracker,
    domain: DomainDict,
) -> Dict[Text, Any]:
    """Validate contact number value."""

    contact_number= slot_value
    
    
    # validation succeeded, set the value of the "cuisine" slot to value
    
    try:
        phone_valid= carrier._is_mobile(number_type(phonenumbers.parse(contact_number)))
        if phone_valid==True:
            dispatcher.utter_message(text="Thank you for your contact details. Kindly ask what you want to know about pricing.")
            return { "contact" : contact_number}
    except:
        dispatcher.utter_message(text="Sorry, This is not a valid contact number. Provide us again with country code e.g. +XX-XXX-XXXXXXX")
        return { "contact": None }

What is the issue?

There is multipart issue i can see that i will give you correct ans wait for my next replay.

MyCenturaHealth Patient Portal

Waiting.

Try using auto_fill: false for the respective slot.

Here are the slots descirbed. slots:

email: type: text

influence_conversation: true
mappings:
- type: from_entity
  entity: email

contact:

type: text
influence_conversation: true
mappings:
- type: from_entity
  entity: contact

is_contact_applicable:

type: bool
influence_conversation: true
mappings:
- type: from_entity
  entity: is_contact_applicable

entities:

  • email
  • contact
  • is_contact_applicable