How to set a slot in custom action as soon as another slot has been filled?

Hi all,

I try to mark internally if a slot_example has been filled. Therefore, I created another boolean slot is_set with a custom mapping that should be set to “yes” as soon as slot_example is not None anymore and has been filled. However, unfortunately my custom action within ValidateCustomSlotMappings does not work.

Here are my two slots:

slots:
  number:
    type: categorical
    influence_conversation: true
    mappings:
    - type: from_entity
      entity: number
      conditions:
      - active_loop: set_marker_form
        requested_slot: number
  slot_number_set:
    type: bool
    influence_conversation: true
    initial_value: no
    mappings:
    - type: custom

forms: 
  set_marker_form: 
    required_slots: 
      - number

While my code in the action file looks like this (I had changed None to “None” and tried with SlotSet and without but both did not make any difference.

class ValidateCustomSlotMappings(ValidationAction):

    async def extract_slot_number_set(
        self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict
    ) -> Dict[Text, Any]:

        value_of_number  = tracker.get_slot("number")
        if value_of_number != None:
            return [SlotSet("slot_number_set", "yes")]

Do I need to set the slot in a different class? Or is there an error in my syntax? I hope someone can help me with this! :blush: