yes you need to extend the get_metadate function. Or at least it worked for me. This is how my get_metadata function looks like
def get_metadata(self, request: Request) -> Optional[Dict[Text, Any]]:
metadata=request.json
return metadata
in the actions you can access the metadata and informations like first_name, last_name,…
tracker.latest_message.metadata #access metadata
tracker.latest_message.metadata["metadata"]["message"]["from"]["first_name"] #get first_name