Skip to content

Support multilingual conversation triggers out-of-the-box in blueprints using multiple triggers #395

@MaestroMetty

Description

@MaestroMetty

Hi everyone,
since Home Assistant currently does not natively support multilingual conversation triggers I’d like to propose an alternative approach (I’m not sure if this has already been discussed): using multiple triggers within blueprints to properly support multiple languages out of the box.

At the moment, as my understanding the workflow requires users to:

  1. Import the blueprint
  2. Set the assistant response language
  3. Manually modify the trigger phrases in their own language

With this approach, third step becomes unnecessary.

I experimented with using multiple conversation triggers, and there don’t seem to be any issues. This allows creating blueprints that:

Support multiple input languages immediately after installation
Provide responses in the selected language
Only require the user to choose the response language (and optionally the dashboard view)

This means users can invoke the same blueprint in any supported language (including their own), while receiving responses in the language they selected during setup—similar to how Amazon Alexa handles multilingual interactions.

Advanced users can still customize trigger phrases if they want, but this approach enables a much better out-of-the-box experience for users who are satisfied with the default phrases and don’t want to reconfigure them after every blueprint update.

Here's how it looks with a simple blueprint (thankyou.yaml)

blueprint:
  name: View Assist - Thank you
  description: Give thanks to Assist and receive a kind response (multilingual)
  domain: automation

  input:
    language:
      name: Response Language
      description: The language Assist should reply in
      default: en
      selector:
        language:
          languages: [en, it]

alias: VIEW ASSIST - Thank you
description: ""
mode: single

triggers:
  # Italian
  - trigger: conversation
    command:
      - "(grazie|ti ringrazio) [tanto]"
      - "(sei grande|sei fantastico)"

  # English
  - trigger: conversation
    command:
      - "(thanks|thank you) [so much]"
      - "(you're great|you're awesome)"

condition: []

action:
  - variables:
      language: !input language

      translations:
        en:
          responses:
            - "Glad I could help"
            - "My pleasure"
            - "Happy to assist"
            - "Anytime"
            - "You're too kind"
            - "Don't mention it"
        it:
          responses:
            - "Figurati"
            - "È un piacere"
            - "Felice di aiutarti"
            - "Quando vuoi"
            - "Troppo gentile"
            - "Di nulla"

      conversation_response: >
        {{ translations[language]['responses'] | random }}

  - set_conversation_response: "{{ conversation_response }}"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions