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'ajouteEnvoyer une invitation ics par courriel
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 :Situation de départ
Téléchargez les objets nécessaires :
Agenda : howto_01-ics_agenda.json Link: /media/uploads/2019/08/05/howto_01-ics_agenda.jsonFormulaire : howto_01-ics_formulaire.wcs Link: /media/uploads/2019/08/05/howto_01-ics_formulaire.wcsWorkflow : howto_01-ics_workflow.wcs Link: /media/uploads/2019/08/05/howto_01-ics_workflow.wcs
État initial
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
- 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 }})
- 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 »
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 ».
Testez !
Remplissez la démarche avec une adresse courriel existante
- le courriel reçu contient l’invitation :

- affichage du rendez-vous dans l’agenda :

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 » :
- dans le statut « Enregistrement du rendez-vous », allez dans la première action « webservice », nommée dans l’exemple « Réservation ».
- 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 »
- testez !


Pour personnaliser la description de l’événement, on utilise le paramètre « description » :
- dans le statut « Enregistrement du rendez-vous », allez dans la première action « webservice », nommée dans l’exemple « Réservation ».
- 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. »
- testez !
⬇️ Fichiers à télécharger
Conclusion
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.