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

  1. Navigate to Settings → Integrations
  2. Click Connect Upwork
  3. You'll be redirected to Upwork to authorize the connection
  4. Grant Corcava access to:
    • Time & Contracts
    • Basic user profiles
    • Client/company references
  5. 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:

  1. Click the dropdown next to an Upwork user
  2. Select the matching Corcava user
  3. Or click + Create New User to add them to your team
  4. 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:

  1. Select Project: Choose which Corcava project this contract syncs to

    • Click + Create New Project to add one on-the-fly
  2. 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)
  3. 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):

  1. Click the pencil icon (✏️) next to the user
  2. Make your changes (user mapping, project selection, rates)
  3. Changes take effect immediately

Adding New Contracts

When you hire new contractors on Upwork:

  1. Go to Settings → Integrations → Upwork
  2. Click Configure
  3. Navigate to Step 2 (User & Contract Mapping)
  4. Click Refresh from Upwork to pull latest data
  5. Configure the new contracts
  6. 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:

  1. Is the user sync enabled?
  2. Is the contract sync enabled?
  3. Has a project been selected for the contract?
  4. Is the Upwork contract active?

Need to Disconnect

From the main Upwork integration page:

  1. Click Disconnect
  2. Confirm the action
  3. This stops syncing but preserves existing time entries in Corcava

Re-authentication Required

If your Upwork connection expires:

  1. Click Re-auth on the integration page
  2. Complete the OAuth flow again
  3. 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

  1. Review auto-matches: Always verify automatic user matching before starting sync
  2. Set rates accurately: Proper rate configuration ensures accurate profitability tracking
  3. Refresh regularly: When hiring new contractors, refresh data to pull them into Corcava
  4. Lock what works: Once mappings are correct, leave them locked to prevent accidental changes
  5. Monitor status page: Check regularly to ensure contracts are syncing as expected
  6. 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.