Override Slots via Button Payload

Hi, I’m wondering wether it is possible to override an already set Slot via the Button-Payload.

I can successfully set a Slot by clicking a button IF it isn’t set before with:

button generation:

def create_buttons(intent: str, entity_type: str, entities: List[Dict[str, Any]]) -> str:
    buttons = []
    for entity in entities:
        payload = {entity_type: [entity["value"]]}
        buttons.append(
            {
                "title":    f"{entity['value']}",
                "payload":  f"/{intent}" + json.dumps(payload, ensure_ascii=False)
                # "payload":  f'/{intent}{{"{entity_type}":"{json.dumps(entity)}"}}'
            }
        )
    return buttons

action:

...
dispatcher.utter_message(buttons=buttons)
return events

domain:

store_entities_as_slots: false
...
slots:
    time:
        type: any
    customer:
        type: any
    worker:
        type: any

Is this intended behaviour or am I a missing a possible configuration option?

When the bot finds a new entity that can go in a slot, it will replace the old one if you mention this in your domain:

config:
  store_entities_as_slots: true

Also, in the slots section, you can set auto_fill to true. For example:

slots:
  city_name:
    type: text
    initial_value: null
    auto_fill: true
    influence_conversation: false

Thanks for the reply @ChrisRahme

I’ve looked at those options before, but they do not satisfy my requirements, as I don’t want to autofill the slots when the corresponding entity is detected.

I’m looking for a way to only force overriding Slots via the payload of a clicked button without any side effects, if such an option currently exists.