Modifiée par : Anaïs Ecuvillon

Export et envoi de fichiers ICS

Deux façons d'utiliser le format ICS avec Publik : exporter la liste des rendez-vous vers un logiciel d'agenda externe (Zimbra, Outlook, Thunderbird…), ou envoyer une invitation ICS à l'usager pour qu'il l'ajoute

Envoyer une invitation ics par courriel

Lors d’une démarche, l’usager a pris rendez-vous avec la collectivité (utilisation de l’agenda). Vous souhaitez qu’il puisse ajouter ce rendez-vous à son agenda personnel.

Export ICS vers un logiciel externe

Il est possible d'exporter la liste des rendez-vous vers un logiciel d'agenda externe (Zimbra, Outlook, Thunderbird, etc.) via une vue ICS des demandes.

Construire l'URL d'accès

Le logiciel externe accède aux rendez-vous via une URL dont le format est le suivant :

{{eservices_url}}api/forms/IDENTIFIANT-DU-FORMULAIRE/ics/IDENTIFIANT-CHAMP-DATE?api-user=IDENTIFIANT-API&api-key=CLÉ-API

L'URL ci-dessus retourne uniquement les demandes en attente. Il est possible d'inclure aussi les demandes traitées en créant une vue personnalisée, ou en ajoutant à l'url un paramètre filter=all

{{eservices_url}}api/forms/IDENTIFIANT-DU-FORMULAIRE/ics/IDENTIFIANT-CHAMP-DATE?api-user=IDENTIFIANT-API&api-key=CLÉ-API&filter=all

Il est possible de remplacer, dans l'URL, l'identifiant du champ date par celui d'un champ texte contenant une date, par exemple une donnée de traitement où le jour et l'heure du rendez-vous seraient stockés.

Obtenir un identifiant et une clé API

Pour construire l'URL ci-dessus, vous avez besoin d'un identifiant et d'une clé d'accès API Link: https://doc-publik.entrouvert.com/dev/wcs/api-webservices/authentification/#gestion-des-acces-aux-api .

Envoyer une invitation ics par courriel

Objectif : permettre à un usager d'ajouter automatiquement son rendez-vous à son agenda personnel en lui envoyant un fichier ICS en pièce jointe.

