Support

Something need a human?

Support is by email. Oneop does not publish a response time — there is no SLA instrument behind one — so the fastest thing you can do is send a complete first message.

Email support@oneop.ioOpen your workspace

Worth including

  • The email you log in with
  • The URL of the screen it happened on
  • What you expected, and what happened instead

Goes somewhere else

Project management

Your client portal is a separate login, and the server refuses to start if it isn't.

Most "client portals" are your app with some navigation hidden. Oneop's is a different session principal — its own cookie, its own signing secret — and in production the server throws on boot if the portal secret matches either the staff secret or the operator secret. A client session cannot reach the staff app, and a staff session cannot reach the portal.

Projects ship in every workspace, from Starter up, built for services teams who want the client relationship, the work, the time and the invoice on one system. Time tracking is Pro and sprints are Business; the client portal is on every plan, with more client logins — and your own domain — higher up.

No credit card. Free plan, 2 seats.

Three things that make this different from a projects tab

A separate security principal — verifiable, not asserted

Its own session cookie, its own signing secret. Production boot fails hard if that secret is missing or matches the staff or operator-console secret, so a cookie minted in one realm can never be replayed in another. Login, invite acceptance and password reset are each independently rate-limited.

Time becomes an invoice that posts to a real ledger

Approved billable time converts to a draft invoice, and sending it posts debit AR, credit Revenue, credit Tax through the same ledger service that enforces debits equal credits — an accounting entry, not a spreadsheet estimate. Conversion is once-and-only-once, locked with SELECT … FOR UPDATE.

Payments land in your Stripe account, not ours

A client paying from the portal pays into your own Stripe account via Stripe Connect. Oneop reconciles the payment into your ledger, can issue a fee-prorated automatic refund, and sweeps for missed webhook events. See the honest caveat below.

0

shared secrets between the staff and portal sessions

1

atomic ledger transaction per invoice sent

3

rate-limited portal flows — login, invite, reset

Your

own Stripe account holds client payments, not Oneop's

Projects, work items and the shared task engine

A project task and a CRM task are the same object, because there is only one task engine — a person's workload is one list, not one per module.

Every work item gets

  • Dependencies that refuse a cycle422, not a deadlock — plus subtasks, checklists and threaded @mentions
  • Real recurrenceDaily, weekly on chosen days, or monthly — completing one mints the next, never two open copies
  • An SLA clock15-minute sweep: 24h warning, then escalation through three levels

PM adds on top

  • Backlog, sprints, milestonesPlus goals, OKRs and per-project collaboration
  • Workload and budget viewsList, board or calendar, with saved views and bulk edits
  • Reusable project templatesDocuments live per project, not scattered in a drive

One pipeline: work item to posted journal entry

Five steps, no manual re-entry between any of them — the same fact §2 states, shown as it actually runs.

The client portal

Clients log in to their own application, not a read-only view of yours.

Staying informed

  • Home dashboardWhat needs their attention, first
  • Projects & milestonesTime summaries, risks, the team, status updates
  • InvoicesDownloadable PDFs

Getting things done

  • Files & approvalsApprove deliverables directly
  • MessagesThreaded, with your team
  • Support & accountA request form, plus their own team members

Invites, acceptance and password reset are first-class, rate-limited flows — nothing here is a re-skin of the staff app. On every plan; its infrastructure has its own switch we control at the infrastructure layer, not something a tenant requests.

Time, rates and billing

Time is tracked against work, approved, priced at a resolved rate, and frozen onto the entry before it can be invoiced.

How a rate resolves

  • Project rateBeats everything else on that project
  • Role rateAn optional fallback tier, switched on per workspace — never overrides a more specific rate
  • Tenant defaultThe floor. Budgets track against actuals throughout.

Fails closed on

  • Billing switched offThrows on the first line, before reading anything — no invoice, no journal
  • Currency mismatchRefuses to mix rates onto one document
  • RetainersA tracking layer only — they draw down against PM invoices but never post to the GL

Two honest caveats:

  • Portal payments aren't runnable as shipped. The Stripe Connect code is real and complete, but the Connect credentials aren't configured — not something we'll demo as live. It needs a setup step, which we'll walk you through.
  • Invoices post to Finance, which ships in every workspace — a real double-entry ledger. See Finance for exactly what it does and doesn't do.

AI here is read-only, metered, and cannot write anything

The PM assistant generates a status summary, a health assessment, risks, recommendations and suggested tasks from your project's real data. It never writes.

  • Read-only by construction, not policyThere is no AI write path in the module at all — so there is no AI-initiated finance or stock action to fail closed against.
  • Suggestions are proposalsA person accepts them through the normal Tasks API, with that API's own permissions.
  • One metered call, hard-blocked at your capGoes through Oneop's metered choke point, charging your AI credit balance rather than billing an overage. Provider is Google Gemini — the only one Oneop uses.
  • Opt-in and role-restrictedOff until you turn it on, and limited to elevated roles, so you control who spends credits. More: AI governance.

What it costs

Projects unlock as you go up the ladder; sprints are Business-only. The client portal itself is on every plan — what changes with the plan is how many client logins it includes and whether you can run it on your own domain. Billing, retainers, intake, role rates and the AI assistant stay independently switched — each touches money, a second login realm or metered AI.

Annual billing is two months free; extra seats are $5/seat/month. See pricing for the full ladder, generated from the plan catalogue.

See full pricing
CapabilityFreeStarter $19Pro $59Business $129
Projects (PM_MODULE)
Time tracking (PM_TIME)
Sprints (PM_SPRINTS)
Client portal
Client portal logins included31050250
Portal on your own domain

Frequently asked

Do I have to ask for project management?

No — projects ship in every workspace as a standard plan feature, available the moment you are on Starter or above, the same way any other plan feature works. What stays a genuinely separate, deliberate switch is billing, public intake, role rates and the AI assistant — each touches money or metered AI, so each has its own control. The client portal itself is not one of those switches — it is on for every plan. You can run projects and time without ever turning on billing.

How is the client portal actually separate from the staff app?

It has its own session cookie and its own signing secret. In production, Oneop refuses to boot if that secret is unset, or if it matches the staff session secret or the operator console secret, because sharing a secret between realms lets a cookie from one be replayed as another. A portal session cannot reach staff routes and a staff session cannot reach portal routes.

Where does the money go when a client pays an invoice?

Into your own Stripe account, through Stripe Connect. Oneop reconciles the payment into your ledger, can issue a fee-prorated automatic refund, and sweeps for missed webhook events. One caveat we would rather state than hide: the Connect credentials are not configured in the shipped build, so this needs a setup step and we will not demo it as live.

Are project tasks separate from CRM tasks?

No, and that is deliberate. Work items run on the same task engine as deals, tickets, invoices, purchase orders and inventory items — so dependencies, recurrence, SLA clocks, watchers, @mentions and saved views behave identically, and a person’s workload is one list rather than one per module.

Can the AI assistant change my project?

No. It is read-only by construction — there is no AI write path in the module. It generates a status summary, health assessment, risks, recommendations and suggested tasks; a person accepts those through the normal Tasks API with that API’s own permissions. Every call is metered against your AI credit balance, and the assistant is opt-in.

Start with projects. Grow into the rest.

Projects and time tracking are ready the moment you're on Starter or above. The client portal is on from day one. Billing, public intake and the AI assistant are each their own switch — turn them on when you actually need them.

Sign-up opens when the app launches. We will email you once — no marketing list.