Back to Pulse
Product updates

What’s new in Pulse

A clear record of improvements shipped across the public product, interactive demo and signed-in workspace.

Current deployment 2026.11.11:0843 IST
Version 1.94.0
11 November 2026
Administrators
Latest release

Finance opens on Money due, and GST months are closed from the screen

One screen now lists what the company owes today (GST, TDS, vendors and salaries) with due dates, and a filed GST return is recorded with three figures instead of a script.

  • Finance has a new first tab, Money due. It shows everything still to be paid as of today, whatever month it belongs to: GST by return month, TDS by the month it was deducted, what each vendor is owed and any approved salary not yet paid, each with its due date and whether it is overdue. The Period picker does not change this screen.
  • Tiles at the top give the total to pay, how much of it is overdue, and what clients still owe. Each row has one next step: match the bank payment, close the month, or open the tab that holds the detail.
  • GST: Close this month, on Money due and on the GST tab, records a filed GSTR-3B. Enter the input credit the return used, the cash paid and the reference; Pulse checks that they add up to the GST on that month's invoices and stops showing a balance for credit the return claimed that Pulse had no bill for. This replaces the Mark filed box.
  • A GST month whose challan is paid but which still shows a small balance is now labelled Paid, needs closing, not overdue.
  • The Bank tab and the Other tab (Cash and banks, Transactions, Payment requests, Bank statement, Reports) are removed. They read from an earlier design that the bank and vendor screens replaced; Bank Reconciliation, Vendors, Project P&L and Collections hold the live figures.
Version 1.93.0
10 November 2026
Administrators

Collections shows one total of everything still to come in

Finance → Collections now opens on every unpaid invoice across all months, with a single total pending and a per-client breakdown at the top.

  • A Total pending figure sits at the top of Collections. It adds up every unpaid invoice from every month, in rupees, and says how much of it is in foreign currency and how much is overdue. It does not change with the filters below it.
  • Under the total, each client with money pending has a card showing their amount, number of invoices and oldest unpaid invoice. Click a card to see only that client's invoices; click it again to clear.
  • Collections now opens on All months and Unpaid only, so paid invoices and the month picker no longer hide what is owed. Both filters can still be changed, and the Invoices tab is unchanged.
  • Small balances left on part-paid invoices, which are usually bank fees or tax the client held back, are called out under the total so they are not mistaken for real debts.
Version 1.92.0
5 November 2026
Signed-in teams

Monthly attendance sheet, new-joiner welcome emails and assessment review emails

HR can export and correct a month's attendance per employee, departments are told when someone joins, and assessments now carry review requests, verdicts and result emails.

  • HR Admin has a new Attendance tab: one row per employee and one code per day (present, leave type, half day, absent, weekly off, holiday), built from punches, leaves and holidays, with totals and the unpaid days payroll will use. Search by employee name and export the month as CSV.
  • Import corrections: edit the codes in the exported sheet and upload it. Pulse lists every change before saving. Leave codes become approved leave and count in payroll and leave balances; P cancels a leave or absence for that day. Punches are never changed, days inside a multi-day leave are left to the Leaves screen, and past months show a warning that salaries may already be paid.
  • At 09:30 on someone's joining date, their department, its head and their reporting manager get a welcome email with their photo, role, department and manager; HR gets a copy. It never includes phone numbers, personal email or salary. HR Admin → Onboarding lists upcoming joiners, who will be told, and a Send now button. Anyone can turn the email off in Notification Preferences.
  • Assessments: once the candidate's work is uploaded, Ask to review emails a chosen colleague the candidate page. Mark reviewed now asks for a verdict and note, and HR is emailed straight away. HR can then Email result to the candidate (next round, not selected or a custom message), seeing the exact words before sending.
  • SQL step before publishing: the hr_attendance_joiner_assessment_mail migration.
Version 1.91.1
5 November 2026
Administrators

Pulse email sends from the company's hi@ address

Connecting Pulse's sending mailbox now starts on hi@colladome.com and always lets you choose the account.

  • Send from a Google mailbox suggests hi@colladome.com and shows Google's account chooser, so a browser signed in to another company account no longer connects that one by mistake.
  • Changing the sending mailbox later works the same way from the banner's change link.
Version 1.91.0
5 November 2026
Signed-in teams

HR can add candidates who sent a resume on WhatsApp or email

People who send a resume on WhatsApp, by email, through a referral or at a walk-in can now be put into the recruitment pipeline by HR, without asking them to use the Apply page.

  • Recruitment has an Add candidate button for HR admins and super admins. Attach the resume (PDF, Word, or a phone photo), say where it came from and when, check the details, and the person goes into Pending.
  • Pulse reads the name, email, phone, location and experience from a PDF resume. For photos, Word files and scanned PDFs, HR types them in.
  • An email address is required so interview invites and assessments reach the candidate; if the resume has none, ask them for it first.
  • Pulse warns when the email or phone already belongs to a candidate, and will not add the same email twice.
  • The candidate card shows the source (for example WhatsApp, added by HR) and a note saying who added them and when. No email is sent to the candidate when HR adds them.
Version 1.90.1
5 November 2026
Administrators

Library security updates

Updated the libraries with known security issues that could be updated without changing how Pulse works.

  • Known issues fell from 30 to 20: the one critical and seven of the ten high-severity ones are fixed, mostly in build tools and in the library that passes data between the browser and the server.
  • Left for later, each needing a major upgrade or having no fix yet: the validation library (memory use on oversized input), the email library's fallback mail path (no longer used once a Google mailbox is connected), and older build helpers.
Version 1.90.0
5 November 2026
Administrators

Pulse email can go out through a Google mailbox

Pulse's old mailbox was capped at 100 emails a day and suspended; a super admin can now connect a company Google mailbox once and Pulse sends through it.

  • The red email banner gets a Send from a Google mailbox button for super admins. Sign in with a company Google account and allow sending only; Pulse cannot read mail.
  • Every Pulse email then goes out through that mailbox, with the Colladome Pulse name on it. Google allows about 2,000 a day.
  • Emails waiting in the retry queue go out on the next runs; the banner clears once deliveries succeed.
  • The old mailbox stays as the fallback only while no Google mailbox is connected.
Version 1.89.2
5 November 2026
Signed-in teams

Facebook post reach counts again

Facebook had started answering 0 reach for every Page post; Pulse now reads the views measure Facebook moved Page posts to.

  • For each matched Facebook post Pulse asks for unique viewers first, then the older reach measures, and keeps the largest people count.
  • Instagram and Facebook numbers add up on the item as before.
Version 1.89.1
5 November 2026
Signed-in teams

Social posts are no longer matched by date alone

Matching a post to an item only because both fell on the same day paired the wrong posts, so it is switched off; posts are matched by their Pulse link, their code, or by hand.

  • A festival post and an explainer published on the same day could swap numbers. Date-only matching is off.
  • Numbers from a match that no longer holds are removed from the item, so they are never judged.
  • Posts without a link or code in the caption: open the item's results and use Match Instagram / Facebook post.
Version 1.89.0
5 November 2026
Signed-in teams

Match a social post to its calendar item once

When a post went out without its Pulse link or code, open the item's results and pick the right Instagram or Facebook post; Pulse reads its numbers by itself from then on.

  • Content Calendar → open a social item → Results → Match Instagram / Facebook post: recent posts near the post date are listed with picture, date and caption; click This one.
  • A hand match always wins over automatic matching, and a post can belong to one item only; moving it takes it off the item it was on.
  • Numbers for the matched post are read straight away and then every few hours, up to day 33 (day 60 for items never judged).
  • The Instagram + Facebook card on Results now counts matches made by hand.
  • SQL step before publishing: the content_post_matches migration.
Version 1.88.2
5 November 2026
Administrators

Nobody drops out of payroll without a warning

Payroll only includes people with a salary set; the Salary tab now names anyone active that month who has none, and adding a team member asks for their salary.

  • Finances → Salary shows a red strip listing every active person with no salary for the selected month (directors excluded), with where to add it.
  • Onboarding a team member and creating an account under Access now require a monthly salary (0 is allowed for unpaid). Without it, the person was silently left out of payroll.
Version 1.88.1
5 November 2026
Administrators

Client and vendor logins kept out of internal data

Rules that let any signed-in account read or change some internal data now admit Colladome staff only; client-portal and vendor-portal logins no longer reach it.

  • Reference lists, team and department settings, events, courses, content results and similar tables are readable by staff only, not by client or vendor logins.
  • Important dates (birthdays and anniversaries) are no longer readable without signing in.
  • Shared BD sequences can only be added or changed by staff.
  • A task's reviewer can still update the task but cannot hand it to someone else; a project manager can.
  • Project documents, event source files and training content are open to staff only.
  • Staff keep exactly the access they had. SQL step: the staff_only_access migration.
Version 1.88.0
5 November 2026
Signed-in teams

Monthly leads counted from Signals, with a system target

The month's leads for Colladome's own content are now counted from Signals and judged against a target Pulse sets; nobody types either number.

  • Every Signals entry counts as a lead unless it is junk: marked junk by BD, or flagged as certain junk on arrival and never marked real. BD's review only sharpens the count.
  • The month's target is the median of the last three months' leads + 10%, and a starting number until three months exist.
  • Shown on Content Calendar → Results and in Insights → Targets, with how many were marked real, how many are not reviewed yet and how many junk entries were left out.
  • The typed leads target and "so far" boxes are gone.
Version 1.87.4
5 November 2026
Signed-in teams

Results: every unscheduled backlog item leaves No target

Posts with no post date and no stage now sit under Not live / not scheduled whatever their status, so No target only lists scheduled or live posts without a stage.

  • 1.87.3 moved only backlog items already marked done; items still in progress with no date and no stage are moved too.
Version 1.87.3
4 November 2026
Signed-in teams

Results: backlog items are not counted as missing a target

Posts with no post date and no stage now sit under Not live / not scheduled on the Results view instead of No target.

  • An unscheduled item is not missing a target yet: a stage is required when it is given a date, and its target is set the day it goes live.
  • No target now only lists items that are scheduled or live without a stage.
Version 1.87.2
4 November 2026
Signed-in teams

Older content is caught up; Results shows Colladome first

Posts and blogs that went live before automatic results existed are now read and judged too, and the Results view opens on Colladome's own content.

  • An item that was never judged keeps being read until 60 days live. Only its first 30 days count, so the verdict is the same as if it had been read on time.
  • If an item went live before there were three results to base a target on, it takes the current rolling target (median of recent 30-day results + 10%) instead of the starting number.
  • Content Calendar → Results has a brand switch, set to Colladome only by default; client brands are under All brands.
Version 1.87.1
4 November 2026
Signed-in teams

Facebook numbers no longer stop on comment counts

Reading a Facebook post no longer fails when Facebook withholds its comment count, and the Results view says how many posts Pulse saw and matched.

  • Comment counts on Facebook Page posts need an extra permission Pulse does not ask for; Pulse now reads reach and shares without them instead of reporting a refused permission.
  • The Instagram + Facebook card shows the last read: how many Instagram and Facebook posts were seen, and how many live posts were matched by link, code or date.
  • Facebook's own reason is added to any error shown on the card.
Version 1.87.0
4 November 2026
Signed-in teams

Social results from Instagram and Facebook, automatically

Once an admin of the company Page signs in with Facebook, Pulse reads reach, saves, shares and comments for each social post and judges it without anyone entering numbers.

  • Content Calendar → Results: the Instagram + Facebook card gets a Connect Meta button for super admins once the Meta app is set up.
  • Pulse keeps a Page token that does not expire and, every few hours, lists the Page's and its Instagram account's recent posts.
  • A post is matched to its Pulse item by the Pulse link in its caption, else by the item's code in the caption, else — for the company's own posts only — by being the only post and the only item on that date.
  • For each matched post Pulse reads reach, saves, shares, comments and profile visits (Instagram) or reach, shares and comments (Facebook) until day 33, and adds them to the item.
  • If Facebook refuses (sign-in removed, permission unticked, rate limit), the reason shows on the Results view and Pulse retries within the hour.
  • No SQL step.
Version 1.86.0
4 November 2026
Signed-in teams

Blog results from Google, automatically

One Google sign-in by an admin lets Pulse read Search Console and Google Analytics for the company site, so blogs are measured and judged without anyone entering numbers.

  • Content Calendar → Results now shows where the numbers come from: Pulse short links, Google Search Console + Analytics, Instagram + Facebook and LinkedIn, each with its status.
  • A super admin clicks Connect Google once and signs in with the account that owns the site in Search Console and Analytics. Access is read-only; Pulse finds the right Search Console and Analytics properties by itself.
  • Every few hours Pulse reads, for each blog with a live URL: search impressions and clicks for that page, and views of other pages on the site reached from the blog (clicks to service pages), counted from go-live to day 30.
  • Google's numbers arrive two to three days late, so items keep updating until day 33; only days 0 to 30 count towards the verdict.
  • If Google refuses (an API switched off, the sign-in removed), the reason shows on the Results view and Pulse retries within the hour.
  • SQL step before publishing: the content_google_results migration.
Version 1.85.0
4 November 2026
Signed-in teams

Content results fill themselves

Nobody types content results any more: every post gets a Pulse link that counts clicks, Pulse sets each target the day the post goes live, and platform numbers arrive as each connection is switched on.

  • Every content item has a short link (pulse.colladome.com/l/<code>). Saving a caption adds it, with a separate link for Instagram and LinkedIn; a click is counted per platform and forwarded with tracking tags. Link previews and crawlers are not counted.
  • A server job runs with the regular reminders: it fixes each item's target on the day it goes live (rolling median of similar 30-day results + 10%), adds link clicks up to day 30, and marks the numbers in, so items are judged at day 30 without anyone entering anything.
  • Results can no longer be typed; the results box explains where each number comes from. The "results due" reminder is switched off, and "Results due" is now "Awaiting data".
  • Ready for Instagram, Facebook, LinkedIn, Search Console and Google Analytics numbers: each connector writes into the same per-platform table as it is switched on.
  • SQL step before publishing: the content_auto_results migration.
Version 1.84.7
3 November 2026
Signed-in teams

Content Calendar: Results view

A new Results view puts every post and blog's target next to its result, with how many hit, missed, are still running or are missing numbers.

  • Content Calendar → Results: one row per item with post date, funnel stage, what it is measured by, target, result and status (above, on or below target; so far; numbers due; not live yet; no target).
  • Summary on top: items judged and the share that hit target, above and below counts, items with numbers so far, numbers missing and items with no target; plus a table by funnel stage for social posts and blogs with median target, median 30-day result and hits.
  • Filters for post date (this month, last month, last 90 days) and social or blogs, on top of the calendar's own filters. Click a row to enter or update its numbers.
  • No SQL step.
Version 1.84.6
3 November 2026
Signed-in teams

Content targets judged at 30 days live

Every post and blog is now compared with its target on its numbers as of 30 days live; social posts still get their first numbers at day 7 for quick feedback.

  • Social posts: numbers are first entered 7 days after posting and shown as "so far". At 30 days the post asks for its 30-day numbers and is then marked above, on or below target.
  • Blogs: numbers are due 30 days after going live (was 28) and judged then.
  • Insights counts hits only on 30-day numbers, and default targets are set from 30-day results.
  • Colladome's own posts and blogs must have a funnel stage, so every one has a target: when creating, editing or adding many at once (Add many gains a Funnel column).
  • No SQL step in the app. A separate data step fills the funnel stage of existing posts from the content calendar's Primary KPI.
Version 1.84.5
3 November 2026
Signed-in teams

Expense categories added in Pulse work from the Company Tally

A category Finance adds in Pulse, such as Diwali 2026, can now be picked in the Company Tally sheet and arrives in Pulse under that category instead of Other.

  • New expense category: Diwali 2026.
  • Company Tally import: a sheet category whose name matches a Pulse category is used as is. Categories the import already recognised keep mapping exactly as before.
  • SQL step before publishing: the expense_category_diwali_2026 migration.
Version 1.84.4
3 November 2026
Signed-in teams

Email retries pause during an outage

When no email has gone out for six hours, Pulse stops retrying the whole queue and tries one email an hour until the mail server accepts again.

  • Every retry counted against the sending mailbox's daily limit, which kept it blocked. Queued emails now wait, and one probe an hour checks whether sending works again; the queue drains as soon as one gets through.
  • No SQL step in the app. A separate admin SQL moves stale-task and activity-report reminders to in-app only.
Version 1.84.3
3 November 2026
Signed-in teams

Email warning tells the truth during an outage

When no email has been delivered for over a day, the banner now says so, with the date of the last one that went out, instead of "running late".

  • The email banner turns red and reads "No email from Pulse has gone out since <date>" with the number of failed emails, once nothing has been delivered for 24 hours while sends keep failing.
  • Short delays still show the amber "running late" note.
  • No SQL step.
Version 1.84.2
3 November 2026
Signed-in teams

Creators: a client price per creator

Each collaboration can carry the amount the client is billed for that creator, instead of the fee plus a percentage.

  • Edit → Money: Client price. When set, the client is billed that amount for the creator, plus any billable costs with the markup. Left empty, the old rule applies: fee plus the markup.
  • A new creator paid by Colladome is priced at fee + ₹500 unless a price is typed.
  • Campaign billing, the client PDF and Excel use the client price.
  • SQL step before publishing: the creator_client_price migration.
Version 1.84.1
3 November 2026
Signed-in teams

Change a login email; HR admins see Team Meetings

Super admins can change a person's login email from their profile without touching their hours or history, and HR admins can now open Team Meetings.

  • People → open a person → Change login email. The person keeps the same account and password, so hours, timesheets, tasks, leave and documents stay with them; they sign in with the new address.
  • Team Meetings is now in the sidebar for HR admins as well as super admins.
  • No SQL step.
Version 1.84.0
3 November 2026
Signed-in teams

Content Calendar: a target for every post and blog

