Changelog

Version history and release notes for Client Octopus.

1.4.1

Update

New

  • Emails, the settings and plan screens, and the public booking and lead capture forms are now translatable, with a translation template included for translators. The React-based admin screens, the client portal, and the proposal view are not covered yet
  • Set a Default Currency in Settings, and during first-time setup. New proposals and invoices open in your currency instead of always defaulting to British Pounds. Existing records keep the currency they were created with
  • 15 more currencies, bringing the total to 20 — Japanese Yen, Swiss Franc, New Zealand Dollar, Swedish Krona, Norwegian Krone, Danish Krone, Singapore Dollar, Hong Kong Dollar, Indian Rupee, Polish Zloty, Czech Koruna, Brazilian Real, Mexican Peso, South African Rand, and South Korean Won — all working everywhere the original five did, including Analytics currency conversion
  • Choose Stripe or PayPal during first-time setup and enter your details there, instead of finishing PayPal setup afterwards in Settings
  • Pick your logo from the WordPress Media Library, in Settings and during setup, instead of pasting in a direct image URL
  • VAT Registration Number in Settings — once set, it's filled in automatically on new invoices and on invoices generated from an accepted proposal, instead of being typed in by hand each time
  • Add images to a proposal — pick from your Media Library, choose full, wide, or half width, and add a description for clients using a screen reader. Images appear in the client's copy and when printed
  • Change a team member's role from the Team screen, applying immediately instead of requiring removal and re-invitation (Agency)
  • The signing certificate on an accepted proposal now records the device the client signed from, and a fingerprint of the proposal exactly as it stood when they accepted it — if the proposal is edited afterwards, the certificate reports that it has changed since signing
  • Clients can now unsubscribe from reminder emails — proposal reminders, invoice reminders, call reminders, and testimonial requests each carry an unsubscribe link and a preferences page. Essential emails (proposals, invoices, receipts, booking confirmations, portal logins, approval requests) are never affected
  • Each client's detail screen now shows which reminder emails they still receive and which they've unsubscribed from, with a button to copy their preferences link

Improved

  • Webhooks are now queued and delivered in the background with automatic retries, so a proposal acceptance no longer waits on them and a temporary outage at the receiving end no longer loses the event permanently. Repeated failures pause the webhook with the full response recorded for diagnosis (Pro & Agency)
  • The plan comparison screen was missing seven features that differ between plans — Call Booking, Calendar Sync, Webhooks, Analytics, Testimonials, Leads, and Invoices — so it understated what the paid plans include
  • Accessibility — popups now keep keyboard focus inside them, close with the Escape key, and return focus to where you were when they close. Form fields across the admin are now properly associated with their labels
  • The Plan & Usage screen has been reorganised — your plan and usage figures sit in a single band at the top, quick actions moved up beneath it, and the feature list is grouped into Win Clients, Deliver Work, and Get Paid & Automate instead of one long grid
  • Emails that can be unsubscribed from now include standard List-Unsubscribe headers, so Gmail and Outlook can offer their own one-click unsubscribe button
  • Privacy requests handled through Tools → Export/Erase Personal Data now cover far more than before — booked calls, the name and IP address recorded when a proposal is signed, project messages, approval comments, and unsubscribe records, alongside the client records and leads already covered
  • An erasure request now reports honestly about what was kept — booked calls, project messages, and approval comments are deleted outright, while invoices, payments, and accepted proposals are kept but stripped of personal details (including anonymising the signing IP) because accounting records must be retained for tax purposes

