stato di presenza: In programma / Interessato / Non in programma / Rimuovi presenza
ID del topic
attore opzionale
Quindi il tuo caso d’uso originale può essere costruito come:
Post creato → Se primo post → Evento / Imposta presenza
utilizzando l’autore dell’evento come partecipante e impostandolo su In programma.
Ho testato esattamente questo pattern localmente nell’interfaccia grafica di Workflows, impilato su #42932, e ho confermato che l’utente viene automaticamente registrato come In programma all’evento.
La PR è attualmente solo una bozza perché dipende da #42932. Non appena #42932 verrà unito, la riporterò su main, il che lascerà solo la differenza relativa alla presenza.
Esiste un trigger/evento che viene attivato quando viene creata una NUOVA tag?
Quando un utente crea una nuova tag, esiste un modo per aggiungerla automaticamente a un gruppo di tag specifico? In caso contrario, qual è l’approccio consigliato?
C’è “Topic Tag Changed”. Potresti quindi chiamare l’API di Discourse per vedere quante volte il tag viene utilizzato. Se ne viene fatto uso una sola volta / se è presente in quel topic specifico, sai che il tag è nuovo.
In alternativa, e forse più semplicemente: potresti configurare un webhook per “tag is created” e indirizzarlo a un trigger di webhook del workflow.
Caso d’uso: ho un gruppo di tag denominato “artista”. Poiché nuovi artisti esordiscono costantemente, continuano a comparire nuovi tag quando gli utenti li creano. Desidero che questi nuovi vengano aggiunti automaticamente al gruppo di tag “artista”, anziché doverli aggiungere manualmente. Esiste un buon modo per ottenere questo risultato con Workflows?
È esattamente ciò che gestisce il passaggio AI. L’agente AI determina innanzitutto se un nuovo tag appartiene a uno dei gruppi definiti (artista / membro / regione / tipo di evento / tipo di release); se non corrisponde a nessuno, viene ignorato e non viene mai inserito in un gruppo. In questo modo i tag casuali vengono filtrati e solo i tag correttamente classificati vengono aggiunti automaticamente a un gruppo di tag.
Voglio assegnare un tag a un argomento se viene creato con un testo specifico. Esiste un modo per usare le minuscole per {{ $JSON.topic.title }} in modo che questa condizione risulti vera per “pub run”, “Pub Run” e “pUb rUn”?
Sembra che si tratti del sistema di espressioni JavaScript di Discourse Workflows, valutato lato server in un ambiente sandbox, anziché di un linguaggio di template separato come Liquid o Handlebars.
Quindi, ad esempio:
={{ $json.topic.title.toLowerCase() }}
funziona perché il contenuto di {{ ... }} viene valutato come JavaScript e toLowerCase() è il normale metodo stringa di JavaScript.
L’implementazione si trova in plugins/discourse-workflows/lib/discourse_workflows/expression_resolver.rb; espone globali specifiche per i workflow come $json, $input, $itemIndex, $trigger, $execution e $().
La sintassi e i concetti sono piuttosto simili a quelli di n8n. In realtà, esiste un riferimento esplicito a n8n altrove nel sorgente di Workflows:
il commit oneboxed di seguito ha aggiunto il comportamento di combinazione del nodo merge e include un test descritto come:
defaults clash handling to add_suffix (matches n8n position combine)
Quindi ci sono prove che alcune parti di Workflows corrispondano deliberatamente al comportamento di n8n, sebbene non sia riuscito a trovare nulla che affermi esplicitamente che il linguaggio di espressione stesso sia copiato o basato su n8n. Lo descriverei quindi come espressioni JavaScript sandbox fornite da Discourse Workflows, con alcune convenzioni simili a quelle di n8n.
Ho notato che il passaggio “AI Agent” richiede che l’agente abbia la funzione “Bot” abilitata. Perché è necessario? Potrebbe essere documentato da qualche parte? Ho speso alcuni minuti a cercare di capire perché non riuscivo a selezionare un particolare agente nel menu a tendina