Sign in
For marketing agencies

The agency runs on one system, not four

Projects, hours, resourcing, retainers, invoices and client reports in a single place — so the number a client sees, the number in the report and the number in your P&L are the same number.

English, Ukrainian, Russian and Polish. Your data stays in your own tenant.

Chill CRM dashboard: tasks due today, hours logged, billable percentage and pending approvals
What it replaces

Four tools that never agreed with each other

Every agency ends up with the same stack, and every month somebody reconciles it by hand. The reconciliation is the product.

Task tracker Projects and tasks with real estimates
Hours in a spreadsheet Time tracking with approval and lock
Budgets in Google Sheets Retainers, rates and period close
Reports assembled by hand Client portal with sign-off
Capabilities

Everything the delivery month touches

From the brief to the invoice, without exporting anything to a spreadsheet in between.

Projects and tasks

Estimates against actuals on every task, so overrun is visible on the day it happens rather than at invoicing.

Time tracking

A running timer or a manual entry, then approval — approved months lock, so a report you sent cannot quietly change.

Resourcing

Capacity per person against what is actually booked, so the answer to "can we take this" is a number.

Reports

Build a report once and schedule it. The client gets the same figures you see, on time, without a manual export.

Finance

Rate cards, retainer banks, expenses, overhead and invoices — profitability per project and per client falls out of the same data.

Client portal

Clients see their own projects, reports and approvals, and sign off in place. No seat required, no shared login.

Ad platforms

Spend and performance pulled in next to the hours you billed against them, so margin on a paid retainer is one view.

Automations

Alert sweeps, scheduled report delivery and webhooks — the recurring nagging stops being somebody's calendar reminder.

Wiki and library

Process docs and brand assets where the work is, with per-role visibility instead of a shared drive nobody prunes.

Money

Numbers that survive an audit

The finance engine is the part of this product that is allowed to be boring. It is pure, separately tested, and it does not improvise.

  • Integer cents, never floats. Money is stored in minor units end to end, so rounding happens once, where you decide it does.
  • A rate ladder, not one rate. Person, role, project and client rates resolve in a defined order, and history is kept — last quarter recalculates at last quarter's rates.
  • Retainers that actually draw down. Banked hours, overage and unused balance are tracked per period, and the period closes.
  • UTC underneath, local on screen. Timestamps are stored in UTC; timezone is a property of the person reading, not of the database.
Finance screen: revenue, cost, margin and retainer balances per client
Clients

Approval stops living in email

A client opens their own portal, sees only their own work, and signs off against the record. The approval is attached to the thing approved.

  • Scoped access. A client sees their projects, their reports, their invoices — and nothing adjacent.
  • Sign-off with a trail. Who approved what, and when, recorded where the work is rather than in somebody's inbox.
  • Scheduled delivery. Monthly reports go out on their own, in the client's language, with the figures already reconciled.
Approvals screen: timesheets and deliverables awaiting client sign-off
Isolation

Tenant separation the database enforces

Multi-tenancy that depends on every query remembering a filter is multi-tenancy that leaks the first time somebody forgets. This one is enforced a layer lower.

Row-level security

PostgreSQL RLS is forced on the role the application uses. A query that loses its tenant scope returns nothing — not somebody else's rows.

Encrypted credentials

Ad-platform tokens and stored credentials are encrypted at field level, and every reveal is written to an access log.

SAML single sign-on

On Enterprise, an agency can require SSO outright — the password field disappears for a domain that mandates it.

Pricing

Seats included, then per seat

One monthly price with a block of seats in it. Go past the block and each extra seat is priced per plan.

Trial
$0

5 seats included

  • Time tracking
  • Invoicing
  • Report builder
Get started
Starter
$99/mo

10 seats included · then $19/seat

  • Time tracking
  • Invoicing
  • Report builder
Get started
Agency
$799/mo

75 seats included · then $15/seat

  • Everything in Growth
  • Public API
Get started
Enterprise
$1999/mo

Unlimited seats · then $12/seat

  • Everything in Agency
  • SAML single sign-on
Get started

Prices in USD per month, excluding tax.

FAQ

Straight answers

What is Chill CRM?

A multi-tenant platform for marketing agencies covering projects, time, resourcing, retainers, profitability, invoicing, ad data and a client portal — in place of a tracker, an hours spreadsheet, a budget sheet and hand-assembled reports.

How is one agency's data kept from another's?

By PostgreSQL row-level security, forced on the role the app connects as. Each request runs in a transaction scoped to one agency, so a query missing its tenant filter returns nothing rather than someone else's data.

Which languages are supported?

English, Ukrainian, Russian and Polish. Each person picks their own, or follows their operating system — and a client report goes out in the client's language.

Do clients need a paid seat?

No. The client portal gives a client scoped access to their own projects, reports and approvals without consuming a seat from your plan.

How is money handled?

As integer minor units — cents — end to end, never floating point, with an explicit tax treatment on each invoice. Timestamps are UTC underneath and local on screen.

Can we get the data out?

Yes. Reports export, and the Agency and Enterprise plans include a public API, so the numbers are not trapped behind the interface.

Close the month once

Hours, retainers, invoices and the client report reconciled from the same records — because they are the same records.

Open the app