leadswift

n8n community node for LeadSwift – create campaigns, submit searches, and export leads.

Package Information

Downloads: 2 weekly / 24 monthly
Latest Version: 1.0.0
Author: LeadSwift

Documentation

n8n-nodes-leadswift

Community n8n node for LeadSwift — the local B2B lead generation platform.

Features

Resource Operations
Campaign Get All, Get, Create, Delete
Search Get All (by campaign), Submit, Delete
Lead Get All (paginated), Export Async (CSV download URL)

Installation

In your n8n instance

Settings → Community Nodes → Install → n8n-nodes-leadswift

Self-hosted / manual

cd ~/.n8n/custom   # or wherever your n8n custom nodes live
npm install n8n-nodes-leadswift

Restart n8n after installing.


Credentials

  1. Go to Credentials → Add Credential → LeadSwift API
  2. Paste your API key from leadswift.com/dashboard/api-settings

Typical Workflow

[Schedule Trigger]
      ↓
[LeadSwift – Campaign: Create]   ← title = "Plumbers May 2025"
      ↓  (output: id)
[LeadSwift – Search: Submit]     ← keyword = "Plumbers", location = "Toronto, ON, Canada"
      ↓  (output: id = search_id)
[Wait 2–4 hours]                 ← searches run in the background; you'll get an email when done
      ↓
[LeadSwift – Search: Get All]    ← confirm status = "completed"
      ↓
[LeadSwift – Lead: Export]       ← pollUntilComplete = true, maxWait = 600s
      ↓  (output: download_url)
[HTTP Request – GET download_url]
      ↓
[Spreadsheet File / Google Sheets / CRM]

Operations Reference

Campaign

Operation Key Parameters Returns
Get All Array of {id, title, description}
Get campaignId Single campaign object
Create title, description {id}
Delete campaignId {success, data}

Search

Operation Key Parameters Returns
Get All campaignId Array of search objects with status, total_results
Submit campaignId, keyword, location, htmlSearchCode (opt) {success, data: {id}}
Delete searchId {success, data}

Status values returned by Get All:

Status Meaning
processing Still collecting data from sources
gathering websites Auditing business websites
queued Waiting in the processing queue
completed Ready to export or fetch leads
re-processing Being updated with new leads

Lead – Get All

Returns paginated lead rows. Useful for smaller searches or when you need to inspect/filter data before exporting.

Parameter Default Description
searchId ID from a completed search
returnAll false Paginate through all pages
limit 25 Max rows when returnAll = false
textFilter e.g. job-title:owner,ceo or Toronto
excludeClosed true Skip leads you've marked Closed
mergeByDomain false One row per website domain

Output fields per lead: name, address, phone, category, website, email, google_rating, google_reviews, yelp_rating, fb_rating, is_ssl, is_mobile_friendly, is_wordpress, is_shopify, company_size, employees, status, created_at, and more.

Lead – Export (Async)

Preferred for large searches. Queues a background export job on LeadSwift's servers and polls until done.

Parameter Default Description
searchId ID from a completed search
pollUntilComplete true Wait and return download URL
maxWaitSeconds 300 Timeout in seconds
excludeClosed true Skip closed leads
mergeByDomain false One row per domain
oneContactPerRow true One email per CSV row
customFilter Same filter syntax as the dashboard

Output:

{
  "cron_id": 1234,
  "search_id": "5678",
  "status": "Completed",
  "download_url": "https://auto.leadswift.com/auto_export/temp/csv/.../filename.csv"
}

When pollUntilComplete = false, the node returns immediately with { cron_id, status: "Pending" }. You can then use a separate HTTP Request node to POST to /api/export_leads_status with cron_id to check progress yourself.


Notes

  • Search quota resets daily at 12AM EST.
  • City-level searches yield far more results than state/country-level.
  • Large searches can take several hours. Submit searches in advance and poll for completion.
  • The download_url is a temporary CSV link. Fetch it promptly or store it.
  • Free/trial accounts cannot use the API.

Discussion