Ce tutoriel utilise des exemples simplifiés :
Pour permettre une meilleure compréhension, le formulaire et le workflow fournis contiennent le minimum nécessaire pour fonctionner. Les cas avancés ont été simplifiés et sont incomplets : le formulaire contient les informations minimales pour fonctionner, et le workflow ne gère pas le circuit complet (annulation, déplacement de

L’usager prend un rendez-vous. Le rendez-vous s’affiche dans l’agenda en back-office. Un courriel est envoyé à l’usager avec les informations du rendez-vous dans le corps du message.

Explications

Dans l’agenda de l’agent, en back-office, le créneau sera réservé avec les informations label et user_name (forme : label – user_name). Le lien sur l’intitulé est généré grâce à backoffice_url.

Modifications à apporter

  1. Le fichier ICS généré est une donnée de traitement, on crée donc une nouvelle donnée de traitement de type fichier :
    • nom : par exemple « Fichier ics »
    • type : fichier
    • identifiant : par exemple « fichierics » ({{ form_var_fichierics }})
  1. On génère l’ics à partir du statut « Enregistrement du rendez-vous ». Pour cela, on ajoute une action « webservice » :
    • Nom : génération ics

    • url : {{form_workflow_data_reservation_response_api_ics_url}}; quelques explications :

      • reservation est l’identifiant de l’appel webservice de l’agenda ; peut varier selon les workflows

      • response est le retour de l’appel au webservice (ce nom est statique et ne change jamais)

      • api_ics_url est le nom de la donnée générée par le webservice ; ce nom ne change jamais

    • Méthode : GET
    • Données à envoyer en paramètres de l'URL :

      • comment: il s’agit d’un commentaire à propos du rendez-vous. Le champ commentaire n’est pas affiché par tous les agendas, n’indiquez rien d’important dans ce champ (utilisez le champ description pour cela).

      • description: c’est la description du rendez-vous. Indiquez par exemple « rendez-vous en mairie pour votre renouvellement de passeport »

      • location: indiquer ici le lieu du rendez-vous (par exemple : Mairie de Fondcomb). Si vous indiquez une adresse précise, certains logiciels de messagerie proposent le lien vers une carte.

      • url: lien vers la démarche par exemple ({{form_url}})

      • tous les paramètres ci-dessus sont facultatifs, mais nous recommandons de renseigner au moins description et location.

    • Type de réponse : choisissez « fichier joint »
    • Identifiant : indiquez un identifiant, par exemple : « ics ». Cet identifiant sera utilisé comme nom de fichier (par exemple si l’identifiant est « fichier_ics », le fichier joint se nommera fichier_ics.ics)
    • Enregistrez dans les données de traitement : choisissez la donnée de traitement nouvellement créée, dans notre exemple « Fichier ics »
  1. Joignez l’ics généré au courriel :

    • allez dans l’action « courriel » dans le statut « rendez-vous réservé ». Sous le corps du message, « Fichiers attachés », choisissez la donnée de traitement concernée, par exemple « Fichier ics ».

  1. Testez !

    1. Remplissez la démarche avec une adresse courriel existante

    2. le courriel reçu contient l’invitation :

      invitation ics

    3. affichage du rendez-vous dans l’agenda :

      affichage du rendez-vous dans l'agenda

Le titre du rendez-vous (title, ou summary) reprend par défaut la valeur du champ « label » paramétré lors de l’appel précédent au webservice (voir section suivante pour modifier cela). Le nom de la personne qui a rendez-vous (« attendee ») utilise, lui, la valeur du champ « user_name ».

Aller plus loin : changer le titre du rendez-vous dans l’invitation et ajouter une description.

Il peut être intéressant d’avoir un intitulé différent pour l’agent en back-office et pour l’usager dans son agenda, et d'ajouter une description du rendez-vous.

Pour personnaliser le nom de l’événement pour l’usager, on utilise le paramètre « user_display_label » :

  1. dans le statut « Enregistrement du rendez-vous », allez dans la première action « webservice », nommée dans l’exemple « Réservation ».
  2. dans les données à envoyer dans le corps de la requête, ajoutez le paramètre « user_display_label » et indiquez comme valeur le nom de l’événement pour l’usager, le titre qu’il verra apparaître dans son agenda. Par exemple : « rendez-vous Mairie pour passeport »
  3. testez !

Invitation ics personnalisée

affichage dans l'agenda : titre personnalisé

Pour personnaliser la description de l’événement, on utilise le paramètre « description » :

  1. dans le statut « Enregistrement du rendez-vous », allez dans la première action « webservice », nommée dans l’exemple « Réservation ».
  2. dans les données à envoyer dans le corps de la requête, ajoutez le paramètre « description » et indiquez comme valeur une description du rendez-vous (raisons, pièces à apporter...). Par exemple : « Pensez à ramener un justificatif de domicile. »
  3. testez !

⬇️ Fichiers à télécharger

Conclusion

<><p>T&eacute;l&eacute;chargez le workflow modifi&eacute;&nbsp;: <a href="/media/uploads/2019/08/05/howto_01-ics_workflow_final.wcs">howto_01-ics_workflow_final.wcs</a></p>>

Vous pouvez retrouver la documentation complète de l'agenda ici. Link: http://doc-publik.entrouvert.com/admin-fonctionnel/prises-de-rendez-vous/

Visualisation des rendez-vous et export .ics

Envoyer le fichier .ics d'un rendez-vous par courriel

Il est possible de joindre à un courriel un fichier .ics d'un rendez-vous. La personne recevant ce courriel dans son logiciel de messagerie n'aura qu'à cliquer sur le fichier .ics pour mettre le rendez-vous dans son agenda. Pour suivre le tutoriel, c'est par là Link: https://doc-publik.entrouvert.com/admin-fonctionnel/les-tutos/envoyer-une-invitation-ics-par-courriel/ .

Fichier .ics de la liste des rendez-vous

Publik offre une vue sur les agendas directement depuis son backoffice, il suffit d'attribuer les droits de visualisation sur l'agenda concerné aux rôles autorisés. Les personnes autorisées disposeront alors d'une vue calendaire des rendez-vous, vue quotidienne ou mensuelle. C'est la méthode recommandée.

Alternativement, il est possible d'exporter la liste des rendez-vous vers un logiciel d'agenda type Zimbra, Outlook, Thunderbird, etc., à travers une vue « ics » des demandes.

Ces logiciels accéderont à une adresse du type :

{{eservices_url}}api/forms/IDENTIFIANT-DU-FORMULAIRE/ics/IDENTIFIANT-CHAMP-DATE?api-user=IDENTIFIANT-API&api-key=CLÉ-API

L'URL ci-dessus retourne uniquement les demandes en attente. Il est possible d'inclure aussi les demandes traitées en créant une vue personnalisée, ou en ajoutant à l'url un paramètre filter=all

{{eservices_url}}api/forms/IDENTIFIANT-DU-FORMULAIRE/ics/IDENTIFIANT-CHAMP-DATE?api-user=IDENTIFIANT-API&api-key=CLÉ-API&filter=all

Il est donc nécessaire de disposer d'une clé et d'un identifiant API pour construire l'adresse en question. Pour cela, vous devez créer un rôle dédié, par exemple « Accès API » (qui ne contiendra aucun utilisateur).
Puis, dans l'entrée Paramètres du menu latéral, vous pourrez configurer un nouvel accès aux API en indiquant le rôle « Accès API ». Vous avez désormais un identifiant et une clé d'accès.

Mais il faut encore que ce rôle ait accès à la démarche, pour cela il doit être associé à une fonction dans le workflow (tous les rôles associés à une fonction ont alors accès à la démarche concernée). Dans le workflow, il faut ajouter une fonction « Accès ics » (par exemple), et l'associer au rôle « Accès API » (dans le formulaire ou dans le workflow).

Il est possible de remplacer, dans l'URL, l'identifiant du champ date par celui d'un champ texte contenant une date, par exemple une donnée de traitement où le jour et l'heure du rendez-vous seraient stockés.