cmonblaze · API pointage

Modèles pas à pas

Relier le registre de pointage à ses outils sans écrire de code, avec Make (formule gratuite suffisante pour débuter), Zapier (les webhooks demandent une formule payante) ou n8n. Chaque modèle part d'un webhook : le pointage prévient l'outil, qui fait le reste.

Ces outils travaillent avec le compte de l'utilisateur et ses propres accès (Google, Pennylane, Slack…) : cmonblaze ne voit pas ces comptes et ne facture rien à sa place, il fournit les heures.

Étape commune : brancher le webhook

  1. Dans Make : créer un scénario, premier module Webhooks › Custom webhook, « Add », donner un nom, puis copier l'adresse (https://hook.eu1.make.com/…). Make attend alors un premier envoi pour apprendre la forme des données.
    Zapier : déclencheur Webhooks by Zapier › Catch Hook. n8n : nœud Webhook, méthode POST, adresse de production.
  2. Dans l'espace client, carte « API », bloc « Webhooks » : coller l'adresse, cocher le ou les événements du modèle, « Ajouter le webhook ».
  3. Cliquer « Envoyer un test » : l'outil reçoit un exemple fictif de chaque événement coché (agent « Karim B. (exemple) », client « Résidence Les Tilleuls »…), marqué test: true. Make affiche « Successfully determined » : les champs sont maintenant proposés dans les modules suivants.
  4. Juste après le webhook, ajouter un filtre « test égal à false » (Make : clic sur le lien entre deux modules › « Set up a filter » ; Zapier : Filter by Zapier). Les exemples ne créeront ainsi ni ligne ni facture.
  5. Pour un webhook qui ne doit traiter qu'un événement, ajouter au filtre « evenement égal à mois_termine » (ou l'événement voulu), ou créer un webhook par scénario.
  6. Activer le scénario (Make : interrupteur « Immediately as data arrives » ; Zapier : « Publish »).
  7. Make affiche les heures dans le fuseau de l'organisation : le régler sur Europe/Paris (profil › « Time zone ») pour que formatDate donne l'heure de Paris.

1. Heures du mois dans Google Sheets

Événement : mois_termine (le 1er du mois vers 7 h, totaux du mois précédent).
Résultat : une ligne par client final dans un tableur : mois, client, heures, présences, départs non pointés.

  1. Préparer un tableur avec en ligne 1 : Mois, Client final, Heures, Présences, Départs non pointés.
  2. Webhook + filtre (étape commune), puis Flow Control › Iterator sur donnees › par_clients (une passe par client final).
  3. Google Sheets › Add a Row : choisir le tableur et la feuille, puis relier les colonnes à mois, nom, heures, presences, departs_non_pointes.

Zapier : Looping by Zapier sur la liste, puis Google Sheets › Create Spreadsheet Row. Pour des totaux par agent (paie), itérer sur par_agents.

Sans Make ni Zapier : le lien secret Google Sheets de l'espace (=IMPORTDATA) donne déjà ces totaux, mis à jour toutes les heures.

2. Brouillon de facture Pennylane chaque mois

Événement : mois_termine.
Résultat : dans Pennylane, une facture en brouillon par client final, avec les heures du mois. Rien n'est envoyé au client tant que la facture n'est pas relue et finalisée dans Pennylane.

  1. Dans Pennylane, vérifier que chaque client final existe sous le même nom que dans l'espace de pointage (« Clients finaux »).
  2. Webhook + filtre (étape commune), puis Flow Control › Iterator sur donnees › par_clients.
  3. Filtre après l'itérateur : nom différent de « Sans client final » et heures supérieur à 0.
  4. Retrouver le client : application Pennylane V2, module de recherche ou de liste des clients, filtré sur le nom.
  5. Créer la facture : Pennylane V2 › Create a Customer Invoice, en brouillon (draft = oui), client = celui trouvé à l'étape précédente, une ligne :
    • libellé : Heures d'intervention + mois ;
    • quantité : heures (décimal : 53.25 = 53 h 15) ;
    • prix unitaire : le tarif horaire HT, avec le taux de TVA habituel.
  6. Faire un premier essai avec « Run once » et un seul client, puis ouvrir le brouillon dans Pennylane : vérifier qu'aucun client n'a été créé en double et que la ligne est juste.
Tarifs différents selon les clients : mettre un petit tableau « Client final / Tarif horaire » dans Google Sheets, et le lire avec Google Sheets › Search Rows avant de créer la facture.
departs_non_pointes supérieur à 0 : des heures manquent. Saisir les départs oubliés dans l'espace, puis corriger le brouillon (ou attendre le 2 pour finaliser).

Zapier : Looping by Zapier, Pennylane › Retrieve Customer V2 puis Pennylane › Create Customer Invoice V2 (brouillon). Axonaut, Sellsy, Tiime, Henrri… : même principe avec le module « créer une facture » ou « créer un devis » de l'application.

3. Départ oublié : SMS ou Slack

Événement : depart_oublie (arrivée sans départ 16 h après, signalée une fois en journée).
Résultat : un message au responsable, pour qu'il demande l'heure à l'intervenant et la saisisse dans l'espace.

  1. Webhook + filtre (étape commune).
  2. Slack : Slack › Create a Message dans le canal de l'équipe. SMS : le module d'envoi de SMS du fournisseur (Brevo, Twilio, OVHcloud…).
  3. Texte du message, par exemple :
    {{agent}} n'a pas pointé son départ ({{point_nom}}, arrivée le {{formatDate(arrivee; "DD/MM à HH:mm")}}).

Variante : depart pour être prévenu de chaque fin d'intervention (maintien à domicile, ménage terminé en conciergerie…).

4. Feuille de temps en direct

Événement : depart (chaque fin de présence, pointée ou saisie à la main).
Résultat : une ligne par intervention, au fil de l'eau : date, agent, client final, arrivée, départ, heures.

  1. Webhook + filtre (étape commune).
  2. Google Sheets › Add a Row : formatDate(arrivee; "DD/MM/YYYY"), agent, join(clients_finaux; ", "), formatDate(arrivee; "HH:mm"), formatDate(depart; "HH:mm"), heures.

Un départ saisi à la main arrive avec depart_saisi_a_la_main = vrai : une colonne « Saisi » permet de le repérer.

Champs utiles

ChampContenu
evenementpassage, depart, depart_oublie ou mois_termine
testtrue pour les exemples du bouton « Envoyer un test »
donnees › agent, point_nom, clients_finauxQui, où, pour quel client (liste)
donnees › arrivee, departDate et heure (heure de Paris)
donnees › heures, duree_minutesTemps passé : 9.5 = 9 h 30
donnees › par_clients, par_agentsTotaux du mois (mois_termine) : nom, heures, presences, departs_non_pointes

Liste complète, signature et nouveaux essais : documentation technique. Question : contact@cmonblaze.com.