Enregistrer, modifier, annuler dans un agenda
C'est dans le workflow que l'on va pouvoir procéder à l'enregistrement dans un agenda, pour prendre, annuler ou encore déplacer une ou plusieurs réservations, grâce à une action webservice.
Enregistrer un rendez-vous ou une inscription
L'action webservice doit être configurée en POST. L'URL à utiliser dans cet appel, en considérant que le champ présentant le choix avait comme identifiant « EVENT », sera {{ form_var_
IDENTIFIANT-CHAMP-EVENT
_api_fillslot_url }}
.
L'appel webservice doit inclure les « Données à envoyer dans le corps de la requête » suivantes :
label
pour le libellé qui sera affiché dans les plages réservées dans les agendas, vue back-office (par exemple pourrait être{{ form_name }}
,user_first_name
et user_last_name pour le prénom et le nom de l'usager, si défini viendra s'afficher dans la plage réservée à la suite de label,backoffice_url
pour la demande vers laquelle créer un lien activé sur le libellé précédent (usuellement doit être{{ form_url_backoffice }}
),- user_display_label pour le libellé qui sera présenté à l'usager (par exemple « Rendez-vous passeport »). Ces deux dernières données ne sont utilisées que dans le cas de génération d'un fichier ics (cf. le tutoriel dédié).
- user_email pour l’adresse électronique de l’usager, nécessaire pour que les rappels par email fonctionnent.
- user_phone_number pour le numéro de téléphone mobile de l’usager, nécessaire pour que les rappels par SMS fonctionnent.
- form_url, optionnel, et permet de passer l'adresse de la demande, ce qui ajoutera un bouton "Modifier ou annuler le rendez-vous" dans les courriels de rappel.
- cancel_callback_url, optionnel mais à utiliser pour permettre l'annulation depuis l'agenda.
regime
comme filtre. Cela permettra d'avoir dans l'écran de pointage un bouton radio pour chaque valeur associée à la donnée regime (Végétarien, Allergique, etc.). Ces boutons radio permettent de n'afficher que les réservations concernées.L'appel ne doit pas reprendre intégralement les données de la demande (l'option « Envoyer les données du formulaire » doit rester décochée).
Attribuer un identifiant à l'appel webservice, par exemple « reservation », permettra d'utiliser les variables {{
form_workflow_data_reservation_response_*
}}
qui contiennent de nombreuses informations utiles (regardez la vue inspect d'une demande pour les voir toutes).
Annuler un rendez-vous ou une inscription
l'action webservice permettant d'annuler un enregistrement dans l'agenda se configure en POST avec :
- URL
: {{
form_workflow_data_reservation
_response_api_cancel_url }}
On peut également permettre aux agents d'annuler un rendez-vous depuis l'agenda, mais cela nécessite une configuration différente et plus poussée du workflow.
Modifier un rendez-vous ou une inscription
La modification d'un enregistrement c'est en réalité une action d'annulation de l'enregistrement existant et une action de création d'un nouvel enregistrement. Il est tout à fait possible de faire cela avec 2 actions webservices séparés en utilisant les deux appels vu précédemment.
Mais il est possible d'utiliser un seul appel pour faciliter les choses : il fera à la fois l'annulation et le nouvel enregistrement comme sur le workflow « Prise de rendez-vous » sur le catalogue. Dans notre exemple, nous avons stocké l'identifiant du rendez-vous existant dans une donnée de traitement {{ form_var_id_rdv }}, et nous exposons la possibilité de changer l'enregistrement via une action formulaire dans le workflow qui nous donne une variable {{
form_workflow_form_
IDENTIFIANT-FORMULAIRE_var_IDENTIFIANT-CHAMP-EVENT_api_fillslot_url }}
.
L'action webservice est utilisée à la fois pour faire le premier enregistrement et le modifier. Elle se configure en post comme suit :
- URL : {% firstof
form_workflow_form_
IDENTIFIANT-FORMULAIRE_var_IDENTIFIANT-CHAMP-EVENT_api_fillslot_url
form_var_IDENTIFIANT-CHAMP-EVENT_api_fillslot_url
%} - backoffice_url : {{form_url_backoffice|safe}}
- cancel_booking_id : {{form_var_id_rdv|default:""}}
- label : {{form_name|safe}}
- user_name : {{form_user_display_name|safe}}
Aller plus loin
Un paramétrage plus avancé du workflow est possible pour faire plusieurs d'inscriptions d'un coup, gérer les erreurs, annuler les rendez-vous directement depuis l'agenda ou encore gérer une liste d'attente.