Client Octopus

Description

Client Octopus is an all-in-one client workflow plugin for WordPress freelancers and agencies.

Capture leads from your website, let prospects book a call with your calendar synced automatically, create professional proposals with e-signatures and flexible pricing, send standalone or recurring invoices, collect payments through Stripe or PayPal, and manage projects and client delivery through a branded client portal.

Instead of juggling separate tools for lead capture, scheduling, proposals, invoicing, payments, and client delivery, Client Octopus brings the whole workflow together inside the WordPress site you already own.

It connects the key stages in one place: lead capture, call booking with calendar sync, proposals with e-signatures, packages and pricing tiers, standalone and recurring invoices, Stripe and PayPal payments, a branded client portal, projects with milestones and approvals, file sharing and messaging, automated reminders, and webhooks to thousands of other tools.

Why Client Octopus?

Most freelancers and agencies juggle several separate tools to run their client workflow — a lead form, a scheduling app, a proposal tool, an invoicing app, and a payment link. Client Octopus replaces all of them with a single WordPress plugin.

Your core client data — leads, proposals, invoices, bookings, and projects — is stored in your own WordPress database rather than locked inside a separate SaaS platform. Optional integrations, like payment processing, calendar sync, or AI writing tools, only send the specific data required for the feature you’ve chosen to use.

Every feature, broken down by plan, is listed under Features below.

Features

Client Octopus is designed specifically for WordPress freelancers and agencies who want to manage proposals, invoices, and client delivery without relying on external SaaS platforms.

Free Features

  • Lead Capture — a form on any page via shortcode, with configurable fields, a consent line, optional Cloudflare Turnstile CAPTCHA, rate limits and an auto-reply
  • Unlimited clients
  • Client Tags — organise and filter your client list, with a duplicate warning on matching email or phone
  • Unlimited proposals
  • Proposal templates
  • Images in proposals — pick from your Media Library, at full, wide or half width
  • Package Selector pricing — offer tiers with optional add-ons; the client picks and sees the total update live
  • Client e-signature on acceptance — the certificate records who signed, when, their IP and device, and a fingerprint of the proposal, so a later edit is reported rather than hidden
  • Proposal status tracking (draft, sent, viewed, accepted, declined, expired, completed)
  • Client-facing proposal signing and invoice pages
  • Client Detail — activity timeline, lifetime value, outstanding balance, and quick actions prefilled with that client
  • Standalone invoices — create, send, and manually mark as paid
  • Purchase Order numbers — added to a proposal at any point and carried through to every invoice from it
  • 20 currencies, with a Default Currency setting. Currencies without decimal places, such as Japanese Yen, are formatted correctly
  • VAT Registration Number — set once, filled in automatically on new invoices
  • Recurring invoices — weekly, monthly, quarterly or yearly billing profiles, created manually or on acceptance of a Recurring proposal
  • Payment Plans — split a proposal into equal instalments; the client sees the schedule before accepting and each one is invoiced automatically
  • Automated reminders — proposals (not viewed, not accepted, expiring) and overdue invoices. Clients can unsubscribe from reminders without affecting invoices, receipts or proposals
  • Privacy requests — works with WordPress’s own Tools Export/Erase Personal Data. See Privacy below
  • Translatable emails, settings screens and public booking and lead forms, with a translation template included
  • Import Clients from CSV, with your own column mapping
  • Export Clients, Leads, Invoices, and a client’s full transaction history to CSV
  • Built on the WordPress REST API — standard WordPress data, not a closed black box

Pro Features

  • Everything in Free plus…
  • Call Booking — a booking form via shortcode, using your weekly availability, buffer time, minimum notice and booking window. Confirmation and reminder emails carry a calendar invite
  • Calendar Sync — Google, Microsoft 365/Outlook or Apple iCloud. Existing events block your availability, and confirmed bookings are pushed out as real events
  • Stripe or PayPal collection on proposals, and a Pay Now button on invoices (auto-marked paid via webhook)
  • Auto-charge for recurring invoices — charge the client’s saved card each cycle instead of sending a link
  • Client portal — magic-link or password sign-in, no WordPress account needed; proposals, invoices and payments
  • Testimonials — automatically ask once work is paid up, and collect responses in one place
  • AI writing tools for proposal content — 100 requests per month on Pro, 500 on Agency
  • Revenue analytics, with a Reporting Currency that converts other currencies using daily exchange rates
  • Outbound webhooks — 18 events across the proposal, invoice and lead lifecycle (Zapier, Make, Slack)

