Bouton HTML dans une notification email V2

  • Bouton HTML dans une notification email V2

    Posté par Mickael sur 22 novembre 2024 à 13h33

    Hello de nouveau.

    Je me demandais s’il était possible de créer un bouton dans une notification (Outlook) qui permettrait d’une manière ou d’une autre, de modifier l’item concerné, dans une liste SP.

    Par exemple, j’aimerai donner la possibilité aux utilisateurs de déclarer une commande comme “Cloturée” après l’avoir récupérée.

    Retourner dans la même notification indiquant que la commande était “Disponible”, cliquer sur ce fameux bouton et celui-ci changerait le statut de la commande en “Cloturée” par exemple.

    Ce serait vraiment top si c’était faisable sinon, ça m’obligerait à créer un écran supplémentaire destiné uniquement à ça et je n’ai pas envi de les forcer à retourner dans l’application pour déclarer leur commande comme terminée tout en sachant pertinamment qu’ils ne le feront pas.

    Merci pour vos idées.

    • Cette discussion a été modifiée Il y a 1 semaine, 5 jours par  Mickael.
    R3dKap a répondu Il y a 1 semaine 3 Membres · 3 Réponses
  • 3 Réponses
  • Nelson

    Membre
    22 novembre 2024 à 13h42

    Hello Mickael,

    Tu peux te pencher sur les flux d’approbation.

    Voici un bon exemple : https://learn.microsoft.com/fr-fr/power-automate/modern-approvals

  • Mickael

    Membre
    22 novembre 2024 à 13h57

    Nelson,

    oui je le connais un peu pour l’utiliser dans une autre de mes appli.

    En revanche, étant donné que la notificiation dont je parle est la dernière pierre pour achever cette nouvelle application, ça m’obligerait à tout revoir à monn avis.

    Actuellement, mon flux se déclenche automatiquement lorsque le magasinier déclare la commande comme “disponible”.

    Ensuite le flux récupère les infos de l’item dans une liste SP (Titre de la commande, Service, Statut, commentaires, etc…) via Get item, ainsi que le détails des articles liés à cette commande dans une autre liste SP (Réf, Désignation, Qté, …) via Get items.

    Puis entre en jeu la création du tableau HTML (Merci Nelson)

    Condition (Staut change et valeur du changement de statut.

    Et il fini par l’envoi du mail.

    Je m’imagine mal tout reprendre en partant d’un flux d’approbation.

  • R3dKap

    Membre
    27 novembre 2024 à 13h06

    @Mickael,

    Voici la solution proposée par ChatGPT :

    Pour permettre le déclenchement d’un flux Power Automate avec un paramètre via une simple balise dans un e-mail, il faut contourner les contraintes des requêtes HTTP typiques (qui sont généralement en POST) en passant le paramètre via une URL de type GET. Voici une solution adaptée :

    <hr>
    <h3>Étape 1 : Adapter le flux pour gérer des paramètres dans l’URL</h3>

    1. Créer un flux Power Automate avec le déclencheur Quand une requête HTTP est reçue.

    2. Modifiez le schéma JSON du déclencheur pour accepter des paramètres de requête. Exemple minimal :

      <code class="language-json">{
        "type": "object",
        "additionalProperties": true
      }
      

      Ce schéma est flexible et permettra de recevoir des paramètres directement dans l’URL.

    3. Ajoutez une action pour récupérer les paramètres. Par exemple :

      • Utilisez une action Composer avec cette expression pour extraire le paramètre value :
        <code class="language-plaintext">@triggerOutputs()['queries']['value']
        
    4. Configurez les actions suivantes dans le flux selon vos besoins pour utiliser ce paramètre.

    <hr>
    <h3>Étape 2 : Sauvegarder et récupérer l’URL générée</h3>

    1. Sauvegardez le flux Power Automate.
    2. Une URL sera générée, par exemple :
      https://prod-XX.westus.logic.azure.com:443/workflows/<ID>/triggers/manual/paths/invoke
      
    3. Cette URL accepte des paramètres en ajoutant ?param=value à la fin.

    <hr>
    <h3>Étape 3 : Construire la balise HTML pour l’e-mail</h3>

    Vous pouvez construire une balise HTML pour inclure cette URL dans un e-mail. Exemple :

    <code class="language-html">/triggers/manual/paths/invoke?value=HelloWorld" target="_blank">
      Cliquez ici pour déclencher l'action
    
    
    • Remplacez <ID> par l’ID de votre flux.
    • value=HelloWorld est la valeur passée en paramètre.
    • target="_blank" permet d’ouvrir l’URL dans une nouvelle fenêtre ou onglet (utile pour des mails).

    <hr>
    <h3>Étape 4 : Tester l’intégration</h3>

    Envoyez un e-mail contenant cette balise . Lorsque le destinataire clique sur le lien :

    1. Le flux Power Automate sera déclenché.
    2. Le paramètre value sera transmis au flux.

    <hr>
    <h3>Sécurité</h3>

    Pour éviter que votre flux ne soit déclenché par des tiers non autorisés, vous pouvez :

    1. Restreindre les appels à l’URL :
      • Ajouter une vérification conditionnelle dans le flux pour vérifier un secret ou une signature unique (par exemple, un token passé en paramètre).
    2. Protéger l’accès au flux :
      • Utiliser un outil comme Azure API Management ou un middleware pour contrôler qui peut appeler cette URL.

    <hr>

    Avec cette configuration, un simple clic sur le lien HTML dans un e-mail suffira à passer le paramètre d’entrée et déclencher le flux ! 🎉

    L’idée étant que tu crées un tout petit flux avec 2 paramètre :

    • l’ID SharePoint de l’élément de liste concerné
    • la valeur de la colonne Statut de ta liste

    Ainsi on pourrait même imaginer envoyer une notification avec un bouton Html ACCEPTER ou un bouton REFUSER (ou un simple bouton CLOTURER dans ton cas).

    Tiens-nous au courant pour nous dire si çà marche… 😉

Connectez-vous pour répondre.