What’s new? v4.84 — Timesheet and campaign improvements

The campaign page opens again. A campaign’s numbers stop contradicting its own table. The timesheet stops asking for what can’t be given.
v4.84.2 — The campaign page opens again
A fix for a defect introduced by v4.84.1 itself: the email preview was added with its React hooks declared after a conditional return, so the page used seven hooks while loading and nine once loaded. React does not tolerate that difference and brought the whole page down with “Something went wrong”.
Type checking didn’t catch it —it isn’t a type problem— and neither did any test: it showed up by opening the page. Anyone who installed 4.84.1 should move to this version; everything else in that release is correct and stays as it is.
v4.84.1 — A campaign’s numbers stop contradicting its own table
A ten-recipient campaign said “Sent 11” and “Opened 7”, with five real opens, right above a “Recipients (10)”. It wasn’t a data problem: the screen was adding up buckets that can’t be added. A recipient’s status is a single value, so counting “delivered” by status and “opened” by timestamp and then adding them counts twice anyone who clicked —they have both— and leaves out anyone who replied or unsubscribed, who also opened. The funnel is now counted by timestamps, which are cumulative.
Block-built emails were shown as JSON. The campaign page dumped the serialized list of blocks as is, [{"type":"heading",…}], above the recipients table. It now requests the same preview the editor uses, rendered by the server with the sending engine: what you review is the email that went out, not a browser approximation.
Four fields displayed their internal key. The ones explaining which variables you can use —“You can use {name} and {company}”— had unescaped braces with nothing to fill them, so the screen showed plugins.crm.emailHealth.templateBody instead of the sentence. It happened in email templates, in a cadence’s subject and body, and in the block editor’s help.
And nineteen labels were still in English inside the Spanish version: the campaign list columns, the funnel header and the dashboard summary. In a demo in Spanish that doesn’t read as an international product, but as a half-finished one.
Frontend only. No migrations, nothing to set up.
v4.84.0 — The timesheet stops asking for what can’t be given
Every Monday the system warned that there were hours left to submit. Clicking the notice opened nothing: you landed on the dashboard. And when an hours notice did lead to the timesheet, it opened the current week instead of the week it referred to — which is precisely the empty one, because the reminder is about the week that just closed. A notice that lands on a blank screen reads as if there were nothing to do.
Now each notice opens its own week, and the ones already waiting in the bell were repaired too.
And who it was sent to, which is what really ruins a notification channel. The reminder went to everyone in the instance, whether they logged hours or not: 112 weekly notices in firms with zero hours logged. A notice that asks nothing of the person receiving it is the fastest way to get all the others ignored. Now it only reaches people who have work to report.
A submission can be withdrawn. Submitting the week locks it for editing, and nobody approves their own hours — not even an administrator, because otherwise approval would mean nothing. The unintended consequence: someone with no supervisor and no other administrator, which is the case of a one-person firm, submitted and got stuck. They couldn’t edit it, couldn’t approve it, and there was no way to undo. Now it can be withdrawn as long as nobody has decided on it: withdrawing isn’t approving, it’s getting back the right to correct your own work.
And it can be turned off entirely. Some firms don’t track hours, and for them the screen —and above all its reminder— was noise. The checkbox is in Settings, and it turns off four things at once: the menu, the screen, the approval inbox and the Monday notice. Hiding only the menu would have kept an email arriving every Monday about something that can no longer be opened.
“Actual hours” had two truths. The column could be typed by hand in the Sheet, but that number wasn’t hours: it didn’t cost a cent in the budget —project cost is calculated only from logged hours—, it had no owner, went through no approval, and vanished on its own as soon as someone logged an hour on that task. Now it is calculated, displayed, and it explains where it comes from. What was already typed by hand is kept as is: across the fleet there were 416 tasks with actual hours and not a single logged hour behind them, and deleting them for consistency would have been worse than the inconsistency.
Along the way, when looking at a project’s hours, each entry now says who logged it and whether its week has been approved. The project lead used to see the numbers without being able to tell.
No migrations. Nothing to set up or switch on.
¿Quieres ver Iurefficient en acción?
Agenda una demostración o empieza tu prueba gratuita hoy mismo.
Solicitar demo