Agency Features

  • Everything in Pro plus…
  • Projects & Milestones — accepted proposals become projects; submit milestones for client approval, with progress calculated automatically
  • Team Members — up to 10 seats with roles (Admin, Editor, Viewer). Your own account takes the first, so you can invite 9 others
  • Client Messaging — a threaded conversation per project, with read tracking and email notification on reply
  • File Sharing — share files through the portal, 1 GB included, every download served securely
  • Approval Workflows — request sign-off on a deliverable; the client approves or rejects with a comment from their portal

External Services

Client Octopus is designed to run primarily within WordPress. Some optional features connect to third-party services, and these connections are only used when the relevant feature is enabled or used:

Stripe

Used to process client payments on proposals and invoices. The plugin creates a Stripe Checkout Session on your account and redirects the client to Stripe’s hosted page — card details are entered on Stripe’s servers and never stored in WordPress. Your API keys are held in the WordPress options table and sent only to Stripe. If auto-charge is enabled on a recurring profile, the first payment also saves a customer ID and payment method ID (never the card number) so later invoices can be charged without the client re-entering it.

  • Service: Stripe, Inc.
  • Data sent: payment amount, currency, project or invoice description, and client email when a payment session is created. If auto-charge is enabled, a Stripe customer ID and payment method ID are stored after the first payment and sent back to Stripe to request each subsequent automatic charge. Stripe webhook events (payment completion) are received and verified using your webhook secret.
  • Terms of Service: https://stripe.com/legal/ssa
  • Privacy Policy: https://stripe.com/privacy

PayPal

An alternative to Stripe, used if you select it as your payment provider. The plugin creates a PayPal order on your account and redirects the client to PayPal’s hosted page — payment details are entered on PayPal’s servers and never stored in WordPress. Your Client ID and Secret are held in the WordPress options table and sent only to PayPal. If auto-charge is enabled on a recurring profile, the first payment also saves a Vault ID, customer ID and the payer’s email so later invoices can be charged without re-approval.

  • Service: PayPal, Inc.
  • Data sent: payment amount, currency, and a proposal or invoice reference when an order is created. If auto-charge is enabled, a PayPal vault ID, customer ID, and the payer’s email address are stored after the first payment and sent back to PayPal to request each subsequent automatic charge. PayPal webhook events (order approval and payment capture) are received and verified using PayPal’s own signature-verification API.
  • Terms of Service: https://www.paypal.com/us/legalhub/useragreement-full
  • Privacy Policy: https://www.paypal.com/us/legalhub/paypal/privacy-full

Client Octopus Relay

The AI writing tools and Google/Microsoft Calendar Sync route through a relay operated by the plugin author. It authenticates your licence and either forwards the request to an AI model or manages your connected calendar. A plugin on thousands of sites cannot register its own Google/Microsoft OAuth application per install, so a single relay-owned app is used and your calendar tokens are held on the relay rather than in your WordPress database. Both features run only when you use an AI action, or connect Google Calendar or Microsoft 365 in Settings.

  • Service: clientoctopus.com (operated by codievolt)
  • Data sent (AI writing requests): the text prompt you submit (proposal content or instructions) and your licence key, which authenticates the request and is used to enforce your plan’s monthly rate limit. No site URL or admin email is transmitted for AI requests.
  • Data sent (licence sync): separately, once per day, the plugin sends your licence key and account email to the same relay to keep your plan status in sync. This happens automatically in the background on Pro/Agency plans and is not tied to any explicit AI action.
  • Data sent (Calendar Sync — Google/Microsoft only): connecting Google Calendar or Microsoft 365 in Settings authorises the relay to store the resulting OAuth access/refresh tokens on your behalf. On each sync, the relay uses those tokens to read busy time (start/end and event title) from your connected calendar, and to create or delete a calendar event when a booking is made or cancelled. This only happens for a provider you’ve explicitly connected.
  • Privacy Policy: https://clientoctopus.com/privacy-policy/

Apple iCloud (CalDAV)

