Após atualização de automação de usuário: pode acionar de um campo obrigatório, enquanto inclui opcionalmente outros campos de perfil/personalizados se presentes?

Estou tentando usar o script Criar post com o gatilho Após atualização do usuário para um fluxo de trabalho de introdução/notificação para novos usuários, e não tenho certeza se entendi corretamente a limitação documentada ou se existe uma solução alternativa suportada.

Já li:

Meu caso de uso

Quero criar um post automatizado quando um novo usuário completar um campo de cadastro/perfil obrigatório.

Ao mesmo tempo, gostaria que esse post também incluísse alguns campos personalizados de usuário opcionais, caso o usuário os tenha preenchido, por exemplo:

  • pronomes/gênero
  • idiomas
  • confirmação de que as diretrizes da comunidade foram compreendidas

Portanto, o comportamento pretendido seria:

  • um campo obrigatório garante que a automação seja acionada
  • outros campos opcionais são incluídos no post apenas se forem preenchidos

Onde estou travado

A documentação do gatilho diz:

A automação será acionada apenas quando o usuário tiver preenchido todos os campos especificados.

E a interface também diz:

Será acionado apenas se o usuário tiver preenchido todos esses campos

Portanto, como entendo, se eu adicionar campos opcionais à configuração do gatilho para poder usar seus espaços reservados, eles deixam de ser opcionais para fins de automação, pois a automação não será acionada a menos que todos sejam preenchidos.

Isso parece criar um dilema:

  • se eu incluir os campos opcionais no gatilho, a automação pode nunca ser acionada para usuários que os pularem
  • se eu não incluí-los no gatilho, talvez não consiga usar seus espaços reservados de forma confiável no post

Minhas perguntas

  1. Estou entendendo o comportamento atual corretamente?
  2. A limitação documentada ainda é precisa hoje?
  3. Existe alguma maneira suportada de:
    • acionar a automação a partir de um campo obrigatório
    • mas ainda acessar outros campos personalizados/perfil opcionais no conteúdo do post, se presentes?
  4. Se não, existe uma solução alternativa recomendada para este caso de uso?

Comportamento ideal

O que espero é algo como:

  • acionar quando qualquer condição de gatilho obrigatória for satisfeita
  • substituir espaços reservados opcionais quando houver valores
  • deixar espaços reservados opcionais em branco, inalterados ou omitidos quando não houver valores

Mas não tenho certeza se isso já é possível e se estou apenas configurando incorretamente.

Qualquer orientação será bem-vinda.

Obrigado!

Você deve ser capaz de acionar seu campo personalizado e adicionar os campos de perfil à seção de conteúdo da postagem.

Então, digamos que o acionador seja a confirmação das diretrizes; então, no conteúdo da postagem, você poderia fazer:

Olá! Sou novo por aqui
{{#pronouns}}Meus pronomes são {{pronouns}}{{/pronouns}}
{{#languages}}Falo {{languages}}{{/languages}}

É isso que você está procurando?

É.

Então, eu deveria ter mencionado os nomes exatos dos campos. Desculpe.

  • Pronomes/gênero
  • Idiomas
  • Diretrizes da Comunidade (compreendidas)

A postagem que estou gerando será apenas em um tópico de equipe em andamento para avisar sobre novos usuários.

Não entendo como usar o formato que você sugere, nem como converter os nomes dos campos com símbolos. Estou apenas buscando uma lista. Eu faria assim:

* {{#pronomes/gênero}} {{pronomes/gênero}}{{/pronomes/gênero}}
* {{#idiomas}} {{idiomas}}{{/idiomas}}
* {{#diretrizes_da_comunidade_(compreendidas)}} {{/diretrizes_da_comunidade_(compreendidas)}}{{diretrizes_da_comunidade_(compreendidas)}}

Devo apenas remover os caracteres de símbolo dos nomes dos campos?

Eu poderia continuar experimentando, mas como esses campos são opcionais (e não tenho vontade de criar vários usuários de teste), pode levar algum tempo para testar.

Ótima pergunta. De uma olhada rápida, acho que os nomes dos campos com símbolos na verdade impediriam a automação de funcionar… Talvez precisemos de uma pequena atualização do nosso lado para removê-los nesse tipo de uso.

Você poderia remover os símbolos dos campos personalizados por enquanto? {{pronouns_or_gender}} e {{community_guidelines_undersood}} devem funcionar bem na automação sem eles.

Por enquanto, coloquei o idioma um, já que não há símbolos. Também vou testar os outros.

Você pode explicar o padrão de {{#foo}} {{/foo}}{{foo}}?

Claro, então {{foo}} é o próprio campo, e o bloco {{#foo}} {{/foo}} ao redor dele é um bloco condicional. Assim, se foo não for preenchido, nada entre {{#foo}} {{/foo}} será renderizado.

Então, se você fizesse

Meu nome é {{foo}}

e foo não estivesse definido, você veria apenas “Meu nome é” em uma postagem.

Mas se você usar

{{#foo}}Meu nome é {{foo}}{{/foo}}

e foo não estiver definido, “Meu nome é” também será excluído da postagem.

Uau! Que chique!

Então, estou me perguntando se existe alguma maneira de testar variações que faria tudo falhar? Ou seja, uma nova postagem não seria criada de forma alguma. Se não for o caso, posso apenas tentar todas as combinações possíveis dos campos com símbolos e ver o que funciona mais rapidamente.

OK, ótimas notícias.

Isso funciona:

* Idiomas: {{languages}}

No entanto, estes não:

* Pronomes: {{pronouns_gender}}
* diretrizes: {{community_guidelines_understood}} 

Como lembrete, estes são os nomes dos campos:

Pronomes/gênero
Diretrizes da Comunidade (compreendido)

Vou tentar

* Pronomes: {{pronouns/gender}}
* diretrizes: {{community_guidelines_(understood)}} 

Se isso não funcionar, talvez seja necessária uma correção no código? Eu prefiro não alterar os nomes dos campos.

OK, descobri que não funciona.

E manter os parênteses dentro quebra a automação. Recebi isso nos logs:

Mustache::Parser::SyntaxError (Tag não fechada
  Linha 12
    * guidelines: {{community_guidelines_(understood)}}
                                        ^
)

Então, preciso enviar um relatório de erro/solicitação de recurso para que os símbolos sejam removidos dos nomes dos campos?

Ah, sim, desculpe, isso ficou pouco claro. Se você remover os símbolos especiais apenas dos campos personalizados, eles funcionarão na automação… O Discourse precisa de algum ajuste para remover automaticamente os caracteres especiais, para que possam ser usados nas automações como você os configurou atualmente.