Each post and blog is now judged on one number set by its funnel stage, with a target, a day-7 results reminder and an Above / On / Below verdict.

  • Awareness posts are judged on reach, consideration posts on saves and shares per 100 people reached, and conversion posts on clicks on their tagged link. Blogs use search impressions, clicks to service pages and CTA clicks.
  • Targets default to the recent median for the same metric and format plus 10%, and are fixed on the item when its results are entered. Calendar admins can change a target.
  • The post's owner can now enter its results, not only calendar admins. A new Results due view lists published items still missing their numbers, and a reminder goes out 7 days after posting (28 for blogs).
  • Insights shows how many posts hit their target per metric, which results are missing, and a monthly leads and bookings target, since leads are too few to judge one post on.
  • A funnel stage is now required when creating an item, because it decides the target.
  • SQL step before publishing: the content_targets migration.
Version 1.83.2
29 October 2026
Signed-in teams

Content Calendar: posts named by their code

A post whose name is its content code now shows that code as its name, instead of "Untitled".

  • In the list and on calendar chips, a post named by its code shows the code in place of "Untitled", without repeating it underneath.
  • No SQL step.
Version 1.83.1
29 October 2026
Signed-in teams

Content Calendar: archive old posts

A content item can now be archived: it leaves the Content Calendar and its reminders, while its tasks, hours and history stay as they were.

  • Archived content runs no longer show on the Content Calendar, in Insights or in post-date reminders. Nothing is deleted, so hours logged on them still count in burn and timesheets.
  • Used to clear the old Colladome social calendar so it shows the current plan from today onward.
  • SQL step before publishing: the content_archive migration.
Version 1.83.0
29 October 2026
Signed-in teams

Client rows open and edit, bulk task edit, creator payment approval, creator stage picker

Clients can be opened and edited straight from the list, managers can change many tasks at once, and creator payments now go through a request and an approval.

  • Clients: click anywhere on a row to open the client page. Each row has Open and, for people who manage clients, Edit — the same form as on the client page.
  • Tasks → Overview: managers and admins tick tasks (or all on the page, up to 200) and change their status, assignee, due date (set, clear, or move by days), priority or project together. Fields left on "keep" are not touched.
  • Workflow stages (such as content calendar steps) are never marked done or sent to review in bulk, because closing one starts the next stage; they are listed as skipped. A task still waiting on another task stays in To Do. Every change is logged on the task, and new assignees are notified.
  • Creators → Collaborations: a content editor asks for a creator to be paid (amount, needed by, pay-to, note). Finance or an admin approves or rejects with a reason. An approved request is paid from Money, and its expense is approved by whoever approved the request.
  • Requests waiting for approval, and approved ones still to pay, are listed at the top of Collaborations.
  • Finance and admins can still record a payment directly. Client-paid amounts and linking an expense already in Pulse need no request.
  • Creators: the stage is a dropdown again. Click a creator's stage on the list (or Stage in Edit) and pick Video received, Posted or any other step; it fills today's date for that step, and asks for the live link when marking Posted.
  • SQL step before publishing: the creator_payment_requests migration.
Version 1.82.0
27 October 2026
Signed-in teams

Vendors can edit or withdraw a payment request

A payment request sent from the vendor portal could not be changed. Vendors can now edit or withdraw one until it is approved, and fix and resend one that was sent back.

  • Vendor portal → Payment requests: Edit and Withdraw on any request still waiting for review. Edits can change the description, invoice number and date, amounts and GST, the project split, the note, and replace the invoice file.
  • A rejected request shows why it was sent back and has Fix & resend; it returns to waiting for review.
  • Approved, paid or booked requests stay locked, because their expense already exists.
  • Finance is emailed when a request is edited, resubmitted or withdrawn.
  • No SQL step.
Version 1.81.1
27 October 2026
Signed-in teams

Approve a small expense without a receipt

Approving an expense needed its invoice or receipt, so small cash and UPI spends with no bill could never be approved. Under ₹2,000 a written reason now does instead.

  • Finance → Expenses → Approve: with no receipt attached and an amount under ₹2,000, type why (for example "cash, no bill") and approve. ₹2,000 and above still needs the invoice or receipt.
  • The reason is kept on the expense and shown under its approval.
  • Creators: losses read −₹, not ₹-.
  • SQL step before publishing: the expense_approval_reason migration.
Version 1.81.0
27 October 2026
Signed-in teams

Creators: shipping, part payments, client billing and reports

Creators → Collaborations now follows a creator from products sent to the live post, records every payment and extra cost, works out what to bill the client, and downloads reports.

  • Each collaboration has dispatch and delivery dates with courier and tracking, and video dates: expected, received, approved and posted. The stage follows the dates, and a video past its expected date shows as late.
  • A live Reel or post link plus views, likes, comments, shares and saves typed in from the post, with the engagement rate worked out.
  • Quoted price next to the final agreed fee.
  • Part payments: an advance now and the balance later, each with date, who paid (company bank, a person who is owed it back, or the client directly), method, recipient, the UPI ID or account it went to, and the reference. The balance left is shown on every row.
  • A payment or cost that is already in Pulse as an expense — for example a row brought in from the Company Tally — can be linked instead of added again, so the same money is never counted twice.
  • Extra costs per creator: shipping, products and anything else, each marked as billed to the client or not.
  • Who pays the creator: Colladome, or the client directly. Client-paid amounts are kept for the record and never reach expenses or burn.
  • Chargeable to the client = fee plus billable costs plus the markup (20% unless changed per creator). A Campaigns view (brand and month) shows chargeable, the invoice, received, pending, cost, spent, margin and cash profit, with a Billing form for the invoice and money received.
  • Documents: creator invoices, payment and shipping receipts on each collaboration; the client invoice and payment proof on each campaign.
  • Filters for client, campaign, creator, month range, stage and payment status. Reports: an Excel workbook (creator-wise, payment records, expense summary, campaigns with billing and profit) for the rows on screen, and a client PDF for one campaign that shows the work, links and results — with or without the amount, and never cost or margin.
  • SQL step before publishing: the creator_campaign_finance migration.
Version 1.80.1
27 October 2026
Signed-in teams

Office Admin role

Running the office needed HR Admin, which also opens people, leave and salaries. There is now an Office Admin role for it alone.

  • HR Admin → Access → Roles management has an Office Admin checkbox. An Office Admin approves, buys and receives office requests, sets the office budget and keeps the petty cash, with no other admin access.
  • HR admins, admins and super admins can still run the Office as before.
  • SQL step before publishing: the office_admin_role migration.
Version 1.80.0
27 October 2026
Signed-in teams

Office: requests against a budget, and petty cash

What the office needs and the cash spent on it were kept in a spreadsheet, so nobody could see what had been asked for, what was approved, what the budget had left, or which cash spends were company costs. People → Office now holds all of it.

  • Anyone can ask for something the office needs — something to buy, a repair or a service — with a quantity, a rough cost and a date it is needed by, and follow it until it arrives.
  • HR admins and admins approve or reject (with a reason the person sees), mark it bought and mark it received. Waiting, To buy, Bought, Received and Closed views have counts.
  • An office budget shows what is left: what bought items cost, what approved items are expected to cost, what is still waiting, and how many requests have no estimate yet.
  • Mark bought asks how it was paid. From petty cash, it becomes a petty cash spend. Paid by a person, it becomes an expense owed back to them. Through the company account, no expense is added there, because the bank line is classified in Finance and would otherwise count twice.
  • Petty cash: cash handed over, each spend, cash returned, and the cash in hand after every entry. An office spend is added to expenses as a company cost paid in cash, approved at once when finance or an admin records it. A spend marked personal lowers the cash in hand but is never a company cost.
  • An expense made from the office is changed in Finance; the request or petty cash entry keeps its link to it.
  • SQL step before publishing: the office_requests_petty_cash migration.
Version 1.79.1
26 October 2026
Signed-in teams

Content Calendar: Unscheduled counts match, blog posts are one pillar in Insights

Two small corrections after 1.79.0.

  • Unscheduled on the calendar now leaves out published posts with no date, so it shows the same count as the list's Unscheduled view.
  • In Insights, blog posts count as one Blog pillar instead of one entry per keyword cluster.
Version 1.79.0
26 October 2026
Signed-in teams

Content Calendar: a calmer page that opens on this week

The Content Calendar showed every control at once — eleven filters, four ways to add work, two summary cards and an eighteen-column spreadsheet of every item since July — so the first post sat below the fold and this week's work was hard to find. It now opens on this week's list and keeps the planning tools one click away.

  • Opens on the List (was Table) showing This week: anything overdue plus what is due this week and next. Quick views beside it: Overdue, In review, Unscheduled and All, each with a count.
  • One search box (name, code, brand, owner) and four filters: Brand, Owner, Status and Type (format, or Blog by team). Platform, Pillar, Format, Week, Audience, Tactic and Funnel sit under More filters, with a count when any is on, and Clear resets everything.
  • The list has six columns — date, name, brand, type, owner, status. Date, owner and status are edited in the row; click a name to edit everything else. Caption, platforms, pillar, audience, tactic, funnel and layers can be switched on under Columns, and the date and name stay in view when the list scrolls sideways.
  • Late items show their date in red. Items with only a code read Untitled.
  • One New menu: content item, add many, import blog plan. Describing a post in a sentence now happens at the top of the New content item panel.
  • Workload and Balance moved into an Insights panel. Workload now counts each owner's open items that are overdue or due by the end of next week, with the overdue part shown; a badge on Insights says how many balance warnings there are.
  • The digest reminder is a dot on the Digest button instead of a banner.
  • Calendar chips are light, with the brand's colour on the left edge, a status dot, the owner's initials and the type; published posts are faded. Colladome's own name is no longer repeated on every chip. Unscheduled opens from a button instead of taking a column.
  • The edit panel is split into Basics, Content, Strategy and Results. Results opens once an item is published.
  • Designer is now Owner everywhere: blog stages are owned by writers and SEO people too.
Version 1.78.0
26 October 2026
Signed-in teams

Content Calendar: blog posts, a daily digest and content due this week

The blog plan — keywords, who writes each post, draft and live links — lived only in a spreadsheet, so none of it showed in Pulse next to the rest of the content work. Blog posts are now content items in the Content Calendar, with their own workflow, and a content editor can send a daily digest of what goes live.

  • Two blog workflows: posts written by the Colladome team go Content → Design → SEO → Deploy → Publish; posts written with Scalnex skip Design. The draft is reviewed after Content and again after SEO. Each stage has its own owner, so a stuck post shows on that person's Dashboard like any task.
  • A blog post carries who writes it, its keyword cluster, supporting keywords, keyword difficulty, a draft link, a live link and an Indexed tick. Its title is the primary keyword until the post has its real title, and its search intent is the funnel stage.
  • New Team filter (Blog · Colladome, Blog · Scalnex, or social posts). In the table a blog post shows its draft and live links in place of a caption, and its cluster, team, stage and Indexed in the Pillar column. Calendar chips say Blog and the stage.
  • Colladome's own blog posts sit on the website project, so their hours count there; a client's blog post sits on that client's project. They need no pillar.
  • Daily digest: a Daily digest button drafts today's update from the calendar — going live today, the rest of the week, overdue, what went live since the last working day and what waits for review. A Content Calendar Admin edits it and sends it by email to the content team, super admins and the owners of the posts in it. Until it has gone out, the calendar and the Dashboard remind them, Monday to Saturday.
  • Dashboard: a Content due this week card — every post for Content Calendar Admins, your own posts for everyone else.
  • The Content Calendar now reads its items in batches, so a long plan does not make one request too long.
  • Import blog plan: copy a blog plan tab from Google Sheets (with its header row) and paste it in. Each row becomes a blog post at the stage its Status says, for Colladome's own blog or a client's. Rows already in Pulse are skipped, so pasting the sheet again only adds new rows.
  • SQL step before publishing: the blog_content migration.
Version 1.77.0
23 October 2026
Signed-in teams

Creators: collaborations, next steps and payments that count in burn

Paid creator work was tracked in a spreadsheet, so creator fees never reached a project's burn and the next step for each creator lived in someone's head. Creators now has a Collaborations tab for it.

  • Creators → Collaborations: creator, brand project, month, deliverable, fee, products sent, delivery address, stage (Agreed → Products sent → Video received → Posted, or Cancelled), video received date, post link and a next step with a due date and an owner.
  • Totals for fees committed but not paid, fees paid, paid this month, and next steps due today or overdue.
  • Record payment writes a Marketing / Advertising expense on the brand's project, so it counts in that project's burn. Finance and admins' payments are approved at once; others wait in Finance review. Paid from someone's own pocket, it is owed back to them like any other expense. A paid collaboration keeps its fee and project; change those on the expense.
  • A project's burn also shows creator fees committed but not yet paid.
  • Creator applications have an Approved status between Shortlisted and Booked.
  • SQL step before publishing: the creator_collaborations migration.
Version 1.76.3
22 October 2026
Signed-in teams

Tasks: Department and All load faster

The Department view loaded every task in the company and then threw most of them away, and All read its tasks one batch after another. Both took several seconds or more.

  • Department asks only for the department's tasks (plus workflow items that belong to it), about six times less work.
  • All and the other views read their batches of tasks at the same time instead of one after another.
  • Nothing about who sees which tasks changes. No SQL step.
Version 1.76.2
22 October 2026
Signed-in teams

HR admins and department heads see every client, project and department

HR admins and department heads could add and edit clients, but their Clients and Projects pages only listed work they personally had tasks on — so a client they had just added disappeared. On Tasks they had no Department view, and the department list was missing Admin.

  • Everyone who can add or edit clients and projects (admins, Project Managers, HR admins, department heads) now sees all of them, under Clients and Projects rather than My Clients and My Projects. Invoices and finance figures stay with finance.
  • Tasks → Department is open to HR admins. The department list now comes from people's profiles, so it includes Admin, and Tech Development shows its tasks (the old "Tech" option matched nobody).
  • Tasks → Overview opens on your own department if you are an HR admin, department head or reporting manager. Reset or change the filter to see the rest.
  • New clients record who added them. No SQL step.
Version 1.76.1
22 October 2026
Signed-in teams

Task overview: open work leaves out missed recurring copies

The overview opened on months-old copies of daily and weekly tasks that were never closed, and counted them in To Do. They now appear only under Missed recurring.

  • All open, To Do, Ongoing, In Review and On Hold no longer include missed copies of recurring tasks. The Missed recurring tile and filter still list them.
  • Today's and upcoming recurring copies are unchanged. No SQL step.
Version 1.76.0
22 October 2026
Signed-in teams

Tasks: one overview of every task

Management had to open each person's task list to see who was doing what. Tasks → Overview puts every task you are allowed to see in one table, with who has it, who assigned it, when it is due, the time logged against it and when it was finished.

  • Tasks → Overview: employee, project, task, assigned by, assigned and due dates, estimated hours, hours logged at punch-out, department, reporting manager, priority, status and completion date.
  • Counts for To Do, Ongoing, In Review, On Hold, Overdue, Due in 2 days, Missed recurring and Done. Click one to filter the table.
  • Filter by employee, project, department, manager, status, priority and a date range (assigned, due or completed). One search box finds an employee, a project or a task title. Sort by employee, assigned date, due date, status or completion date. 50 rows a page; Export downloads everything that matches as a spreadsheet.
  • Overdue tasks are red and tasks due within two days are amber. Missed copies of daily or weekly recurring tasks are counted on their own instead of being mixed into Overdue.
  • Clicking a row opens the task with its details, activity and a new Time logged list. The table refreshes every minute.
  • Who sees what follows existing access: admins see every task, managers and department heads see their people's, everyone else sees their own. A new Director role (HR Admin → Access & Roles) sees every task, project and time log without admin powers.
  • Tasks now record when they were completed; past tasks were dated from their history.
  • New task asks for estimated hours (workflow deliverables excepted).
  • Fixed: Kanban and List on the All tab showed only the first 1,000 tasks.
  • SQL step before publishing: the task_overview migration.
Version 1.75.3
22 October 2026
Everyone

Careers form: fewer applicants lost at step 2

Many applicants stopped at the second step of the careers form. A LinkedIn link was required and had to start with https://, and on phones a page reload while choosing a resume wiped everything typed so far.

  • LinkedIn is optional. A link typed as linkedin.com/in/name, or a portfolio link without https://, is completed automatically instead of being rejected.
  • The resume uploads as soon as it is chosen and shows as uploaded. Submitting no longer uploads it a second time.
  • An unfinished application is kept on the applicant's own device for a week, so a reload or a closed tab brings back the same step, answers and resume.
  • No SQL step.
Version 1.75.2
21 October 2026
Everyone

Pickers inside forms scroll again

The project list in New task loaded every project but only the first few could be reached: the list would not scroll with the mouse wheel or a finger while the form was open, so the rest looked missing unless you typed a search.

  • New task: the project list scrolls, so every project you can see is there to pick.
  • The same fix applies to every searchable list opened from inside a form: people, vendors, expenses and other pickers.
  • Nothing changes about who can see which projects. No SQL step.
Version 1.75.1
19 October 2026
Administrators

GST: credit notes import with their credit

The input credit importer read a credit or debit note's availability from the wrong column of the GSTR-2B, so a note the portal allows could come in with no credit.

  • Credit and debit notes pasted from the B2B-CDNR sheet now take their availability from the portal's ITC availability column.
  • Invoices from the B2B sheet were read correctly and are unchanged. No SQL step.
Version 1.75.0
19 October 2026
Administrators

GST: input credit register

The GST tab showed input credit only where an expense in Pulse carried it, which was a fraction of what each return actually claimed. The register lists every purchase document in the GSTR-2B, where the purchase came from, and the Pulse expense behind it, so the gap is visible line by line.

  • Finance → GST → Input credit register: by month, the credit in the GSTR-2B, what the return claimed, what is on Pulse expenses, and what is not on Pulse.
  • By source: vendor paid from the company bank, paid personally by a director, deducted from a client remittance, personal (to be reversed with the CA), not in Pulse yet, or unclassified. Click a source to see its documents.
  • Each document can be re-tagged and linked to a Pulse expense. A linked expense with no input credit recorded is pointed out.
  • Import a GSTR-2B month by pasting the rows of its B2B and B2B-CDNR sheets. Credit notes reduce credit; documents the portal marks unavailable carry none. Re-importing a month leaves documents already in the register alone.
  • Nothing in the register changes what Pulse says is owed.
  • SQL step before publishing: the gst_itc_register migration.
Version 1.74.0
18 October 2026
Administrators

Forecast: project revenue counts, not just retainers

