SOURCE_ID: find_people_from_sales_navigator NAME: People from Sales Navigator CATEGORY: List Building Build a static list of people using LinkedIn Sales Navigator filters or by pasting a Sales Navigator people search URL. Imported records become available to your Floqer workflows for enrichment, scoring, and outreach. 1. ENDPOINTS Source identifier (used in every endpoint path): `find_people_from_sales_navigator`. POST /api/v1/sources/find_people_from_sales_navigator/preview Scope: sources:read Returns up to 25 people that WOULD be imported for the given search, without creating anything. Use this to validate filters or a search URL before committing. POST /api/v1/sources/find_people_from_sales_navigator Scope: sources:write Creates the source and queues an import of matching people (up to `max_count`). Returns `source_instance_id` (the new source's UUID). The import runs asynchronously. POST /api/v1/sources/find_people_from_sales_navigator/options/:field_name Scope: sources:read Autocomplete values for region-style filters. Supported field names: `location`, `company_headquarters`. Pass search text in `context.search` (returns empty options when omitted). GET /api/v1/sources//data Scope: sources:read Paginated rows imported into the created source. `` is the UUID returned by Create. POST /api/v1/sources//sync Scope: sources:write Connects the created source to a workflow and backfills rows. No OAuth connection is required. 2. SEARCH MODEL Every preview/create call uses ONE of two mutually exclusive modes: filters (default) Pass a `filters` array of Sales Navigator filter objects, OR pass flat `payloads` in the same shape (e.g. `location_in`, `seniority_in_operator`). sales_nav_url Pass a LinkedIn Sales Navigator people search URL copied from the browser after running a search in Sales Navigator. You cannot send both `filters` and `sales_nav_url` in the same request. 3. IMPORT LIFECYCLE (ONE-TIME ONLY) This is a static, one-shot list import — not a recurring monitor. 1. Preview (optional) — validate filters / URL and inspect row shape. 2. Create — starts the import of matching people. 3. Poll GET /api/v1/sources//data until rows arrive. 4. Sync — connect the source UUID to a workflow. Credits: 1 credit per person imported. 4. BODY SHAPE (PREVIEW + CREATE) ── Filters mode ────────────────────────────────────────────────────────────── { "type": "filters", "filters": [ { "filter_type": "location", "operator": "in", "values": ["San Francisco Bay Area"] }, { "filter_type": "seniority", "operator": "in", "values": ["Director", "Vice President"] } ] } Exclude example (same filter_type, operator not_in): { "type": "filters", "filters": [ { "filter_type": "industry", "operator": "not_in", "values": ["Staffing and Recruiting"] } ] } ── Filters mode (flat payloads — same fields, key/value form) ──────────────── { "type": "filters", "payloads": { "location_in": ["San Francisco Bay Area"], "location_in_operator": "in", "seniority_in": ["Director"], "seniority_in_operator": "in" } } Include/exclude fields use `_in` / `_not_in` suffix keys. ── URL mode ────────────────────────────────────────────────────────────────── { "type": "sales_nav_url", "sales_nav_url": "https://www.linkedin.com/sales/search/people?query=..." } ── Create-only fields ──────────────────────────────────────────────────────── name (required) Display name for the new source. max_count (optional) People to import. Default 25, max 15000. Accepts integer or numeric string (e.g. "100"). Full create example: { "name": "Sales Directors - Bay Area", "max_count": 100, "type": "filters", "filters": [ { "filter_type": "location", "operator": "in", "values": ["San Francisco Bay Area"] }, { "filter_type": "seniority", "operator": "in", "values": ["Director"] } ] } 5. FILTER FIELDS CATALOGUE Each entry maps to `filter_type` in the filters array. Use `operator`: `in`, `not_in`, or `between` (where supported). Include and exclude on the same field become separate filter objects with `in` vs `not_in`. Company group company_headcount Preset ranges: "1-10", "11-50", "51-200", ... company_headquarters Region names (use options endpoint for autocomplete) company Current employer names (free text) company_past Past employer names company_type "Public Company", "Privately Held", ... Personal group location Person region (use options endpoint) profile_language "English", "Spanish", ... industry LinkedIn industry names first_name, last_name Single string values year_of_experience "Less than 1 year", "1 to 2 years", ... Role group seniority "Director", "Vice President", "CXO", ... function "Sales", "Engineering", "Marketing", ... current_title Current job titles (free text, multi-value) past_title Past job titles years_in_current_position years_in_current_company Recent updates group keywords Single keyword string (only first value used) posted_on_linked_in Boolean — active on LinkedIn (last 30 days) recently_changed_jobs Boolean — recent job change Boolean filters (person SN): omit `operator` and `values`; send only `filter_type` for flags like `posted_on_linked_in`. 6. DYNAMIC OPTIONS Region fields support autocomplete via the options endpoint: POST /api/v1/sources/find_people_from_sales_navigator/options/location Body: { "context": { "search": "san francisco" } } POST /api/v1/sources/find_people_from_sales_navigator/options/company_headquarters Body: { "context": { "search": "london" } } Response: `{ "data": { "options": [{ "value": "...", "label": "..." }] } }` Use the returned `value` strings inside `filters[].values`. Static dropdown values (seniority, company_type, profile_language, etc.) are fixed enumerations — see the field catalogue in section 5 for the full lists. 7. HOW TO CONFIGURE END-TO-END 1. (Optional) Fetch region options for location / company_headquarters. 2. POST .../preview with your filters or sales_nav_url. 3. POST .../ with name + max_count + same search body. 4. GET /api/v1/sources//data to read imported rows. 5. POST /api/v1/sources//sync to wire into a workflow. 8. KEY NOTES - Preview returns at most ~25 rows; total_results reflects the upstream match count. - Larger imports run asynchronously; rows arrive over time as the import progresses. - sales_nav_url must be a people search URL (https://www.linkedin.com/sales/search/people...). - Hash fragments (#query) in URLs are normalized to query strings. 9. WHERE IT FITS Static list-building source for LinkedIn Sales Navigator people search. Pairs with workflow enrichment actions (email finders, LinkedIn enrich, etc.) via source sync. 10. WHEN TO USE Use when you need LinkedIn Sales Navigator people targeting (filters or saved search URL) rather than the standard `find_people` source. Last updated: 2026-06-02.