If you connect Apple iCloud in Settings, the plugin talks to Apple’s calendar servers directly using the Apple ID and app-specific password you provide — unlike Google/Microsoft, this does not go through the relay. The password is encrypted before being stored. Each sync reads busy time (start/end and event title) and creates or deletes an event when a booking is made or cancelled. Only runs if you connect an account.

  • Service: Apple Inc.
  • Data sent: your Apple ID and app-specific password, sent only to caldav.icloud.com to authenticate each request, plus calendar event data (times and titles) read from or written to your connected iCloud calendar.
  • Terms of Service: https://www.apple.com/legal/internet-services/icloud/
  • Privacy Policy: https://www.apple.com/legal/privacy/

Cloudflare Turnstile

If you enable Turnstile as the CAPTCHA provider for the lead capture form ([clientoctopus_lead_form] shortcode), Client Octopus verifies each form submission with Cloudflare before saving it, to block automated spam. This only runs when Turnstile is configured in Settings — it is off by default.

  • Service: Cloudflare, Inc.
  • Data sent: the Turnstile response token, the visitor’s IP address, and your Turnstile secret key, sent server-side to Cloudflare’s siteverify endpoint when a lead capture form is submitted.
  • Terms of Service: https://www.cloudflare.com/website-terms/
  • Privacy Policy: https://www.cloudflare.com/privacypolicy/

Frankfurter (Exchange Rate Data)

If you have set a Reporting Currency in Settings that’s different from GBP, Client Octopus fetches daily exchange rates from Frankfurter (a free, keyless exchange-rate API backed by European Central Bank reference rates) to convert proposal, invoice, and payment figures for display in Analytics. This only starts once you’ve actually chosen a non-GBP Reporting Currency — it never runs on its own. No personal data, licence key, or site information is ever sent — only a request for the current rates between GBP and the plugin’s other supported currencies. Rates are cached locally for up to 24 hours. This never affects Client Detail, which always shows each client’s real billed currency unconverted.

  • Service: Frankfurter (frankfurter.app)
  • Data sent: none identifying — only a request for current exchange rates between GBP and the plugin’s other supported currencies.
  • Terms of Service: https://frankfurter.dev/
  • Privacy Policy: Frankfurter publishes no separate privacy policy; its documentation states the API “does not collect or log personal data, IP addresses, or request URLs” — https://frankfurter.dev/

Freemius

Client Octopus uses Freemius to manage plan licensing, activation, and upgrades. When you activate a licence key, the site URL, plugin version, and licence key are sent to Freemius to verify your plan and enable the correct feature set.

  • Service: Freemius, Inc.
  • Data sent: site URL, plugin version, licence key, and basic activation/deactivation events.
  • Terms of Service: https://freemius.com/terms/
  • Privacy Policy: https://freemius.com/privacy/

Privacy

Client Octopus stores your client data in your own WordPress database. Nothing about your clients is sent anywhere except through the optional integrations described under External Services above, and only when you enable and use them.

What is stored about the people you work with

Client records (name, email, company, phone), leads submitted through the lead capture form, booked calls (name, email, phone and any message), the typed name, IP address and device recorded when a client e-signs a proposal, messages a client sends you through the portal, comments they leave on approval requests, and a record of any reminder emails they have unsubscribed from.

Responding to a privacy request

Client Octopus plugs into WordPress’s own Tools Export/Erase Personal Data. Searching there by a person’s email address covers their client record, leads, booked calls, proposal signatures, project messages, approval comments and email preferences — you do not need to go through the database by hand.

An export returns everything held about that person. An erasure is handled differently depending on the record, because some of it you are legally required to keep:

  • Booked calls and messages the client sent are deleted outright.
  • Client records, accepted proposals and approval records are kept, but the personal details are removed from them — the name is replaced, the email and phone are cleared, and the IP address recorded at signing is anonymised. These are kept because invoices and payments are raised against them, and accounting records normally have to be retained for several years. What remains is a financial history no longer attached to an identifiable person.
  • An unsubscribe record is kept, including the email address, because deleting it would start those emails again. An export reports it.

Files you upload to a project are your own deliverables rather than something the client supplied — the portal is download-only — so they are not included in an erasure.

Removing everything

