Am cerut opt luni de pontaje din Clockify și am primit 50 de rânduri
Nu era planul gratuit și nu era o eroare. 50 e dimensiunea implicită de pagină a lor, iar cererea noastră de 200 fusese ignorată în tăcere. Importul arăta perfect: fără erori, fără avertismente, cu 50 de rânduri frumos mapate. Articolul ăsta e lista lucrurilor pe care le-am aflat mutând pontaje reale — și ce să verifici tu, indiferent cu ce program le muți.
1. Capcana care taie datele fără să spună nimic
Orice import dintr-un API citește datele pe pagini. Bucla se scrie, aproape de la sine, așa: cer 200 de înregistrări; dacă primesc mai puțin de 200, înseamnă că s-au terminat.
Presupunerea e falsă oriunde serverul are dreptul să ignore dimensiunea cerută. La Clockify, parametrul se numește altfel decât credeam noi; el l-a ignorat politicos și a răspuns cu implicitul lui, 50. Bucla a văzut „50 < 200", a tras concluzia „gata" și s-a oprit după prima pagină.
Ce înseamnă pentru tine: după orice import, numără. Nu te uita dacă a apărut un mesaj verde — compară numărul de ore din programul vechi cu cel din programul nou, pe aceeași lună. Dacă unul dintre ele e un număr rotund și mic (50, 100, 1.000), nu e o coincidență.
2. Dublurile: de ce „am mai importat o dată" nu e o problemă, dacă e făcut bine
Toată lumea importă de două ori. Prima dată de probă, a doua oară de-adevăratelea. Sau o dată din fișier, pentru că API-ul n-a mers, și încă o dată din API, după ce a mers.
Întrebarea care decide dacă rămâi cu ore duble e: după ce se recunoaște un rând deja importat? Dacă amprenta include sursa, aceeași oră adusă din CSV și din API sunt două lucruri diferite, și intră de două ori. La noi amprenta e una singură pe firmă: aceeași oră, a aceluiași om, în aceeași zi, pe același proiect, e același lucru — oricum ar fi ajuns acolo.
Ce înseamnă pentru tine: înainte de importul mare, fă unul mic — o săptămână — și apoi repetă-l identic. Dacă a doua oară numărul de ore se dublează, oprește-te. Programul nu recunoaște ce a adus deja, iar la opt luni vei avea de curățat manual.
3. Emailurile nu se potrivesc. Aproape la nimeni
Ne așteptam ca oamenii să se recunoască singuri după email. În realitate, emailul cu care cineva e trecut în Clockify diferă de cel din programul nou la aproape toată lumea: unul e cel personal, altul cel de firmă; unul e de pe vremea când firma avea alt domeniu.
De aceea maparea oamenilor nu poate fi automată, și e bine că nu e. Ce contează e ca programul să ți-o arate, nu s-o ghicească: fiecare nume din exportul vechi, cu un selector lângă el, înainte să se scrie ceva.
4. Exportul de Harvest n-are deloc email — și ăsta e cazul periculos
Când am pus la încercare un export adevărat de Harvest, am găsit două lucruri pe care nu le-am fi bănuit citind documentația: numele vine spart în două coloane („First Name", „Last Name"), iar emailul lipsește cu totul.
Consecința, dacă un program se uită după o singură coloană de nume și nu găsește nimic: toate orele echipei ajung pe persoana care face importul. Un export de zece oameni devine, tăcut, luna cuiva cu 1.400 de ore.
Ce înseamnă pentru tine: după import, uită-te la numărul de persoane, nu doar la totalul de ore. Dacă vezi un singur nume acolo unde erau zece, ai găsit exact asta.
5. Ce aduce fiecare platformă, de fapt
| Platformă | Ce aduce cheia |
|---|---|
| Clockify | orele întregii firme (spațiul de lucru) |
| Toggl | doar orele proprietarului cheii — pentru toată echipa n-am putut confirma un endpoint, iar noi nu ghicim contracte |
| Harvest | export din interfață; fără email, numele în două coloane |
Limitarea de la Toggl e scrisă pe ecran, nu ascunsă în documentație. Un program care pretinde că aduce tot și aduce orele unui singur om e mai rău decât unul care spune din start ce poate.
6. Cheia de API: unde e și de ce se vede o singură dată
La Clockify: Profile settings → Advanced → Manage API keys. Se afișează o singură dată, la generare. Dacă închizi fereastra fără s-o copiezi, generezi alta.
Întrebarea care urmează e dacă programul în care o lipești o păstrează. Noi am decis inițial că nu — „e o mutare, se face o dată". Ne-am răzgândit dintr-un motiv practic: un patron care își mută firma aduce orele pe rând, lună după lună, om după om. Ar fi lipit cheia de zece ori, și ar fi ajuns s-o țină într-un fișier text pe desktop. Acum se salvează, criptată, și nu se mai întoarce niciodată la browser.
Ce înseamnă pentru tine: întreabă unde ajunge cheia. Dacă un program o cere și nu spune ce face cu ea, presupune ce e mai rău. Iar după ce ai terminat mutarea, revocă cheia din Clockify — durează zece secunde și închide subiectul.
7. Lista scurtă, dacă îți muți pontajele săptămâna asta
- Importă o săptămână întâi, nu opt luni.
- Numără orele în ambele programe, pe aceeași lună. Nu te uita la mesajul de succes.
- Numără oamenii. Dacă sunt mai puțini decât în echipă, maparea a căzut undeva.
- Repetă importul de probă. Dacă se dublează, oprește-te.
- Abia apoi adu tot istoricul.
- Revocă cheia de API când ai terminat.
Surse
Toate cifrele și comportamentele descrise sînt măsurate pe conectorii noștri, pe conturi reale de Clockify, Toggl și Harvest, în august–septembrie 2026 — nu citate din documentație. Documentația platformelor se schimbă fără preaviz: un endpoint pe care îl foloseam la Jira a fost eliminat între două versiuni, cu 410. Dacă găsești o diferență față de ce scrie aici, probabil s-a schimbat la ei; scrie-ne și verificăm.
We asked for eight months of Clockify timesheets and got 50 rows
It was not the free plan and it was not an error. 50 is their default page size, and our request for 200 had been silently ignored. The import looked perfect: no errors, no warnings, 50 neatly mapped rows. This is the list of things we learned moving real timesheets — and what you should check, whichever tool you use.
1. The trap that cuts your data without saying anything
Any API import reads in pages, and the loop almost writes itself: ask for 200; if fewer than 200 come back, we are done. That assumption is false anywhere the server may ignore the page size you asked for. Clockify politely ignored ours and answered with its own default of 50. The loop saw „50 < 200”, concluded „finished”, and stopped after the first page.
What this means for you: after any import, count. Do not look for a green message — compare the number of hours in the old tool and the new one, for the same month. If one of them is a small round number, that is not a coincidence.
2. Duplicates
Everyone imports twice. The question that decides whether you end up with double hours is: what makes a row recognisable as already imported? If the fingerprint includes the source, the same hour from a CSV and from the API are two different things. Ours is one per company: the same hour, the same person, the same day, the same project is the same thing — however it got there.
Import one week first, then repeat it identically. If the hours double the second time, stop.
3. The emails do not match. For almost anyone
We expected people to recognise themselves by email. In reality the address someone has in the old tool differs from the new one for nearly everybody. Mapping cannot be automatic, and it is better that it is not — what matters is that the tool shows you the mapping rather than guessing it.
4. Harvest exports have no email at all
A real Harvest export taught us two things the documentation does not: the name arrives split into two columns, and the email is missing entirely. If a tool looks for a single name column and finds nothing, the whole team's hours land on the person doing the import. Check the number of people after an import, not only the total hours.
5. What each platform actually gives you
| Platform | What the key brings |
|---|---|
| Clockify | the whole workspace's hours |
| Toggl | only the key owner's own hours — we could not confirm a whole-team endpoint, and we do not guess at contracts |
| Harvest | export from the interface; no email, name in two columns |
6. The API key
In Clockify: Profile settings → Advanced → Manage API keys. It is shown once. Ask where the key ends up in whatever tool you paste it into — and revoke it when the migration is done.
7. The short list
- Import one week first, not eight months.
- Count the hours in both tools for the same month.
- Count the people.
- Repeat the trial import. If it doubles, stop.
- Only then bring the full history.
- Revoke the key.
Sources
Every figure and behaviour here was measured on our own connectors against real Clockify, Toggl and Harvest accounts in August–September 2026 — not quoted from documentation. Platform documentation changes without notice: one Jira endpoint we used was removed between versions, returning 410. If you find something different, it probably changed on their side.