Rendez-vous
Pour configurer un agenda de type « rendez-vous », il faut définir les plages horaires d'ouverture (par exemple, « les lundis de 9 à 17 heures et le mercredi de 14 à 18 heures ») et un ou plusieurs types de rendez-vous ayant chacun une durée définie.
- des plages horaires régulières pour, par exemple, noter une ouverture tous les premiers lundis du mois ou le deuxième et le quatrième mercredis du mois.
- une plage horaire unique à une date donnée
L'agenda va aussi vous permettre de définir un délai minimal et maximal de réservation, des rappels par SMS et/ou courriel, et des permissions en visualisation et en gestion.
Types de Rendez-vous
Les types de rendez-vous comprennent un libellé et une durée, c'est tout. Ils vont permettre d'exposer des créneaux différents et adaptés pour des personnes qui viendraient par exemple pour faire un unique passeport ou pour d'autres qui viendrait en faire 4. Lorsque vous avez défini plusieurs type de rendez-vous différents dans un agenda, il peut être utile d'afficher ces types (rendez-vous pour 1 personne, rendez-vous famille...) dans le formulaire pour permettre à l'usager de choisir le type qui l'intéresse.
Les types de rendez-vous peuvent être exposés dans un champ liste configuré pour utiliser une source de donnée. Quelques minutes après la création d'un agenda rendez-vous, une source de donnée « Nom de l'agenda - Type de rendez-vous » est en effet disponible pour cela.
Vous donnez ainsi la possibilité à l'usager de choisir parmi les type de rendez-vous existants. Vous pouvez lier ce choix au créneaux qui seront affichés dans la liste exposant les créneaux en procédant de la sorte :
- Donnez l'identifiant « meeting_type » au champ liste des types de rendez-vous,
- Configurez le champ liste exposant les créneaux pour qu'il utilise comme source de données « Nom de l'agenda - Créneaux du type form_var_meeting_type_raw »
Si vous créez un type de rendez-vous de 30 min sur une plage horaire de 8h00 à 12h00, vous aurez 8 créneaux disponibles, le dernier affiché étant celui de 11h30 (il n'y a pas de créneau disponible à 12h00 qui est l'heure de fermeture).
Guichets
Il est possible de créer plusieurs guichets, permettant ainsi de multiplier le nombre de places disponibles pour un même créneau. Pour créer un nouveau guichet, il suffit de cliquer sur « Nouveau guichet » et de choisir le nom du nouveau guichet.
Les rendez-vous seront pris sur un guichet ou l'autre, indifféremment. Dans la vue calendaire, on verra quel est le guichet concerné par le rendez-vous.
Gestion globale
Par défaut, l'agenda est créé en gestion globale des guichets, cela signifie que la configuration des plages horaires d'ouverture et des exceptions est commune à tous les guichets
Gestion unitaire
Mais il est possible de basculer en « Gestion unitaire des guichets » dans le menu burger. Chaque guichet peut alors être configuré indépendamment des autres, avec ses propres plages horaires et ses propres exceptions.
Les types de rendez-vous, les rappels, les délais de réservations et les permissions sont communs à tous les guichets. Pour mettre en place quelque chose de différent à ce niveau là, vous avez besoin d'un nouvel agenda et pas d'un nouveau guichet.
Vue calendaire des rendez-vous pris
- quotidienne pour exposer le détail des rendez-vous de la journée,
- hebdomadaire pour avoir une vue synthétique de la semaine en cours,
- mensuelle pour avoir une vue plus globale des rendez-vous pris, et voir le détail des rendez-vous au survol de la souris.
Paramétrage
Ressources
/api/agenda/SLUG-DE-LAGENDA/meetings/SLUG-DU-TYPE-DE-RDV/datetimes/?resources=MA-SALLE
Une source de donnée est automatiquement créé en même temps qu'un agenda. Il est possible de la dupliquer pour créer une source de donnée dédiée à une ressource en ajoutant le paramètre ?resources=MA-SALLE
.
?resources=MA-SALLE1,MA-SALLE2
Paramètres d'affichage
Dans l'onglet « Paramètres d'affichage » de l'écran de configuration de l'agenda, il est possible de définir ce que l'on souhaite afficher dans la vue calendaire pour chaque rendez-vous. Cela prend la forme d'un gabarit dans lequel on peut utiliser un certain nombre de variables, par exemple :
- {{ booking.label }} : l'intitulé du rendez-vous
- {{ booking.user_name }} : le nom de l'utilisateur
- {{ booking.extra_data.QUELQUECHOSE }} : une donnée transmise lors de la réservation via le paramètre extra_data
- {{booking.event.desk }} et {{booking.event.desk.slug }} : Le libellé et le slug du guichet sur lequel la réservation a eu lieu
Rappels de réservation
- Le moment du rappel (entre 1 et 5 jours avant)
- Le canal ou les canaux utilisés (SMS et/ou courriel)
- Un texte personnalisé qui vient s'ajouter au texte de base (attention à ne pas dépasser 160 caractères pour les SMS).
{{ form_url }}
).Permissions
- un rôle de visualisation pour l'accès à la vue calendaire des rendez-vous pris,
- un rôle d'édition pour le paramétrage de l'agenda (périodes horaires, types de rendez-vous, périodes d'exclusion, rappels, délais de réservation...)
Délais de réservation
- Un délai minimal réglé à 0 permet une réservation le jour même
- Un délai minimal réglé à 1 interdit les réservations sur le jour même et permet une réservation le lendemain entre 00h00 et 23h59
Exposer les créneaux horaires dans un formulaire
Les créneaux disponibles peuvent être exposés dans un champ liste configuré pour utiliser une source de donnée. Quelques minutes après la création d'un agenda rendez-vous, une source de donnée « Agendas - nom du type de rendez-vous » est en effet disponible pour chaque type de rendez-vous et il suffit de la sélectionner dans la liste des sources de données « Agendas ». Le champ liste configuré en mode « Horaires » présentera alors sous forme calendaire l'ensemble des créneaux disponibles.
L'ancienne méthode, obsolète, était de sélectionner « URL du JSON » dans la liste des sources de données, et d'indiquer :
{{agendas_url}}api/agenda/AGENDA/meetings/TYPE-DE-RDV/datetimes/
Indépendamment du délai de réservation configuré au niveau de l'agenda, on peut choisir de n'afficher les créneaux qu'à partir d'une certaine date. Le champ « Date d'alignement » disponible quand on sélectionne le mode d'affichage « Horaires » pour la liste, accepte une date pouvant provenir d'un gabarit.
Dans les « Paramètres supplémentaires » du champ liste, le réglage « Afficher les éléments désactivés » (désactivé par défaut) permet d'afficher pour information, en grisé, les créneaux déjà réservés.
Lorsque l'usager aura choisi un créneau et validé le formulaire, il est nécessaire que le workflow soit correctement configuré pour enregistrer la réservation dans l'agenda.
Changer les horaires : exceptions et calendriers d'indisponibilités
Exceptions
Les agendas définissent, de façon récurrente, les horaires d'ouverture pour une semaine type mais il est possible de définir pour chaque guichet (ou globalement pour l'agenda) des périodes pendant lesquelles les horaires normaux ne s'appliquent pas : les « exceptions ». Il peut y avoir des exceptions parce qu'un jour est férié, parce qu'une personne est absente ou simplement parce que les horaires d'ouverture changent durant une période donnée.
- manuellement en saisissant le début et la fin de chaque exception,
- ou, après avoir cliqué sur l’icône clé, en face de « Exceptions », via un fichier (.ics) qui pourra être ajouté ponctuellement ou importé automatiquement toutes les heures si ce fichier est accessible depuis une URL (nota : seules les exceptions dans les 600 jours à venir sont importées).
Périodes d'indisponibilité
Mettre des couleurs aux rendez-vous
Il est possible d'afficher des couleurs sur les créneaux réservés dans un agenda, ces couleurs sont sélectionnées automatiquement, elles ne sont pas paramétrables. Par défaut, les rendez-vous sont en bleu.
Dans l'appel de réservation, dans le corps de la requête, il faut passer le nouveau paramètre « use_color_for ». Sa valeur doit être une chaîne de caractères et entraînera l'attribution d'une couleur. Si le libellé est inconnu, une couleur de la palette est attribuée, sinon on réutilise la couleur déjà attribuée pour cette chaîne de caractères.
Il y a 8 couleurs en tout, le neuvième libellé reprend la première couleur.
Une légende s'affiche en bas des vues calendriers, elle indique la correspondance entre libellés et couleurs présentes sur la vue courante.
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à.
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.