Workflows Discourse

Un modèle de Community Workflow est-il prévu ? Je pense qu’il pourrait apporter beaucoup de valeur à cette implémentation fantastique.

Je ne connais pas les limitations techniques, mais je pense que Discourse Discovery pourrait activer/désactiver cette fonctionnalité et réutiliser la connexion à l’écosystème Discourse.

C’est sur le nœud du sujet, vous avez l’opération de remontée de sujet (bump topic).

Ok, je ne l’avais pas vu, probablement parce que je devais mettre à jour, merci.

[Edit] Tout est en ordre après la mise à jour, merci beaucoup pour ce relancement manuel :grinning_face:

1 « J'aime »

Salut @j.jaffeux, lorsque j’utilise le déclencheur « nouvel utilisateur », je souhaite que l’action suivante ne se déclenche que si le compte de ce nouvel utilisateur a été activé (pour exclure les bots qui enregistrent de nouveaux utilisateurs). Dois-je utiliser le statut « approuvé » comme filtre à cet effet ? Merci.

Et si mon hypothèse ci-dessus est correcte, comment dois-je spécifier la valeur TRUE ? En « True » ou en « T » ? Merci ?

Ça a bien fonctionné, après tout ! Je suis très content de cette fonctionnalité.

3 « J'aime »

Au lieu de faire un glisser-déposer de user.approved, restez en mode simple et sélectionnez user.approved dans la liste. Vous devriez alors voir ceci :

Est-il possible d’avoir

Déclencheur : un utilisateur avec le statut « staged » répond dans une catégorie particulière

Action : le sujet auquel l’utilisateur « staged » a répondu est automatiquement clôturé — de la même manière que

Non, il nous manque quelques détails à ce sujet.

Merci — voulez-vous dire qu’il manque encore quelques détails ou points de données dans Workflows pour prendre en charge ce cas d’usage ?

1 « J'aime »

Merci, j’ai fait cela, mais le filtre user.approved ne semble pas filtrer les utilisateurs qui se sont inscrits et ont confirmé leur compte.

Salut, qu’est-ce que les « données épinglées d’exemple » ?

1 « J'aime »

J’essaie de mettre quelque chose en place depuis des heures avec les workflows. Je n’arrive pas à faire fonctionner l’IA sans qu’elle ne renvoie une erreur. Je vais peut-être changer de modèle d’IA et réessayer.

Ce que je cherche à accomplir ressemble à ceci (et c’est très lié à la discussion récente !) :

  1. Le planificateur s’exécute une fois par jour.
  2. Rechercher les publications qui n’ont reçu aucune réponse depuis 30 à 365 jours. (Explorateur de données)
  3. Résumer les sujets s’ils ne sont pas déjà résumés + stocker le résumé dans un tableau de données.
  4. Fournir le résumé et la dernière publication à l’IA, et demander à l’IA s’il y a un problème non résolu ou quelque chose qui nécessite un suivi.
  5. Stocker l’avis de l’IA, à savoir s’il faut publier un message de suivi ou non. (Tableau de données)
  6. Sélectionner parmi les publications traitées par l’IA celle à laquelle répondre.
  7. Répondre via un bot en demandant un suivi, une mise à jour ou en demandant si le problème a été résolu.

En gros, j’essaie de créer un workflow qui vise à relancer aléatoirement l’engagement sur des publications qui sont en veille, mais qui pourraient nécessiter un message de suivi.

Quelqu’un a-t-il des idées ? J’arrive à récupérer les publications avec l’explorateur de données et à obtenir un résumé de l’IA. Je n’arrive pas à faire fonctionner les tableaux de données et je n’ai pas atteint l’étape de la publication automatique. Mais j’en ai quand même pas mal approché.

Mon idée était de le découper en plusieurs workflows :

  • Un workflow récupère les anciennes publications et rédige le résumé. (stockage dans un tableau de données)
  • Un autre workflow examine le résumé et la dernière publication pour voir s’il faut publier un message de suivi. (stockage dans un tableau de données)
  • Un autre workflow consulte le tableau de données, sélectionne la publication qui doit recevoir un message, détermine le type de réponse à apporter et publie la réponse avec un compte bot.

Je ne suis pas sûr d’avoir bien compris comment l’utiliser, mais ce plugin a un énorme potentiel !

1 « J'aime »

c’est dans la sortie que vous pouvez définir vous-même les données JSON

1 « J'aime »

@j.jaffeux Suite à ma question ci-dessus, j’ai ouvert une PR qui ajoute une action « Événement » aux Workflows :

Elle ajoute :

  • Événement → Fermer l’événement
  • Événement → Ouvrir l’événement

L’action prend un ID de sujet, résout l’événement à partir du premier message du sujet et met à jour l’événement via le chemin de synchronisation normal d’édition de message/Événement.

J’ai testé la direction initiale du cas d’utilisation avec :

Message créé → Événement / Fermer l’événement

en utilisant Input → topic.id.

Une réponse au sujet de l’événement ferme alors l’événement tout en laissant le sujet lui-même ouvert, et le changement apparaît en direct dans l’interface.

La PR inclut une couverture unitaire/intégration, et la suite complète discourse-events a réussi avec 1124 exemples / 0 échecs.

