Projet de prise de RDV intégrée

Utilisez notre module de prise de RDV !

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.

Besoin spécifique : par où commencer ?

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.

Determinez votre processus

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.

Un exemple détaillé

Notes à propos de l'exemple :

  • le processus s'applique dans le contexte d'un groupe spécifique (voir ressource Group), pour l'exemple nous prendrons celui d'id égal à 4.
  • suivant la valeur de l’attribut calendarChoice du groupe, nous devons commencer par le choix d'une prestation ou bien par le choix d'un agenda. Ici, nous choisissons pour l'exemple calendarChoice == 2, la première étape devra donc permettre le choix d'une prestation.
  • les prestations peuvent être groupées ou non groupées. Ici, nous choisissons pour l'exemple des prestations groupées, nous devrons donc d'abord lister les catégories de prestations, puis lister les prestations de la catégorie choisie.

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 :

  • Cas classique : une personne prend RDV pour elle-même chez son médecin
  • Une personne peut prendre RDV aussi chez son garagiste, les informations requise par ce garagiste sont plus nombreuses : immatriculation, kilométrage, etc.
  • Un parent peut prendre RDV chez un pédiatre pour plusieurs de ses enfants. Le parent n’a qu’un seul compte ClicRDV mais dispose de plusieurs fiches chez le pédiatre.
  • Une secrétaire peut prendre RDV ayant accès à l’ensemble des clients du groupe


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).

Autres cas

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.