Changelog
Everything we ship, release by release. New integrations, HR and timesheet improvements, automation upgrades, and fixes.
v1.5
Β· 79 updatesAdmin
- Ideas queue hides shipped ideas
Docs & help
- Help article: date tokens in scheduled emails β New public help article documenting every scheduled-email date token plus the :nextweekday, :prevweekday, :weekday and :noday modifiers, with a timesheet-reminder example.
Email & communications
- Customer texting bundled with Customer Portal β A customer text reply lands as a customer-visible comment, so customer texting is the Customer Portal over SMS - same audience, same consent posture. No new SKU needed.
HR
- Annual Personal Day capped as use-it-or-lose-it β Carryover was stacking to 16h instead of resetting.
- HR Review PDF downloads β One-click PDF export for timesheets and travel expense vouchers from /hr-review.
- Ledger History tab on Person -> Time Off β Chronological ledger with Date, Type, Hours, Prior -> After, Who, Note and a one-click Reverse button (leader-only).
- Nightly PTO integrity sweep + super-admin alerts card β Cron job at 04:30 UTC scans every workspace and writes findings to time_off_integrity_alerts; PtoIntegrityAlertsCard surfaces them on the platform dashboard.
- Paste rich email signatures β Copying a signature out of Gmail or Outlook and pasting it into a person's signature block now keeps the logo, links and table layout instead of dropping to plain text.
- People merge + workspace profile β Combine duplicate people and let members maintain their profile per workspace.
- Person Type tabs + profile chip editor β Filter the People list by type and edit the type from the profile header.
- Policy card math clarity (accrued + grant = total) β Balance cards now show the explicit accrued + grant math and stop projecting future accruals for annual_lump policies.
- PTO integrity alerts show the details β Admins could see an error count but not what failed.
- PTO ledger balance snapshots β Every time_off_ledger row now stores prior_balance_hours and balance_after_hours via trigger. Historical balances are reproducible and drift is instantly detectable.
- PTO ledger reversals (non-destructive undo) β Admins reverse an entry via a compensating adjustment row instead of deleting. Original stays visible, downstream snapshots recompute automatically.
- Recompute time-off snapshots from HR review β Managers can rebuild ledger balance snapshots per employee or for everyone at once directly from the Time off balances tab, without opening each person's profile.
- Summary timesheet PDF (no notes) β Long note text made printed timesheets sprawl over many pages.
- Timesheet lock on approval β Once approved, only managers/owners can edit; employees are locked out.
Integrations
- Customize your text-message wording β Every workspace phrases reminders and approval requests differently, so the shipped wording rarely fits as-is.
- Opt a person in to text messages from their profile β Each person profile now has a Text messages (SMS) card on the Overview tab: add their mobile number and flip the opt-in toggle. Only opted-in people receive workspace texts and have their replies recognized; opting out is recorded with a timestamp.
- Send test SMS from the text-messaging card β One click sends a test text to your own workspace number and shows the provider's delivery state (queued, sent, delivered, or failed) right on the card.
- Text messages (Twilio) listed on integration statuses
- Two-way texting with customers β Text opted-in customer contacts about their tasks and have their replies come back as customer-visible comments on that task. Numbers and consent live on the customer's Contact tab (added numbers start opted out), with a separate workspace "Text customers" switch, an editable customer message template, and STOP/START honoured on both sides. Customers never receive approval codes and cannot create tasks by text.
Integrations β Atarim
- Atarim tasks keep the customer name in the title β Tasks synced from Atarim now always get the "[Customer]" title prefix, even when the sync did not pass the customer along. Existing Atarim tasks were backfilled.
Integrations β Shipped
- Atarim: bots toggle, manual entry, hierarchies, resync purge β Exclude AI teammates by default, manually link projects when the picker is incomplete, mirror subtask hierarchies, and purge stale comments on resync.
- Atarim: long task titles clamped β Huge Atarim titles were breaking task updates.
- Customer list integration badges β The customers list now shows a badge next to a customer name when they are connected to Atarim or Plutio, so you can spot linked accounts at a glance.
- Google account visibility toggle (private/shared) β Swap connected Google accounts between private and shared without reconnecting; fixes GOOGLE_NO_REFRESH_TOKEN.
- Google Tasks priority-tag reconcile β Read-before-write safeguard on fan-out plus a reconcile pass that strips [priority:*] fingerprints and removes stale mappings so completed Google tasks stop resurfacing.
- MeetJamie: clean plain-text summaries β Imported summaries were rendering as code blocks.
- MeetJamie: import from a shareable link β Meetings can be imported without a Jamie API key.
- Plutio project picker pagination β listPlutioProjects now paginates up to 5,000 projects so large workspaces see everything in the combobox.
- Plutio project picker pagination β Workspaces with >200 Plutio projects only saw the first page in the picker.
- Plutio: bulk sync no longer expires mid-run β Manual "sync all" failed with JWT expired.
- Plutio: multi-customer projects + create fix β Share one Plutio project across multiple customers; fixed 400 "title not allowed" on create; added searchable project combobox.
Notifications
- Approval nudges and replies by text β Timesheet and travel-voucher submissions text approvers, who reply APPROVE or DENY with a single-use code. Permissions and self-approval guards are re-checked on every reply.
- Text messages (SMS) via your own Twilio number β Workspaces connect their own Twilio account and number in Settings β Integrations, with a workspace on/off switch and a test-message button.
People
- HTML email signatures on person profiles
Platform
- Live Google Analytics reporting in super admin β Super admins had to leave the app to see traffic numbers.
- Persistent topbar across the app β The workspace topbar (logo, workspace switcher, timer, profile) plus a quick nav row now stays visible on every signed-in page, so you no longer have to backtrack to reach other areas.
- Real delivery status for scheduled emails β "Sent" only meant the provider accepted the message, so bounces looked like successes.
- Workspace member removal permissions aligned β Owners and managers could add and edit members but not remove them.
Platform β Shipped
- Admin Docs & Specs registry β Registry (_modules.json) drives which spec .md to update when files change.
- Admin Ideas queue β Central place to triage, vote on, comment on, and promote quick ideas into roadmap rows.
- Changelog timeline (ISO-week grouping) β Human-friendly release history grouped by week and category.
- Conopeum revenue card β Pull Stripe revenue filtered by metadata.external_id so unrelated products are excluded.
- Costs & credits super-admin dashboard β Track AI credit usage, spend, and top-ups per workspace and overall.
- Custom Google OAuth app for sign-in β Sign-in screen now shows "Conopeum" and routes users to /app after auth.
- Larger build memory so deploys stop failing β Builds were running out of memory.
- Post-auth redirect to /app β After Google sign-in users landed on / instead of the app shell.
- Post-signin redirect to /app β index route forwards authenticated users to /app instead of leaving them on the marketing home.
- Product overview doc for the platform β Needed a copy-ready feature breakdown.
- Quick Idea floating launcher β Capture ideas from anywhere in the app without breaking flow (super admin only).
- Roadmap PDF export β Download release notes + full roadmap as a shareable PDF.
- Roadmap progress bars + version pills β Visualize checklist completion and which versions each partial shipped in.
- Roadmap versioning + Make new release β Bundle shipped work into named releases (vX.Y) with released_at stamping.
- Security hardening (RLS, search_path, deps) β Multiple rounds: rescoped public-role policies to authenticated, fixed mutable function search_path, upgraded vulnerable deps, blocked self-approval on task edit requests.
- Server health banner + workspace load retry β Automatic retry with fallback UI when the workspace page fails to load.
- Split features across releases β Checklist items can ship in their own version independent of the parent row.
- Stripe migration (from Paddle) β Manage products and prices directly from /pricing-admin using Stripe.
Plutio
- Plutio time entries include the timer note in the title β Time-track lists in Plutio showed only the task title, making entries hard to tell apart.
Scheduled emails
- Test sends can skip the [TEST] subject prefix
sms
- Inbound text inbox: approval replies, pending reviews, and sender names β The inbound texts page now has Needs review, Approval replies, and All views. Every message shows who sent it (member, customer contact, or unrecognized number), when it arrived (exact plus relative time), a plain-language description of what the text did, and when it was reviewed.
Tasks
- Create tasks by text message β Texts from a recognized member's mobile number become tasks automatically; unmatched numbers are held in a new Inbound texts review queue.
- Default tasks view persists across sign-ins
Tasks β Shipped
- AI email-to-subtask extractor β Pulls actionable subtasks out of long attached emails on demand.
- Attach-to-task dialog overflow fix β Long task titles no longer break out of the popup when picking a task to attach mail to.
- Multi-section bulk assignment β Assign multiple sections to selected tasks (renamed from Move to Section).
- Priority editor on saved tasks β Change high/medium/low priority any time from the task detail view.
- Recurring Tasks dashboard β Central place to see and manage repeating tasks (π badges on the board).
- Refresh from Google button β Force re-fetch of promoted/split tasks so the board reflects Google Tasks immediately.
- Task comment reads + My Inbox β Track unread comments per user and surface them on the dashboard inbox.
- Waiting queue for tasks β Park tasks that are blocked on someone else on a dedicated /waiting view with badges.
Text messages (SMS)
- Site-wide SMS kill switch β Super admins can pause all text messaging everywhere from Super Admin β Overview, the same way outbound emails can be paused. While off, nothing sends (including test sends and template samples) and inbound texts are ignored.
Time tracking & PM
- Plutio β searchable customer picker β The Plutio project picker dropdown became unwieldy as customer lists grew.
- Timer stop notes up to 8,000 characters β Stopping a timer failed when notes were long.
- Timesheet copy: placeholders render real values β Submit dialog and timer labels showed raw placeholder tokens instead of dates and hours.
- Timesheet Due reminder now names the next business day β Weekend deadlines in the Timesheet Due schedule roll forward to Monday instead of reading as Saturday or Sunday.
- Weekday-aware date tokens in scheduled emails β Date tokens now support :weekday, :nextweekday and :prevweekday so weekend dates render as the nearest business day (Sunday shows as Monday). Chainable with :noday.
Timesheets
- Timers now ask for a note when you stop them β Time entries were often saved with no context about what was worked on.
v1.0
Β· 57 updatesAnalytics & website
- Fathom Analytics β Privacy-first traffic analytics.
- Google Search Console β SEO insight for admin dashboard.
Automation β Shipped
- Custom variables + relative dates β Tokens: {{today+N}}, {{next.tuesday}}, {{period.start/end}}, {{site.name}}, etc.
- From-name / Reply-to control β Set who the scheduled email appears from.
- Scheduled emails β Auto-email panel per task with delivery history and test-send.
- Semi-monthly cadence β Anchor days (15th / end-of-month) with weekday shift.
- Site-wide + per-workspace email kill switch β Master toggle to pause all outgoing mail.
Email & communications
- Emailit β Transactional outbound + inbound webhook.
- Gmail β Core differentiator β multi-account inbox β tasks.
- Google Calendar β Task due dates β calendar events.
HR
- Advance grant policies β Earned-to-date vs Total-available metrics.
- Configurable time rounding rules β None / 5 / 6 / 7-min / 15-min + first-entry min-duration.
- Document vault (Google Drive links) β Per-person HR docs with optional expiry.
- Employment types (workspace-managed) β Configurable per workspace with search + filter.
- Fiscal year per company β Drives vacation reset dates (e.g. July 1).
- HR Review dashboard β /hr-review with New/Done tabs, noted status, approve/reject, PDF downloads.
- HR Viewer role (bookkeeper) β View-only + noting for balances, timesheets, vouchers.
- Interim / shadow employees β Managers can seed time-off and profile data before an invite is accepted.
- L3Y FTE accrual basis β Accrue vacation based on avg hours worked in last 3 years.
- Person profile tabs β Time off, Timesheets, Tasks, Permissions, Documents, Manager tabs.
- Person profiles β Hire date, employment type, resume link, emergency contact, notes, permissions, manager tab.
- Sick vs vacation policy selection on request β Employees pick policy type when requesting time off.
- Time-off integrity verifier + ledger guards β DB constraints + verifyTimeOffIntegrity to prevent bad math.
- Time-off policies + tenure tiers β Per-workspace policies, employee eligibility, at-risk carryover, YTD earned/used, manager report.
- Timer tracking β Decoupled from timesheets; usable as a task feature (also pushes to Plutio/ClickUp).
- Timesheet approval + lock β Approved timesheets lock; owners/managers can still edit.
- Timesheet PDF export β Branded PDF from HR Review and personal timesheet.
- Timesheets β Periods, submissions, approvals, lock-on-approval, PDF export.
- Travel expense vouchers (mileage) β IRS-rate mileage entries, receipts, approval workflow, PDF export.
HR - Time Off Requests
- Allow Type of time off to be selected when there is more than one for an employee
HR β Quick Wins
- Birthdays + hire anniversaries β Surfaced on the dashboard for the next 30 days.
- Documents vault β Per-person HR docs (offer letter, W-9/I-9, NDA, handbook) stored as links (Google Drive), with optional expiry.
- Holidays calendar β Per-workspace paid holidays with recurring flag.
- Weekly hours per person β Expected hours/week (drives future overtime + accrual accuracy).
Meetings & notes
- Fathom β tasks β Convert Fathom meeting notes into tasks automatically.
Platform β Shipped
- Admin ideas + Quick Idea launcher β Floating capture button for super-admins.
- Impersonation floating panel β Super-admin impersonation with scoped Google surfaces.
- Multi-workspace profile β One login, per-workspace identity + additional emails.
- People types + merge β Merge duplicate people; HR gating by type.
- Server health banner + workspace retry β Transient load errors auto-retry with diagnostics panel.
- Stripe billing (replaced Paddle) β Products/prices managed in /pricing-admin.
Storage & docs
- Canva β Design asset attachment.
- Google Drive β Attach Drive files to tasks without re-upload.
- MyMarky β Push task to MyMarky as social post draft; media library sync.
Tasks β Shipped
- AI email β subtask extraction β On-demand Sparkles button extracts subtasks from linked emails.
- Bring-Your-Own-AI keys β Per-workspace organization_ai_keys; toggle ai_extract_email_subtasks.
- Bulk complete / delete β Multi-select bulk actions on the task list.
- Multi-section assignment β Assign a task to multiple sections; bulk-assign supported.
- My Inbox (new comments) β Dashboard tile surfaces unread task comments across the workspace.
- Recurring badge on task list β Indigo Recurring chip next to the due-date chip.
- Recurring tasks dashboard β Workspace-wide /recurring-tasks view with quick Stop.
- Refresh from Google β Manual Refresh button re-pulls Google Tasks state on demand.
- Subtask promotion / split β Promote a subtask to a standalone task; inherits org and highlights on the board.
- Ticket merging β Merge two email threads from the same customer into one task.
- Waiting queue β Park tasks blocked on external replies in a dedicated queue with badges.
Time tracking & PM
- Atarim β User-requested.
- Plutio β First integration; small-agency favorite. Reference implementation.
Want something on this list? Tell us what to build next.
