Suivi du temps Cookpit / Timbrage
Si votre camping utilise Cookpit (Timbrage) pour le pointage du personnel, cet adaptateur récupère ces événements dans le module de suivi du temps de CampOne toutes les 15 minutes. Des totaux prêts pour la paie, sans double saisie.
Si vous n’utilisez pas Cookpit, CampOne propose un widget de pointage intégré au tableau de bord quotidien — le personnel clique sur « Pointage entrée » à l’arrivée, « Pointage sortie » au départ, et les mêmes rapports en aval fonctionnent.
Ce que vous y gagnez
Section intitulée « Ce que vous y gagnez »- Récupération des pointages depuis Cookpit toutes les 15 minutes (idempotente — les ré-exécutions ne créent pas de doublons)
- Stockage dans la table
TimeEntryde CampOne, à côté des saisies manuelles - Suivi distinct des ajustements (chaque PATCH écrit une ligne d’audit
TimeEntryAdjustment) - Récapitulatifs de temps par utilisateur, avec filtres par date
- Un widget de pointage entrée / sortie côté personnel, sur le tableau de bord, pour tout tenant
Prérequis
Section intitulée « Prérequis »Cookpit ne publie pas de portail développeur public — le contact est direct :
- Ventes : verkauf@cookpit.ch
- Support : support@cookpit.ch
- Page produit : https://www.cookpit.ch/cookpit-time/
Ce qu’il faut leur demander :
- Le contrat technique de l’API (nous partons aujourd’hui sur
GET /api/v1/clock-eventsavec en-têteX-API-Key) - Un tenant bac à sable + une clé API pour un site pilote
- La confirmation de l’URL de base (
https://api-test.cookpit.chest notre meilleure hypothèse actuelle) - Leur position sur la pousse : acceptent-ils des shifts entrants depuis chez nous, ou s’agit-il uniquement de pull ?
Un modèle d’e-mail prêt à envoyer se trouve dans docs-internal/handoffs/integrations-outreach-emails.md.
Ce que vous collerez dans CampOne
Section intitulée « Ce que vous collerez dans CampOne »Réglages → Intégrations → Adaptateurs fournisseurs → Cookpit :
| Champ | Description |
|---|---|
| Environment | Test / Production |
| Location ID | L’identifiant Cookpit de votre camping |
| API key | Le jeton délivré par Cookpit, par tenant |
| User mapping | Un objet JSON associant les identifiants utilisateur Cookpit aux utilisateurs CampOne, par ex. {"cookpit_42": 17, "cookpit_43": 22} |
Cliquez sur Save, puis sur Test connection.
Comment fonctionne la synchronisation
Section intitulée « Comment fonctionne la synchronisation »Toutes les 15 minutes, une tâche Celery interroge Cookpit : « de nouveaux pointages depuis le dernier curseur ? ». Pour chaque événement trouvé :
- Recherche de l’identifiant utilisateur Cookpit dans votre user mapping pour obtenir l’utilisateur CampOne.
- Si l’utilisateur n’est pas mappé, l’événement est ignoré et journalisé (vous pouvez ensuite le mapper et relancer).
- Création ou mise à jour d’une
TimeEntryindexée sur(tenant, source='cookpit', external_ref). Les ré-imports sont idempotents. - Mise à jour du curseur pour que la prochaine récupération ne ramène que les nouveaux événements.
Le journal d’intégration affiche le nombre d’événements importés à chaque récupération.
Widget de pointage pour les sites sans Cookpit
Section intitulée « Widget de pointage pour les sites sans Cookpit »Le widget du tableau de bord crée des lignes TimeEntry avec source='manual'. Même structure de données, mêmes rapports en aval. Si un site adopte Cookpit plus tard, vous activez la bascule sur cette carte ; les anciennes saisies manuelles restent intactes.
Ajustements des saisies de temps
Section intitulée « Ajustements des saisies de temps »Les administrateurs du tenant peuvent éditer n’importe quelle TimeEntry (par ex. corriger un pointage de sortie oublié). Chaque modification écrit une ligne TimeEntryAdjustment avec un instantané avant / après et l’utilisateur à l’origine du changement — piste d’audit complète pour les litiges de paie.
Contacts de support
Section intitulée « Contacts de support »- Ventes / partenariats : verkauf@cookpit.ch
- Support technique : support@cookpit.ch
- La pousse de shifts vers Cookpit est documentée comme un point de feuille de route — l’adaptateur lève
NotImplementedErrorjusqu’à ce que Cookpit confirme le contrat entrant. - Le contrat de l’API Cookpit est aujourd’hui inféré à partir des schémas habituels du suivi du temps ; attendez-vous à un petit ajustement de
services/client.pylorsque l’éditeur confirmera la forme exacte des réponses. - Des tests enregistrés en VCR contre le bac à sable Cookpit réel seront ajoutés dès réception des identifiants.