Settings Advanced has an option to delete all Client Octopus data when the plugin is deleted. It is off by default, so removing the plugin normally leaves your data in place in case you reinstall.

This is a summary rather than legal advice. If you handle personal data in the EU or UK, you remain the data controller for the client information you store.

Screenshots

Installation

  1. Upload the clientoctopus folder to /wp-content/plugins/
  2. Activate the plugin through the WordPress Plugins menu
  3. The setup wizard launches automatically
  4. Configure your branding and settings
  5. Upgrade to Pro or Agency at any time via Client Octopus Account

FAQ

Does Client Octopus support payments?

Yes. On the Pro and Agency plans, you can accept payments on proposals and standalone invoices via either Stripe or PayPal — choose whichever gateway you prefer in Settings. Clients always see a single “Pay Now” button that routes to whichever gateway you’ve configured. The exception is a proposal set to Recurring billing — it has no direct payment option; billing happens through the recurring invoice created when the client accepts, which can itself be set to auto-charge (see “Can I set up automatic recurring invoices?” below) or paid manually each cycle.

Can clients access a portal?

Yes, on the Pro and Agency plans. Clients sign in to a branded portal either with an emailed magic link or with a password they set — no WordPress account is needed either way.

The portal differs by plan. On Pro, clients see their proposals, invoices and payments. On Agency it also covers projects, milestones, approvals, file downloads and messaging.

Does Client Octopus support teams?

Yes. The Agency plan supports up to 10 team members, each assigned a role (Admin, Editor, or Viewer).

Can I collect leads before they become clients?

Yes, on all plans. Embed the lead capture form on any page with the [clientoctopus_lead_form] shortcode. You choose which fields to show and require, add a consent line, and optionally enable Cloudflare Turnstile CAPTCHA and submission rate limits to help prevent automated spam. Every submission lands in a dedicated Leads admin screen where you can track status, mark as contacted, archive, or convert a lead straight into a client record.

Can I let clients or visitors book a call with me?

Yes, on the Pro and Agency plans. Add the [clientoctopus_booking_form] shortcode to any page and visitors can book a call based on your configured weekly availability, buffer time, minimum notice, and maximum booking window. Both you and the client get a confirmation email with a calendar invite, followed by a 1-hour reminder.

Does Client Octopus sync with my calendar?

Yes, on the Pro and Agency plans. Connect Google Calendar, Microsoft 365/Outlook, or Apple iCloud in Settings. Once connected, existing events on that calendar automatically block matching slots in your booking availability, shown with their real event title — and every call booked through Client Octopus is pushed out as a real event (including your meeting link) on every calendar you’ve connected, so you never have to add it yourself.

Is multisite supported?

No. Client Octopus licences are single-site only.

Does Client Octopus require a third-party SaaS?

No. Client Octopus runs directly inside WordPress and doesn’t require a separate SaaS platform to work. Optional integrations — Stripe or PayPal for payments, Google Calendar, Microsoft 365, or Apple iCloud for calendar sync, AI writing tools, Cloudflare Turnstile for lead form spam protection, and Frankfurter for Analytics currency conversion — only connect when you explicitly enable and use that feature. Freemius handles licensing for the paid plans. Every one of these is described in full under External Services below.

Are AI costs included?

Yes, within a monthly allowance — 100 AI requests per month on Pro, and 500 per month on Agency. There is no separate AI bill and you don’t supply your own API key; the allowance is part of the plan. Your current usage against the allowance is shown on the Plan & Usage screen.

Can clients e-sign proposals?

Yes. When a client accepts a proposal, they are prompted to enter their name and confirm a checkbox in a signing modal. A signing certificate is saved to the proposal record and shown in the admin, recording who signed, when, the IP address and device they signed from, and a fingerprint of the proposal exactly as it stood at that moment — so if the proposal is edited afterwards, the certificate says so rather than silently appearing to cover the new version.

Note this is a record of acceptance, not a qualified or notarised electronic signature in the sense of eIDAS or the ESIGN Act. It is the same category of evidence most proposal tools provide.

How is this self-hosted, and how is pricing different from SaaS alternatives?

Client Octopus is a self-hosted WordPress plugin, not a SaaS platform — your proposals, invoices, and client data are stored in your own WordPress database. Pro is $9.99/month or $89/year, and Agency is $24.99/month or $229/year, with no per-user charges and no limits on the number of clients or proposals you manage.