Fixes

  • Currencies written without decimal places, such as Japanese Yen and South Korean Won, are no longer shown with a meaningless ".00" on the end
  • Online payments in Japanese Yen or South Korean Won were sent to Stripe at 100 times the correct amount, and rejected by PayPal, because the code assumed every currency has a sub-unit like pence. Affected proposals, invoices, recurring billing, and payment plans
  • Payment confirmation emails showed the currency code and two decimal places regardless of currency, so a yen payment read "JPY 17,088.00" instead of "¥17,088"
  • A recurring invoice set to auto-charge tried to charge the first invoice before the client had a chance to pay one and save a card, incorrectly telling them their card was declined. Auto-charge now starts from the second invoice (Pro & Agency)
  • The currency dropdowns listed Canadian and Australian Dollars with a plain "$", making them impossible to tell apart from US Dollars
  • Booking cancellation links in emails could be triggered by corporate mail scanners and link previewers, silently cancelling a confirmed booking nobody actually cancelled. Cancelling now requires a deliberate confirmation step (Pro & Agency)
  • Team members with the Viewer role could perform destructive actions — bulk-deleting leads, cancelling booked calls, editing blocked time, changing automated email content — that now correctly require Editor or Admin
  • Team members with the app's Admin role could create brand-new WordPress user accounts and email a password-reset link to any address. Creating a new WordPress account now requires a site administrator
  • Downgrading from Agency to Pro left Messaging, File Sharing, and Approvals usable on existing projects — these are now correctly restricted, with existing conversations and files still readable but not addable to
  • Ticking "Delete all Client Octopus data when this plugin is deleted" left six database tables behind, including active portal session tokens, encrypted calendar credentials, and client-uploaded files. Uninstalling now removes all of it
  • Public proposal and invoice links now use a cryptographically secure random token instead of a predictable one. Links already issued remain valid
  • The payment status check did not verify its token, so payment amount, currency, and status could be read without it
  • Currency symbols didn't match between the admin and the client's emailed invoice copy — now consistent everywhere
  • The project completion email always showed the outstanding balance in pounds regardless of the proposal's actual currency
  • The button on the project completion email read "View Project" but opened the final invoice — it now reads "Pay Final Invoice" or "View in Portal" depending on whether a balance remains
  • The client email preferences page offered to switch off reminders your plan can't send in the first place — only categories your plan actually sends are now listed
  • When a client's portal session expired, the portal showed raw error text instead of returning them to the login screen
  • Database updates could run too late after an automatic plugin update, including when updated via WordPress auto-update or a manual file upload rather than activation
  • Team members always saw "0" on the unread messages badge regardless of actual unread count (Agency)
  • AI usage records stored no token counts and no cost, leaving AI usage reporting blank (Pro & Agency)
  • Free-plan users opening Bookings or Analytics saw an error message with no way forward — both now explain the feature and link to upgrade
  • The Unsubscribe link in reminder emails acted as soon as it was followed, so mail scanners could unsubscribe a client who never clicked it. It now opens a preferences page instead
  • The booking confirmation and reminder emails didn't state which timezone the time was in, which could read as a different time than the one the visitor actually booked

1.4.0

Update

New

  • Client Detail — an Activity Timeline of proposals, invoices, and payments for that client, quick-create actions for a new Proposal, Invoice, or Recurring Invoice already prefilled with the client, Lifetime Value and Outstanding Balance stats, and Client Tags with a Manage Tags screen for filtering your client list. Available on all plans
  • Duplicate client protection — creating a client with an email or phone number that matches an existing client now warns you before a duplicate record is created
  • Export a client's full transaction history to CSV
  • Invoice Overdue Automated Reminders — automatically follow up on invoices that have passed their due date, alongside the existing Automated Reminders for proposals
  • Analytics Reporting Currency — choose which currency Analytics converts figures into, in Settings. The Revenue KPI and revenue chart now correctly convert proposals, invoices, and payments made in other currencies using daily exchange rates, instead of adding every currency together as if it were one (Pro & Agency)
  • Payment Plans — split a proposal's total into equal instalments billed on a schedule (e.g. 3 monthly payments), as an alternative to a single payment, a deposit, or open-ended recurring billing. Choose "Payment Plan" as the billing type when creating a proposal, set how many payments and how often, and the rest — invoicing, emails, and optionally auto-charging the client's saved card — happens automatically. Available on all plans

Improved

  • Outstanding Balance and Lifetime Value on Client Detail now show each currency separately for clients billed in more than one currency, instead of incorrectly adding different currencies together into one number
  • Several admin screens (Proposals, Invoices, Recurring Invoices, Leads) no longer show an empty page after deleting the last item on it
  • Client phone numbers are no longer truncated when longer than 20 characters
  • Recurring invoices can no longer be saved with an incomplete "Ends" condition, which previously could result in a billing schedule that never stopped
  • The Team screen's member table now matches the styling used across the rest of the admin instead of using its own inconsistent layout