The months ahead only counted assured retainers and the pipeline, so they ran at a loss even when the real months did not. Project and one-off revenue now has its own line, carried forward from what actually came in.

  • A new Project revenue line in the months ahead: what clients paid beyond their assured lines, with the project costs that came with it, carried forward as the median of the last six complete months.
  • Only money above a client's assured revenue counts, and only project spend above its typed direct cost, so a retainer is never counted twice, even when it is invoiced under another of the client's projects.
  • Projects an open pipeline row points at are left out and named, so setting that row's odds cannot double them.
  • A month-by-month table shows what the median is made of and which client the most of it came from.
  • A switch shows the months on the assured base alone. No SQL step.
Version 1.73.0
15 October 2026
Administrators

Forecast: ROI by client, not just by project

A client's retainer usually sits on one Pulse project while the team logs time on that client's other projects, so the retainer's own row looked far better than it was. The ROI table now groups a client's projects together.

  • One line per client with more than one project: assured revenue, direct cost, both salary bases, margin and the fix in words, all added up across its projects. The projects stay listed underneath, still editable.
  • The client's target is the target set on its largest assured line.
  • Clients with a single project look exactly as before. No SQL step.
Version 1.72.1
15 October 2026
Administrators

Forecast: salary rows add back up to payroll

The Project ROI table only lists active client projects, so salary mapped to internal, on-hold or completed projects was invisible and the rows did not add up to the payroll in the tiles.

  • A line under the projects shows salary on internal, on-hold or completed projects, next to the salary on no project at all.
  • A note explains that each Pulse project is its own row — time logged under a sibling project of the same client does not count against the AMC row.
  • No SQL step.
Version 1.72.0
15 October 2026
Administrators

Finance: Forecast — project ROI, planned hires and the sales target

One screen that answers three questions: which recurring projects earn their keep, whether the company can afford the people it wants to hire, and how much new monthly revenue sales has to bring in. Everything is read from the books since April; only four small tables are typed.

  • Project ROI: for every active client project, the assured monthly revenue and direct monthly cost you set, the salary it carries on two bases side by side (the monthly mapping the P&L uses, and hours logged × salary rate), the margin on each, and a target margin per project. Under target shows red with the fix in plain words — bill this much more, or cut this much cost.
  • Next months, by month: assured revenue plus pipeline weighted by probability from its start month; current payroll; planned hires from the month they start; direct costs; overheads. NET before and after the planned hires, and the sales target at break-even and at the company target margin.
  • Planned hires: role, department, monthly cost, start month. Mark Hired once the person is on payroll so they are not counted twice.
  • Pipeline: prospects with a monthly value, odds and expected start. Won or Lost drop out of the forecast.
  • Overheads: company- and department-wide spend by category, averaged over the complete months since April; type a budget to override any line.
  • Finance, finance admins, admins and super admins. SQL step before publishing: the forecast migration (five small tables).
Version 1.71.0
15 October 2026
Administrators

Hiring: On hold and Good for external client buckets

Two more places to put a candidate who is neither moving forward nor out. Both work like Future: internal only, a note is required, the candidate is not emailed.

  • On hold — paused for a reason (budget, timing, waiting on someone). The note says why and what would move them on.
  • Good for external client — not a fit for Colladome, but worth placing with a client. The note says which client or kind of role they would suit.
  • Both are stage tiles at the top of Candidates, with counts, and appear in the stage dropdown on every candidate still in play. Moving someone back to Shortlisted from either bucket does not email them again.
  • SQL step before publishing: the hiring_hold_external migration (allows the two new statuses).
Version 1.70.0
15 October 2026
Signed-in teams

Split a recorded expense across projects; leave moves under Attendance

Two things people kept asking for. An expense that was booked against one project can now be split into several without deleting and re-entering it. And requesting leave now lives where attendance is, with a working link from everywhere that pointed at it.

  • Expenses: open any expense that is not already part of a split, choose Split into projects, and give each project its amount. Saving keeps the original entry for the first row and adds one entry per further project, all tied together as one split. GST credit and TDS follow each project’s share.
  • If a bank payment was already matched to that expense, the match is shared out in the same proportion, so nothing shows as unpaid after the split.
  • Attendance has a Leave tab: balances, Request leave, and your requests. Request leave from the dashboard, the team calendar and the old Leave page all land there — the calendar’s button used to open Punch in/out instead.
  • The leave form asks for From and To (To fills itself for a single day), says the request has gone to your manager, and the sidebar highlights Attendance rather than Team while you are on it.
  • No SQL step.
Version 1.69.0
14 October 2026
Signed-in teams

Emails that fail are retried, not lost

The mail provider answers bursts of sends with errors — a few a day for going over its rate, and now and then a run of refusals that lasts a few minutes. Until now each of those emails was logged as failed and never sent. Pulse now keeps them and tries again.

  • An email the provider refuses for a temporary reason (busy, rate-limited, unreachable) waits in a queue and is retried on a clock: after 10 minutes, then 20, 40, 80 and 160. Only after all of those does it count as failed.
  • Sends are spaced out — a little over a second apart — so a batch of reminders no longer trips the provider's limit in the first place. A rate-limit answer goes straight to the queue instead of being tried again at once.
  • Emails that carry a one-time password (new logins, portal invites, onboarding) are never stored in the queue; they fail or deliver on the spot, as before.
  • The amber bar at the top now tells the two cases apart: “running late” while emails are queued and on their way, “may not be going out” only when sends are failing for good.
  • A waiting email shows as Queued in the delivery log and becomes Sent or Failed when the retries finish, so one email is one row.
  • SQL step before publishing: the email_retry_queue migration (new email_outbox table, and Queued allowed as a delivery status).
Version 1.68.0
14 October 2026
Signed-in teams

Content Calendar: move many dates at once

When a run of posts is paused and restarted, every date after the pause has to change. Until now that meant dragging cards one by one. The bulk bar can now move the selected items together.

  • Select rows in the table, then Move dates… → Shift by days moves every selected item by the same number of days (negative moves earlier). Sundays and company offs roll to the next open day unless you untick it.
  • Re-flow from a date lays the selected items out again from a start date using the posting pattern — so many a weekday, so many on Saturday, none on Sunday by default — keeping their current order and skipping company offs. The preview line says where the first and last item land before anything is saved.
  • Undated items stay undated on a shift; on a re-flow they take the slots after the dated ones.
  • No SQL step.
Version 1.67.1
14 October 2026
Administrators

P&L: an approved salary month costs exactly what the sheet approved

People who had left but still logged a few hours in a month were costed at their full configured salary in the P&L, even though the approved salary sheet for that month left them off. One month's burn carried several full salaries that were never paid.

  • In a month whose salary sheet is approved, a person with no line on that sheet costs nothing. Only months approved before per-employee lines existed still fall back to the configured salary.
  • No SQL step.
Version 1.67.0
13 October 2026
Administrators

Project P&L: profit after overhead adds up, collections count when the money arrives, and TDS is a credit

NET after overhead only spread the company's own projects over the paying clients; work on client projects that had not paid yet was left out, so the paying clients' profit added up to far more than the company made. Collections were counted in the month an invoice was raised, whenever the money came. And the cash tile subtracted the TDS clients withheld as if it were a bill.

  • Overhead now pools the company's own projects AND client projects with nothing collected in the period, and spreads the whole pool over the projects that did collect. The NET after overhead column adds up to the company's NET, and the total row shows that figure. Pooled rows say why: internal, or not billed yet.
  • Whether a project is internal is a checkbox on the project (Projects → Edit), set once from the old name rule. Renaming a project no longer changes the P&L.
  • Collected is by receipt date. An invoice raised in one month and paid in the next counts in the month the money arrived. Invoiced stays by invoice date; 'not yet received' is what is still owed on the period's invoices.
  • Collections → Record payment asks for the date the money arrived. Zoho sync brings each invoice's payment dates across, on import and on update. Money recorded before this release keeps its old date (the invoice date) until a sync or a recorded payment gives it a real one.
  • The tax tile shows GST on money collected and TDS withheld by clients as the tax credit it is. Cash impact is NET less that GST; TDS is no longer subtracted.
  • SQL step to run before publishing: it adds the internal flag to projects.
Version 1.66.0
8 October 2026
Signed-in teams

Content Calendar: results on each post, a goal for every pillar, and no half-planned items in review

The calendar showed what was planned but not how it did, pillars did not say what a post was for, and items reached In review still named after their content code with no date or funnel stage. Posts now carry their numbers, every pillar belongs to one of four goals, and an item has to be properly planned before it moves forward.

  • Edit all fields → Results (shown once an item is Published): reach, saves, shares, comments and the one number its goal is judged on.
  • Every pillar belongs to a goal: Authority (judged on saves and shares), Leads (enquiries), Proof (profile visits or link clicks) or Hiring (applications). The goal and its measure show in the Results box.
  • New pillars: Case Studies (Proof), Company Culture and Job Post (Hiring). Each gets its own project the first time it is picked, like the existing pillars.
  • Balance card: a Goal row next to Pillar, and a warning when a goal has no post among eight or more shown.
  • Moving an item to In review, Ready to publish or Published now needs a real name (not just the content code), a post date, a funnel stage and, for Colladome's own posts, a pillar. Items already at those statuses can still be edited as before.
  • SQL step to run before publishing.
Version 1.65.0
6 October 2026
Signed-in teams

Signals: real leads now open in the Lead Portal CRM as deals

Real Signals leads were sent to the Lead Portal CRM as leads, where they waited for the qualification bot before the sales team saw them. A person who has filled in the website form and been checked by BD is already qualified, so that step only delayed them.

  • A website entry marked Real, a real lead added by hand, or a lead sent with Send to CRM now opens straight in the CRM's sales funnel as a deal, in the lead bank until a rep picks it up. A contact the CRM already has gets the deal added to it.
  • What the person wrote, the page they were on and the entry number travel in the deal's notes, so the rep's briefing has them.
  • No SQL step and no new secret: the same CRM key is used.
Version 1.64.0
6 October 2026
Administrators

Bank statements keep the right date, and vendors carry their PAN and TDS settings

Statements that print dates like 07-Jul-2026 were saved one day early, which can push a payment on the 1st of a month into the previous month. Vendors had no place for a PAN, TDS rate or challan head, so new bills picked up a default rate and the challan head could only be set by hand in the database.

  • Bank import reads dates such as 07-Jul-2026, 7 Jul 2026 and 07/Jul/26 exactly as printed.
  • Re-importing a statement that overlaps rows saved one day early does not add those rows a second time.
  • Vendors → Edit vendor: PAN, TDS rate and TDS challan head (Company or Non-company; Automatic reads it from the PAN). New bills for the vendor start at that rate, and Finance → TDS splits its deductions by that head.
  • No SQL step.
Version 1.62.0
6 October 2026
Administrators

TDS is counted in the month the vendor was paid, split Company / Non-company like the challans

Pulse dated TDS by the month the work was done. TDS is deducted when a vendor is paid, and challans and returns go by that month and by company / non-company. So Pulse's monthly figures never matched the challans actually paid, challans were matched to the wrong rows, and paid months showed as owed.

  • Finance → TDS: TDS now counts in the month the bill was paid (the first bank payment mapped to it, or the expense date when someone paid it personally). A bill that is not paid yet shows no TDS until it is.
  • New table: deducted, deposited and still to deposit for each month, split Company (0020) and Non-company (0021), so it can be read next to the challans.
  • Open TDS rows show Co or Non-Co, and rows entered by hand show why they exist.
  • Each vendor can be marked company or non-company for TDS. Unmarked vendors are read from the PAN, then the name.
  • This financial year's challans were re-matched month by month to what was filed, and entries for deleted expenses were removed.
  • SQL step to run before publishing.
Version 1.61.0
6 October 2026
Signed-in teams

Content Calendar: week view by the hour, designer on every card, a brand per row, Drive videos that play, and reminders before a post goes out

Posts could be dragged between days but not between times, a card did not say who was designing it, Add many took one brand per batch, long videos on Drive could only be opened in another tab, and nobody was told when a post due tomorrow was still in design.

  • Calendar → Week: one column per day and one row per hour. Drag a post to another day and hour to change both at once; drop it in Any time to keep the day and clear the time. Pulse remembers whether you last used Month or Week.
  • Every card shows the designer's initials. Hover them to see the full name.
  • Add many has a Brand column, so one paste can mix your own posts and several clients. A blank Brand uses the one chosen above the grid; a name that matches no brand is marked so it can be picked.
  • Opening a card plays a Google Drive video, or shows a Drive image or PDF, when the design link or a reference link is a Drive file. Uploads into Pulse stay at 25 MB; longer reels play from Drive.
  • Reminders: each working morning, posts dated today, tomorrow or the day after that are not Ready to publish are sent to their designer, and the full list to content editors, in Pulse and by email. It stops for a post once it is ready, published or on hold. Turn it off in Notification Preferences (Posts going out soon).
  • Three older posts that had swapped codes between workflow stages now each keep one code.
  • SQL step to run before publishing (adds the reminder to Notification Preferences).
Version 1.60.0
6 October 2026
Signed-in teams

Review several tasks at once, quick add for content, and creating a task at punch-out is easier to find

Reviewers with a pile of tasks had to open, rate and approve each one separately. Content had to be entered field by field. Creating a task while punching out was possible, but hidden in a small link.

  • Dashboard → Waiting for your review: Review together opens every task waiting on you in one window. Tick the ones you are approving, give each a star rating and an optional note, then Save & approve. Each task moves to its next stage exactly as if approved on its own.
  • Stages that branch (where you pick where the work goes next) are shown but left for their own review screen. If the last stage needs a deadline, the window asks for it.
  • Content Calendar: Quick add. Type one line such as "Instagram reel for a client on a product, Friday 7 PM" and press Fill the form. AI fills brand, platform, format, date, time and topic into the New content item form. Nothing is saved until you check it and press Create.
  • Punch out: Create a new task and log hours on it is now a button, next to Add another task. The new task is added to the log straight away.
Version 1.59.0
6 October 2026
Signed-in teams

Content Calendar: brands, publishing time, richer cards, drag to reschedule, photos and videos, and adding many posts at once

The calendar was built around one brand and a post date. Teams posting for clients could not separate brands, cards showed only a code and a title, rescheduling meant typing a date, media lived only behind links, and every post needed its own form.

  • Brand: every item has a brand. Colladome's own posts stay on their pillar as before. A client's post is put on that client's project, so its hours and cost go to the client. Filter by Brand at the top; the brand shows on each card and in the table.
  • Publishing time: set a time as well as a date (form, table, Add many). Posts are ordered by time within a day.
  • Cards show time, title, brand, format and platforms. Opening a card shows the caption, photos and videos, the design link, and Edit.
  • Drag a card to another day to reschedule it, or onto Unscheduled to take it off the calendar. Unscheduled items can be dragged onto a day.
  • Photos and videos: add them from a card or the edit form, up to 25 MB each. They preview in place and are private to people who can see the task. Longer reels stay as a Drive link.
  • Add many: type or paste rows from Excel or Google Sheets (Date, Time, Title, Caption, Format, Platforms, Pillar, Designer, Status) and create them all in one go. Rows that fail are kept, marked red, and can be saved again.
  • Table: Name and Caption can be edited in the table, and there are Time and Brand columns.
  • SQL step to run before publishing (adds the publishing-time column).
Version 1.58.0
6 October 2026
Signed-in teams

Content Calendar polish, and adding a festival no longer creates a day off

Older content items could not be saved from the edit window, a tactic or funnel stage could not be removed once set, and the new planning columns were squeezed. Separately, Add festival on the festive calendar saved every new date as a company holiday, which took a working day out of attendance and payroll.

  • Content Calendar: older items now save from the edit window. Pillar and designer are only required when creating an item; leaving them empty on edit keeps what the item already has, and the item stays on its current project.
  • Content Calendar: Tactic, Funnel and Audience have a Clear option, in the table, the edit window and the bulk bar.
  • Content Calendar: the table keeps every column readable and scrolls sideways instead of squeezing them.
  • Content Calendar: older items titled with their code now show that code in the ID column (one-off SQL step). Titles are not changed, and a code already used by another item is left for a person to sort out.
  • Festive calendar: Add festival is now Add special day, with type, region, a short description, whether it needs a graphic and how many days ahead the brief is due. New days are working days. Only HR or a super admin can tick Company off; anyone else cannot change it, and editing keeps what it was.
  • SQL step to run before publishing (copies code-shaped titles into the ID field).
Version 1.57.0
6 October 2026
Signed-in teams

Signals: real leads go to the Lead Portal CRM on their own

Website entries marked Real stayed in Signals, while the sales team works deals in the Lead Portal CRM. Every real lead had to be copied across by hand, or was never copied at all.

  • Marking a website entry Real now also sends it to the Lead Portal CRM, once. The CRM cleans it, checks it against leads it already has and assigns it. Junk and unreviewed entries are never sent.
  • A lead added by hand as real is sent the same way.
  • Lead cards show an In CRM badge once a lead is there. Leads that became real before this release, or whose send failed, have a Send to CRM button; if the CRM refused one, hover the button to see why.
  • A lead needs a phone number or an email address to go to the CRM.
  • SQL step required before publishing (three columns on signals), and the CRM key has to be added as a Cloud secret.
Version 1.56.0
5 October 2026
Everyone

A forgotten punch-out is recorded as a 9-hour day, not 24 hours

A session kept running until someone punched out, so forgetting until the next morning recorded a 24-hour day. Those hours were never worked, yet they showed as unallocated time on the timesheet and as salary with no project on the Project P&L.

  • Punch out: if you punched in more than 12 hours ago and never punched out, the session is recorded as 9 hours from your punch-in. The punch-out window tells you this before you confirm.
  • You can still type the time you actually stopped in Punch-out date & time. A session entered by hand can be 16 hours at most.
  • Past sessions are not changed. Existing 24-hour days stay as they are unless Finance corrects them.
Version 1.55.0
5 October 2026
Everyone

Punching out now needs hours logged against a task

People could punch out with Skip for now, leaving the day's hours against no project. Those hours cannot be costed to anything, so their salary showed as Unassigned on the Project P&L.

  • Punch out: Skip for now is gone for anyone who has at least one task. Add at least one task with hours to punch out. Internal work counts, as long as the task sits on a project such as Learning or Business Development.
  • If you have no tasks at all, you can still punch out without logging, so nobody is stuck. Ask your manager for a task, or use Add another task.
  • Finance: expect the Unassigned salary row on the Project P&L to shrink from this point on. Past days are not changed.