Can I send invoices without a proposal?

Yes. Standalone invoices are available on all plans. Create an invoice, assign a client, add line items with VAT and discount options, and send it directly. Free plan invoices can include your own payment instructions (e.g. bank transfer details) in the Notes field; Pro and Agency invoices can additionally show a “Pay Now” button (Stripe or PayPal, whichever is configured) on the client’s invoice page.

What currencies are supported?

Twenty: British Pound, US Dollar, Euro, Canadian Dollar, Australian Dollar, 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. Set a Default Currency in Settings and new proposals and invoices open in it; you can still change the currency on any individual record. Analytics converts all of them into one reporting currency using daily exchange rates.

Is Client Octopus translatable?

Partly. All emails, the settings and plan screens, and the public booking and lead capture forms use translatable text, and a translation template (.pot) ships with the plugin. The React-based admin screens, the client portal and the client-facing proposal view are not yet translatable — their text is prepared for translation but the catalogues do not load, so they still display in English.

Can clients stop receiving emails?

Yes. Reminder emails and testimonial requests carry an unsubscribe link, and a preference page where the client can switch each type on or off. Essential emails are never affected — proposals, invoices, payment receipts, booking confirmations and portal sign-in links always send, because they concern work already agreed.

How do I handle a GDPR or data deletion request?

Use WordPress’s own Tools Export/Erase Personal Data and search by the person’s email address. Client Octopus covers client records, leads, booked calls, proposal signatures, project messages and approval comments. See the Privacy section below for exactly what an erasure deletes and what it keeps.

Can I set up automatic recurring invoices?

Yes, on all plans. Create a recurring invoice profile for a client, choose weekly, monthly, quarterly, or yearly billing, and Client Octopus automatically generates and sends a fresh invoice each cycle. By default the client pays each one manually via the same Pay Now flow as any other invoice. You can also mark a proposal itself as Recurring — accepting it automatically creates the recurring profile for you, with no manual setup.

