Skip to main content
GET
/
api
/
lists
/
sales-nav-access
Check Sales Navigator access for the current user
curl --request GET \
  --url https://app.puffle.ai/api/lists/sales-nav-access \
  --header 'Authorization: Bearer <token>'
{ "hasSalesNavigator": true, "account": { "id": "bbbbbbbb-2222-3333-4444-555555555555", "name": "Sarah Lee", "providerAccountId": "unipile_acc_abc123" } }

Overview

Returns a boolean hasSalesNavigator flag and, when true, a summary of the first matching LinkedIn account the caller owns. This is the precondition check for importFromSalesNav — a missing Sales Nav account causes that endpoint to 400 with a human-readable instruction to connect one. The detection signal is accounts.has_sales_navigator, populated as a side effect of Unipile account sync. A freshly connected LinkedIn account may briefly show hasSalesNavigator: false until the next sync refresh lands. No external calls are made from this endpoint — it’s a pure Supabase read.

AI agent notes

Call first, import second. Always invoke getSalesNavAccess before importFromSalesNav. If hasSalesNavigator is false, prompt the user to connect a LinkedIn account via the Unipile OAuth flow (createUnipileConnect) before proceeding.Stale sync. If the user recently reconnected a LinkedIn account with Sales Nav but this endpoint reports false, wait ~1 minute and retry — account status is synced via a scheduled Trigger.dev job, not inline at connection time.No side effects. Pure read, safe to poll frequently.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Response

Sales Navigator availability for the caller. When hasSalesNavigator is true, account is populated.

hasSalesNavigator
boolean
required

True when the caller has at least one connected LinkedIn account with has_sales_navigator = true.

account
object
required

The first connected LinkedIn account the caller owns that has Sales Navigator premium.