
Jul 28, 2026
Written by Gregory Shein, CEO & Founder
How to Manage Upwork and Direct Clients in One System
For the full commercial guide with migration checklist, see the Upwork to Direct Clients guide.
Every successful Upwork agency eventually becomes a hybrid. A client finishes a contract and comes back off-platform. A referral arrives that never touched Upwork. Suddenly you're running two businesses: the platform one — proposals, Connects, the Upwork tracker, service fees — and the direct one — your own outreach, your own invoices, your own payment terms.
The default response is to run them on two stacks: Upwork's dashboard for half the business, and some combination of spreadsheet, second time tracker, and invoicing app for the other half. This post is about why that arrangement fails predictably, what a consolidated system actually looks like, and a migration checklist that gets you there in about a week.
What breaks when you run two systems
1. Nobody can answer whole-business questions
"How many billable hours did we deliver last month?" "Which client is most profitable?" "Does Maria have capacity?" With two systems, every one of these requires an export, a merge, and an hour you don't have. So the questions go unanswered, and the agency is steered on the half of the data that's easiest to see — usually the Upwork half, because Upwork at least has a dashboard.
2. The direct side leaks money
Upwork forces billing discipline: hours tracked, invoices generated, payment on a schedule. The direct side has no such enforcement — and it shows. Direct invoices go out late (or get forgotten), off-platform hours are under-recorded because the tracker habit is tied to Upwork's app, and nobody owns the process. The bitter irony: the direct side is your higher-margin channel — no 10% fee — and it's the side run with the least rigor.
Put numbers on it. A hybrid agency doing $8,000/month of direct work that under-records ~5% of hours and averages two weeks of invoice delay is losing roughly $400/month in unbilled time plus a permanent ~$4,000 hole in working capital from the billing lag. That's the two-system tax before you count any admin hours.
3. The pipeline splits — and follow-ups die in the gap
Upwork bids live in browser tabs and My Proposals; direct leads live in an inbox or a spreadsheet. Two pipelines means two follow-up systems, which in practice means no follow-up system. Warm invites go stale, that "let's talk next quarter" direct lead is never contacted, and you can't compare win rates or cost per acquired client across channels — so you can't decide where next month's sales effort should go.
4. Client history fragments
The most valuable Upwork event is a client going direct — and it's exactly when their history gets lost, because the "new" direct client starts from a blank record in a different tool. The team re-learns preferences the agency already paid to learn.
5. You pay twice — in subscriptions and in reconciliation
A second tracker, an invoicing app, a CRM, plus the monthly ritual of reconciling them. The hidden costs of tool sprawl compound with every tool boundary the data has to cross.
The consolidated model: one object type, two sources
The fix is conceptual before it's technical: an Upwork contract and a direct engagement are the same kind of object. A client, a project, tracked hours, a bill rate, a pay rate, money in. The only difference is the source of the hours and who does the billing.
In practice, the one-system setup looks like this:
- One client list. Map Upwork contracts to projects via the Upwork integration; add CRM contacts manually when you want pipeline history. When an Upwork client returns off-platform, you add a project to an existing record — history intact.
- One pipeline. Upwork bids are logged through a platform bidding workflow — job link, Connects spent, status, outcome — in the same outreach system as your email and LinkedIn leads. One follow-up queue, and win rate per channel becomes a report.
- One timesheet. Upwork hourly contracts keep using Upwork's tracker (payment protection stays intact); those hours sync automatically. Direct and internal work runs through your own tracker. The merged setup is detailed in Upwork time tracking for agencies.
- One billing rule. Upwork bills platform contracts; you invoice everyone else from approved timesheets in the same system — multi-currency, online payment, no retyping hours.
- One profitability report. Every project has a bill rate and pay rate per person, so margin per contract covers both channels — with the 10% fee applied only where it belongs. Spread mechanics are in Upwork bill rate vs pay rate; to compare a prospective direct retainer against an Upwork contract before saying yes, model both in the project profitability calculator.
This is precisely the architecture of Corcava's Upwork agency management setup: CRM, outreach, projects, time, and invoicing as one stack, with Upwork as a synced data source rather than a separate business.
Worked example: the same client, before and after
A client, Northline, ran an $11,000 Upwork contract with your agency, then came back eight months later for direct work.
Two-system version: Northline exists as an Upwork contract record (closed) and, separately, as a new row in the direct spreadsheet. The new retainer is scoped from memory. Hours go into the second tracker when people remember. The first invoice goes out 19 days after month-end because the ops lead had to assemble hours from Slack messages. Nobody notices the retainer's effective rate is 12% below the old Upwork bill rate — after removing the 10% fee advantage.
One-system version: Northline is one client record with two projects — "Northline (Upwork, 2025)" and "Northline retainer (direct)." The retainer is priced with the old contract's realized margin on screen: the agency quotes $63/hour where the Upwork contract billed $58, keeping the fee savings instead of silently giving them away. Hours accrue in the same timesheet as everything else; the invoice generates from approved hours on the 1st. Margin per project sits side by side in the monthly report.
Same client, same work. The difference is roughly $700/month in price alone, plus the billing lag, plus the answerable questions.
Migration checklist: two systems to one in a week
ONE-SYSTEM MIGRATION — UPWORK + DIRECT
Day 1 — Inventory
[ ] List every active engagement: Upwork contracts + direct clients
[ ] For each: bill rate, pay rate(s), people assigned, billing owner
[ ] List the tools being retired (tracker, invoicing app, bid sheet, CRM)
Day 2 — Connect the platform side
[ ] Connect the Upwork agency account via OAuth
[ ] Map Upwork users → team members; contracts → projects
[ ] Enter pay + bill rates per person per contract
[ ] Verify recent synced hours look correct (ongoing sync, not a one-time bulk import)
Day 3 — Build the direct side
[ ] Create client records + projects for every direct engagement
[ ] Set rates, billing cadence, and payment terms per project
[ ] Create an Internal project for non-billable time
Day 4 — Unify the pipeline
[ ] Move open Upwork proposals into the bidding workflow
(job link, Connects spent, status, follow-up date)
[ ] Import direct leads from inbox/spreadsheet into the same pipeline
[ ] Set follow-up dates on everything currently "waiting"
Day 5 — Cut over billing and rules
[ ] Announce the two tracking rules: Upwork work → Upwork tracker
(it syncs); everything else → the one internal tracker
[ ] Generate this month's direct invoices from tracked hours
[ ] Set a recurring monthly margin review (all contracts, both channels)
[ ] Cancel the retired subscriptions — and don't keep "backup" copies
alive; a half-retired system is two systems again
The last line matters most. Consolidation fails not at setup but at week four, when one person quietly resurrects the old spreadsheet. The rule set has to be small enough to hold: two tracking rules, one pipeline, one invoice day.
Run both halves as one business
- Start a free 14-day Corcava trial — connect Upwork on day one, add your direct clients on day two, and see a single margin report by the end of the week. $9/user/month, all features included, no credit card required.
- The full consolidated architecture, feature by feature: the Upwork agency management page.