Version 1.54.0
5 October 2026
Administrators

Content Calendar: one item stays one row all the way through its workflow

When a content item moved to its next workflow stage — design to review, say — the new stage started blank: no code, no post date, no captions, no platforms. The calendar therefore showed the item twice, the old stage on its date and the new one unscheduled under Planning, and the post date stopped driving later deadlines. The Balance card would have counted it twice as well.

  • A stage hand-off now carries everything the calendar owns onto the new stage: code, post date, pillar, format, both captions, graphic guide, website link, reference links, platforms and the five strategy layers. The stage's own fields — assignee, reviewer, deadline — are still set fresh, and a deadline taken from the post date now works at every hand-off, not only the first.
  • The calendar's own states (In design, In review, Ready to publish, On hold) survive a hand-off; the generic task states start over at Planning as before.
  • A content code is unique per item rather than per row, so the stage rows of one item share it. A code still cannot be reused by a different item; the error names the code.
  • Table and calendar collapse to one row per item — the workflow run plus its code — whatever each stage row is called. Items that had already split show as one again after the SQL step, which copies the fields forward on existing rows.
  • SQL step required before publishing (run after the 1.53.0 step).
Version 1.53.0
5 October 2026
Administrators

Content Calendar: plan each post as a stack of decisions, and see whether the month is balanced

A content item carried a title, a date, a pillar, a format and two captions — what the post is, but not who it is for, what question it answers, why it should work or what it asks the viewer to do. Those decisions lived in people's heads, so a month could go out with ten awareness posts and no ask, or the same audience addressed five times and another never, and nothing showed it.

  • Every content item has five strategy layers alongside its pillar: Audience (who it is for), Hook / angle (the question or claim it opens with), Psychology tactic (social proof, authority, curiosity gap, reciprocity, urgency, storytelling, education, pattern interrupt, identity), Funnel stage (top — reach new people; middle — build trust; bottom — ask for action) and Call to action. They are in the create and edit sheet under “Strategy layers”, with a count of how many are filled.
  • Audience is free text, with suggestions drawn from what has already been written, so spelling settles over time without anyone maintaining a list.
  • The table has Audience, Tactic and Funnel columns that can be edited in place, a Layers column of five dots (hover shows the hook and CTA), and three new filters. Bulk actions can set funnel stage, tactic or audience on every selected row.
  • A Balance card above the table and the month grid counts the items shown by funnel stage, audience, tactic and pillar — the whole filtered list in table view, the month on screen in calendar view — and flags a missing funnel stage, a tactic carrying more than half the posts, a single audience, and items with no layers at all.
  • Nothing changes for items already on the calendar: the new fields are empty until someone fills them, and the dots show which ones still need it.
  • SQL step required before publishing (five columns on tasks).
Version 1.52.1
5 October 2026
Administrators

Project P&L now reads every logged hour when it shares out salary

The Project P&L read only the first 1,000 punch records, and there are now more than 1,300. Months costed from logged hours therefore put salary on the wrong projects and left too much under Unassigned, and did not match the Salary tab.

  • Finance → Project P&L: salary for months that are shared out by logged hours (any month without an approved manual mapping) is now worked out from all punch records. Expect the Unassigned row to shrink and project salary to move for August onwards.
  • Months with an approved manual salary mapping are unchanged. Company totals for approved months are unchanged; only which project carries the salary moves.
Version 1.52.0
5 October 2026
Administrators

Project P&L shows vendor payments on their own, a total line, and less unassigned salary

Each project's burn was shown as expenses and salary, so what was paid to vendors could not be read off without opening the project. And the table had no bottom line, so the columns could not be checked against the tiles above.

  • Finance → Project P&L: under each project's Total BURN the first line now reads vendors · other expenses · salary. Vendor payments are every cost in the Vendor Payment category charged to that project.
  • A Total row at the foot of the table adds up Invoiced, Collected, Total BURN (with the same vendors · other expenses · salary split), NET, GST and TDS for the rows shown. With nothing typed in the search box it equals the tiles at the top.
  • The export has two new columns, Vendor payments and Other expenses.
  • Salary with no project is smaller. Where a person logged some hours on projects and some on nothing, the whole month's salary is now shared over the projects they did log, in the same proportions. Only someone with no project hours at all in the month is left under Unassigned. Months with an approved manual mapping are unchanged.
Version 1.51.0
5 October 2026
Administrators

Project profit after overhead, and client money paid to an owner now counts

Client projects showed profit before any of the company's own running cost, so every project looked healthier than the company was. Separately, when a client paid an owner personally instead of the company, the tally recorded it but the owner's current account ignored it.

  • Finance → Project P&L has a new column, “NET after overhead”. Overhead is everything charged to no client: the company's own projects (business development, hiring, learning, coordination and the like) and salary logged against no project. It is shared out over client projects in proportion to the money each one collected.
  • The after-overhead figures add up to the company's own NET. A project that has collected nothing carries no overhead and shows its own loss in full. Internal projects show “internal” in the new column. The export carries both the share and the result.
  • The existing NET column is unchanged, so both readings are side by side.
  • Monthly and yearly current accounts have a new column, “Client money received”. A Company Tally row typed “Other business receipt” is money a client paid to the owner personally; it now counts against them like a withdrawal. No extra entry is needed — it is read from the tally import.
  • The current account is now opening due + approved personal expenses − bank withdrawals + money returned − client money received personally. Months already closed keep their signed-off figures until reopened.
  • SQL step required before publishing.
Version 1.50.0
5 October 2026
Administrators

Part-refunded charges show their real cost, and last year's bills stay out of this year's burn

Two kinds of expense were overstating burn. A card charge that was mostly refunded stayed in the books at its full amount while the refunds were logged and ignored. And a bill for work done before April, paid after April, was counted as this year's company-wide cost and spread across every project.

  • Finance → Shubham Tally: when a refund row names one expense in Related Entry ID and does not cancel it exactly, the expense is now reduced by the refund. A charge of 57,240 with 52,910 refunded becomes an expense of 4,330. The row shows as changed on the next paste; choose “Sheet is right — update Pulse” to bring the amount down.
  • A refund that cancels its expense exactly still creates nothing, as before. A refund that names several expenses without cancelling them is left alone, because it cannot be split without guessing.
  • New expense category “Prior period (before April 2026)”. An expense in this category is kept and still credits whoever paid it, so their current account is unchanged, but it is left out of company burn, the P&L, “Where the burn went” and every project's share.
  • Company Tally rows whose Expense Category reads “Prior period …” import into that category, and rows marked Bank Interest / Finance Charges now land in that category instead of Other. Rows already imported under Other will show as changed once; accept the sheet to correct them.
  • The “Money returned to the company” dialog no longer runs off the right-hand edge on a long bank narration.
  • SQL step required before publishing.
Version 1.49.0
5 October 2026
Administrators

Money an owner pays back into the company now counts against what they took

An owner on a monthly current account sometimes takes money out and puts some or all of it back. Pulse could record the money going out but had nowhere to put the money coming back, so the receipt sat unmapped and the month showed the owner as having taken more than they really did.

  • Finance → Bank Reconciliation: an unmapped receipt now has a “Returned by owner” button. Choose the person and the receipt is linked to their monthly current account, the same ledger their withdrawals go to.
  • The monthly current account is now opening due + approved personal expenses − bank withdrawals + money returned. Take out 65,000 and return 65,000 the same day and the month is unchanged; return a further 25,000 and that month's withdrawals are 25,000 lower.
  • If somebody pays back more than they took in the month, the difference is carried forward as owed to them, exactly as unreimbursed spend is.
  • The monthly and yearly current-account tables have a new “Returned to company” column, so withdrawals stay the gross figure that matches the bank and the returns are visible beside them. Closing a month snapshots the returns with everything else.
  • A returned receipt can be unmapped like a withdrawal. A closed month must be reopened first.
  • Use this only for the person's own money coming back. A client payment collected through somebody's account is still a collection.
  • Finance → Shubham Tally: a paste that holds only withdrawals or receipts can now be imported. The import button used to stay grey unless at least one expense was in the paste, so a lone withdrawal could not be logged.
  • SQL step required before publishing.
Version 1.48.0
3 October 2026
Administrators

A payment made to a vendor personally can now pay their requests

When somebody pays a vendor out of their own pocket, Pulse receives it from the Company Tally as one cost on one project. The vendor's requests then say what the money was really for, often on other projects. There was no way to connect the two, so approving the requests booked the same work a second time and the vendor looked owed money they had already been given.

  • Vendors → Payment requests → Approve: “Is any of this already in the books?” now lets you tick a payment made to the vendor personally whichever project it was recorded on, and say how much of it pays this request. The payment is moved onto the request's projects, split into one cost per project line where needed, and only what it does not cover is booked as new cost.
  • A payment can be used in part. A lump of 1,00,000 can pay one request of 70,000 in full and 30,000 of the next; what is not used stays where it was, ready for another request.
  • The person who paid keeps the same credit. Every piece still carries who paid it and the day they paid, so their current account adds up to the same figure as before the split.
  • A payment that has already been reimbursed, or netted into a closed month of the payer's current account, cannot be split. It is shown but cannot be ticked — reverse that settlement first.
  • Company Tally checks understand a split. “Check for drift” adds the pieces back up and compares the total with the sheet row, so a split payment is not reported as a changed amount, and “Sheet is right — update Pulse” will not overwrite the amount or project of a payment that has been applied to requests.
  • Finance → Bank Reconciliation → Vendor / company expense: ticks are kept when you change the month. One payment that settles work from two different months can now be allocated to both in one go; costs ticked under another month are listed under “Also ticked, from other months”.
  • The approve dialog no longer runs off the right-hand edge when a recorded cost has a long title.
  • SQL step required before publishing.
Version 1.47.0
3 October 2026
Administrators

Paying a vendor now settles their request — and expenses can be searched

A vendor could raise a payment request, be paid, and still see the request as waiting. Bank Reconciliation only offered cost that Finance had recorded itself, so the payment could not be pointed at the request, and a cost somebody had paid the vendor personally was offered as if it were still owed. Requests are now settled from the bank payment, and whether one is paid is read off the money rather than typed in.

  • Finance → Bank Reconciliation → Classify payment → Vendor / company expense now lists “Payment requests waiting” above the recorded cost. Tick the request the payment is for and allocate. A request still waiting for approval is approved and booked in the same step — paying it is the approval — and its cost lands on the projects the vendor named.
  • A request shows as paid once the money covers it, by any route: a bank payment allocated to it, a whole-payment match, or the vendor having been paid personally. A part payment shows how much has been paid and how much is to go, on the Vendors page and in the vendor's own portal.
  • Amounts owed are net of TDS. A request for 1,00,000 at 2% is settled in full by a payment of 98,000; the 2,000 held back no longer sits as a balance that can never be cleared.
  • A cost somebody paid a vendor out of their own pocket counts as paid to the vendor from that day. The company still owes the person who paid, through their current account as before — but the vendor is no longer shown as owed, and Bank Reconciliation no longer offers that cost to be paid a second time.
  • Approving a request on the Vendors page now asks “Is any of this already in the books?” and lists cost already recorded for that vendor on the same project. Ticking one links it to the request instead of booking the work twice; only the remainder becomes new cost.
  • Reversing a vendor payment that was matched to recorded cost now returns that cost to unpaid. It used to delete the cost itself. Expenses created from a bank payment are still removed when that payment is unmapped, as before.
  • Finance → Expenses has a search box. Type any words in any order — a payee, a project code or name, an amount (with or without commas), a Company Tally entry number, an invoice number, a date — and the list narrows as you type. It searches the period selected at the top of Finance.
  • The Expenses list marks every cost a vendor payment was allocated to as paid from the bank, not only the first one.
  • No SQL step for this release.
Version 1.46.0
28 September 2026
Administrators

One salary rule for payroll and burn — people stop costing money after they leave

Pulse had four separate copies of the arithmetic that turns a monthly salary into a month's pay, and they disagreed. The Bank NEFT sheet stopped at a person's last working day; the Salary & burn panel ran to the end of the month regardless; project burn counted calendar days instead of working days. So someone who left mid-month was paid correctly but burned in full, and a duplicate profile that never worked a day kept adding to overhead. There is now one rule, used everywhere.

  • The rule: pay starts on the later of the joining date and the salary start date, stops on the last working day recorded at deactivation, and is pro-rated on working days (Sundays, 2nd/4th Saturdays and public holidays excluded), less unpaid leave. Once Finance approves the month, the approved figure is what burn uses.
  • Salary & burn → Salary allocation details, Total salary cost and Company overhead now show exactly what the Bank NEFT sheet pays. Before, a person deactivated on the 16th appeared at a full month in overhead while the NEFT file paid them to the 16th.
  • Project burn, the projects overview and the /project-burn page use the same rule for months not yet approved. They counted calendar days before, so a mid-month joiner's provisional cost was different on every screen.
  • The joining date now caps the start of pay. Hires made before 1.33.0 carried a salary start of the day HR clicked Hire, which could be earlier than the day the person started; those days are no longer paid or burned.
  • Data note for HR: a deactivated profile stays in payroll and burn up to the termination date entered at deactivation, by design. The dialog defaults that date to today — change it to the real last working day, because a later date adds paid days rather than removing them. To take someone out of a month entirely, the date has to be before that month starts.
  • No SQL step for this release.
Version 1.45.0
28 September 2026
Signed-in teams

Managers see who has not logged, and what is waiting on them

1.44.0 told each person which days they had not logged. Managers could see how many reports were waiting for approval, but not who on their team had gaps — the only way was to open the team timesheet and look day by day.

  • A new item on “Needs your attention” for anyone who approves activity reports: each person in your reporting scope with days not logged in the last week, worst first, the days named. Same rules as the personal item — leave, holidays, weekly offs and pre-joining days never count, and nor does today.
  • A morning digest for managers, on working days, with the same list plus the number of reports waiting for your approval. Super admins get the whole company; everyone else their direct reports. It only sends when there is something in it.
  • Both the personal reminder and the manager digest can be switched off individually in Notification Preferences.
  • SQL step required before publishing.
Version 1.44.0
28 September 2026
Everyone

Your activity reports, on the dashboard and in your inbox

Every working day, everyone is expected to log which tasks they worked on and for how long — their activity report, or AR. Managers approve their team's. Until now nothing told a person they had missed a day, and nothing told a manager how many were waiting, unless they went looking.

  • A new item at the top of “Needs your attention” on the dashboard: the working days in the last week you have not logged, each named. It goes red past three days and disappears the moment the days are filled in.
  • Days on approved leave, company holidays, weekly offs and days before you joined are never counted as missing. Today is not counted either — it is still in progress.
  • A morning reminder, in the app and by email on working days, with the same list. It only sends when there is something to send, and it stops when there is not. Switch it off in Notification Preferences if you would rather just use the dashboard.
  • For managers, the existing approvals item is renamed “Activity reports (ARs) to approve” so the two halves use the same words. It already counts only your own reporting scope.
  • SQL step required before publishing.
Version 1.43.1
28 September 2026
Administrators

Editing a personally-paid vendor expense no longer loses who paid it

A vendor payment that someone had paid out of their own pocket lost that fact the moment it was edited — moving it from Company-wide onto a project, say. The vendor form has no “paid by” control, and on save it wrote nothing back, so the reimbursement owed to the payer silently disappeared.

  • Editing a vendor payment now carries the existing payer through untouched. Who paid is only ever changed from a form that actually shows it.
  • The two Company Tally audits — drift and orphans — read their tables in full. Before, each silently stopped at a thousand rows, which is fine today and would have been wrong without warning the day the sheet outgrew it.
  • SQL step required: one record that was already affected is put back the way it was.
Version 1.43.0
28 September 2026
Administrators

A payment for something that happened before Pulse started

Pulse is kept from the start of this financial year. Payments made after that date for work done or salary earned before it are real money out of the bank, but they are not this year's cost — booking them as an expense overstates whichever month they land in. There was no way to record one except for an employee who still has a Pulse profile, so the rest sat unmapped indefinitely.

  • “Settled before Pulse started” joins the Classify payment options in Bank Reconciliation. It asks who was paid and what period it belongs to, and nothing else.
  • Both fields are free text. The person does not need a Pulse profile — a vendor, a contractor, or someone who has since left can all be recorded, which is what blocked this before.
  • It creates no expense. The payment stops showing as unmapped and keeps an auditable record of who and what for, but it never reaches project burn, company spend or any P&L figure.
  • The payee is guessed from the bank narration so the field starts filled in, and stays editable.
  • Each bank card gains a “Settled before Pulse” line, and the status filter gains a matching option, so these never hide inside the mapped total.
  • Fully reversible, with the assignment and the reversal both kept as events.
  • SQL step required before publishing this release.
Version 1.42.0
28 September 2026
Administrators

The bank import can finally tell money in from money out

Every row a statement import created was written as a payment out — the direction was never read from the file at all, and credits were thrown away. A statement covering several months carries plenty of money coming in, and all of it landed in Pulse as company spend.

  • The import now reads which way the money went, in whichever way the bank prints it: a Withdrawal and Deposit pair as ICICI and IDFC give them, or a Dr/Cr column beside a single Amount, or a minus sign on receipts.
  • Receipts are no longer discarded. A statement can be uploaded whole instead of being edited down to the payments first.
  • The preview before import now shows money out and money in separately, per bank — so a receipt sitting on the wrong side is visible before anything is written.
  • A row carrying an amount in both the withdrawal and the deposit column is held back and counted rather than guessed at, and the preview says how many.
  • Each bank card gains a “Received in” line. Unmapped debits, mapped debits and project burn continue to count only money out, so the figures you act on are unchanged.
  • Re-importing a statement that went in before this change will not duplicate anything — the duplicate check deliberately ignores direction.
  • No SQL step for this release.
Version 1.41.0
27 September 2026
Administrators

Find Company Tally expenses with no sheet row behind them

