Upwork Integration
The Upwork integration automatically syncs time tracking data, contracts, and team members from your Upwork account into Corcava. This eliminates manual data entry and ensures your time records stay perfectly synchronized across both platforms.
Supported Account Types
The Upwork integration works with all Upwork account types:
- Agency Accounts: Sync all your agency's contracts and freelancers
- Client Accounts: Track contractors you've hired through Upwork
- Freelancer Profiles: Manage your own freelance contracts
You can connect multiple Upwork organizations simultaneously, and each one syncs independently with its own mapping configuration.
Getting Started
Connecting Your Upwork Account
- Navigate to Settings → Integrations
- Click Connect Upwork
- You'll be redirected to Upwork to authorize the connection
- Grant Corcava access to:
- Time & Contracts
- Basic user profiles
- Client/company references
- After authorization, you'll return to Corcava where the setup wizard begins
Initial Data Import
On your first sync, Corcava imports:
- Last 90 days of time entries from all active contracts
- All active contracts with their details
- Freelancer/contractor profiles
- Contract rates (hourly rates from Upwork)
Setup Wizard
The setup wizard has three steps to configure your Upwork integration:
Step 1: Account Selection
View all your connected Upwork organizations and their details:
- Organization name and profile picture
- Account type badge (Agency, Client, or Freelancer)
- Number of users and contracts available
All accounts are pre-selected by default. Uncheck any you don't want to sync.
Sync Information Displayed:
- Scope: Time & Contracts, Basic user profiles, Client/company references
- Import Range: Last 90 days of historical data
Step 2: User & Contract Mapping
This is where you configure what syncs to Corcava.
User Mapping
Map each Upwork freelancer/contractor to a Corcava team member:
Automatic Matching: The system automatically matches users by name when you first connect. Review these suggestions and adjust as needed.
Manual Mapping:
- Click the dropdown next to an Upwork user
- Select the matching Corcava user
- Or click + Create New User to add them to your team
- Toggle the Sync switch to enable syncing for this user
Locked Users: Existing connections show a chain icon (🔗) and green background. Click the pencil icon to unlock and edit the mapping.
Contract Mapping
Contracts appear nested under their assigned user. For each contract:
Select Project: Choose which Corcava project this contract syncs to
- Click + Create New Project to add one on-the-fly
Set Rates:
For Agency Accounts:
- Pay Rate: What you pay the freelancer
- Bill Rate: What you charge your client (auto-filled from Upwork)
For Client Accounts:
- Pay Rate: What you pay the freelancer (auto-filled from Upwork)
- Bill Rate: What you charge your customers (optional, only if project is billable)
Enable Sync: Toggle the sync switch for each contract you want to track
Important Notes:
- Contracts can only sync if their user is synced
- Selecting a project automatically enables contract sync
- Rate fields are pre-filled from Upwork contracts when available
- Collapsible contract lists (expanded by default) - click the arrow to collapse
Step 3: Review & Confirm
Review all your mapping decisions:
- Users to be linked or created
- Contracts to sync with their associated projects
- Pay and bill rates for each contract
Organized by organization for easy review. Click Start Sync to begin.
Status Dashboard
After configuration, access the status dashboard from Settings → Integrations → Upwork → View Status.
What You'll See
For each connected organization:
Organization Header:
- Organization name and account type
- Last data refresh timestamp
- Last sync timestamp
- Total active contracts
Contract Details:
- Contract title
- Client name (from your Corcava project)
- Upwork user name
- Project it's syncing to
- Hours synced today (large, prominent display)
Recent Time Entries:
- Date and time of each entry
- User who tracked the time
- Duration in hours
- Last 10 entries displayed per contract
Refresh Data
Click the Refresh from Upwork button on Step 2 of the wizard to manually pull the latest data from Upwork. This updates:
- New contracts
- New team members
- Contract status changes
- Rate changes
The last refresh time is displayed at the top of the mapping page.
How Syncing Works
Automatic Background Sync
After configuration, Corcava automatically syncs time entries from Upwork:
- Runs in the background via queue system
- Only syncs enabled contracts
- Respects your mapping configuration
- Creates time intervals in Corcava matching Upwork entries
What Gets Synced
For each enabled contract:
- Time Entries: Start time, end time, duration
- User Assignment: Based on your user mappings
- Project Assignment: Based on your contract-to-project mappings
- Rates: Pay rates and bill rates you configured
What Doesn't Sync
- Upwork messages or communications
- Work diary screenshots
- Upwork fees or payment details
- Contract terms or agreements
Editing Mappings
You can change your mappings anytime without losing existing sync data.
From the Status Page
Click Configure Mapping to return to the setup wizard.
Unlocking Existing Connections
Existing user connections are locked by default (shown with green background and chain icon):
- Click the pencil icon (✏️) next to the user
- Make your changes (user mapping, project selection, rates)
- Changes take effect immediately
Adding New Contracts
When you hire new contractors on Upwork:
- Go to Settings → Integrations → Upwork
- Click Configure
- Navigate to Step 2 (User & Contract Mapping)
- Click Refresh from Upwork to pull latest data
- Configure the new contracts
- Click Review & Start Sync
Managing Multiple Organizations
If you have multiple Upwork accounts (agencies, client accounts, freelancer profiles):
Separate Sections
Each organization appears in its own section in Step 2 of the wizard:
- "Freelancer/Agency (Nomadic Soft)"
- "Client (Acme Corp)"
- "Freelancer (John Smith)"
Independent Configuration
Each organization has:
- Its own user mappings
- Its own contract mappings
- Separate sync status
- Independent rate configuration
Status Dashboard
The status page shows all organizations with their contracts, making it easy to see what's syncing across all your Upwork accounts.
Rate Handling
Agency Accounts
For agencies managing freelancers:
- Contract Rate from Upwork = Bill Rate (what you charge your client)
- Pay Rate = What you pay the freelancer (you input this)
- Helps track agency margin and profitability
Client Accounts
For clients hiring freelancers:
- Contract Rate from Upwork = Pay Rate (what you pay the freelancer)
- Bill Rate = What you charge your customers (optional, only if project is billable)
- Useful for agencies billing their own clients
Historical Rates
Rates are set to cover historical data (imported time from the last 90 days). The system uses a historical date to ensure all imported time entries have proper rate data for profitability calculations.
Troubleshooting
Contracts Not Showing Up
Solution: Click Refresh from Upwork in Step 2 to pull the latest data.
User Auto-Match Not Working
Solution: Manually select the correct user from the dropdown. The system matches by name, so slight spelling differences will prevent automatic matching.
Time Entries Not Syncing
Check:
- Is the user sync enabled?
- Is the contract sync enabled?
- Has a project been selected for the contract?
- Is the Upwork contract active?
Need to Disconnect
From the main Upwork integration page:
- Click Disconnect
- Confirm the action
- This stops syncing but preserves existing time entries in Corcava
Re-authentication Required
If your Upwork connection expires:
- Click Re-auth on the integration page
- Complete the OAuth flow again
- Your mappings are preserved
Permissions
Only Organization Managers and Super Admins can:
- Connect Upwork accounts
- Configure mappings
- View status dashboard
- Edit integration settings
All team members can see and work with time entries that were synced from Upwork (they appear as regular time intervals in Corcava).
Best Practices
- Review auto-matches: Always verify automatic user matching before starting sync
- Set rates accurately: Proper rate configuration ensures accurate profitability tracking
- Refresh regularly: When hiring new contractors, refresh data to pull them into Corcava
- Lock what works: Once mappings are correct, leave them locked to prevent accidental changes
- Monitor status page: Check regularly to ensure contracts are syncing as expected
- One project per contract: Map each Upwork contract to a single Corcava project for clarity
Use Cases
Freelance Agency
"Our agency has 15 contractors across 8 client projects. The Upwork integration automatically pulls all their time into Corcava, where we review, approve, and invoice our clients. No more asking contractors to log time in two places."
Product Company with Upwork Contractors
"We hire specialized contractors through Upwork for specific features. The integration syncs their time to the right project automatically, and we can track profitability in real-time without manual data entry."
Freelancer Managing Multiple Clients
"I work with several clients through Upwork. The integration pulls all my tracked time into Corcava where I can add non-Upwork work, generate comprehensive reports, and keep everything in one place."
Frequently Asked Questions
Q: Can I connect multiple Upwork accounts?
A: Yes! Connect unlimited Upwork organizations (agencies, client accounts, freelancer profiles) and manage them all from one place.
Q: What happens to existing time entries in Corcava?
A: They remain unchanged. The Upwork integration only adds new time entries from Upwork; it doesn't modify or delete existing entries.
Q: Can I manually edit time that was synced from Upwork?
A: Yes! Once synced, time entries become regular Corcava time intervals that can be edited, moved, or deleted like any other entry.
Q: Does this work with Upwork's fixed-price contracts?
A: The integration focuses on hourly contracts with tracked time. Fixed-price contracts without time tracking won't sync time entries.
Q: How often does it sync?
A: Automatic background sync runs continuously via queue system. You can also manually refresh data anytime from the wizard.
Q: What if I change a contract mapping?
A: New time entries will sync to the new project. Existing entries remain in their original project unless you manually move them.
Q: Can I turn off sync for a specific contract?
A: Yes! Toggle the sync switch off for any contract. This stops future syncing but preserves existing time entries.
