Dans la plupart des cas, il n'est pas nécessaire d'utiliser directement l'API car vous diposez déjà d'un module de prise de rendez-vous complet intégrable en iframe ou widget dans votre site internet. Ce module est personnalisable (couleurs, logo, processus de prise de rendez-vous) pour correspondre à l'identité de votre site Internet.
Si toutefois votre besoin d'intégration est plus spécifique et que vous ne pouvez pas utiliser notre module de prise de rendez-vous intégré, vous pouvez vous familiariser avec les concepts de la rubrique API REST et utiliser l'API décrite dans ce document pour construire votre propre processus de prise de rendez-vous.
Une fois que vous maîtrisez les principes de notre API, établissez votre propre workflow de prise de rendez-vous.
Important : le processus de prise de RDV est personnalisé pour chaque groupe. Les interfaces permettant la prise de RDV doivent respecter les paramètres spécifiques à la prise de RDV du groupe, en particulier les attributs inactive, open, openData, calendarChoice, anyCalendar, validateEmail, display_intervention_length, display_intervention_price et max_multirdvs (voir ressource Group).
Il est à noter que votre client sera authentifié avec le profil Account, vous devrez donc par la suite consulter le descriptif de chaque ressource en prêtant attention aux champs accessibles en lecture ou en écriture par ce profil.
Notes à propos de l'exemple :
4
.calendarChoice == 2
, la première étape devra donc permettre le choix d'une prestation.1 Lister les catégories de prestations
GET /api/v1/groups/4/interventionsets?apikey=xxxxxx
(voir ressource Interventionset)
Exemple : le client choisit la catégorie d'id = 9.
2 Lister les prestations dans la catégorie choisie
GET /api/v1/groups/4/interventions?apikey=xxxxxx&interventionset_id=9
(voir ressource Intervention)
Exemple : le client choisit la prestation d'id = 21.
3 Lister les agendas associés à la prestation choisie
GET /api/v1/groups/4/calendars?apikey=xxxxxx&intervention_ids[]=21
(voir ressource Calendar)
Exemple : le client choisit l'agenda d'id = 15.
4 Lister les disponibilités
Exemple : on liste les disponibilités correspondant aux choix de prestation et de l'agenda, à partir de la date du 17 mars 2014.
GET /api/v1/groups/4/availabletimeslots?apikey=xxxxxx&\ intervention_ids[]=21&\ calendar_id=15&\ start=2014-03-17%2000:00:00\
(voir ressource AvailableTimeSlots)
Exemple : l'API renvoit un créneau disponible pour le 17 mars 2014 à 10h30, que le client choisit.
5 Utiliser un compte ClicRDV existant / créer un nouveau compte ClicRDV
Les étapes suivantes nécessitent d’être authentifié à l’aide d’un compte ClicRDV. L’interface doit alors proposer : soit de créer un compte ClicRDV, soit de s’identifier à l’aide d’un compte existant. La ressource a utiliser pour connecter un client est Account (voir également le principe d'Authentification).
Exemple : le client est loggué avec un compte ClicRDV existant.
6 Lister les fiches associées au compte client
Le compte (Account) permet à l'utilisateur de s'identifier (avec email/password) sur l'interface de prise de RDV, mais ne contient pas d'autres informations personnelles, comme les nom, prénom, téléphone, adresse, etc. L'utilisateur (représenté par son Account) doit donc posséder une Fiche, associée au groupe, contenant ces informations. Un utilisateur (Account) peut posséder plusieurs fiches sur le même groupe, dans le cas où il prend rendez-vous pour des personnes différentes. Exemples courants :
Récupération des fiches existantes sur le groupe pour l'account actuellement authentifié :
GET /api/v1/groups/4/fiches?apikey=xxxxxx
(voir ressource Fiche)
Exemple : le client possède déjà une fiche d'id = 48.
7 Créer un nouveau rendez-vous
Exemple : le client prend un rendez-vous pour le 17 mars 2014 à 10h30, et modifie son numéro de téléphone portable au passage.
La requête correspondante est, en supposant que les données soient échangées au format JSON (voir Formats) :
POST /api/v1/groups/4/appointments.json?apikey=xxxxxx { "appointment": { "date": "2016-01-18 10:30:00", "calendar_id": 15, "intervention_ids": [21], "comments": "", "fiche": { "id": 48, "group_id": 4, "firstphone": "06 12 34 56 78" } } }
(voir ressource Appointment)
Note : une variante courante consiste à créer une nouvelle fiche avec le nouveau rendez-vous (par exemple parce que le client n'a pas encore de fiche sur ce groupe, la requête de l'étape 6 aura donc retourné une réponse vide). Dans ce cas, la différence majeure par rapport à la requête ci-dessus consiste à ne pas spécifier l'attribut "id" dans l'objet "fiche". Une nouvelle fiche sera créée avec tous les attributs spécifiés (voir ressource Fiche pour la liste des attributs).
Il existe de nombreuses variantes au scénario d'exemple proposé ci-dessus, entre autres : prestations non groupées, processus commençant par le choix de l'agenda, etc. Consultez le workflow descriptif de la prise de RDV pour comprendre comment ces étapes peuvent s'articuler, puis la documentation de chaque ressource pour avoir plus de détails.