MQTT Publish, then Receive JSON

Hello everyone,

I’ve had a look for answers but haven’t had any success with this so I’d appreciate a bit more help.

I’m trying to build a couple of automations related to each other like this - “A1” publishes to MQTT “tts/say”, then another automation “A2” subscribes to “tts/say” and passes it to a tts service. Other apps on my network also publish tts say events, and these work fine with A2.

The problem is that when I send my MQTT event with A1, it doesn’t have the payload_json field. Other messages on the same topic arrive with payload_json. So why isn’t it set when sending the message with A1 like this? The payload field is set fine.

A1 - action:

service: mqtt.publish
metadata: {}
  qos: 0
  retain: false
  topic: hermes/tts/say
  payload: "{\"text\":\"{{ answer.text }}\"}"
enabled: false

A2 - action:

service: tts.speak
metadata: {}
  cache: true
  message: "{{trigger.payload_json.text }}"
  media_player_entity_id: media_player.downstairs_google
  entity_id: tts.google_en_co_uk