On the Pro and Agency plans, you can additionally turn on auto-charge for a profile: the client’s first invoice is still paid manually (which securely saves their Stripe or PayPal payment method), and every invoice after that is charged automatically with no action needed from the client. If a charge is declined, both you and the client are notified and it’s retried a few times before the profile pauses itself so you can follow up.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Client Octopus” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Client Octopus” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.4.1

  • New: Emails, the settings and plan screens, and the public booking and lead capture forms are now translatable, and a translation template is included for translators. The React-based admin screens, the client portal and the proposal view are not covered yet. Available on all plans.
  • New: 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. Available on all plans.
  • New: 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 of them work everywhere the original five did, including Analytics currency conversion. Available on all plans.
  • Fix: Currencies written without decimal places, such as Japanese Yen and South Korean Won, are no longer shown with a meaningless “.00” on the end.
  • Fix: 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.
  • Fix: 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”.
  • Fix: 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 — telling them their card was declined when they had never saved one, and eventually pausing the schedule. Auto-charge now starts from the second invoice. (Pro & Agency)
  • Fix: The currency dropdowns when creating an invoice, recurring invoice or proposal listed Canadian and Australian Dollars with a plain “$”, making them impossible to tell apart from US Dollars in the list you pick from.
  • New: Choose Stripe or PayPal during first-time setup and enter your details there. Previously setup only offered Stripe, so PayPal users had to finish in Settings afterwards. Available on all plans.
  • New: Pick your logo from the WordPress Media Library, in Settings and during setup, instead of pasting in a direct image URL. Available on all plans.
  • New: VAT Registration Number in Settings. Once set, it is filled in automatically on new invoices and on invoices generated from an accepted proposal, instead of being typed in by hand each time — a VAT invoice is not valid without it. Leave it blank if you are not VAT registered. Available on all plans.
  • Fix: Booking cancellation links in emails could be triggered by corporate mail scanners, link previewers, and browser prefetching, silently cancelling a confirmed booking that neither you nor your client cancelled. Cancelling now requires a deliberate confirmation step. (Pro & Agency)
  • Fix: Team members with the Viewer role could perform destructive actions they should never have had — bulk-deleting and archiving leads, cancelling booked calls, editing blocked time, and changing the content of automated emails sent to your clients under your brand. These now require the Editor or Admin role, and automated email content requires Admin.
  • Fix: Team members with the app’s Admin role could create brand-new WordPress user accounts on your site, and have a password-reset link emailed to any address. Creating a new WordPress account now requires a site administrator; inviting someone who already has an account is unchanged.
  • New: A view-only team member now sees a notice saying so, and the create and import buttons are hidden from them. Previously a Viewer could fill in a whole proposal before the save was refused. Permissions themselves are unchanged — they were always enforced. (Agency)
  • Fix: Team members with the Admin role could not open the Team screen, which needed a WordPress administrator account — so Admin behaved no differently to Editor. Admins can now manage the team; Editors and Viewers cannot. (Agency)
  • New: 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. Available on all plans.
  • New: Change a team member’s role from the Team screen. A role could previously only be set at invite time, so changing one meant removing and re-inviting them. The new role applies immediately, and you cannot change your own. (Agency)
  • Fix: Downgrading from Agency to Pro left Messaging, File Sharing, and Approvals usable on existing projects. They are now correctly restricted to the Agency plan. Existing conversations and files stay readable — a downgrade no longer lets you add more, rather than hiding what is already there.
  • Fix: Ticking “Delete all Client Octopus data when this plugin is deleted” left six database tables behind, including active portal session tokens and encrypted calendar credentials, along with every file your clients had uploaded. Uninstalling now removes all of it.
  • Fix: Public proposal and invoice links now use a cryptographically secure random token. The previous method was predictable in principle. Links already issued remain valid.
  • Fix: The payment status check did not verify the token it asked for, so payment amount, currency, and status could be read without it.
  • Fix: Currency symbols did not match between the admin screens and the invoice your client receives — a Canadian invoice showed “CA$1,000.00” in the admin but “$1,000.00” in the emailed copy. All screens and emails now use the same symbols.
  • Fix: The project completion email always showed the outstanding balance in pounds, whatever currency the proposal was in — so a client on a US Dollar proposal was told they owed “£450.00”. It now uses the proposal’s own currency and decimal places.
  • Fix: The button on the project completion email read “View Project” but opened the final invoice. It now reads “Pay Final Invoice” when there is a balance to settle, and “View in Portal” when there is nothing left to pay.
  • Fix: The client email preferences page, and the matching card on the client screen, offered to switch off reminders your plan cannot send in the first place. Only the categories your plan actually sends are now listed. Preferences a client already set are unaffected.
  • Fix: When a client’s portal session expired, the portal displayed raw error text instead of returning them to the login screen.
  • Fix: Database updates could run too late after an automatic plugin update, so the first visit to a client portal page or the first incoming payment notification after updating could hit a database table that had not been updated yet.
  • Fix: Team members always saw “0” on the unread messages badge, regardless of how many unread messages there were. (Agency)
  • Fix: AI usage records stored no token counts and no cost, so AI usage reporting was blank. (Pro & Agency)
  • Fix: Free-plan users opening Bookings or Analytics were shown an error message with no way forward. Both now explain what the feature does and link to upgrade.
  • Fix: An issue in how the free version was packaged for release could leave part of the client management code incomplete in the free build.
  • 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 now pause the webhook and the full response is recorded so a rejected delivery can be diagnosed. (Pro & Agency)
  • Improved: 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.
  • Improved: 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 for screen reader and click-to-focus behaviour.
  • Improved: Background jobs and emails that fail now record what happened when WordPress debug logging is enabled, instead of failing silently.
  • Improved: The Plan & Usage screen has been reorganised. Your plan and all four usage figures now sit in a single band at the top instead of being split across a card and a separate row of boxes, the quick actions moved up beneath it, and the feature list is grouped into Win Clients, Deliver Work, and Get Paid & Automate rather than being one long undifferentiated grid. The same information, in roughly half the height.
  • New: 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 instead of silently appearing to cover the new version. Proposals signed before this update show “not recorded” rather than being reported as altered. Available on all plans.
  • New: Clients can now unsubscribe from reminder emails. Proposal reminders, invoice reminders, call reminders and testimonial requests each carry an unsubscribe link and a page where the recipient can switch any of the four on or off. Essential emails are never affected — proposals, invoices, payment receipts, booking confirmations, portal login links and approval requests always send, because they concern work already agreed.
  • Improved: Emails that can be unsubscribed from now include the standard List-Unsubscribe headers, so Gmail and Outlook can offer their own one-click unsubscribe button. Mailbox providers have expected these since 2024 and their absence counts against sender reputation, so this helps your email reach the inbox.
  • New: Each client’s detail screen now shows which reminder emails they still receive and which they have unsubscribed from — previously recorded but never shown, so a switched-off invoice reminder looked just like a client ignoring you. A button copies their own preferences link.
  • Fix: The Unsubscribe link in reminder emails acted as soon as it was followed, so mail scanners and link previewers could unsubscribe a client who never clicked it. It now opens the preferences page instead. Gmail’s and Outlook’s own one-click button is unaffected.
  • Fix: Database updates were only being applied when the plugin was activated. A WordPress auto-update or a manual file upload does not activate a plugin, so sites updated that way could be left running new code against an older database structure.
  • Improved: Privacy requests handled through Tools Export/Erase Personal Data now cover far more than before. Previously only client records and leads were included, which left a person’s booked calls, the name and IP address recorded when they signed a proposal, their project messages and their comments on approval requests untouched by an export or erasure request. All of these are now covered, along with unsubscribe records — which an export reports and an erasure keeps, since deleting one would restart those emails.
  • Improved: An erasure request now reports honestly about what was kept. Booked calls, project messages and approval comments are deleted outright. Invoices, payments and accepted proposals are kept but stripped of personal details — including anonymising the IP address recorded at signing — because accounting records have to be retained for tax purposes. The confirmation shown at the end of an erasure now says so, instead of reporting that nothing was retained when some records were.
  • Fix: The booking confirmation and reminder emails now state which timezone the time is in. Call times are shown to your visitor in their own timezone when they book, but the emails are written in your business’s timezone — so someone booking from another country could be told a different time to the one they picked, with nothing to explain the difference. The calendar invite attached to the email was always correct.

