All features

Subscriptions

Every retainer, its own record

A subscription records what a client pays per period, and for what scope: a recurring agreement attached to the client, with a status, a type and a price that never rewrites itself.

Attached to the client, not floating

A subscription hangs off the client, alongside contacts, projects and domains: one panel on the client page shows which recurring agreements are running. It is a revenue concept (what the client pays per period), separate from a project's hour budget. The two reference each other; they are not the same row.

Types and templates you set up yourself

Hosting, maintenance, SEO: the categories are not code. You configure them yourself under Settings → Subscriptions, with labels in every language. A template like "Hosting Basic, €25 per month, 1 hour included" prefills the create form, so a new agreement stands up in seconds. The first time you activate a subscription, its type can spawn the matching onboarding tasks.

  • Tenant-owned types with per-language labels
  • Templates that prefill the form, no server-side copy
  • Task templates that fire on first activation

A price that never rewrites itself

The price lives in append-only history with an effective date. A rate change appends a row, it overwrites nothing, so the amount on last year's invoice stays answerable. Raise the fee on 1 January and December keeps its old number. And an invoice is not one opaque figure: its lines are spelled out one by one.

Included hours, measured against real work

A subscription can include hours. Consumption is measured against the time logged on the linked projects: exactly the same total every budget bar and burn colour reads, not a separate counter drifting out of step. Unused hours lapse or carry over by a rollover rule you set yourself, not law written in code. Overage is flagged, never silently billed.

The list is a worksheet, the revenue one glance

Every subscription sits in the same DataTable as the rest of the platform: sort by name, status, start date or next invoice, filter by client, status and type, show or hide columns. Select a run of rows and switch their status or delete them in one move. A daily cron finds what is due, advances the next invoice date by a period and hands the lines to your accounting integration; the Revenue overview sums MRR and ARR and shows what falls due in the coming month.

  • Filter by client, status and type
  • Bulk: switch status or delete
  • Four statuses: Draft, Active, Paused, Cancelled
  • MRR, ARR and upcoming invoices in one place

Want to know more?

The documentation describes every module in detail, from installation to permissions.

More features