Colonnes de l'export

L'export du registre du temps de travail (voir Accès au registre et copie) a des colonnes stables : le nom de chaque colonne est une clé en anglais qui n'est pas traduite et ne change pas d'une langue à l'autre. Si vous voulez importer le fichier dans un autre système, vous pouvez vous y fier : quand une colonne est ajoutée, elle va à la fin de sa section, et aucune n'est renommée ni supprimée.

Forme du fichier

  • Le CSV est un fichier unique contenant toutes les sections. Sa première colonne est section (entry, change, day_total ou month_total), puis viennent les colonnes des quatre sections les unes après les autres ; celles qui ne s'appliquent pas à une ligne restent vides. Il porte un BOM (il s'ouvre correctement dans Excel) et les cellules pouvant être interprétées comme une formule sont neutralisées.
  • L'Excel (XLSX) comporte une feuille info (entreprise, identifiant fiscal, plage, fuseau horaire, vue et date de téléchargement) et une feuille par section : entries, changes, day_totals et month_totals, chacune avec ses seules colonnes.
  • Les instants sont en ISO 8601 avec le décalage du fuseau horaire de l'entreprise (2026-10-15T09:00+02:00), les jours au format AAAA-MM-JJ et les mois au format AAAA-MM. Les durées sont des minutes entières, les booléens valent true ou false et les valeurs énumérées apparaissent sous leur code.
  • Ce qui ne s'applique pas ou n'a pas été enregistré reste vide : People n'invente aucune donnée.
  • Dans la vue minimisée des représentants du personnel, l'identifiant fiscal, les IP et les mesures de conciliation (clé et texte) restent des colonnes, mais vides, pour que le fichier ait la même forme pour tous.

Plages : entries (entry)

Une ligne par plage (l'enregistrement de début et, s'il existe, celui qui la clôture). Les plages annulées figurent aussi, marquées.

ColonneCe qu'elle contient
employee_idIdentifiant de la personne
employee_last_nameNom de famille
employee_first_namePrénom
employee_tax_idIdentifiant fiscal (vide dans la vue minimisée)
dateJour du début, dans le fuseau horaire de l'entreprise
kindSituation : WORK (journée), BREAK (pause), WAITING (attente), ON_CALL (astreinte) ou DISCONNECTION_INTERRUPTION
startInstant de début
endInstant de fin (vide s'il n'y a pas de sortie)
duration_minutesDurée de la plage en minutes
start_clocking_idIdentifiant de l'enregistrement de début
end_clocking_idIdentifiant de l'enregistrement de fin
start_channelCanal par lequel le début a été enregistré : WEB, MCP, CHAT, SYSTEM, TECHNICAL_INCIDENT ou LEGACY (antérieur à l'historique)
end_channelCanal de la fin, avec les mêmes valeurs
modalityON_SITE (sur site) ou REMOTE (à distance)
hours_natureORDINARY, OVERTIME ou COMPLEMENTARY
overtime_compensationREST (repos) ou PAY (rémunérées), pour les heures supplémentaires
force_majeuretrue si les heures relèvent de la force majeure
conciliation_measure_keyClé de la mesure de conciliation (vide dans la vue minimisée)
conciliation_measure_textDétail de la mesure (vide dans la vue minimisée)
automatic_endtrue si la fin a été posée par la clôture automatique antérieure à ce registre
incompletetrue s'il s'agit d'une entrée sans sortie d'une journée terminée
voided_atInstant où la plage a été annulée
end_voided_atInstant où seule la sortie a été annulée
has_conciliation_measuretrue si la plage porte une mesure (seule information que voient les représentants)

Modifications : changes (change)

Une ligne par révision appliquée et par proposition de changement, avec qui propose, qui autorise, le désaccord et les marques « après clôture » et incident technique.

ColonneCe qu'elle contient
employee_id, employee_last_name, employee_first_nameLa personne concernée
recordrevision (changement appliqué) ou proposal (proposition)
idIdentifiant de la ligne
proposal_idProposition dont provient une révision
clocking_idEnregistrement concerné
actionCREATE (ajout), MOVE (changement d'heure), VOID (annulation) ou RECLASSIFY (reclassement)
atInstant du changement
statusPENDING, ACCEPTED, REJECTED ou WITHDRAWN
channelCanal par lequel il a été fait
technical_incidenttrue s'il s'agit d'un incident technique
after_closetrue s'il est postérieur à la clôture du mois
reasonMotif du changement
before, afterÉtat de l'enregistrement avant et après (en JSON)
authorQui a fait le changement
author_ipIP depuis laquelle il a été fait (vide dans la vue minimisée)
proposed_byQui a proposé
proposed_forAu nom de quelle partie : EMPLOYEE ou COMPANY
proposer_ipIP de qui a proposé
decided_byQui a décidé
decided_forAu nom de quelle partie il a décidé
decided_atInstant de la décision
decider_ipIP de qui a décidé
decision_reasonMotif de la décision, en cas de refus
employee_discrepancyDésaccord de la personne
discrepancy_atQuand elle l'a laissé
applied_atQuand il a été appliqué au registre
representation_notified_atQuand les représentants du personnel ont été prévenus

Totaux journaliers : day_totals (day_total)

Une ligne par personne et par jour. Tous les temps sont en minutes.

ColonneCe qu'elle contient
employee_id, employee_last_name, employee_first_nameLa personne
dateLe jour
worked_minutesTravail effectif (inclut les interruptions de la déconnexion)
ordinary_minutesDont ordinaires
overtime_minutesDont supplémentaires
complementary_minutesDont complémentaires
unclassified_minutesDont non classées (seul ce qui est enregistré compte, pas la proposition)
break_minutesPauses
waiting_minutesAttentes
on_call_minutesTemps d'astreinte
disconnection_minutesInterruptions de la déconnexion (déjà incluses dans le travail effectif)
incompletetrue s'il y a des entrées sans sortie ce jour-là
workday_regimeFULL_TIME ou PART_TIME, selon le contrat en vigueur
part_time_percentagePourcentage du temps partiel
schedule_modeFIXED ou FLEXIBLE
ordinary_limit_exceededtrue si le maximum quotidien d'heures ordinaires est dépassé
short_rest_minutesMinutes de repos depuis la journée précédente, si inférieur à 12 heures

Totaux mensuels : month_totals (month_total)

Une ligne par personne et par mois. Elle reprend les neuf colonnes de minutes des totaux journaliers (worked_minutes … disconnection_minutes), cette fois additionnées par mois, et ajoute :

ColonneCe qu'elle contient
employee_id, employee_last_name, employee_first_nameLa personne
monthLe mois (AAAA-MM)
days_workedJours travaillés
incomplete_daysJours incomplets
flexible_target_minutesObjectif du mois en horaire flexible
flexible_worked_minutesTravaillé dans le mois en horaire flexible
flexible_excess_minutesExcédent par rapport à l'objectif (jamais négatif)
flexible_deficit_minutesDéficit par rapport à l'objectif (jamais négatif)

Le décompte flexible n'apparaît que pour les mois entiers compris dans la plage téléchargée. Le solde est scindé en excédent et déficit, deux colonnes qui ne sont jamais négatives.

Colonnes de l'export