1.4.0

  • 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.
  • New: 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. Available on all plans.
  • New: Export a client’s full transaction history to CSV. Available on all plans.
  • New: Invoice Overdue Automated Reminders — automatically follow up on invoices that have passed their due date, alongside the existing Automated Reminders for proposals. Automated Reminders are available on all plans.
  • Fix: 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.
  • 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.
  • New: 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)
  • Fix: Proposal currency is now validated to the same supported currencies as Invoices and Recurring Invoices, preventing an unrecognised currency code from being saved.
  • New: 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.
  • Fix: 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.
  • Fix: 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.
  • Fix: 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.
  • Fix: 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.
  • Fix: The client portal’s one-time login link could, in rare cases, be used more than once if opened twice in quick succession.
  • Fix: A cancelled call-booking slot could become permanently unbookable instead of reopening.
  • Improved: Several admin screens (Proposals, Invoices, Recurring Invoices, Leads) no longer show an empty page after deleting the last item on it.
  • Improved: Client phone numbers are no longer truncated when longer than 20 characters.
  • Improved: Recurring invoices can no longer be saved with an incomplete “Ends” condition, which previously could result in a billing schedule that never stopped.
  • Fix: Various background jobs (reminders, calendar sync) are now more resilient to being triggered more than once in overlapping runs.
  • Improved: The Team screen’s member table now matches the styling used across the rest of the admin (header background, cell spacing, row hover, and horizontal scrolling on narrow screens) instead of using its own inconsistent layout.

1.3.2

  • 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.
  • New: Export Clients to CSV — download your client list to bring into Mailchimp, Campaign Monitor, or any other tool. Available on all plans.
  • Fix: 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.
  • Improved: Agency plan team seats increased from 5 to 10.
  • New: 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 — fixing a case where the “project complete” email could send clients to an empty invoices page. (Pro & Agency)
  • New: 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.
  • New: Purchase Order (PO) numbers — add a client’s PO number to a proposal any time after it’s sent (most clients don’t have one ready until later), 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 so you’re not retyping the same one. Available on all plans.
  • Fix: Popups (Import Clients, and the invoice/proposal quick-edit modals) could render clipped or fail to cover the full admin page in some layouts.

Earlier versions

Release notes for 1.3.1 and earlier are available in the plugin’s development history.