Skip to main content

WorkUpwork

Live account data in a hosted Help Center

An OAuth 2.0 client for Zendesk Guide

OAuth 2.0 in Zendesk Guide

The problem

Zendesk Guide personalises a Help Center with user tags pushed through SSO. Those tags refresh only when a session is created or renewed, so the Help Center showed content for the account as it was at login, not as it is now.

What I built

As a proof of concept for real-time personalisation, I led the team that built a JavaScript client library for Upwork's OAuth 2.0 application, running inside the Zendesk Guide theme.

  • It authenticates Help Center users against Upwork.
  • It retrieves their data from the Upwork API in real time.
  • I wrote the integration documentation, so later implementations didn't start from scratch.

In 2021 I advised Upwork's community engineering team on applying the same pattern to Khoros.

Diagram: SSO tags set at login replaced by an OAuth 2.0 client reading live data from the Upwork API
The Help Center asks for current account data instead of trusting login tags.

What changed

Live account data replaced stale session tags, allowing real-time tier gating and authenticated API actions directly in the Help Center theme.

"Asif played a key role in enhancing Zendesk Guide features, improving user experience, and implemented Upwork OAuth2 for API authentication in the Help Center... His technical expertise and innovative mindset made a lasting impact on our team."

— Joji Maekawa, Engineering Manager, Customer Experience, Upwork

What I took from it

A hosted platform's built-in identity is a snapshot. If the experience depends on current state, you have to go and get it. Two years later the same principle shaped the GraphQL integration.