Fixes

  • Invoices that passed their due date were never actually marked overdue in the background, so the overdue badge shown in the admin table and client portal could go stale until the invoice was next opened. Overdue status is now refreshed automatically every day
  • Proposal currency is now validated to the same supported currencies as Invoices and Recurring Invoices, preventing an unrecognised currency code from being saved
  • Plan changes (upgrade, downgrade, and cancellation) now sync correctly in both directions — previously a downgrade or cancellation wasn't always reflected locally, which could leave an account with more access than its current plan allows
  • Tightened access control on account setup and the internal usage-report endpoint so both are restricted to the site administrator, not any invited team member
  • Analytics revenue could be double-counted for proposals paid via a deposit followed by a final invoice — the Revenue KPI, chart, and CSV export now count each payment once
  • A payment completed just after its invoice was cancelled, or just after its proposal was declined, is no longer silently applied as if nothing had changed — the underlying charge is preserved for reconciliation instead
  • The client portal's one-time login link could, in rare cases, be used more than once if opened twice in quick succession
  • A cancelled call-booking slot could become permanently unbookable instead of reopening
  • Various background jobs (reminders, calendar sync) are now more resilient to being triggered more than once in overlapping runs

1.3.2

Update

New

  • Import Clients from CSV — upload a client list exported from Moxie, HoneyBook, Dubsado, or any other tool, map the columns yourself (including split First/Last Name columns), preview the results, and bulk-create client records. Available on all plans
  • Export Clients to CSV — download your client list to bring into Mailchimp, Campaign Monitor, or any other tool. Available on all plans
  • Export Invoices to CSV — download your invoice list, including client, amount, status, and dates, to bring into Xero, QuickBooks, or any other accounting tool. Available on all plans
  • Purchase Order (PO) numbers — add a client's PO number to a proposal any time after it's sent, and it's automatically applied to every invoice generated from that proposal, including ones already sent. Invoices can also be given a PO number directly, with suggestions drawn from that client's recent PO numbers. Available on all plans
  • Proposal deposits now automatically generate a matching, already-paid Invoice record for accurate bookkeeping and CSV export, without changing how the client pays. When a proposal or project is marked complete, the remaining balance is now billed as a real payable invoice instead of a link that could point nowhere (Pro & Agency)

Improved

  • Agency plan team seats increased from 5 to 10

Fixes

  • A daily background sync could report a blank account email to the AI relay service in certain non-interactive contexts, leaving some entries in the relay's admin view unlabelled. Corrected to always read the actual connected licence account
  • Popups (Import Clients, and the invoice/proposal quick-edit modals) could render clipped or fail to cover the full admin page in some layouts

1.3.1

Update

New

  • Lead Capture — embed a [clientoctopus_lead_form] shortcode on any page to collect inquiries directly into Client Octopus instead of a separate form plugin. Choose which fields to show and require, customise labels, and add a consent line. Available on all plans
  • Leads admin screen — view, filter by status, mark as contacted, archive, or convert a lead straight into a client record with one click
  • A lead.captured webhook event for connecting new leads to your CRM, Zapier, or Slack (Pro & Agency)
  • Optional Cloudflare Turnstile CAPTCHA and configurable submission-rate limits to help prevent automated spam on the lead capture form
  • Optional automatic reply email to anyone who submits the lead capture form, which can include a "Pick a Time to Talk" link to your Booking Page when Booking is enabled
  • Call Booking (Pro & Agency) — add the [clientoctopus_booking_form] shortcode to a page and let leads and clients book a call directly, based on your configured weekly availability, buffer time, minimum notice, and maximum booking window
  • Bookings admin screen — view, search, and cancel booked calls
  • Booking confirmation and 1-hour reminder emails, with a calendar invite (.ics) attachment and a one-click "Add to Google Calendar" link
  • Calendar Sync (Pro & Agency) — connect Google Calendar, Microsoft 365/Outlook, or Apple iCloud in Settings. Existing events on any connected calendar automatically block matching slots in your booking availability, shown with their real event title
  • Confirmed bookings are automatically pushed out to every connected calendar as a real event, including your configured meeting link
  • "Sync now" and "Sync existing bookings" buttons in Settings, and an Apple iCloud calendar picker when more than one calendar is found on the connected account