One utility bill was sitting in Pulse twice. One copy carried an entry ID that had since become a withdrawal in the sheet, and neither the conflict check nor the drift check could see it — both start from the sync table, and that row had stopped pointing at an expense.

  • A “Check for orphans” button in the Shubham Tally tab, alongside “Check for drift”. It starts from the expenses instead of the sync table, which is what the other two miss.
  • Catches three cases: the sheet row was re-typed as a withdrawal or a refund so it no longer creates an expense; the entry ID now points at a different expense and this one is a second copy; the row was deleted from the sheet entirely.
  • Lists each one with its entry ID, date, amount and the reason, largest first, and totals the money involved.
  • No fix button, deliberately — the answer is usually to delete one of two copies, and which copy is wrong is a judgement about the money rather than something the code can settle.
  • No SQL step for this release.
Version 1.40.0
27 September 2026
Administrators

Project P&L now shows where the burn actually went

The burn tile only ever said “salary X, expenses Y”. Vendor payments, servers, subscriptions and a laptop all sat inside the same undifferentiated “expenses” number, so there was no way to see at a glance what the money was spent on.

  • A “Where the burn went” card under the headline tiles: every expense category with spend in the period, largest first, with amount and share of total burn. Vendor Payment, Software / Subscriptions, Professional Fees and the rest are now each their own line.
  • Salary sits in the same list as its own bar, so salary and vendor spend are finally on one scale instead of in two different places.
  • The same breakdown appears inside each project’s drawer, using apportioned amounts — a company‑shared expense contributes only that project’s share, so the slices add up to that project’s burn rather than to the full invoice values.
  • Categories are read from the category list you manage under Expenses, so anything you add or rename shows up here without a code change. Amounts are net of recoverable GST, the same basis as the burn tile.
  • No SQL step for this release.
Version 1.39.0
27 September 2026
Administrators

Find the Company Tally rows where Pulse and the sheet quietly disagree

The conflict check only ever looked at the sheet. Edit an expense inside Pulse instead and the row keeps reading “synced” forever while the two systems drift apart, with no badge and no warning. A “Check for drift” button now finds them.

  • Compares every imported row against the snapshot Pulse itself last wrote, so it needs no paste — just press the button.
  • Differences that move money or move it onto a different project (amount, date, scope, project, department, category) are marked material and sorted to the top. Title, description, GST and TDS differences are listed below them.
  • Nothing is auto‑fixed, deliberately: which side is right is a judgement call. Correct the sheet and the row becomes an ordinary conflict you can resolve with the 1.38.0 button.
  • Found because OFF‑202606‑028 had been re‑mapped to a different project inside Pulse while the sheet still said Company with no project code — and nothing anywhere said so.
  • No SQL step for this release.
Version 1.38.0
27 September 2026
Administrators

A Company Tally row edited after import can finally reach Pulse

If you imported a row and then corrected it in the sheet — a better name, a different project — Pulse marked it “conflict” and refused it, with no way to accept the change. The row stayed red in every future paste and the count only grew. There is now a button.

  • Conflict rows get a “Sheet is right — update Pulse” button, plus one at the bottom to do every conflict at once.
  • Only the columns that actually moved in the sheet are written. A GST flag or category that Finance fixed inside Pulse is not reverted because something unrelated changed in the same row.
  • The amount and the date are refused if the expense is already settled against a bank line or netted into the monthly current account — rewriting either would leave that settlement pointing at a figure that no longer exists. You get told which row and why.
  • Found on four June rows that had been renamed and re‑mapped to a different project in the sheet and could not be pushed through.
  • No SQL step for this release.
Version 1.37.1
24 September 2026
Everyone

Dropping a card into an empty board column now works

Dragging a task into a column that had no cards in it was close to impossible — the card would land in the next column along instead. Anyone whose In Progress column was empty could not get a task into In Progress at all. Whatever is under the cursor now wins.

  • The board decided where a card landed by comparing the dragged card’s corners to every column’s corners. A column is a tall box, so its corners sit far from your cursor, while a card in the next column sits right under it — and won. An empty column had no cards of its own to catch the drop, so it lost every time.
  • It now uses the target your cursor is actually inside. Empty columns catch a drop like any other.
  • Found from the board activity log: seven consecutive drags from To Do in forty seconds, every one landing in Review, on an account with no In Progress tasks at all.
  • No SQL step for this release.
Version 1.37.0
24 September 2026
Everyone

Budget filter on influencers, what an employee applied for, and searchable long dropdowns

Three small things. Influencers can be filtered by what you are willing to pay a reel. The team directory shows what each hired person originally applied for. And the longest dropdowns in the app — starting with the 43-year graduation list on the public application form — can now be typed into instead of scrolled.

  • Influencers: a “Budget ₹/reel” box next to the status and category filters. Anyone at or under your number shows; anyone above it shows only if their rate is negotiable, because that is a conversation rather than a no.
  • Team directory: an “Applied for” column showing the role each hired person applied for. Visible to HR and super admins only — the directory is company-wide but an application is not.
  • The public job application: the graduation year (43 options) and the role you are applying for (16) can now be typed into. Same for the graduation year on the trainee form.
  • This is the first pass of a wider sweep — about fifty more dropdowns across the app are on the list, the ones that grow with your data first.
  • No SQL step for this release.
Version 1.36.0
24 September 2026
Everyone

Interviewers can close their own rounds

The interview scheduling shipped in 1.34.0 sent the interviewer a task, an email and the candidate’s full page — and then gave them nowhere to write down what happened, so every outcome came back to HR by hand. The candidate page now carries the rounds themselves, and whoever is running one can record where it got to, the outcome and their feedback without going through HR at all.

  • The candidate page (/c/…) now shows every interview round: when it is, how long, where, who is running it, where it has got to and what came of it.
  • A round assigned to you is marked “Yours to run” and can be closed out from that page — status, outcome and feedback — with no HR round-trip.
  • What you record lands on the candidate’s timeline immediately, so HR sees it without being told.
  • An outcome cannot be recorded against a round still being arranged; the interview has to be marked completed first. Enforced on the server, not just in the form.
  • Interviewers can record an outcome but cannot move the date or swap the interviewer — the arrangements stay with HR.
  • The candidate page also now shows the 1st screening: result, notice period, points discussed and HR’s notes. Notice period was being recorded and shown nowhere.
  • No SQL step for this release.
Version 1.35.0
24 September 2026
Everyone

Training work gets reviewed, and people who have left stop filling up HR screens

A training task could be submitted but never checked — there was no screen for it, so every submission sat on “submitted” forever and trainees could not tell what had been looked at. There is now a Submissions tab in Training Admin, and trainees can see their own work, their feedback and which assessment questions they got wrong. Separately, hiring now records a joining date, and staff who have left no longer appear on the attendance roster or the leave summary.

  • Training Admin → Submissions: open what a trainee sent, score it, write feedback, then Approve or Send back for rework. Sending it back requires a note.
  • Trainees now see their own submission again after sending it — their answer, their link, and the file they uploaded — plus the feedback and score, and a Submit again button when work is sent back. Before, the answer vanished the moment they clicked Submit.
  • The badge on a submitted task read “Submitted · Submitted” because nothing ever changed its state. It now reads Awaiting review, Approved or Needs rework.
  • After an assessment, trainees see which questions they got wrong, the right answer and the explanation. Pulse had always worked this out and then thrown it away, leaving a failing trainee with only a percentage.
  • Hiring someone now asks for their joining date. It was never recorded, so payroll had no start date for them and a September joiner counted in every month back to April; their salary also took effect from the day HR clicked Hire rather than the day they start.
  • Attendance → team timesheet: “Show employees with no entries” no longer lists people who had already left, each one permanently Pending. The list is scoped to the date being viewed, so opening a past day still shows whoever worked it.
  • HR leave rows for people who have left showed a raw id such as “5ab51029” instead of a name, because the name lookup only loaded current staff. Fixed.
  • The financial-year leave summary now hides people who have left by default, with a tick to bring them back when you need the full-year figures.
  • No SQL step for this release.
Version 1.34.0
23 September 2026
Administrators

1st screening and interview scheduling

The screening call and the interviews that follow it are now recorded in Pulse instead of living in somebody’s head. HR writes down what came out of the screening; each interview round gets its own date, interviewer, status and outcome; and the person asked to run it gets a task, an email and the candidate’s full page — resume, experience, CTC, notice period and the screening notes — rather than a copy of a few fields.

  • “1st screening” on any candidate, under the ⋯ menu: screening status, result, notice period, points discussed and your notes. It is filed on their timeline and does not move their stage — you still decide that yourself.
  • “Schedule an interview” raises a round with a date and time, length, mode, link or place, and an interviewer. Rounds show on the candidate card as R1, R2 … and open for editing when clicked.
  • Each round carries its own status — Interview scheduling, Interview scheduled, Interview completed, Feedback pending, Closed — and, separately, an outcome of Selected, Rejected, Hold or Next round. They are separate because an interview can be finished with nobody having written up a decision, which is the case worth being able to see.
  • Assigning a round shares the candidate with that person at the same time. Before, a task could point at a candidate page the assignee was not allowed to open.
  • The interviewer can record the outcome and feedback themselves, without going back to HR.
  • An interviewer from outside Pulse can be named in free text instead of picked from the list.
  • Follow-up tasks are no longer created against a project that has to be named exactly “Learning”. Renaming that project used to stop tasks being created with only a warning nobody read.
  • Stage follow-up tasks now carry the candidate’s page link too, instead of repeating a few fields into the description.
  • The seven pipeline stages are unchanged. Interview states belong to an interview, not to the candidate, and a candidate can genuinely be in two of them at once across two rounds.
  • Requires one SQL step before publishing.
Version 1.33.0
23 September 2026
Administrators

Hire on the Colladome email, and send the onboarding email from Pulse

Hiring someone now asks for the Colladome mailbox you created for them. That becomes their Pulse login instead of the personal address they applied from, and the password is emailed to that mailbox rather than shown on screen. Separately, the welcome email — joining date, mailbox, Slack, onboarding portal — can be sent from Pulse instead of being retyped by hand.

  • The Hire dialog has a required “Official Colladome email” field. Their Pulse login is created on that address, not their gmail.
  • No password is shown any more. Pulse emails it to the new mailbox, which only they can read, and they still set their own on first sign-in. Nothing sensitive appears on screen or is stored.
  • If the login email cannot be delivered — usually because the mailbox is not created on Hostinger yet — you are told exactly that, and can use Forgot password on the sign-in page once it exists.
  • “Send onboarding email” on any hired candidate, under the ⋯ menu: joining date, what they are joining as, their Colladome email, webmail link, login time, Slack invite and the onboarding portal, in the shape HR was already sending by hand.
  • The mailbox password in that email is typed at send time and never saved in Pulse — so a resend needs it typed again. You can also leave it out entirely and send it over WhatsApp, which is safer.
  • Sending is recorded on the candidate’s timeline (who and when, never the password), so the next person can see it was done.
  • Requires one SQL step before publishing.
Version 1.32.1
23 September 2026
Administrators

Who gets candidate emails is a setting, the emails read properly, and a wrong project can be corrected from the timesheet

Three fixes. Sandhya and Sweksha come off the internal candidate emails without losing any access. The internal email no longer says “Previous stage: hired” when someone is hired, and stops printing an empty internal note. And a reviewer who spots the wrong project on a timesheet row can correct it there.

  • Internal candidate emails now follow a “Candidate updates” notification setting instead of being fixed to whoever holds HR admin or super admin. Anyone can be taken off without changing their role — and without a code change next time.
  • Sandhya and Sweksha are switched off as part of this release. Their roles and every other access are untouched.
  • The internal email said “Previous stage: hired” when a candidate was hired, because hire passed the new stage instead of the old one. It now reads “Moved from: interview 1”, and says nothing at all when there is nothing to say.
  • “Internal note (not sent to the candidate): —” no longer appears when there is no note. When there is one, the internal note and the message sent to the candidate are two clearly separated blocks, the same as on the Candidates tab.
  • Timesheet: reviewing a day, click the Project on any row to move that task to the right project. The dialog says plainly that this moves every hour ever logged against that task, because the project belongs to the task, not to the row.
  • Requires one SQL step before publishing.
Version 1.32.0
21 September 2026
Administrators

Expense invoices, challans and receipts — one place, month by month

Finance → Expense docs is the repository for everything the company was billed or paid out on: purchase invoices for ITC, GST and TDS challans, payment receipts. Pick a month and download the whole set as a zip with an index for the CA. Client invoices are not here — those stay under Invoices.

  • Attach as many documents as an expense needs — the invoice and the receipt for paying it both — instead of the single file an expense allowed before. The vendor, amount, GST/ITC, invoice number and payment status come from the expense, so there is one set of numbers, never two.
  • Challans and anything that is not a purchase can be filed on their own with a payee, reference and amount — a GST payment is not an expense row, so it has nowhere else to live.
  • “<n> expenses with no purchase invoice attached”, largest ITC first: exactly the list the CA asks for, and the one that catches credit Pulse cannot evidence.
  • Three figures at the top: documents this month, ITC with an invoice on file, ITC with none.
  • “Download <month>” builds a zip foldered by document type with an index CSV (date, payee, expense, category, invoice number, amount, GST/ITC, payment status, file name) — the monthly set to hand over.
  • Search across vendor, file name, invoice number and notes; filter by document type and whether it carries ITC.
  • Files go in the existing private expense-proofs store; only Finance Admins, admins and super admins can see or add them.
  • Requires one SQL step before publishing.
Version 1.31.1
21 September 2026
Signed-in teams

Notes on a candidate, internal and external, without changing their stage

Until now a note could only be written while moving a candidate to another stage — so a call that changed nothing had nowhere to go. Every candidate now has Add note, with two clearly separated boxes: an internal note the candidate never sees, and a message that is emailed to them only if you tick the box.

  • “Add note” on every candidate card and inside the expanded view. Their stage does not change.
  • Two boxes, labelled and colour-coded: grey with a padlock = internal, team only; tinted with an envelope = message to the candidate. The tick that sends the email is right under the message, and is only available once the box has text.
  • The history is now “Notes & stage history” and shows the same two blocks for every entry, so you can tell at a glance what the candidate has actually been told — on the Candidates tab and on shared candidate pages.
  • Internal notes stay editable (the pencil from 1.30.0); a message already emailed to a candidate is not editable, because they already have it.
  • HR and super admins get a copy of every note email, with the internal note alongside it.
  • Requires one SQL step before publishing.
Version 1.31.0
21 September 2026
Signed-in teams

Candidates tab laid out like Creators

The Candidates tab now reads the way the Creators page does: count tiles per stage, one search box with two filters, one compact card per person with a stage dropdown, and everything else tucked away until you open it.

  • Seven stage tiles at the top (Pending, Shortlisted, Future, Interview 1, Interview 2, Hired, Rejected) — click one to filter, click again to go back to “In the pipeline” (everyone not yet hired or rejected).
  • One card per candidate: name, stage, role, email, phone, location, experience, CTC, applied date, and the latest stage remark on one line. Click the card for full details and the complete stage history.
  • Actions are three things instead of eight buttons: Resume, WhatsApp, and a stage dropdown that opens the same move / hire / reject / reset dialogs as before. Share for review, Send assessment, candidate page and Delete live under the ⋯ menu.
  • Export the current list as CSV, same as Creators.
  • The recovery lists (applications that never saved, started-but-not-submitted forms) and the stage-dates table are collapsed at the bottom — still there, no longer the first thing on the page.
  • No data or permission changes; nothing to run before publishing.
Version 1.30.0
20 September 2026
Signed-in teams

Create a task while punching out, fix a hiring remark, attach files to a task, and an Invoices tab

Four small asks from the team, shipped together: log hours against work that had no task yet, correct an HR stage remark after the call actually happens, attach PDFs and images when creating or editing a task, and a Finance tab that is just the invoice register.

  • Punch out → Log this session: “Worked on something with no task? Create one now”. Title, project, due date and priority; the task is assigned to you, lands in To Do and is added to the log so you can put hours on it straight away. Both the header punch-out and the Attendance page.
  • Hiring: the internal remark on any stage entry has a pencil. “Call not answered” can become what was discussed once the call happens. The timeline marks it (edited); the note already emailed to the candidate is left as sent. HR admins and super admins, on the Candidates tab and on shared candidate pages.
  • Tasks: “Attach PDF / images” on New task and Edit task — PDF, images, Office files or zips up to 25 MB each. They land in the task’s Attachments, the same place the task page already shows. Edit task also lists what is attached and lets you remove a file.
  • Finance → Invoices: the invoice register on its own — raised, received, outstanding and overdue for the period at the top; New invoice, Edit, Exclude, Zoho sync and Export live here. Collections keeps Record payment, Followed up and the bank matching.
  • Finance tabs now open from a link: /finance?tab=invoices, ?tab=gst, ?tab=tds, ?tab=reconciliation.
  • Requires one SQL step before publishing (two columns on candidate_stage_events).
Version 1.29.0
18 September 2026
Signed-in teams

Assessments: send an assignment over WhatsApp, track the work that comes back

HR keeps a list of assessments (a name and a Drive link). From the Candidates tab or a candidate page, HR or an interviewer sends one over WhatsApp; Pulse records it, and the returned work is uploaded against the same record for the next reviewer.

  • HR Admin → Assessments: add, edit, archive assessments. Each shows how many times it was sent.
  • “Send assessment” on every open candidate (Candidates tab and candidate page): choose the assessment, check the number, edit the message, and WhatsApp opens with it. The send is recorded with who sent it and when.
  • Status per send: Sent → Work received → Reviewed (or Withdrawn). HR or the sender uploads the returned file (up to 15 MB); anyone the candidate is shared with can open it from the candidate page.
  • Requires one SQL step before publishing.
Version 1.28.3
18 September 2026
Signed-in teams

A bar at the top when emails are failing

When Pulse's outgoing email is failing, an amber bar says so and why, in plain words. Nothing in Pulse waits for email: stage moves, hires, rejections, candidate shares, reviews and feedback all save regardless.

  • The bar appears when the last hour holds two or more failed sends and no success since; it checks every five minutes and disappears on its own once emails deliver.
  • The reason is translated: sending quota used up, login refused, settings missing, server refusing.
  • Reviewed every place Pulse sends email — none blocks the action on a failed send.
Version 1.28.2
18 September 2026
Administrators

Emails go out one at a time, with a retry

