Skip a form question based on user input

Helo! :3

I have a form that asks user for information (name, city, etc) and collects that information, storing it.

In the form, I have set up a condition where - mid form - if a user opts to not share that information, the form will display a reassuring message, then skip to the next question.

The way I tried to do this is to set the slot to None in actions.py, then continue with the questions.

Here is my code:

rules.yml

   - rule: interruption in info-collect form
     condition:
       - active_loop: user_info_form
     steps:
       - intent: refuse info form
       - action: utter_skip_form_question
       - action: action_skip_form_question
       - action: user_info_form
       - active_loop: user_info_form

actions.py

from typing import Any, Text, Dict, List

from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
from rasa_sdk.events import SlotSet
#from rasa_sdk.forms import FormValidationAction

class ActionSkipInfoFormQuestion(Action):


    def name(self):
        return "action_skip_form_question"

    def run(self, dispatcher, tracker, domain):
        current_slot = tracker.get_slot('requested_slot')
        return [SlotSet(current_slot, None)]

In my rasa interactive, it’s clear that the rule runs, and it recognizes the action_skip_form_question, and sets the value of the slot to None, but then it loops at the same question again and again.

How do I combat this, and make it skip the question when told to?

edit: after reviewing this post, an idea came to mind - to set the slot value to something other than None. As such, I modified my class as follows:

 def run(self, dispatcher, tracker, domain):
        current_slot = tracker.get_slot('requested_slot')
        return [SlotSet(current_slot, 'Skipped')]

This fixes the issue, and lets me write custom messages for skipped users.