Leads
Search, view, and import leads.
Tools (7)
Section titled “Tools (7)”search_leads
Section titled “search_leads”Full name: campaignstack_search_leads
Search leads in a workspace by name, email, LinkedIn URL or company. Returns paginated results; follow nextCursor for the next page. Omit query and companyId to page through every lead. Covers both shared leads and workspace-private (CSV-imported) ones. Platform presence (LinkedIn URL, follower counts, …) is under each lead’s profiles key (e.g. profiles.linkedin.url); the top-level linkedInUrl is a legacy alias. Use returned leadId values with campaignstack_get_lead or campaignstack_add_leads_to_list.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
query | string | No | — | A person’s name, an email address, or a LinkedIn profile URL. Job titles are not searchable here. |
companyId | string | No | — | |
limit | integer | No | 20 | (min: 1, max: 100) |
cursor | string | No | — |
get_lead
Section titled “get_lead”Full name: campaignstack_get_lead
Get a lead by ID with full details including company information and ICP scores. Accepts shared lead IDs and private (workspace-scoped, CSV-imported) lead IDs; the response’s leadSource field says which one was found. Platform presence is under the profiles key (e.g. profiles.linkedin.url, followerCount, bio); top-level fields like linkedInUrl are legacy aliases. The watch key carries the workspace’s intelligence post watch on this lead (id, status, post count) when one exists. If the lead is not found, use campaignstack_search_leads to find valid lead IDs.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
leadId | string | Yes | — | (min length: 1) |
import_leads_csv
Section titled “import_leads_csv”Full name: campaignstack_import_leads_csv
Import leads from CSV data. Provide raw CSV content and optional column mapping. If no mapping is provided, columns are auto-mapped based on header names. After import, use campaignstack_search_leads to verify imported leads, or campaignstack_add_leads_to_list to add them to a campaign.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
csvData | string | Yes | — | (min length: 1) |
mapping | object | No | — |
update_lead_metadata
Section titled “update_lead_metadata”Full name: campaignstack_update_lead_metadata
Update user-level metadata (notes and tags) on a lead. Only provided fields are updated. Use campaignstack_search_leads or campaignstack_get_lead to find lead IDs.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
leadId | string | Yes | — | (min length: 1) |
notes | string | No | — | |
tags | string[] | No | — |
update_lead_contact_info
Section titled “update_lead_contact_info”Full name: campaignstack_update_lead_contact_info
Save extracted contact information (email, phone, website) to a lead. Called by the linkedin-contact-info agent after extracting data from LinkedIn’s Contact Info overlay. Only provided fields are updated; omitted fields are left unchanged.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
leadId | string | Yes | — | (min length: 1) |
email | string | No | — | |
phone | string | No | — | |
website | string | No | — |
link_lead_profile
Section titled “link_lead_profile”Full name: campaignstack_link_lead_profile
Attach a platform profile (LinkedIn or X) to an existing PRIVATE lead so one person is sequenceable across channels. Provide at least one of url, externalId, or handle. Fails with PROFILE_ALREADY_LINKED if the profile is attached to a different lead. API-key callers may only link profiles on private (workspace-scoped) leads. Global leads are read-only for user-supplied data.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
leadId | string | Yes | — | Private lead id (API-key callers may only link on private leads) (min length: 1) |
platform | linkedin | x | Yes | — | Platform of the profile being linked |
url | string | No | — | Profile URL (e.g. https://linkedin.com/in/jane or https://x.com/jane) |
externalId | string | No | — | Platform-native external id |
handle | string | No | — | X handle (with or without @) |
unlink_lead_profile
Section titled “unlink_lead_profile”Full name: campaignstack_unlink_lead_profile
Detach a platform profile from a PRIVATE lead into a new standalone lead in the same workspace. Scraped data is never deleted; the profile row is repointed at the new lead. Returns the new lead’s id. API-key callers may only unlink on private leads.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
leadId | string | Yes | — | Private lead id currently holding the profile (min length: 1) |
platform | linkedin | x | Yes | — | Platform of the profile being detached |