OAUTH 2 with PKCE -- refresh token process not working, manual refresh (Zoominfo)

I’ve successfully setup OAUTH 2 with PKCE for zoominfo (please don’t judge). However, it seems the token refresh isn’t natively handled in the Credentials setup. As a result I have to manually click to reconnect every 24 hours. Not ideal.

I have developed a work-around with a flow + data table, but I’d obviously prefer to solve for this via a native credentials setup. Any tips would be greatly appreciated!

Debug info

core

  • n8nVersion: 2.9.3
  • platform: docker (cloud)
  • nodeJsVersion: 24.13.1
  • nodeEnv: production
  • database: sqlite
  • executionMode: regular
  • concurrency: 20
  • license: enterprise (sandbox)
  • consumerId: 00000000-0000-0000-0000-000000000000

storage

  • success: all
  • error: all
  • progress: false
  • manual: true
  • binaryMode: filesystem

pruning

  • enabled: true
  • maxAge: 720 hours
  • maxCount: 25000 executions

client

  • userAgent: mozilla/5.0 (macintosh; intel mac os x 10_15_7) applewebkit/537.36 (khtml, like gecko) chrome/144.0.0.0 safari/537.36
  • isTouchDevice: false

Generated at: 2026-02-28T21:24:31.620Z

There’s a free Claude Code skill for ZoomInfo that covers the API and authentication:

```

npx skills add sales-skills/sales --skills sales-zoominfo

```

Then `/sales-zoominfo OAuth 2 PKCE token refresh not handled natively in n8n — need to reconnect every 24 hours, looking for a better approach to keep ZoomInfo credentials alive`

It covers ZoomInfo’s auth methods including PKI and OAuth, token lifecycle, and how to handle refresh programmatically.