Hostinger rejects several emails sent at the same moment from one mailbox (relay error 502). Pulse now sends them one after another and retries once, so a stage move that sends two emails no longer loses one.

  • All transactional email from Pulse is queued in order; a 5xx or network failure is retried once after 1.5 seconds.
  • Send test emails on Access & Roles should now show five Delivered rows.
Version 1.28.1
18 September 2026
Administrators

Hiring: a failed candidate email is now shown, with the reason

Moving a candidate saved the stage and said nothing when the email did not leave. The dialog now shows the delivery error so HR knows the candidate has not been told.

  • Move-stage, Hire and Reject: if the candidate’s email or the HR copy fails, a red message names which one and the provider’s reason.
  • Every attempt is still logged in notification_deliveries for the audit trail.
Version 1.28.0
18 September 2026
Signed-in teams

Candidate pages: share a candidate with the interviewer

Every candidate gets a short link (pulse.colladome.com/c/…) with the resume, HR notes, package and full profile. HR shares it with whoever interviews; they leave their feedback on the same page.

  • HR Admin → Applications: “Share for review” on every candidate. Pick one or more people and an optional note; each gets an email and a bell notification with the link.
  • The candidate page shows profile, package (current and expected CTC, contract rate), the candidate’s note, HR notes and stage history, the resume (opens with a 5-minute link), and who it is shared with.
  • Interviewers add a recommendation (Advance / Hold / Do not proceed), a 1–5 rating and comments. HR admins are emailed on every submission, and the Applications list shows each reviewer’s verdict.
  • Access: signed-in Pulse users only, and only the people HR shared the candidate with (HR admins and super admins always). Forwarding the link gives nobody else access; HR can remove a person from the page.
  • Requires one SQL step before publishing.
Version 1.27.0
18 September 2026
Administrators

Hiring: internal note and message to candidate, kept apart

Every stage change now has two boxes: an internal note the candidate never sees, and an optional message that goes into the candidate’s email.

  • Move-stage, Hire and Reject dialogs: “Internal note (team only)” and “Message to candidate” are separate fields. Only the second reaches the candidate, appended under the standard stage text.
  • Internal notes, rejection categories and salary were never emailed to candidates before either; the labels now say so, so nobody has to guess.
  • The HR / super-admin copy shows both, labelled “Internal note” and “Message sent to the candidate”.
  • Candidate history on the Applications tab shows the internal note and, on its own line, what was sent to the candidate.
  • Requires one SQL step before publishing.
Version 1.26.0
18 September 2026
Administrators

Project Manager role

A project manager sees every project and client, not only the ones they have a task on. The role is granted from HR Admin → Access & Roles.

  • New role “Project Manager” on Access & Roles. Holders get the full Projects and Clients pages (not “My Projects”), every project’s detail page and its tasks, and can manage tasks on any project.
  • It does not open money: invoices, payments and project burn stay with finance, admins and super admins.
  • The role is granted by the SQL step, so there is nothing to tick.
  • Requires one SQL step before publishing.
Version 1.25.1
17 September 2026
Signed-in teams

Signal Admin tick fixed; task moves say why they fail

Ticking Signal Admin on Access & Roles was refused by a stale check. Moving a task between columns now leaves a record of who moved it, and a refused move says why.

  • Access & Roles: ticking “Signal Admin” no longer fails with “Invalid enum value”.
  • Tasks: dragging a card to another column is written to the task’s activity as a status change, with “moved on the board”. A card moved back by a colleague is no longer a mystery.
  • Tasks: a status change the database refuses now shows an error instead of “Status updated” with nothing changed.
  • Tasks: the dependency message names the task in the way, e.g. “Finish ‘Website copy’ (Review) first”, instead of “blocked by an incomplete dependency”.
  • Board: after a card changes column the board re-reads from the database, so it shows the true position even if someone else moved the card meanwhile.
Version 1.25.0
17 September 2026
Administrators

Signal Admin role

Signals can now be handed to anyone from HR Admin → Access & Roles, not only the Business Development department.

  • New role “Signal Admin” on Access & Roles. It opens Signals and puts the person on the daily update.
  • Everyone who already had Signals — the Business Development department and every super admin — is given the role, so the roles page shows who has it.
  • Requires two SQL steps before publishing: the role value, then the grants (Postgres will not do both in one go).
Version 1.24.2
17 September 2026
Signed-in teams

Signals page no longer scrolls sideways

A long link in a spam message stretched the entries column past the screen and pushed the whole page sideways. Long text now wraps inside its card.

  • Signals: both columns can shrink to the screen; messages and page links wrap anywhere; the one-line preview is capped at 160 characters.
  • Leads: same wrapping on the message and action log.
Version 1.24.1
16 September 2026
Signed-in teams

Signals: Forminator forms too, certain junk filed on arrival, leads CSV

