diff --git a/src/assets/docs/agent-connectors/leadiq/api-keys.png b/src/assets/docs/agent-connectors/leadiq/api-keys.png
new file mode 100644
index 000000000..587bb7fbb
Binary files /dev/null and b/src/assets/docs/agent-connectors/leadiq/api-keys.png differ
diff --git a/src/components/templates/agent-connectors/_section-after-setup-leadiq-common-workflows.mdx b/src/components/templates/agent-connectors/_section-after-setup-leadiq-common-workflows.mdx
new file mode 100644
index 000000000..34128e3d5
--- /dev/null
+++ b/src/components/templates/agent-connectors/_section-after-setup-leadiq-common-workflows.mdx
@@ -0,0 +1,324 @@
+export const sectionTitle = 'Common workflows'
+
+import { Tabs, TabItem, Aside } from '@astrojs/starlight/components'
+
+
+
+
+Check credit quota before searching
+
+Always check available credits before calling tools that consume them (`leadiq_search_people`, `leadiq_flat_advanced_search`, `leadiq_grouped_advanced_search`).
+
+
+
+ ```typescript
+ const usage = await actions.executeTool({
+ toolName: 'leadiq_get_usage',
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ toolInput: {},
+ });
+ console.log(usage.data?.usage);
+ ```
+
+
+ ```python
+ usage = actions.execute_tool(
+ tool_name="leadiq_get_usage",
+ connection_name="leadiq",
+ identifier="user_123",
+ tool_input={},
+ )
+ print(usage.data)
+ ```
+
+
+
+
+
+
+Preview contact availability before consuming credits
+
+Use `leadiq_search_people_preview` to check whether LeadIQ has a work email or phone for a person before calling `leadiq_search_people`. The preview call does not consume credits.
+
+
+
+ ```typescript
+ const preview = await actions.executeTool({
+ toolName: 'leadiq_search_people_preview',
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ toolInput: {
+ linkedin_url: 'https://www.linkedin.com/in/janedoe',
+ },
+ });
+
+ if (preview.data?.data?.searchPeoplePreview?.hasEmail) {
+ // Safe to call leadiq_search_people — credits will be consumed
+ }
+ ```
+
+
+ ```python
+ preview = actions.execute_tool(
+ tool_name="leadiq_search_people_preview",
+ connection_name="leadiq",
+ identifier="user_123",
+ tool_input={"linkedin_url": "https://www.linkedin.com/in/janedoe"},
+ )
+
+ result = preview.data.get("data", {}).get("searchPeoplePreview", {})
+ if result.get("hasEmail"):
+ # Safe to call leadiq_search_people — credits will be consumed
+ pass
+ ```
+
+
+
+
+
+
+Look up a contact by LinkedIn URL, email, or name
+
+
+
+ ```typescript
+ // By LinkedIn URL (most precise)
+ const contact = await actions.executeTool({
+ toolName: 'leadiq_search_people',
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ toolInput: {
+ linkedin_url: 'https://www.linkedin.com/in/janedoe',
+ limit: 1,
+ },
+ });
+
+ // By name + company
+ const byName = await actions.executeTool({
+ toolName: 'leadiq_search_people',
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ toolInput: {
+ first_name: 'Jane',
+ last_name: 'Doe',
+ company_name: 'Acme Corp',
+ limit: 5,
+ },
+ });
+ ```
+
+
+ ```python
+ # By LinkedIn URL (most precise)
+ contact = actions.execute_tool(
+ tool_name="leadiq_search_people",
+ connection_name="leadiq",
+ identifier="user_123",
+ tool_input={
+ "linkedin_url": "https://www.linkedin.com/in/janedoe",
+ "limit": 1,
+ },
+ )
+
+ # By name + company
+ by_name = actions.execute_tool(
+ tool_name="leadiq_search_people",
+ connection_name="leadiq",
+ identifier="user_123",
+ tool_input={
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "company_name": "Acme Corp",
+ "limit": 5,
+ },
+ )
+ ```
+
+
+
+
+
+
+Enrich a company by domain or name
+
+
+
+ ```typescript
+ const company = await actions.executeTool({
+ toolName: 'leadiq_search_company',
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ toolInput: {
+ domain: 'acme.com',
+ },
+ });
+ console.log(company.data?.data?.searchCompany);
+ ```
+
+
+ ```python
+ company = actions.execute_tool(
+ tool_name="leadiq_search_company",
+ connection_name="leadiq",
+ identifier="user_123",
+ tool_input={"domain": "acme.com"},
+ )
+ print(company.data)
+ ```
+
+
+
+
+
+
+Advanced people search with industry and seniority filters
+
+Pass filter objects as Python dicts or JavaScript objects — not JSON-encoded strings.
+
+
+
+ ```typescript
+ const results = await actions.executeTool({
+ toolName: 'leadiq_flat_advanced_search',
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ toolInput: {
+ company_filter: {
+ industries: ['Software Development'],
+ sizes: [{ min: 50, max: 500 }],
+ },
+ contact_filter: {
+ seniorities: ['VP', 'Director'],
+ },
+ limit: 10,
+ },
+ });
+ const people = results.data?.data?.flatAdvancedSearch?.people ?? [];
+ ```
+
+
+ ```python
+ results = actions.execute_tool(
+ tool_name="leadiq_flat_advanced_search",
+ connection_name="leadiq",
+ identifier="user_123",
+ tool_input={
+ "company_filter": {
+ "industries": ["Software Development"],
+ "sizes": [{"min": 50, "max": 500}],
+ },
+ "contact_filter": {
+ "seniorities": ["VP", "Director"],
+ },
+ "limit": 10,
+ },
+ )
+ people = results.data.get("data", {}).get("flatAdvancedSearch", {}).get("people", [])
+ ```
+
+
+
+
+
+
+Advanced search grouped by company (account-based prospecting)
+
+Returns results organized by company, each with a list of matching contacts. Useful for account-based outreach.
+
+
+
+ ```typescript
+ const grouped = await actions.executeTool({
+ toolName: 'leadiq_grouped_advanced_search',
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ toolInput: {
+ company_filter: {
+ industries: ['Financial Services'],
+ sizes: [{ min: 200, max: 5000 }],
+ },
+ contact_filter: {
+ seniorities: ['Executive', 'VP'],
+ },
+ limit: 5, // number of companies
+ limit_per_company: 3, // contacts per company
+ },
+ });
+ const companies = grouped.data?.data?.groupedAdvancedSearch?.companies ?? [];
+ ```
+
+
+ ```python
+ grouped = actions.execute_tool(
+ tool_name="leadiq_grouped_advanced_search",
+ connection_name="leadiq",
+ identifier="user_123",
+ tool_input={
+ "company_filter": {
+ "industries": ["Financial Services"],
+ "sizes": [{"min": 200, "max": 5000}],
+ },
+ "contact_filter": {
+ "seniorities": ["Executive", "VP"],
+ },
+ "limit": 5, # number of companies
+ "limit_per_company": 3, # contacts per company
+ },
+ )
+ companies = (
+ grouped.data.get("data", {})
+ .get("groupedAdvancedSearch", {})
+ .get("companies", [])
+ )
+ ```
+
+
+
+
+
+
+Report incorrect contact data
+
+Help improve LeadIQ data quality by reporting bounced emails or wrong phone numbers.
+
+
+
+ ```typescript
+ await actions.executeTool({
+ toolName: 'leadiq_submit_person_feedback',
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ toolInput: {
+ value: 'jane.doe@acme.com',
+ status: 'Invalid',
+ type: 'WorkEmail',
+ invalid_reason: 'EmailBounceCode550',
+ },
+ });
+ ```
+
+
+ ```python
+ actions.execute_tool(
+ tool_name="leadiq_submit_person_feedback",
+ connection_name="leadiq",
+ identifier="user_123",
+ tool_input={
+ "value": "jane.doe@acme.com",
+ "status": "Invalid",
+ "type": "WorkEmail",
+ "invalid_reason": "EmailBounceCode550",
+ },
+ )
+ ```
+
+
+
+
+
+
diff --git a/src/components/templates/agent-connectors/_setup-leadiq.mdx b/src/components/templates/agent-connectors/_setup-leadiq.mdx
new file mode 100644
index 000000000..a98d97fe5
--- /dev/null
+++ b/src/components/templates/agent-connectors/_setup-leadiq.mdx
@@ -0,0 +1,86 @@
+import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components'
+
+Register your LeadIQ API key with Scalekit so it stores it securely and injects it into every request. LeadIQ uses API key authentication — there is no redirect URI or OAuth flow.
+
+
+1. ### Get your LeadIQ API key
+
+ - Sign in to [LeadIQ](https://app.leadiq.com) and go to **Settings** → **API Keys**.
+ - Copy the **Secret API key** value, or click **Generate new API key** to create one dedicated to this integration.
+
+ 
+
+
+
+2. ### Create a connection in Scalekit
+
+ - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** → **Connections** → **Create Connection**. Find **LeadIQ** and click **Create**.
+ - Note the **Connection name** — you will use this as `connection_name` in your code (e.g., `leadiq`).
+ - Click **Save**.
+
+3. ### Add a connected account
+
+ Connected accounts link a specific user identifier in your system to their LeadIQ API key. Add them via the dashboard for testing, or via the Scalekit API in production.
+
+ **Via dashboard (for testing)**
+
+ - Open the connection you created and click the **Connected Accounts** tab → **Add account**.
+ - Fill in:
+ - **Your User's ID** — a unique identifier for this user in your system (e.g., `user_123`)
+ - **API Key** — the LeadIQ API key from step 1
+ - Click **Create Account**.
+
+ **Via API (for production)**
+
+
+
+ ```typescript
+ import { Scalekit } from '@scalekit-sdk/node';
+
+ const scalekit = new Scalekit(
+ process.env.SCALEKIT_ENV_URL,
+ process.env.SCALEKIT_CLIENT_ID,
+ process.env.SCALEKIT_CLIENT_SECRET,
+ );
+
+ // Never hard-code credentials — read from secure storage or user input
+ const leadiqApiKey = getUserLeadIQApiKey(); // retrieve from your secure store
+
+ await scalekit.actions.upsertConnectedAccount({
+ connectionName: 'leadiq',
+ identifier: 'user_123',
+ credentials: {
+ username: leadiqApiKey,
+ },
+ });
+ ```
+
+
+ ```python
+ import os
+ from scalekit import ScalekitClient
+
+ scalekit_client = ScalekitClient(
+ env_url=os.environ["SCALEKIT_ENV_URL"],
+ client_id=os.environ["SCALEKIT_CLIENT_ID"],
+ client_secret=os.environ["SCALEKIT_CLIENT_SECRET"],
+ )
+
+ # Never hard-code credentials — read from secure storage or user input
+ leadiq_api_key = get_user_leadiq_api_key() # retrieve from your secure store
+
+ scalekit_client.actions.upsert_connected_account(
+ connection_name="leadiq",
+ identifier="user_123",
+ credentials={"username": leadiq_api_key},
+ )
+ ```
+
+
+
+
+
diff --git a/src/components/templates/agent-connectors/index.ts b/src/components/templates/agent-connectors/index.ts
index 5ec9ebb05..1c72e0ebd 100644
--- a/src/components/templates/agent-connectors/index.ts
+++ b/src/components/templates/agent-connectors/index.ts
@@ -40,6 +40,7 @@ export { default as SetupHubspotSection } from './_setup-hubspot.mdx'
export { default as SetupIntercomSection } from './_setup-intercom.mdx'
export { default as SetupJiminnySection } from './_setup-jiminny.mdx'
export { default as SetupJiraSection } from './_setup-jira.mdx'
+export { default as SetupLeadiqSection } from './_setup-leadiq.mdx'
export { default as SetupLinearSection } from './_setup-linear.mdx'
export { default as SetupMailchimpSection } from './_setup-mailchimp.mdx'
export { default as SetupMicrosoftExcelSection } from './_setup-microsoft-excel.mdx'
@@ -117,6 +118,7 @@ export { default as SectionAfterSetupHeyreachCommonWorkflows } from './_section-
export { default as SectionAfterSetupHubspotCommonWorkflows } from './_section-after-setup-hubspot-common-workflows.mdx'
export { default as SectionAfterSetupIntercomCommonWorkflows } from './_section-after-setup-intercom-common-workflows.mdx'
export { default as SectionAfterSetupJiraCommonWorkflows } from './_section-after-setup-jira-common-workflows.mdx'
+export { default as SectionAfterSetupLeadiqCommonWorkflows } from './_section-after-setup-leadiq-common-workflows.mdx'
export { default as SectionAfterSetupLinearCommonWorkflows } from './_section-after-setup-linear-common-workflows.mdx'
export { default as SectionAfterSetupMailchimpCommonWorkflows } from './_section-after-setup-mailchimp-common-workflows.mdx'
export { default as SectionAfterSetupMicrosoftexcelCommonWorkflows } from './_section-after-setup-microsoftexcel-common-workflows.mdx'
diff --git a/src/content/docs/agentkit/connectors/leadiq.mdx b/src/content/docs/agentkit/connectors/leadiq.mdx
new file mode 100644
index 000000000..004cfd721
--- /dev/null
+++ b/src/content/docs/agentkit/connectors/leadiq.mdx
@@ -0,0 +1,90 @@
+---
+title: 'LeadIQ connector'
+tableOfContents: true
+description: 'Connect to LeadIQ to enrich B2B contacts and companies with verified emails, direct dials, and mobile numbers.'
+sidebar:
+ label: 'LeadIQ'
+overviewTitle: 'Quickstart'
+tags: [crm, sales, analytics, prospecting, enrichment]
+connectorIcon: https://cdn.scalekit.com/sk-connect/assets/provider-icons/leadiq.svg
+connectorAuthType: API Key
+connectorCategories: [crm, sales, analytics]
+head:
+ - tag: style
+ content: |
+ .sl-markdown-content h2 {
+ font-size: var(--sl-text-xl);
+ }
+ .sl-markdown-content h3 {
+ font-size: var(--sl-text-lg);
+ }
+---
+
+import ToolList from '@/components/ToolList.astro'
+import { tools } from '@/data/agent-connectors/leadiq'
+import { Steps, Tabs, TabItem } from '@astrojs/starlight/components'
+import { AgentKitCredentials } from '@components/templates'
+import { SetupLeadiqSection } from '@components/templates'
+import { QuickstartGenericApikeySection } from '@components/templates'
+import { SectionAfterSetupLeadiqCommonWorkflows } from '@components/templates'
+
+
+
+1. ### Install the SDK
+
+
+
+ ```bash frame="terminal"
+ npm install @scalekit-sdk/node
+ ```
+
+
+ ```bash frame="terminal"
+ pip install scalekit
+ ```
+
+
+
+ Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)
+
+2. ### Set your credentials
+
+
+
+3. ### Set up the connector
+
+ Register your LeadIQ API key with Scalekit so it stores it securely. You do this once per environment.
+
+
+ Dashboard setup steps
+
+
+
+
+
+4. ### Make your first call
+
+
+
+
+
+## What you can do
+
+Connect this agent connector to let your agent:
+
+- **Search contacts** — look up verified work emails, direct dials, and mobile numbers by LinkedIn URL, email, or name
+- **Preview before consuming credits** — check whether LeadIQ has a work email or phone for a person without spending credits
+- **Enrich companies** — fetch firmographics including industry, employee count, and location by domain or name
+- **Advanced prospecting** — filter contacts by title, seniority, industry, company size, and location; get results flat or grouped by company
+- **Manage prospect lists** — create lists, add contacts, and retrieve saved prospects (requires Prospector plan)
+- **Monitor quota** — check API credit usage, plan limits, and subscription status before making credit-consuming calls
+
+## Common workflows
+
+
+
+## Tool list
+
+Pass the exact tool name from the list below when you call `executeTool` (Node.js) or `execute_tool` (Python).
+
+
diff --git a/src/data/agent-connectors/capabilities.json b/src/data/agent-connectors/capabilities.json
index fa69f6845..8832c9128 100644
--- a/src/data/agent-connectors/capabilities.json
+++ b/src/data/agent-connectors/capabilities.json
@@ -69,6 +69,14 @@
"**Manage projects** \u2014 list projects, sprints, and boards",
"**Search with JQL** \u2014 execute Jira Query Language searches for advanced filtering"
],
+ "leadiq": [
+ "**Search contacts** \u2014 look up verified work emails, direct dials, and mobile numbers by LinkedIn URL, email, or name",
+ "**Preview before consuming credits** \u2014 check whether LeadIQ has a work email or phone for a person without spending credits",
+ "**Enrich companies** \u2014 fetch firmographics including industry, employee count, and location by domain or name",
+ "**Advanced prospecting** \u2014 filter contacts by title, seniority, industry, company size, and location; get results flat or grouped by company",
+ "**Manage prospect lists** \u2014 create lists, add contacts, and retrieve saved prospects (requires Prospector plan)",
+ "**Monitor quota** \u2014 check API credit usage, plan limits, and subscription status before making credit-consuming calls"
+ ],
"google_drive": [
"**Browse files** \u2014 list and search files and folders across the user's Drive",
"**Read file content** \u2014 download and extract text from documents, spreadsheets, and PDFs",
diff --git a/src/data/agent-connectors/leadiq.ts b/src/data/agent-connectors/leadiq.ts
new file mode 100644
index 000000000..02fa2721a
--- /dev/null
+++ b/src/data/agent-connectors/leadiq.ts
@@ -0,0 +1,145 @@
+import type { Tool } from '../../types/agent-connectors'
+
+export const tools: Tool[] = [
+ {
+ name: 'leadiq_add_prospect_to_list',
+ description: `Add a contact to an existing LeadIQ prospect list. Provide first name, last name, and any known contact details. Use Get Prospect Lists to find the list ID.`,
+ params: [
+ { name: 'list_id', type: 'string', required: true, description: `ID of the prospect list to add the contact to` },
+ { name: 'first_name', type: 'string', required: true, description: `First name of the prospect` },
+ { name: 'last_name', type: 'string', required: true, description: `Last name of the prospect` },
+ { name: 'work_email', type: 'string', required: false, description: `Work email address of the prospect` },
+ { name: 'work_phone', type: 'string', required: false, description: `Work phone number of the prospect` },
+ { name: 'mobile_phone', type: 'string', required: false, description: `Mobile phone number of the prospect` },
+ { name: 'title', type: 'string', required: false, description: `Job title of the prospect` },
+ { name: 'seniority', type: 'string', required: false, description: `Seniority level of the prospect` },
+ { name: 'company', type: 'string', required: false, description: `Current company name of the prospect` },
+ { name: 'company_domain', type: 'string', required: false, description: `Website domain of the prospect's company` },
+ { name: 'company_industry', type: 'string', required: false, description: `Industry of the prospect's company` },
+ { name: 'linkedin_url', type: 'string', required: false, description: `LinkedIn profile URL of the prospect` },
+ { name: 'notes', type: 'string', required: false, description: `Internal notes about this prospect` },
+ ],
+ },
+ {
+ name: 'leadiq_create_list',
+ description: `Create a new prospect list in LeadIQ to organize contacts for outreach campaigns. Returns the created list ID for use with Add Prospect to List.`,
+ params: [
+ { name: 'name', type: 'string', required: true, description: `Name of the prospect list` },
+ { name: 'description', type: 'string', required: false, description: `Optional description of the prospect list` },
+ ],
+ },
+ {
+ name: 'leadiq_flat_advanced_search',
+ description: `Search across LeadIQ's full contact database using advanced filters for title, seniority, company, industry, location, and more. Returns a flat list of matching contacts. Consumes credits per result.`,
+ params: [
+ { name: 'contact_filter', type: 'object', required: false, description: `Filter contacts by title, seniority, role, location, and more` },
+ { name: 'company_filter', type: 'object', required: false, description: `Filter by company attributes including name, domain, industry, size, and location` },
+ { name: 'contact_excluded_filter', type: 'object', required: false, description: `Exclude contacts matching these criteria` },
+ { name: 'company_excluded_filter', type: 'object', required: false, description: `Exclude contacts at companies matching these criteria` },
+ { name: 'skip', type: 'integer', required: false, description: `Number of results to skip for pagination (default 0)` },
+ { name: 'limit', type: 'integer', required: false, description: `Maximum number of contacts to return (default 10)` },
+ ],
+ },
+ {
+ name: 'leadiq_get_account',
+ description: `Retrieve the current LeadIQ account details including active plans, product subscriptions, billing status, and credit usage (available and used). Use this to check remaining search credits before making enrichment calls.`,
+ params: [],
+ },
+ {
+ name: 'leadiq_get_list',
+ description: `Retrieve a specific prospect list by ID, including its contacts with name, title, company, email, and LinkedIn URL. Use Get Prospect Lists first to find the list ID.`,
+ params: [
+ { name: 'id', type: 'string', required: true, description: `ID of the prospect list to retrieve` },
+ { name: 'prospects_limit', type: 'integer', required: false, description: `Maximum number of prospects to return from the list (default 25)` },
+ { name: 'prospects_cursor', type: 'string', required: false, description: `Pagination cursor from a previous response to get the next batch of prospects` },
+ ],
+ },
+ {
+ name: 'leadiq_get_lists',
+ description: `Retrieve all prospect lists in the LeadIQ account. Returns list metadata including name, status, and timestamps. Use the returned list IDs with Get Prospect List to fetch contacts.`,
+ params: [
+ { name: 'limit', type: 'integer', required: false, description: `Maximum number of lists to return per page` },
+ { name: 'cursor', type: 'string', required: false, description: `Pagination cursor from a previous response's nextCursor field` },
+ ],
+ },
+ {
+ name: 'leadiq_get_prospect',
+ description: `Retrieve a single prospect record by ID, including full contact details: emails, phones, LinkedIn, title, company, and location.`,
+ params: [
+ { name: 'id', type: 'string', required: true, description: `ID of the prospect to retrieve` },
+ ],
+ },
+ {
+ name: 'leadiq_get_usage',
+ description: `Retrieve API credit usage for the current billing period — plan credit counts, usage caps, trial usage, and subscription status. Use this to monitor quota before making credit-consuming calls.`,
+ params: [],
+ },
+ {
+ name: 'leadiq_grouped_advanced_search',
+ description: `Search LeadIQ's contact database with advanced filters and get results grouped by company. Each result contains a company record with its top matching contacts. Useful for account-based prospecting. Consumes credits per contact returned.`,
+ params: [
+ { name: 'contact_filter', type: 'object', required: false, description: `Filter contacts by title, seniority, role, location, and more` },
+ { name: 'company_filter', type: 'object', required: false, description: `Filter by company name, domain, industry, size, location, and more` },
+ { name: 'contact_excluded_filter', type: 'object', required: false, description: `Exclude contacts matching these criteria` },
+ { name: 'company_excluded_filter', type: 'object', required: false, description: `Exclude companies matching these criteria` },
+ { name: 'skip', type: 'integer', required: false, description: `Number of companies to skip for pagination (default 0)` },
+ { name: 'limit', type: 'integer', required: false, description: `Maximum number of companies to return (default 10)` },
+ { name: 'limit_per_company', type: 'integer', required: false, description: `Maximum number of contacts to return per company (default 5)` },
+ ],
+ },
+ {
+ name: 'leadiq_search_company',
+ description: `Search for a company by name, domain, or LinkedIn URL. Returns firmographic data including employee count, industry, headquarters location, and funding information.`,
+ params: [
+ { name: 'name', type: 'string', required: false, description: `Company name to search for` },
+ { name: 'domain', type: 'string', required: false, description: `Company website domain` },
+ { name: 'linkedin_url', type: 'string', required: false, description: `LinkedIn company page URL` },
+ { name: 'linkedin_id', type: 'string', required: false, description: `LinkedIn company numeric ID` },
+ { name: 'strict', type: 'boolean', required: false, description: `Enable strict matching — only return exact name or domain matches` },
+ ],
+ },
+ {
+ name: 'leadiq_search_people',
+ description: `Search for a person by LinkedIn URL, email, or name + company. At least one of: linkedin_url, email, or first_name+last_name must be provided. Returns verified work emails, direct dials, and current job details. Consumes LeadIQ credits per result.`,
+ params: [
+ { name: 'first_name', type: 'string', required: false, description: `First name of the person to search for` },
+ { name: 'last_name', type: 'string', required: false, description: `Last name of the person to search for` },
+ { name: 'full_name', type: 'string', required: false, description: `Full name of the person (alternative to first_name + last_name)` },
+ { name: 'email', type: 'string', required: false, description: `Known email address of the person` },
+ { name: 'linkedin_url', type: 'string', required: false, description: `LinkedIn profile URL of the person` },
+ { name: 'company_name', type: 'string', required: false, description: `Current company name of the person` },
+ { name: 'company_domain', type: 'string', required: false, description: `Domain of the person's current company` },
+ { name: 'contains_work_contact_info', type: 'boolean', required: false, description: `Only return results that have at least one work email or work phone` },
+ { name: 'skip', type: 'integer', required: false, description: `Number of results to skip for pagination (default 0)` },
+ { name: 'limit', type: 'integer', required: false, description: `Maximum number of results to return (default 10, max 25)` },
+ ],
+ },
+ {
+ name: 'leadiq_search_people_preview',
+ description: `Check whether LeadIQ has a work email or phone number for a person without consuming credits. Use this before calling Search People to avoid wasting credits on contacts with no data.`,
+ params: [
+ { name: 'linkedin_url', type: 'string', required: false, description: `LinkedIn profile URL of the person` },
+ { name: 'email', type: 'string', required: false, description: `Known email address of the person` },
+ { name: 'full_name', type: 'string', required: false, description: `Full name of the person` },
+ { name: 'first_name', type: 'string', required: false, description: `First name of the person` },
+ { name: 'last_name', type: 'string', required: false, description: `Last name of the person` },
+ { name: 'company_name', type: 'string', required: false, description: `Current company name of the person` },
+ { name: 'company_domain', type: 'string', required: false, description: `Domain of the person's current company` },
+ ],
+ },
+ {
+ name: 'leadiq_submit_person_feedback',
+ description: `Report incorrect or outdated contact data back to LeadIQ to improve data quality. Mark an email or phone as correct or invalid, and optionally provide a correction or bounce reason.`,
+ params: [
+ { name: 'value', type: 'string', required: true, description: `The contact info value being reported (email address or phone number)` },
+ { name: 'status', type: 'string', required: false, description: `Whether the contact info is correct or invalid` },
+ { name: 'type', type: 'string', required: false, description: `Type of contact information being reported` },
+ { name: 'person_id', type: 'string', required: false, description: `LeadIQ person ID associated with the contact info` },
+ { name: 'linkedin_url', type: 'string', required: false, description: `LinkedIn URL of the person the feedback is about` },
+ { name: 'company_name', type: 'string', required: false, description: `Company name for additional context` },
+ { name: 'company_domain', type: 'string', required: false, description: `Company domain for additional context` },
+ { name: 'title', type: 'string', required: false, description: `Job title of the person at the time the contact info was used` },
+ { name: 'invalid_reason', type: 'string', required: false, description: `Specific bounce or invalidity reason code (for invalid emails)` },
+ ],
+ },
+]
diff --git a/src/src/assets/docs/agent-connectors/leadiq/api-keys.png b/src/src/assets/docs/agent-connectors/leadiq/api-keys.png
new file mode 100644
index 000000000..587bb7fbb
Binary files /dev/null and b/src/src/assets/docs/agent-connectors/leadiq/api-keys.png differ