Improved

  • The Settings page is now organised into tabs (Branding, Payments, Leads, Booking, Automations, Advanced) instead of one long scrolling page
  • Various security hardening across client data access, file handling, and API rate limiting

Fixes

  • A recurring invoice profile with no payment method on file would previously regenerate unpaid invoices indefinitely with no notification — it now correctly pauses and notifies the owner after repeated attempts, same as a real card decline
  • Testimonial request emails were never sent for clients on recurring/retainer billing, even once they were fully paid up
  • The "View Project" link in the project-completion email pointed at the portal's login page instead of the client's actual invoices
  • A completed project's status could still be freely changed back to Active or On Hold, and completing a project gave no indication if the client still had an active recurring billing profile attached — completing a project now offers to pause any active recurring profile for that client, and a fully-settled completed project is locked from further status changes

1.2.0

Update

New

  • Package Selector pricing mode for proposals — toggle between Flat Pricing and Package Selector when building a proposal; define unlimited pricing tiers (each with its own independent line items) plus optional add-ons. The client picks a tier, toggles any add-ons, and sees the total recalculate live before accepting
  • Recurring Billing for proposals — toggle a proposal to Recurring billing instead of one-off/deposit pricing, set the frequency, start date, and end condition, and Client Octopus automatically creates a real Recurring Invoice profile the moment the client accepts, fully editable afterward. Recurring proposals never take a deposit or direct payment; billing runs exclusively through the generated invoice
  • Auto-charge for recurring invoices (Pro & Agency) — opt a recurring profile into automatically charging the client's saved Stripe or PayPal payment method each cycle instead of sending a "Pay Now" link. The first invoice is still paid manually, which securely saves the payment method for reuse. A failed charge is retried automatically with the client notified each time, then the profile pauses itself for you to follow up — it resumes automatically once payment succeeds again
  • Payment failure notifications — you and the client are now both emailed when a payment attempt on an invoice or proposal is declined, expired, cancelled, or needs additional verification from the client's bank

Improved

  • The Pricing block in the proposal editor can now be reordered like any other section, and renders on the client-facing proposal wherever it's placed instead of always appearing last
  • The Marketing Campaign proposal template is now available on every plan (previously Pro-only)
  • The proposal expiry date is now a required field with no pre-filled default, closing a gap where a blank date could silently skip the "expiring soon" reminder
  • Uninstall data protection — Settings → Danger Zone now has a "Delete all Client Octopus data when this plugin is deleted" checkbox, off by default. Deleting the plugin now only removes the code — your proposals, clients, projects, and invoices survive and are there again on reinstall — unless you explicitly opt into a full wipe

Fixes

  • Inconsistent admin form field styling caused by WordPress's default styles overriding the plugin's design
  • Inconsistent field heights for dropdowns in the proposal wizard and recurring invoice editor
  • Recurring profiles with a future start date billing immediately instead of waiting
  • The payment confirmation popup sometimes showing the full total instead of the actual deposit/balance being charged
  • A cosmetic JavaScript error that could appear after successfully sending or duplicating a proposal

1.1.3

Update

New

  • Recurring Invoices — set up a profile for a client (weekly, monthly, quarterly, or yearly) and Client Octopus automatically generates and sends a fresh invoice on schedule; clients still pay each one manually via the existing Pay Now flow
  • PayPal as an alternate payment provider (Pro & Agency) — choose either Stripe or PayPal as your active gateway; clients always see a single "Pay Now" button that routes to whichever gateway is configured, on both proposals and standalone invoices
  • "+ Add New Client" button in the Invoices and Recurring Invoices client picker for adding a client without leaving the form
  • Pagination on the Proposals, Projects, Invoices, Recurring Invoices, and Clients admin screens