The website's contact form and pop-up are Forminator forms, not only Elementor; both now post into Signals. Entries that cannot be anything but spam are filed as junk the moment they arrive, and the real ones export as a sheet.

  • colladome.com runs two form plugins. The site snippet now catches Forminator submissions as well as Elementor Pro ones, with the Forminator submission number carried as the reference (#1124 and so on), and the pop-up form recognised by name.
  • Junk in two grades. Certain — no email or phone, Cyrillic or forum-code spam, two or more links, a domain for a name, the usual bot signatures — is filed as Junk on arrival, still listed, one click to undo. Likely — SEO and lead-list pitches — keeps the “Looks like junk” hint for a human call.
  • Leads tab gains a CSV of the real ones: when it came in, source, reference, name, company, contact, message, owner, status, last action.
  • Message fields named Textarea or Text are read as the message.
Version 1.24.0
17 September 2026
Signed-in teams

Signals: the social-signal sheet and the evening Slack update, in one place

Sandhya’s ask. Website contact-form and pop-up entries post themselves into Pulse; BD marks each real or junk with one click, types the counts for the channels that cannot be automated, and sends the day’s update once — to Slack and by email. Every real one becomes a lead with an owner, a status and an action log.

  • Delivery → Signals, for the Business Development department, its head, admins and super admins. No new role: it reads the department on the profile.
  • Website entries: colladome.com’s Elementor forms post to Pulse (a one-time webhook setting on the site; the key lives in Lovable secrets). Each arrives as Unreviewed with a “looks like junk” hint from the obvious tells — no contact details, SEO and backlink pitches, two or more links. Real / Junk / All remaining junk.
  • Counted by hand: LinkedIn and Instagram comments, post mentions, blog comments, Google reviews for Jaipur and Hyderabad (with unreplied), LinkedIn newsletter. Numbers for the day, saved with the update.
  • The update: written in the exact shape the team already posts, from the numbers; editable; Copy, or Send — Slack (when SLACK_SIGNALS_WEBHOOK_URL is set) and email to everyone in BD plus super admins, with an in-app note. History shows which days were sent.
  • Leads: a real signal becomes a lead — owner, New → Contacted → Qualified → Won / Lost, an action log with who did what and when. Oldest untouched first; anything with no action for more than three working days is flagged, and lands on the dashboard’s Needs your attention for BD.
  • History: last 30 days by day — website total / real / junk, the hand counts, and whether the update went out. Replaces the sheet’s Forms tab.
  • Requires the signals migration before publishing, then WEBSITE_SIGNAL_SECRET (and optionally SLACK_SIGNALS_WEBHOOK_URL) in Lovable secrets, and the webhook URL on the two Elementor forms.
Version 1.23.1
16 September 2026
Administrators

Never-saved card: matched by name and date, and dismissable

1.23.0 cleared a lost upload only when the same file was later saved. Harshita’s later application carried a different file, so she stayed listed. Two more ways to clear a false alarm.

  • A resume whose filename starts with a person’s name is not lost if an application in that name landed between a day before and three days after the last attempt — that is one person retrying and succeeding.
  • New “Already applied” button on each row for HR to clear one by hand; it stays cleared.
  • Requires the orphaned_resume_dismissals migration before publishing.
Version 1.23.0
16 September 2026
Administrators

Half-finished applications are kept, and the never-saved card stops crying wolf

Until now nothing a visitor typed on Apply, the trainee form or the creator page was stored until they pressed Submit. It is now saved as they type, once there is a name, email or phone, and HR and the content team see who stopped halfway. The “Applications that never saved” card no longer lists a person whose retry succeeded.

  • Apply, Trainee and Creator forms save what has been typed two seconds after the visitor pauses, from the moment there is a name, email, phone or Instagram handle. A refresh continues the same draft; a successful Submit closes it.
  • HR → Candidates: new card “Started applying, never submitted” — name, contact, which step they reached, when they last typed, and every field they filled, with a CSV. Dismiss removes one from the list. Creators gets the same card for the creator form.
  • Drafts are visible to HR admins and super admins (Apply, Trainee) and content admins and super admins (Creator); the public page can only write its own draft. Sixty days are shown.
  • Applications that never saved: a resume whose filename was later saved under a new upload is one person retrying and succeeding, not a lost candidate, and is no longer listed. This is why Harshita Kushwah sat on the card for a week while her application was already in the pipeline. Since the 11 September fixes there have been no genuine failures.
  • Payment-request and feedback emails to the team now carry a reply-to of the vendor or colleague who raised them, so replying reaches them instead of noreply@.
  • Requires the form_drafts migration (also updates list_orphaned_resumes) before publishing.
Version 1.22.3
16 September 2026
Administrators

Time, not just date, on applications

Candidates from Apply and creators from the influencer page now show when they applied to the minute, everywhere the date appeared alone.

  • HR → Candidates: the stage-dates table shows the time under each date, so two moves on the same day read in order.
  • Creators: the card shows date, year and time; the CSV export carries the same. The “Applications that never saved” card gains the year.
Version 1.22.2
16 September 2026
Signed-in teams

Needs your attention: says when it cannot load, ignores not-punched-in leave

The dashboard card could show only Timesheets while quietly dropping your overdue tasks and reviews if one of its queries failed. It now says so instead. Auto-generated not-punched-in leave no longer counts as an approval waiting on you.

  • If any of the card’s queries fails, the card shows the error rather than an incomplete list that reads as “nothing overdue”. The first day of 1.22.0 hid every task section this way while the API’s schema cache still lacked the new column.
  • Leave to approve excludes “not punched in” rows: attendance generates those, nobody asked for them, and they are an HR clean-up rather than a request waiting on the approver.
  • Waiting for your review now also catches tasks in the content states (In review, Ready to publish) where you are the reviewer, not only the plain Review state.
Version 1.22.1
16 September 2026
Administrators

Keep for future from any stage

1.22.0 offered “Keep for future” only on shortlisted candidates, so from Pending the Future tab looked empty and unreachable. It is now offered wherever a candidate is still in play.

  • Hiring: “Keep for future” appears on Pending, Shortlisted, Interview 1 and Interview 2 candidates. It still asks what to keep them in mind for and still sends the candidate nothing.
  • Reminder: 1.22.0 needs its SQL run in Lovable before the feedback button, the new task statuses, the Future stage and the dashboard card work. Until it is run, “Report a problem” says the pulse_feedback table cannot be found and moving a candidate to Future is refused. The same file now also asks the API to reload its schema cache, so the new table is visible the moment the SQL finishes.
Version 1.22.0
16 September 2026
Signed-in teams

Stuck tasks get named, approvals land on the dashboard, and Pulse takes feedback

Six asks from the team in one release: tasks that stop moving are chased, everything waiting on you sits in one card, anyone can report a bug or an idea from the sidebar, the Glassdoor link works when signed out, a vendor budget can be split across projects, and hiring gets a Future bucket.

  • Tasks: four new statuses — Blocked, Waiting for approval, Waiting for input and On hold — in the status picker on every task. They stay in the To Do column with an amber badge, so a parked task is never mistaken for one nobody has started, and parking a task is allowed even while a dependency is open.
  • Tasks: every task now records when its status last changed. A task that sits in the same stage for more than three working days (Sunday and the 2nd and 4th Saturday do not count) is a stuck task. Monday to Friday at 09:30 the assignee gets it in the app and by email — only their own, only while it is stuck. Blocked, Waiting and On hold tasks are left alone; that is what those statuses are for. The category is “Stuck task reminder” in Notification Preferences.
  • Dashboard: a “Needs your attention” card at the top. Your overdue, stuck and parked tasks and the reviews people have asked you for; then whatever you can approve — expenses if you are finance, leave if you are HR, timesheets for your reporting scope, content in review if you are a content editor — each with a link to the page that does it. Empty means empty; the card says so.
  • Feedback: “Report a problem or idea” at the foot of the sidebar. Bug, broken link, workflow issue or feature suggestion, one line and optional detail; the page you were on is attached automatically. Every super admin is emailed, and Administration → Feedback lists the reports with New / Looking / Done / Won’t do and an admin note.
  • Glassdoor: the profile link now opens Colladome’s public company page on Glassdoor, so it works whether or not the person has a Glassdoor account.
  • Vendor budgets: a budget can be split across projects, each with its own amount, and the amounts must add up to the approved total — the database refuses a split that exceeds it. The vendor sheet’s By project table gains an Approved column so it can be read against what was recorded, and the vendor portal shows the split on the engagement.
  • Vendor portal: the engagements list had been reading two columns that no longer exist since budgets became single-month; it now loads.
  • Hiring: a Future tab between Shortlisted and Interview 1 for candidates worth keeping but not for this opening. “Keep for future” asks what to keep them in mind for, sends the candidate nothing, and “Back to Shortlisted” returns them without emailing them again.
  • Requires the pulse_1_22_0 migration before publishing (new task statuses, status_changed_at, pulse_feedback, vendor_budget_projects, the hiring status, the Glassdoor URL). The daily reminder runs from the same recurring-notifications job as the other digests.
Version 1.21.3
15 September 2026
Administrators

GST: months paid in full stop reading as carried forward

Several months were settled by challan, yet the ledger carried a balance forward. The return had set off input credit Pulse never knew about; Pulse now records that set-off per month and the payable matches the challan.

  • Pulse works out GST payable as output tax minus the credit on purchase invoices it holds. The filed GSTR-3B set off more — purchases never entered as expenses, and the credit-ledger balance brought forward from last year. Inside Pulse the difference could only ever be paid in cash, so every mapped month still showed a balance.
  • New per-month record of what the return actually did: output tax, ITC used, cash paid, ARN and filing date, and the amount set off beyond Pulse’s own credit. The payable now subtracts it, and the figures from the filed returns are recorded.
  • The GST ledger shows a new table, “Input credit set off in the return”, so the number is explained rather than silently absorbed. Where a figure includes credit brought forward from an earlier financial year, it says so.
  • April to July are marked filed with their ARNs; the report no longer says 0 of 12 months filed.
  • Guard unchanged: a liability is never reduced below what has already been settled against it, so re-running the materialiser after a set-off cannot orphan a challan.
  • Requires the gst_itc_setoffs migration before publishing.
Version 1.21.2
15 September 2026
Everyone

One footer on every public page

Apply, the trainee form, the creator page, the home page, Contact and the client centre all end the same way now — the same links, in the same order, in the page’s own palette.

  • The marketing footer takes a dark tone for the cream-and-gold pages (Apply, Trainee, Creators) and keeps the theme tone elsewhere. One component, two palettes, no drift.
  • Apply had its own four-link footer and the trainee page had none; both now carry the full set: product links, careers, trainee programme, creator programme, contact, privacy, terms, release notes, socials, email and phone.
  • The home-page footer’s Features and Teams links were page anchors that went nowhere from any other page; they are gone, and the Pulse link goes to the home page.
  • Offices line (Jaipur · Hyderabad · Dubai · Portland) and the copyright line appear everywhere, not only on Apply.
Version 1.21.1
15 September 2026
Everyone

The creator page previews properly when shared

Sharing pulse.colladome.com/influencers on WhatsApp or Instagram showed a cropped photo and half a sentence. It now shows a proper card, and search engines get the whole story.

  • A share image drawn for the purpose — 1200×630, the studio photo with the title, the URL and the logo on it — replaces the raw 1920×1280 photo. The tags said 1200×630 while the image was not, which is exactly the mismatch WhatsApp drops.
  • Every share tag the page needs is set on the page itself: image type, size and alt, locale, secure URL, the Twitter card and its alt. Nothing is inherited from the app shell any more.
  • Structured data for search: the page, the organisation with its Jaipur address, breadcrumbs, and the questions creators ask as an FAQ — so a search result can carry them.
  • The questions themselves are on the page, above the footer: who it is for, whether it is paid, where the studio is, what to bring, how long a shoot takes, what happens after applying.
  • robots.txt and sitemap.xml exist for the first time. The sitemap lists the public pages; robots keeps crawlers out of sign-in, the API and the onboarding links.
Version 1.21.0
15 September 2026
Administrators

Nano creators can apply at pulse.colladome.com/influencers

A public page for the creator programme in Jaipur — the podcast studio, how it works, and a two-minute form. Applications land in a Creators list that content admins and super admins work through.

  • pulse.colladome.com/influencers: the studio photographed as it is, three steps, and one form asking exactly what the content team needs to make a call — handle, followers, category, where in Jaipur, rate per reel and per day, negotiable or not, own cameraman, how soon they can come, travel charges, portfolio. Built for a phone.
  • Every yes/no is a pair of pills rather than a checkbox, the rupee fields carry the symbol, and the Instagram link fills itself in from the handle. Pasting a full profile URL into the username field is tolerated.
  • A WhatsApp number is asked for (optional). Without it the only way to reach a creator is an Instagram DM, which is where good candidates go quiet.
  • Submissions are saved before any email is sent; the content team gets one email per application with the whole form in it and a link to the list. If the email fails the application is still saved.
  • New Creators page under Delivery for content admins and super admins: search, filter by status and category, expand for the full answers, set a status (New, Contacted, Shortlisted, Booked, Not a fit), keep internal notes, export the filtered list as CSV. Nothing is deleted — a creator marked Not a fit stays visible, so the same person applying twice is obvious.
  • Nobody signed in can insert into the table; the public page writes through the server with the service role, the same way Apply and the demo-request form do. Reading and updating is limited to is_content_editor(), the check the Content Calendar already uses.
  • Requires the influencer_applications migration before publishing.
Version 1.20.5
14 September 2026
Administrators

Candidates hear from us at every stage

Shortlisted, first interview, second interview, hired and rejected all write to the candidate now, with an internal copy to HR Admins and super admins. Only shortlisting did before.

  • Every stage change emails the candidate. Applying already sent an acknowledgement; from there the pipeline was silent, and silence is the thing candidates complain about and the reason good ones take another offer.
  • One place holds the wording for all five, written to be read by somebody waiting to hear rather than by the person clicking the button.
  • A rejected candidate is told they are not going forward and never why. “High Package” or “Communication Skills” in an email helps nobody and invites an argument; the category and the reason go in the internal copy.
  • Internal copies resolve from roles — HR Admin and super admin — so adding somebody to either puts them on these emails with no configuration.
  • Every send happens after the stage is saved and can never undo it. If the candidate’s address bounces the move still stands and the screen says the email did not go.
Version 1.20.4
14 September 2026
Administrators

Vendor invites were being refused by the database

Every vendor invite failed with “Your account hasn’t been set up yet”. Not the button — Pulse refuses to create any login that is neither staff nor an authorised portal account, and vendors had no way to be authorised.

  • handle_new_user() fires on every login creation. It had a branch for a client portal account and then a gate that refuses anybody with no role grant and no profile. A vendor has neither, so the login was never created and the invite errored.
  • Vendors now get the same authorisation clients have: a service-only ticket bound to one user id and one email, created immediately before the login is requested and consumed by the gate. No door is left open — a login attempt without a ticket is refused exactly as before.
  • A Colladome address is refused as a vendor login. Somebody who is both staff and a vendor login would be sent to the vendor portal and nowhere else.
  • If the login cannot be created the reservation is released, so a failed invite does not block a retry for five minutes.
  • Verified on PostgreSQL 16 against a copy of the trigger: the invite is refused without a ticket — reproducing the exact error — and with one it creates the profile and active portal membership, gives no staff role, no leave balance and no salary row.
Version 1.20.3
14 September 2026
Administrators

Milestones, paid requests, portal access — and the ten candidates get an email

The half-built parts finished: milestones can be entered, an approved request marks itself paid when the bank pays it, portal access is visible and revocable, and the recovered candidates can be written to in one click.

  • Milestones can be added, edited and deleted from the vendor view when you open it as a preview. Vendors see them and cannot change them. That tab is no longer permanently empty.
  • An approved payment request shows as paid once the bank has actually paid it. Derived from the bank line against the payment group rather than stored, so it cannot go stale and needs no background job.
  • Vendor portal access is listed on the Vendors page with a switch. Inviting somebody is easy to forget about; an account that should have been switched off a year ago was visible nowhere.
  • New card on HR Admin: recovered candidates who have not heard from us, with one button to write to all of them. The email apologises, says it was our fault, and asks them to reply with role, CTC and notice period — it does NOT send them back to the Apply form, because asking somebody who pressed Submit nine times to do it a tenth time is how the last of their patience gets spent.
  • Who has been written to is recorded as a stage event, so nobody is emailed twice, and the card disappears once everybody has been contacted.
Version 1.20.2
14 September 2026
Administrators

One vendor view, filtered by project

Clicking a vendor now opens the full page rather than a side panel — the same page the vendor sees — and everything on it filters by project.

  • A project filter sits above the figures and drives all of them. The headline numbers recompute with it, because a total that ignores the filter under it is worse than having no filter.
  • New By project tab: what this vendor has cost each project, recorded against paid against outstanding. The statement answers when somebody was paid; this answers what for.
  • Clicking a vendor opens the full vendor view instead of a side panel, so you and the vendor are reading the same page. A row with no vendor record has no page to open and keeps the panel.
  • The preview banner carries a link back to Vendors, since the page is now somewhere you land rather than something that slides over.
Version 1.20.1
14 September 2026
Administrators

One vendor, one row — and three numbers that were wrong

One vendor appeared twice, money that had already reached them read as owed, and almost every vendor carried a red “over by” badge that meant nothing. All three were reporting faults, not data faults.

  • A cost with no vendor link used to get its own row, keyed on the name in its title — which is why a vendor could appear twice, once as the vendor record and once as a name. Names now resolve back to the vendor record, ignoring case, spacing and punctuation, so one person is one row.
  • An expense somebody paid out of their own pocket and was reimbursed for counted as unpaid. The company settles the employee, not the vendor — but the vendor has had their money, which is what this page reports.
  • The “over by” badge compared a whole year of cost against whatever budgets happened to exist — and budgets have only ever been set for a month or two, so it flagged nearly everyone as wildly over. It now compares only cost dated in months that vendor actually has a budget for.
  • The vendor drawer gains By project: what this vendor has cost each project, recorded against paid against owed. A month view answers whether you are behind on paying somebody; this answers which client is carrying them.
  • Preview a vendor’s portal from the vendor list, exactly as a client portal is previewed — you see what they see, marked as a preview, without needing their login.
  • Give a vendor portal access from the same list: one click, a provisioned login and an emailed temporary password.
Version 1.20.0
14 September 2026
Administrators

Vendor portal

Vendors can see what they have been paid, what is owed, when the next payment is due and what they are working to — and raise a payment request with their invoice and the project split.

  • A vendor login is an external account like a client one: it opens the vendor portal and nothing else. Every read and write checks portal membership on the server and then scopes to that vendor, so a loosened policy cannot leak one vendor’s money to another.
  • The vendor raises a payment request with the invoice attached AND the project split — ₹1,00,000 as ₹60,000 on one project and ₹40,000 on another. Splitting a vendor payment across projects is the most tedious job in reconciliation and has been reconstructed from bank narrations weeks later; the vendor knows the answer on the day they invoice.
  • Approving a request records the cost: one entry per project line, all sharing one payment group — the same shape a split bank payment already uses, so the payment reconciles against the group later with no extra work. GST and TDS are apportioned by each line’s share of the invoice, so a split never loses or invents tax.
  • Those entries are created PENDING. Creation is automatic; entering project burn is still a decision somebody makes. A vendor typing a number into a form must not be able to move the P&L.
  • Vendors maintain their own PAN, GSTIN, address and bank details — but not their name, payment terms or TDS rate, which are Colladome’s to set. A vendor changing the rate they are taxed at would be a hole, not a feature.
  • Engagements now carry the day of the month they are paid on, default the 20th, and the portal shows the next occurrence — clamped in short months, so the 31st never silently becomes the 1st.
  • Payment request alerts go to super admins only, resolved from the super_admins table rather than a setting, because those emails name amounts, vendors and invoice numbers.
  • The vendor-invoices storage bucket is created by migration. The resumes bucket was made by hand and exists in no migration, which is why a fresh environment silently loses every upload.
Version 1.19.15
14 September 2026
Administrators

Vendors by financial year, and candidates hear when they are shortlisted

Two things asked for while the vendor portal is being built: a year view on Vendors, and an automatic email the moment somebody is shortlisted.

  • Vendors now takes a financial year as well as a month, the same picker the Finance page uses. A month view hides anything with a lag — a vendor invoiced in May and paid in July reads as a May debt and a July windfall — and the year is where the cost and the payment land together.
  • Every figure on the page moved to the shared period helpers rather than comparing month strings, so budgets, recorded cost, paid and due all follow the selection. Setting a budget still needs a single month: with a year selected it defaults to the current one.
  • Moving a candidate to Shortlisted now emails them — shortlisted, someone will be in touch, reply if anything has changed — and sends an internal copy with their details and the remark.
  • The internal copy goes to everyone holding the HR Admin role, plus the standing HR address, rather than a hard-coded list. Adding somebody to HR Admin is all it takes to put them on these emails; if a person should be receiving them and is not, check their role.
  • The email is sent after the stage is saved and cannot undo it. A mail server being down must never leave a shortlisted candidate showing as pending.
Version 1.19.14
14 September 2026
Administrators

Vendors: paid money was being reported as still owed

A vendor showed a large balance still owed with nothing paid from May onwards, while every one of those payments was mapped in Bank Reconciliation. The money was recorded correctly; the Vendors page could not see it.

  • A bank payment reaches a cost by three different routes: a vendor payment allocation, a whole-line match, or a split-payment group where one payment covers several project costs. The Vendors page read only the first, so “Split across 5 projects” payments — which is most of the large vendor ones — counted as nothing paid.
  • All three are now read, with the allocation winning where one exists because it is the precise record. This is the same test the rest of Pulse already uses to decide whether an expense has been paid from the bank; this page was the odd one out.
  • The cost is credited, never the bank line. A payment covering one cost and four others credits only that cost’s own amount against it, not the whole payment — otherwise a vendor would read as wildly overpaid.
  • Those payments now also appear in the vendor’s Payouts list, not just in the Paid column.
  • Nothing in the data changed. Bank Reconciliation was right all along; only the reporting was wrong.
Version 1.19.13
14 September 2026
Administrators

Recovered candidates now actually leave the list

Ten of the seventeen lost candidates are in Pending. Two things got in the way and are fixed: the card would not clear, and a phone number could end up glued to the front of an email address.

  • Somebody who pressed Submit eight times has eight uploads of the same file. Recovering them attached only the newest, so they reappeared on the card with “tried 7 times” and the count never fell. A filename now leaves the list as soon as ANY of its uploads belongs to a candidate — the repeats are one person retrying, not seven people.
  • PDFs often run a phone number straight into an email address with no space — “0976-137-1059zenasbrr@gmail.com”. That whole string was being read as the address. The trimmed version is now offered first, the original is kept as a one-click alternative, and the form says what it spotted rather than quietly choosing.
  • Ten people recovered: Deepankar Das, Nikita Solanki, Dharamsoth Pavan Nayak, Vijendra Patidar, Manish Kumar Mishra, Vishvnath Pareek, Anubhav Khare, Jabbad Hussain Ansari, Rajveer Singh and Zenas Santos. Seven of the seventeen were people who retried later and got through, and the duplicate check caught them.
Version 1.19.12
11 September 2026
Administrators

Turn a lost resume into a pending candidate

The 17 people whose application never saved can now be added to the hiring pipeline from inside Pulse — no downloading, no retyping.

  • Every row on “Applications that never saved” now has “Add to Pending”. Pulse opens the resume itself, reads the name, email, phone, location and years of experience out of it, and shows them in a form.
  • It is a form, not a one-click import, and deliberately so: nothing these people typed on the Apply page was ever stored — the save is what failed — so every value comes from unstructured resume text and is a guess. HR confirms it before a candidate record exists.
  • The personal address wins when a resume quotes several: a Gmail/Outlook-style address is preferred over a former employer’s, and every other address found is offered as a one-click alternative.
  • If the email already belongs to a candidate, the form says who and at what stage, so somebody who later applied successfully is not added twice.
  • The new candidate carries the resume, is marked “Recovered from failed submission”, and the note on the record says the form data was never stored and the details need confirming with the candidate.
  • Scanned PDFs with no selectable text say so rather than producing an empty candidate.
  • Recovering someone removes them from this card — they stop being a resume with nobody behind it — and they appear under Pending. The card itself stays, and keeps catching future failures.
Version 1.19.11
11 September 2026
Administrators

Get all the lost resumes in one click

The 17 resumes on the lost-candidates card are the only record of those people. Collecting them was two clicks each; it is now one click for all of them.

  • “Open resume” opened a preview tab, which meant saving the file was another two clicks per candidate. The signed link now carries an attachment header, so it saves straight to your machine.
  • New “Download all” button on the card. Chrome asks once to allow multiple downloads; after that it works through the list and reports how many succeeded. A single bad link no longer abandons the rest.
  • Worth knowing, because it decides what can be recovered: nothing the candidate typed was ever stored. The resume uploads first and the application row is written second, and that write is what failed — there is no draft, no failure log, and the acknowledgement emails only go out after a successful save. The resume really is all we hold on these 17.
Version 1.19.10
11 September 2026
Administrators

The lost-candidates card actually works now

Release 1.19.9 shipped a card that could never load, and hid itself when it failed — so it looked like there was nothing to see. There are 17 lost candidates behind it.

  • “Applications that never saved” read storage.objects straight over the REST API. Supabase only serves the public schema there, so every call failed — the card was never going to appear, on any environment. It now goes through a new list_orphaned_resumes() function, which reads storage from inside the database.
  • The card returned nothing both when the list was empty and when the query failed, which is why the failure was silent. A failed load now shows a visible error with a Try again button. An empty list still hides the card; a broken one no longer can.
  • Counting the retries needed its own step. Grouping alongside a “keep the newest upload” filter reported 1 attempt for everybody, because window functions are evaluated after the filter — so the worst case would have read “tried 1 time” instead of 8.
  • Verified against a copy of the real storage contents: 17 people, 70 attempts, and a resume that did reach us correctly stays off the list.
Version 1.19.9
11 September 2026
Administrators

See the candidates whose application never saved

Sixteen people attached a resume and pressed Submit between 25 August and 11 September and none of them reached us. There was nowhere in Pulse to see that. There is now.

  • HR Admin now shows “Applications that never saved” above the candidate list: every resume sitting in storage with no application row, which means somebody pressed Submit and the save failed.
  • Repeated uploads of the same file are one person retrying, so they are grouped. “Tried 8 times” is how hard that candidate persisted before giving up — the worst case was 8 attempts in under three minutes.
  • Each row opens the resume through a short-lived signed link, HR-only. The resume is the only thing we hold on these people, so it is where their contact details have to come from.
  • Why this was invisible: the existing resume download is keyed to an application row, and by definition a failed submit has none. The 70 uploads behind these 16 people had no route into the UI at all.
  • The card disappears when the list is empty, so in normal operation it is not in the way.
Version 1.19.8
11 September 2026
Everyone

Apply page: three bugs that were losing us candidates

Applicants were being shown a raw error payload, told required fields were empty when they were filled, and given “Failed to fetch” with no way forward. All three are fixed.

  • Salary fields rejected anyone who typed the rupee amount. The server capped current_ctc_lpa and expected_ctc_lpa at 100000 — neither a sane figure in lakhs nor in rupees — and an applicant entering 300000 for ₹3,00,000 was shown Zod’s raw JSON on screen. The fields are now labelled “per year, in lakhs” with an example, and entering a rupee figure gives “This is in lakhs per year — enter 3 for ₹3,00,000” before anything is submitted.
  • Validation messages stayed on screen after being fixed. onSubmit never cleared the error state when every step passed, and nothing cleared a field’s error when it was edited — so “Please choose one” sat under a filled dropdown and “Expected contract rate is required” under a filled box. Errors now clear as each field is edited and before every submit.
  • Server errors reached applicants verbatim. A new applyErrorMessage() turns a Zod payload into the field and what to do, and turns the browser’s “Failed to fetch” into “We could not reach the server — check your connection and press Submit again. Your answers are still on the page.”
  • The trainee form’s resume upload now retries once before failing. Resumes upload straight from the applicant’s browser to storage, and on a phone that request is the likeliest thing to drop — which is what “Failed to fetch” was.
  • Known risk, not fixed here: the application-resumes storage bucket is not created by any migration. It exists only if it was made by hand in Supabase, so a fresh environment has no bucket and every resume upload fails.
Version 1.19.7
11 September 2026
Administrators

Approved expenses can be edited again

Every expense in Pulse is approved, and the Expenses list refused to let any of them be edited — so a GST amount or a TDS figure could never be added to one. That block is gone.

  • Release 20260910120000 dropped the database trigger that froze approved expenses, on the principle that approval records an expense is REAL, not that it is FINISHED. The Expenses list kept its own copy of the old rule and disabled the Edit button for anything counted towards burn, so the database allowed the edit and the screen would not offer it.
  • Edit is now available on every expense whatever its approval status. This is what unblocks GST and TDS data entry on the 183 already-approved expenses.
  • Delete stays blocked for a counted expense, because it feeds burn and may be matched to a bank payment. The tooltip now says to edit it instead.
  • Added a database guard in its place: an expense cannot be reduced below what has already been settled against it from bank payments. Everything else — date, title, category, project, GST, TDS, vendor — is freely editable.
  • approved_by and approved_at are untouched, so who signed off and when is still on record.
Version 1.19.6
11 September 2026
Administrators

GST input credit needs the invoice

Two parts of Pulse disagreed about how much GST you owe. The database claimed input credit on purchases with no invoice on file; the Tax screen never did. The database now follows the same rule.

  • materialize_tax_liabilities() claimed gst_input_credit on every expense regardless of gst_invoice_available, while the Tax Compliance screen claimed it only when the flag reads “yes”. The two reported different GST payable for the same month, differing by exactly the GST on every expense whose invoice is still pending.
  • The ledger was the optimistic side, and gst_liabilities is what the settle dialog pays against — so the figure being paid from was claiming credit against invoices that do not exist.
  • The database now requires gst_invoice_available = ‘yes’ before an expense contributes input credit, matching recoverableGst() in the app. Stated GST payable will RISE by whatever was being claimed without an invoice, and fall again as invoices are attached.
  • Nothing needs re-entering: the amount is still calculated when the bill is entered, the flag alone decides whether it is claimed. Ticking an expense to ‘yes’ now releases its credit in the ledger and on the Tax screen at the same time.
  • The existing guard stands — a liability is never reduced below what has already been settled against it.
Version 1.19.5
11 September 2026
Administrators

Search the bank narration, and a correction

Bank Reconciliation can now be searched by narration text. Also corrects release 1.19.1 below, which described a bug that did not exist.

  • Added a search box to Bank Reconciliation that matches the narration, the date and the amount. Terms are ANDed, so “gst 2026-08” narrows twice.
  • This is how the tax lines get found: a GST challan always carries “/GST/” in its narration and income tax carries “/DTAX/”, so nine tax payments can be pulled out of 120 unmapped debits by typing four characters instead of reading every row.
  • CORRECTION to 1.19.1: that release claimed cell A1 of the Company Tally Office tab reads “Net” and that this broke every paste. It does not — A1 reads “Date”. The diagnosis was wrong, the paste failure it described was not the real failure, and the change shipped under it fixed nothing. The header detection it introduced is harmless and stays, but the reason given for it was false. The real cause of the paste failure is still unknown.
Version 1.19.4
10 September 2026
Administrators

Filter expenses by GST treatment

Whoever handles GST reconciliation can now pull up exactly the expenses that need them, instead of scrolling 183 rows.

  • Added a GST filter to Expenses: invoice available, invoice pending, or no GST invoice.
  • “GST invoice available” is the state that matters most — it is the only one whose input credit is reclaimable, and the only one that reduces an expense’s project burn by the reclaimable amount. Everything else is checked against it.
Version 1.19.3
10 September 2026
Administrators

Find the bank lines you still have to classify

Bank Reconciliation could tell you 79 debits were unmapped but gave you no way to look at them. Now it has a status filter.

  • Added a status filter to Bank Reconciliation: unmapped, mapped, owner withdrawals, internal transfers, or lines already matched to an expense.
  • “Unmapped — still to do” is the one that matters: it shows exactly the backlog the summary card counts, so the list can be worked down instead of read line by line.
  • Added the total value of whatever is currently filtered next to the row count, so you can see how much money the remaining backlog represents.
Version 1.19.2
10 September 2026
Administrators

Owner current accounts read right across a year

The financial-year view of the owner current accounts reported zeros for every figure. It was reading a table that only fills up when a month is closed.

  • Fixed the year view of the owner current accounts, which read only current_account_months — a table that holds a row per month only once that month has been CLOSED. With no month ever closed it was empty, so withdrawals, personal spend and closing balance all showed ₹0 despite the single-month view showing real figures.
  • Rebuilt the year the way the single-month panel builds it: approved personal spend and matched bank withdrawals month by month, opening balance carried forward, with a closed month’s signed-off figures taking precedence over the live calculation.
  • Replaced the “Total taken” column, which added the salary/owner withdrawal on top of the bank withdrawals it is derived from and so counted the same money twice.
Version 1.19.1
10 September 2026
Administrators

Company Tally paste works again (WITHDRAWN — see 1.19.5)

Pasting the Office tab into Shubham Tally failed every time with “headers were not found”. The importer was looking for the wrong thing.

  • WITHDRAWN: the claim below is wrong. Cell A1 reads “Date”, not “Net”, so this was never the cause of the paste failure. Kept only so the version history stays honest. Original text: Fixed the Company Tally importer, which required cell A1 of the Office tab to read “Date”. It reads “Net”, because that cell labels the headline total underneath it rather than naming the column — so no header row was ever found and every paste was rejected.
  • Anchored header detection on the “Pulse Entry ID” column instead, which is unique in the sheet, and left column A free to carry whatever caption it needs.
  • Made the column-mismatch error say what the column actually reads, not just what was expected, so the next mismatch is obvious at a glance.
Version 1.19.0
10 September 2026
Administrators

See a whole financial year, not just a month

Finance can now be read a full financial year at a time. A month on its own hides anything with a lag between the work, the invoice and the payment — a cost incurred in May and collected in July reads as a May loss and a July windfall. The year is where they land together.

  • Added a Financial year option to the Finance period picker, alongside the months. Every tab honours it — P&L, Collections, Salary, Expenses, GST, TDS, Bank and Bank Reconciliation.
  • Made a recurring expense count once for every month it was actually live, so a monthly subscription is twelve months of cost in a year view rather than one.
  • Added a read-only year view of the owner current accounts: total withdrawn, salary taken and personal spend recovered across the whole year.
  • Added a read-only year view of salary burn, month by month, marking which salary sheets are still unapproved.
  • Named the unapproved months in the provisional-salary warning instead of saying “some months”.
  • Kept every action that belongs to one month — GST filing, TDS deposit, salary sheet approval, closing a current account — read-only while a year is selected, and said so on screen, so a year can never be filed as if it were a month.
Version 1.18.0
10 September 2026
Administrators

Vendors, on one screen

The Vendors page is now a single month view with one row per vendor. Everything else — history, payouts, budgets — sits behind clicking that row.

  • Replaced six stacked sections with one table: pick a month, see every vendor's approved budget, cost recorded, paid and due on one line.
  • Added a vendor drill-in: month-by-month history and every payout with the work month it settled.
  • Made a budget cover exactly one month, so “approved this month” means one thing rather than a share of a range.
  • Flagged a vendor whose recorded cost has passed the month's approved budget, on the row itself.
  • Folded the old payment notes away behind a link, since they never reached the P&L.
Version 1.17.0
10 September 2026
Administrators

Vendor budgets, and a partial payment that actually saves

An engagement can now carry the price it was agreed at, so cost recorded against it draws it down and an overrun is visible. Partial vendor payments also save, which they did not in the last release.

  • Added vendor budgets: agreed value per vendor and project over a period, showing agreed, recorded, paid and what is left.
  • Flagged an engagement whose recorded cost has passed what was agreed, rather than letting it drift unnoticed.
  • Fixed partial vendor payments, which failed to save with "Expense has no employee payer" — they were written to the reimbursement ledger, which only accepts expenses an employee paid out of pocket.
  • Gave vendor allocations their own record, with checks that fit them: cost must be approved, and nothing can be allocated beyond either the payment or the cost.
  • Left an open end date available for a retainer, so an ongoing arrangement does not need a new budget every month.
Version 1.16.0
10 September 2026
Administrators

A payment can settle part of what is owed

Vendor payments no longer have to cover a cost in full. Pay part of a month's work and the rest stays visible as due, instead of the whole amount reading as unpaid.

  • Added an amount box against each cost when matching a vendor payment, so one payment can settle part of a month's work.
  • Defaulted each amount to as much of the payment as that cost still has outstanding, with a one-click All button.
  • Showed what a cost still has outstanding rather than only whether anything has been paid against it, and refused an allocation larger than that.
  • Reported part-paid vendor cost in the ledger as paid-and-due rather than as entirely unpaid.
  • Drove the outstanding figures from what is still due, so a partly settled month reports the remainder and not the whole.
Version 1.15.0
10 September 2026
Administrators

An approved expense can still be corrected

Approving an expense no longer locks the row against every future change, so a wrong date or a cost sitting in the wrong month can simply be fixed.

  • Approval now records an expense as approved rather than locked, and the database rule that refused all later edits is gone.
  • Kept who approved an expense and when — the audit trail is unchanged; only the refusal to edit is removed.
  • Removed the Locked filter from the TDS breakdown, since nothing carries that state any more.
  • Bank statement import now skips rows already imported instead of adding a second copy, so re-uploading an overlapping month is safe.
  • Said plainly in the import preview how many rows were skipped as already present.
Version 1.14.0
10 September 2026
Administrators

Vendors, by the month the work was done

The Vendors page now reads the same expenses that drive project burn, and separates the month work was done from the month the money left the bank — so what is still owed is visible instead of inferred.

  • Rebuilt the Vendors page on vendor expenses and matched bank lines, replacing a payment list that never reached the P&L.
  • Added four figures for the chosen month: work recorded, cash that left the bank, due to pay now, and outstanding across all months.
  • Listed every vendor cost with no payment matched to it, oldest work first, so nothing sits owed and unnoticed.
  • Showed work done in the month beside the payments that left in the same month, with the work month each payment settles.
  • Named the gap between recorded cost and bank amount as TDS withheld rather than leaving it as an unexplained difference.
  • Kept the old payment notes on the page, marked clearly as reference only.
Version 1.13.0
10 September 2026
Administrators

A vendor payment finds the cost it settles

Reconciling a vendor payment now asks which month the work was done and offers the cost already recorded for it, instead of quietly creating a second copy.

  • Added a matching step when a bank line is classified as a vendor payment: pick the work month, then tick the recorded cost it settles.
  • Defaulted that month to the one before the payment, since vendors bill for the month just gone.
  • Showed any difference between the payment and the cost, and said what it means — tax withheld, still owed to the vendor, or due back to whoever paid it.
  • Marked cost already matched to another bank line so the same expense cannot be settled twice.
  • Kept creating a fresh expense available for genuinely new cost, but no longer as the only route.
  • Removed months before April 2026 from the Finance month picker, since no data exists before then.
Version 1.12.1
9 September 2026
Administrators

Drawings sit beside the profit they come out of

The monthly current account — what an owner withdrew, what they spent for the company, and what is still owed either way — moves from Salary to the Project P&L, directly under the header cards.

  • Moved the Monthly current accounts panel to the Project P&L, immediately below the four summary cards.
  • Removed it from the Salary tab so the settlement figures live in exactly one place.
Version 1.12.0
9 September 2026
Administrators

The P&L stops flattering itself

Operational NET is now money actually collected minus cost, an unapproved month no longer reports its payroll as free, and invoices that should never have come across from Zoho can be excluded.

  • Split the Project P&L header into four cards: invoiced excluding GST, collected excluding GST, total burn, and Operational NET.
  • Rebuilt Operational NET as collected minus burn, so work invoiced but not yet paid is no longer counted as profit.
  • Counted salary in months whose salary sheet is not approved yet, at the configured amount, and badged those figures as provisional — an unapproved month previously reported its entire payroll as zero cost.
  • Booked salary for anyone with no logged hours and no project mapping as company overhead instead of dropping it from burn altogether.
  • Added Exclude to any invoice in Collections, so a duplicate or non-revenue record from Zoho counts towards nothing and stays excluded through future syncs.
  • Added a month filter to Special days on the Content Calendar.
Version 1.11.1
9 September 2026
Everyone

The homepage counts its own modules

The module count on the homepage is now read from the module list itself, so it cannot drift out of date as Pulse grows.

  • Replaced the hand-written module count in the homepage heading with the actual number of modules listed below it.
Version 1.11.0
9 September 2026
Everyone

A shorter homepage that shows the product

The public landing page drops from nine sections to six, leads with recreations of real Pulse screens, and answers the nine questions people actually ask before booking a walkthrough.

  • Cut the homepage to six sections: hero, Pulse in action, how information flows, modules, FAQ and one closing call to action.
  • Replaced the wall of twenty-six feature cards with a scannable four-column module list.
  • Gave each team tab a product screen of its own, including new recreations of the salary sheet review and the content calendar's special days view.
  • Added a nine-question FAQ covering pricing, rollout, access control, GST and TDS, and data separation.
  • Published FAQ and product structured data so the answers can surface directly in search results.
  • Sharpened the page title, description and social preview text around what Pulse actually does.
Version 1.10.1
9 September 2026
Administrators

Payroll pays what Finance approved

A corrected salary amount now reaches the bank file, the summary cards and every cost view, instead of being quietly recalculated away.

  • Made the bank NEFT download carry the amounts signed off on the salary sheet rather than the configured salary.
  • Showed the calculated figure beside the payable one in the export table and marked every row Finance corrected.
  • Labelled the export clearly while a month's salary sheet is still unapproved.
  • Corrected project burn and the project P&L, which had been spending the pre-override figure.
  • Kept months approved before per-employee amounts existed on their configured salary instead of reporting nobody as paid.
Version 1.10.0
9 September 2026
Signed-in teams

Special days belong to Marketing

The festive calendar moves to the Content Calendar, so upcoming special days sit beside the posts already planned for those dates.

  • Added a Special days view to the Content Calendar, alongside Table and Calendar.
  • Placed festivals on the month grid itself, highlighted where a graphic has not been raised yet.
  • Let the Content Calendar Admin role add and edit special days, which previously failed however the screen looked.
  • Kept company offs and employee celebrations with HR, where they drive payroll and working days.
  • Redirected the old HR Admin festive calendar link to its new home so existing bookmarks keep working.
Version 1.9.0
8 September 2026
Administrators

Salary sheets are reviewed before they are spent

Finance can correct any calculated salary before approving a month, and project costs follow the approved figure.

  • Added a review table showing each employee's calculated amount beside an editable approved amount.
  • Required a reason whenever an amount is changed, and recorded both figures for audit.
  • Made Project Burn and the project P&L read approved salaries instead of recalculating them.
  • Marked months without an approved salary sheet as provisional rather than presenting an estimate as final.
  • Restated project allocations against the approved amounts so the finance P&L matches the sheet.
Version 1.8.2
8 September 2026
Everyone

Cleaner client showcase

Client logos on the public Apply page now fill their badge, without the client name repeated underneath.

  • Removed the client name label from each logo badge.
  • Sized every logo to fill its badge edge to edge, dropping the white ring around the artwork.
  • Kept the client name for screen readers and as the fallback if an image fails to load.
Version 1.8.1
8 September 2026
Everyone

Self-hosted client showcase

Client logos on the public Apply page are now served directly by Pulse for consistent loading across browsers and networks.

  • Bundled all 49 client logo assets with Pulse instead of hotlinking the corporate website.
  • Optimised the complete logo set for fast loading while preserving circular white logo cards and client names.
  • Added a regression check that rejects external client-logo requests and verifies every bundled asset exists.
Version 1.8.0
8 September 2026
Everyone

Reliable careers presentation

The public careers experience restores the circular client showcase and protects the separate trainee application and release history from regression.

  • Restored the client carousel as circular white logo badges with visible client names.
  • Preloaded logos without sending a page referrer and retained a readable fallback if an external asset fails.
  • Verified the separate Trainee/Intern application with college, graduation year, preferred department and resume fields.
  • Added regression coverage for the client carousel, trainee flow and chronological release notes.
Version 1.7.0
8 September 2026
Signed-in teams

Protected leave limits and final payroll

Paid-leave entitlement is enforced consistently, while employee exits preserve the correct final payroll and company history.

  • Fixed paid leave at 5 Sick and 5 Casual days per April-March financial year.
  • Kept the combined 2-day monthly paid-leave limit and made pending requests reserve the remaining allowance.
  • Blocked excess Sick or Casual requests across employee, manager, HR and assistant entry paths with a clear option to use Unpaid leave.
  • Made the explicit last working day authoritative when payroll is generated after an employee is deactivated.
  • Preserved the final work-month payroll for payment in the following month while excluding later payroll months.
  • Protected employees with payroll, attendance or leave history from permanent deletion and directed HR to the dated deactivation flow.
Version 1.6.0
8 September 2026
Signed-in teams

Candidate applications, task sharing and accurate holidays

A people-operations update separating job and trainee applications, making tasks easier to share, and keeping special days out of company-off calculations.

  • Renamed Trainee Applications to Candidates and added Job and Trainee/Intern filters to one hiring pipeline.
  • Added a focused trainee application for name, email, phone, college, graduation year, preferred department and resume.
  • Separated the Trainee/Intern Programme into its own public page and application form, independent of job applications.
  • Preloaded the complete animated client-logo strip and added a named fallback when an external logo asset is unavailable.
  • Preserved the detailed job application and the existing candidate stages, hiring history and training workflow.
  • Added Copy task link for every employee wherever Task Detail is available, with existing access permissions enforced.
  • Separated HR-approved company holidays from personal events, festivals and special days in attendance, payroll and timesheet calculations.
  • Preserved the Festive Calendar and its marketing-task creation utility.
Version 1.5.0
7 September 2026
Everyone

HR operations, clearer navigation and reliable analytics

A consolidated people-operations release with simpler role-aware navigation, configurable onboarding and restored product analytics.

  • Grouped navigation into My Work, Delivery, People and Administration while preserving role-based access.
  • Restored GA4 page and product-event tracking with a deployment-safe Pulse measurement ID.
  • Added HR-managed Glassdoor, Instagram and other company links used across onboarding and public pages.
  • Added editable onboarding templates, custom fields and permanent-address information for employees, trainees and contractors.
  • Added secure background-verification document requests and multi-file uploads visible only to the employee, HR Admin and Super Admin.
  • Added optional task creation when moving a trainee between hiring stages, plus stage history with dates.
  • Added monthly employee timesheet reporting, recurring-work grouping and compliance flags for missing, insufficient or unapproved hours.
  • Restricted automatic trainee assignment to Colladome Organization & Culture Academy and added cleanup for unstarted unwanted training.
Version 1.4.0
3 September 2026
Administrators

Company Tally import and reimbursement settlement

Finance can safely import Shubham-paid company expenses, preserve every source entry and settle reimbursements against company withdrawals.

  • Added paste-and-preview import for the complete Company Tally sheet without requesting Google Sheets access.
  • Added immutable Pulse Entry ID duplicate protection and conflict detection for previously imported rows.
  • Excluded receipts, company withdrawals and fully refunded groups from duplicate expense creation while retaining their audit treatment.
  • Added settlement correction so company withdrawals balance reimbursable expenses through bank reconciliation.
  • Preserved Meta, BNI and refund-specific GST/TDS treatment from the reviewed source entries.
Version 1.3.0
3 September 2026
Administrators

Monthly timesheet visibility

HR administrators can review where employee time is spent across one or more months.

  • Added employee and date-range filters for monthly timesheets inside HR Admin.
  • Added logged, approved and pending-hour totals with CSV export.
  • Grouped recurring work by task and project to make repeated effort easier to assess.
  • Kept department selection manual while respecting the viewer's existing visibility scope.
Version 1.2.0
29 August 2026
Signed-in teams

Recurring summaries and notification controls

Pulse can now deliver role-aware operational summaries by email and inside the app, with personal and organisation controls.

  • Added personal daily, manager team and leadership company wraps.
  • Added weekly summaries, HR morning briefs and finance weekly briefs.
  • Enabled email and in-app delivery by default while allowing each user to opt out by category.
  • Added super-admin controls for category availability, delivery days and IST delivery times.
  • Added protected scheduling, delivery history and duplicate-send prevention.
Version 1.1.0
28 August 2026
Everyone

A clearer, more connected Pulse

A product-wide release covering the public experience, demo parity, people operations, branding and reliable notifications.

  • Redesigned Pulse home, sign-in, interactive demo and careers experiences with improved social previews.
  • Refreshed Pulse branding, logo treatment and favicon across public and signed-in screens.
  • Made the demo reuse the production interface while keeping all demo data fictional and browser-local.
  • Added HR holiday management, employee birthdays, joining anniversaries and daily celebration moments.
  • Clarified Team calendar and HR Admin responsibilities for leave, holidays and special dates.
  • Added premium SMTP templates for leads, candidate applications and daily operational reports.
  • Added protected email testing with delivery feedback for super administrators.
  • Improved defensive handling for incomplete demo notification and learning records.
Version 1.0.0
19 August 2026
Signed-in teams

Pulse production foundation

The first consolidated release of the Colladome team operating system.

  • Unified work, people, projects, finance, learning and administration in one authenticated workspace.
  • Introduced role-based navigation and super-admin controls.
  • Added the isolated interactive product demo.