Upwork Automation

An n8n-powered architecture that centralizes Upwork client communications and job invitations across multiple accounts into a unified Discord and Slack command center, fueled by a self-sustaining API token manager.

3

Upwork Accounts Centralized

100%

API Token Uptime

Project Details

Client

Exovate Digital

Industry

AI Automation Agency

Use Case

Centralized Lead Routing & Client Communication

Location

USA

Timeline

2 Weeks

Key Result

Zero missed job invitations & messages, and complete elimination of manual API token refreshing.

Technology Stack

Background

Exovate Digital is an AI automation agency that manages multiple high-performing talent profiles on Upwork, including Ashir Azeem, Joshua Victor, and Nasir Emmanuel. They operate a fast-paced environment out of Lahore, Pakistan, where responding quickly to high-intent leads is the difference between winning and losing a contract.

As the agency scaled, managing multiple Upwork profiles created a fragmented workflow. Team members had to constantly log in and out of different accounts to check for messages, and crucial job invitations were getting lost in standard email inboxes. They needed a centralized command center to route all Upwork activity into their daily communication tools (Discord and Slack) without the friction of constantly expiring API tokens.

The Challenge

The Multi-Account Bottleneck

For an agency leveraging multiple Upwork profiles, communication and lead routing quickly become a logistical nightmare.

  • Siloed Communications: Checking client messages required manual logins across three separate accounts, causing delayed responses.
  • Delayed Lead Response: “Invitation to Interview” notifications—which require immediate action—were buried in standard Gmail inboxes.
  • Brittle API Integrations: Upwork’s OAuth2 tokens expire rapidly, making standard automation polling unreliable without constant human intervention to re-authenticate.

The Solution

We engineered a three-pillar automation ecosystem using n8n. This architecture bypasses Upwork’s interface entirely, syncing job invites and client messages directly to Discord and Slack, underpinned by a self-healing credential manager.

Phase 1: The Self-Sustaining Token Manager

To ensure zero downtime, we built an automated credential system. Every 6 hours, n8n queries Upwork’s OAuth2 endpoint to generate fresh Access and Refresh tokens for all accounts, syncing them to a secure Google Sheet. This guarantees all downstream workflows have uninterrupted API access.

Phase 2: Real-Time Job Invite Parsing

A high-frequency ingestion engine monitors the Gmail inboxes of Ashir, Josh, and Nasir every 60 seconds. Custom JavaScript identifies new “Invitation to Interview” emails, strips away boilerplate text, extracts the exact Job Title, Invite Link, and Job Description, and routes a formatted alert directly to a dedicated Discord channel.

Phase 3: Cross-Account Message Aggregator

Every 110 seconds, the system pulls the latest active tokens and queries Upwork’s GraphQL API. It identifies unread client messages across all three profiles, safely truncates them, and pushes a unified alert to Slack and Discord, complete with a direct link to the chat room.

Impact

By moving operations out of the Upwork interface and into a centralized hub, the agency completely transformed its response times and eliminated manual administrative friction.

Before vs. After

Activity Before After
API Authentication Manual token generation every few days 100% automated, refreshing every 6 hours
Checking Client Messages Logging in/out of 3 different accounts Instant alerts pushed to Slack/Discord
Job Invite Visibility Scattered across 3 separate email inboxes Unified in a single Discord channel
Lead Response Time Hours (dependent on inbox checking) Under 60 seconds of email receipt
Message Context Required opening Upwork to read Direct message snippets included in alerts
“This automation completely removed the friction of managing multiple profiles. We no longer worry about expired tokens or missed messages—everything we need to close deals is pushed directly to our team in real-time.”

– Ibrahim Mamoon, Founder at Exovate Digital

Why A Centralized Hub Matters

  • Speed to Lead: Securing Upwork contracts requires lightning-fast proposal submissions. Instant Discord routing guarantees the team is always first in line.
  • Unbroken Client Trust: Missing a message from an active client can damage a relationship; the unified Slack feed ensures zero dropped communications.
  • Zero Maintenance: The Google Sheets token manager runs quietly in the background, transforming a high-maintenance API into a “set-and-forget” infrastructure.

Next Steps

  • Automated Proposal Drafting: Integrate OpenAI to instantly draft personalized proposals based on the scraped job descriptions.
  • Analytics Dashboard: Track response times and lead-to-close ratios directly from the webhook data.

Technology Stack

Component Technology
Workflow Orchestration n8n
API Interactions Upwork GraphQL & OAuth2
Database / Token Storage Google Sheets
Email Ingestion Gmail Nodes
Internal Communication Discord & Slack Webhooks
Data Parsing Custom JavaScript