Cela traite le côté « action Événement » du cas d’utilisation mentionné ci-dessus. Les conditions utilisateur/catégorie/origine par e-mail peuvent ensuite être gérées séparément par le déclencheur/les conditions du workflow.

2 « J'aime »

Des conseils pour l’auto-étiquetage des réponses d’un agent IA ? J’essaie le workflow suivant, mais il ne détecte pas les réponses de l’utilisateur agent.

Au passage, il s’agit d’une étiquette cachée, mais l’agent est dans un groupe qui a accès à celle-ci.

{
  "id": "6",
  "name": "My workflow",
  "nodes": [
    {
      "id": "a8490306-e7e7-42e4-b909-851f3c4fbcba",
      "type": "trigger:topic_created",
      "typeVersion": "1.0",
      "name": "When a new personal message is created",
      "parameters": {
        "topic_type": "personal_messages"
      },
      "credentials": {},
      "webhookId": null,
      "position": {
        "x": 178.6210678807947,
        "y": -18.94519916824343
      }
    },
    {
      "id": "a80813a3-35cf-414e-98b8-9892f3eab496",
      "type": "condition:filter",
      "typeVersion": "1.0",
      "name": "Keep PMs from Navigator",
      "parameters": {
        "combinator": "and",
        "conditions": [
          {
            "id": "sender_is_navigator",
            "operator": {
              "type": "string",
              "operation": "equals",
              "singleValue": false
            },
            "leftValue": "={{ $json.post.username }}",
            "rightValue": "Navigator"
          }
        ]
      },
      "credentials": {},
      "webhookId": null,
      "position": {
        "x": 290.515625,
        "y": -18.281249999999993
      },
      "notes": "",
      "notesInFlow": false,
      "alwaysOutputData": false
    },
    {
      "id": "acfcf305-1a04-4d2e-876c-48b015dc038c",
      "type": "action:topic_tags",
      "typeVersion": "1.0",
      "name": "Add onboarding-initiated tag",
      "parameters": {
        "topic_id": "={{ $json.topic.id }}",
        "operation": "add",
        "tag_names": "onboarding-initiated",
        "actor_username": "Navigator"
      },
      "credentials": {},
      "webhookId": null,
      "position": {
        "x": 513.1770833333333,
        "y": -27.32031249999998
      },
      "notes": "",
      "notesInFlow": false,
      "alwaysOutputData": false
    }
  ],
  "connections": {
    "Keep PMs from Navigator": {
      "main": [
        [
          {
            "node": "Add onboarding-initiated tag",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When a new personal message is created": {
      "main": [
        [
          {
            "node": "Keep PMs from Navigator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {},
  "staticData": {},
  "pinData": {},
  "versionId": "6271bac1-9349-4594-8bc5-2b1aeb154fcc",
  "activeVersionId": "6271bac1-9349-4594-8bc5-2b1aeb154fcc",
  "versionCounter": 31
}
1 « J'aime »

J’aimerais beaucoup une action automatique lors de la création d’un événement : que l’auteur y soit directement inscrit par défaut. Cela permettrait de s’adapter à tous les cas de figure, et particulièrement pour mon usage !:grin:

2 « J'aime »

nous avons un nœud pour l’événement qui a lieu la semaine prochaine

4 « J'aime »

Oui, je pense que cela pourrait s’intégrer naturellement dans la même zone Événement des Workflows.

Dans ma PR actuelle, FEATURE: Add event actions to workflows - Pull Request #42932 - discourse/discourse - GitHub , j’ai ajouté une section Événement dans le créateur de workflow. Dans la capture d’écran de la description de la PR, l’ouverture de ce menu Événement offre actuellement deux opérations :

  • Fermer l’événement
  • Ouvrir l’événement

Ce sont délibérément les seules deux opérations dans cette PR, car c’est le périmètre de la modification que je souhaite faire relire.

Votre cas d’utilisation pourrait potentiellement ajouter une autre opération à ce même menu Événement, quelque chose comme Définir la présence / Ajouter un participant. Un workflow pourrait alors utiliser l’auteur de l’événement comme utilisateur et définir sa présence sur Présent lors de la création de l’événement.

Je pense qu’il serait mieux d’implémenter cela de manière générique — en choisissant l’utilisateur et l’état de présence — plutôt que d’avoir une action spécifique uniquement pour « enregistrer automatiquement l’auteur ».

Je vais m’en occuper en tant que suivi, probablement dans une PR séparée afin que la PR actuelle sur l’ouverture/fermeture d’événement reste concentrée.

1 « J'aime »

Je n’avais pas vu ta réponse avant d’avoir posté la mienne ci-dessus.

Comme tu as mentionné qu’un nœud Event arrivait la semaine prochaine, je vais également tester mon PR actuel localement contre les autres branches de PR ouvertes de discourse-events / Workflows qui touchent la même zone, plutôt que de compter uniquement sur CI contre main.

Si je trouve un chevauchement ou un conflit réel, je le signalerai sur le PR GitHub concerné plutôt que d’encombrer ce sujet.

1 « J'aime »

Je pense que cela est dû au fait que cet utilisateur doit être présent dans pm_tags_allowed_for_groups. On pourrait dire que le message d’erreur pourrait être plus clair… Je vais l’améliorer.

EDIT : cela sera corrigé par FIX: provides a better error when user can't tag PM - Pull Request #43019 - discourse/discourse - GitHub

5 « J'aime »