The hours you tracked become the invoice you sent and the entry your accountant can trust
Oneop gives services teams projects, a client portal with its own separate login, and a money path with no gaps in it: time is tracked against work, converted into an invoice, and posted as a real double-entry journal entry. The client pays into your own Stripe account, not ours. And the CRM that wins the next client lives on the same record as the project that delivers this one.
One thing to know up front: project management is an opt-in module. It and everything in it — billing, retainers, intake, role rates — switch on together, when your workspace asks for it. The client portal itself is not part of that switch: it is on for every plan from day one. This page labels every one of the real switches where it appears.
Sign-up opens when the app launches. We will email you once — no marketing list.
Built for teams that bill time, not just deliver work
One task engine, not two systems
A project work item is the same object as a CRM task — subtasks, checklists, threaded @mentions, watchers, and dependencies that refuse to go circular.
A portal that cannot reach your app
Its own session cookie, its own signing secret, and production boot fails hard unless portal, staff and operator secrets are all distinct.
No CSV hop into the books
Issuing an invoice from tracked time posts a real double-entry journal entry — checked in the application and again by a database trigger that refuses an unbalanced write.
That last paragraph is the difference between "exports to accounting" and is the accounting
There is no CSV hop between your operations and your books. Debits must equal credits — checked in the application and again by a PostgreSQL trigger — and periods close and stay closed; corrections post a linked reversal instead of editing history.
| Aug 09 | AR — Northbridge | $18,400.00 | |
| Aug 22 | Cash | $18,400.00 | |
| Aug 22 | AR — Northbridge | $18,400.00 |
Specific, checkable facts — not a testimonial
No agency names, client counts or metrics to show you yet — here are mechanisms you can check yourself.
Work items run on the shared task engine — one object, not two parallel systems, with checklists and non-circular dependencies.
Portal, staff and operator session secrets must all be distinct or the server refuses to boot in production.
Portal payments run through Stripe Connect into the tenant's own account, reconciled into the ledger with fee-prorated auto-refund.
The modules an agency actually turns on
The PM module starts at Starter — time tracking is Pro, the portal is on every plan
One flat price per workspace, seats included, and every module named on this page is a labeled, opt-in switch — not a hidden upsell.
Extra seats beyond the included count are $5 a seat a month. Full pricing and the plan comparison →
| Plan | Monthly | Seats included |
|---|---|---|
| Free | $0 | 2 |
| Starter | $19 | 3 |
| Pro | $59 | 10 |
| Business | $129 | 25 |
Questions people ask first
Is the client portal really separate from the staff app?
Yes, at the session level, and it is verifiable in code. The portal has its own session cookie and its own signing secret, and the server refuses to boot in production unless the portal, staff and operator secrets are all distinct. A portal session cannot reach staff routes and a staff session cannot reach portal routes.
How does tracked time become money in the books?
Time is tracked against work items, converted into an invoice — using project budgets, per-role rates or a retainer — and issuing the invoice posts a double-entry journal entry where debits must equal credits, enforced by both the application and a database trigger. This needs the project billing and finance modules turned on; both are opt-in.
Who receives the client's payment?
You do. Portal payments run through Stripe Connect into the tenant's own Stripe account — Oneop is not in the money path as a merchant. The payment is reconciled into your ledger, and refunds can be issued fee-prorated automatically.
Why do I have to turn so much of this on?
Deliberate posture: anything touching money, client access or someone's mailbox stays closed until a person opts in. Off means off — routes 404 and schedulers do not run. Every one of those switches is named in the visible copy of this page rather than hidden in a footnote.
Can we run new-business outreach from Oneop too?
Yes, as an opt-in. Sequences send from each rep's own Gmail, Microsoft 365 or SMTP mailbox with A/B variants and reply-aware exits, and the CRM pipelines, stage gates and quotes underneath them are on from day one.
What plan does an agency actually need?
The PM module starts at Starter ($19/month, 3 seats). Time tracking is Pro ($59, 10 seats). Sprints are Business ($129, 25 seats). The client portal itself is on every plan, including Free — what the plan sets is how many client logins are included (3 on Free, 10 on Starter, 50 on Pro, 250 on Business) and whether you can serve the portal from your own domain, which is Pro and up. Extra staff seats are $5/month each, and annual billing is ten months' price for twelve. Full ladder on pricing.
Get started
One record from pitch to project to paid.
Start free, wire up a pipeline today, and turn on projects and billing when you are ready — each is a deliberate switch, not a surprise. The client portal is already there, on every plan.
Sign-up opens when the app launches. We will email you once — no marketing list.