Improved

  • Client search — in the client picker and the main Clients screen — now correctly filters by name, email, or company instead of always showing the full list
  • Faster plugin activation, particularly on sites that have been through several updates

Fixes

  • Webhook "Copy" buttons in Settings could silently fail to copy on non-HTTPS local development sites; now falls back to a compatible copy method

1.1.2

Update

New

  • Portal Button Colour setting — buttons across the client portal and public proposal/invoice/payment pages can use a dedicated colour distinct from the Brand Colour, with automatically chosen contrast-safe text
  • Login Background Image setting — upload a background image for the client portal login screen; the login card automatically becomes a frosted glass panel with the logo moved inside it for legibility over a photo
  • Print / Save as PDF button on the client-facing invoice page

Improved

  • Client portal now uses a consistent font across every screen, and generic coloured left-border accents have been removed from cards, navigation, and headings across the portal and admin in favour of cleaner treatments
  • Admin Proposals, Invoices, and Projects screens now share consistent filter tabs, empty states, table layout, and horizontal scrolling on smaller screens
  • Clicking an invoice in the portal's Payment History now opens it in a new tab instead of navigating away from the page
  • Client invoice page redesigned to match the payment receipt's look, with a branded header band and a new footer message
  • Pricing and line-item tables on proposals, receipts, and invoices now share the same styling for full visual consistency

Fixes

  • Proposal and invoice total amounts could become unreadable when a tenant's Brand Colour was too light — these now automatically fall back to a readable colour

1.1.1

Update

New

  • Client portal Invoices tab — authenticated clients can view all their sent, paid, and overdue invoices with status badges, amounts, and a direct link to the invoice page
  • Invoice payments in portal Payment History — paid invoices now appear in a dedicated Invoice Payments table alongside proposal payments

Fixes

  • Invoice status not updating after Stripe payment — the invoice success page now triggers the paid status write-through immediately on return from Stripe Checkout
  • Invoice client name showing as "—" in the admin invoices list — the query now joins the clients table correctly
  • Re-send option for sent and overdue invoices — invoices can now be re-sent without being restricted to draft status only

1.1.0

New Feature

New

  • Standalone invoices — create auto-numbered invoices (INV-0001…), assign clients, add line items, discounts, and VAT, then send to clients via email. Client-facing invoice page supports browser printing to a clean A4 layout
  • Stripe "Pay Now" button on client-facing invoices (Pro) — Stripe Checkout is created on demand; invoice auto-marks as paid via webhook
  • E-signature on proposal acceptance — clients type their full legal name and confirm a checkbox in a signing modal; the signed certificate is recorded on the proposal and visible in the admin
  • Automated proposal reminder emails — three configurable triggers: proposal not viewed, not accepted, and expiring soon. Cron-based, runs daily
  • Expanded outbound webhook events — 12+ events now covering the full proposal and invoice lifecycle, including invoice.sent, invoice.paid, invoice.overdue, and invoice.cancelled

1.0.1

Bug Fix

Fixes

  • Onboarding wizard failed on servers that redirect URLs to add a trailing slash, causing POST requests to be converted to GET requests

1.0.0

Initial Release

First public release of Client Octopus — the client OS for WordPress freelancers.

Features

  • Proposal builder with reusable section library, line-item pricing, and e-signature
  • Stripe integration — deposits on signature, milestones, recurring retainers
  • White-labelled client portal hosted on your own domain
  • Task lists with client approvals and threaded messaging
  • 1 GB file uploads per project (Agency tier)
  • Client database — capture details once, reuse across projects
  • AI proposal drafting and thread summarisation (optional, off by default)
  • Auto-reminders for overdue invoices
  • VAT-compliant invoice templates for EU and UK
  • Per-client currency, language, and tax rate settings
  • CSV importers for clients, projects, and invoices
  • Migration guides for Dubsado, HoneyBook, FreshBooks, and QuickBooks
  • Elementor, Divi, Bricks, and ACF compatibility
  • Free plan: unlimited proposals, 1 seat, no Stripe or portal
  • Pro plan: unlimited proposals, Stripe, view-only portal, 100 AI requests/month
  • Agency plan: 5 team seats, full portal, projects, messaging, 500 AI requests/month