> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to La Growth Machine

The La Growth Machine connector lets your AI agent act in each user's La Growth Machine account. Each user connects their own La Growth Machine access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 46 tools.

**Authentication:** Bearer Token
**Categories:** Marketing, CRM & Sales, Communication
**Tools:** 46: 23 read, 22 write, 1 destructive
**Users sign in with:** Access token
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=LAGROWTHMACHINE)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the La Growth Machine connection

   In **AgentKit > Connections**, create a La Growth Machine connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'lagrowthmachine'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize La Growth Machine:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'lagrowthmachine_get_me',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "lagrowthmachine"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize La Growth Machine:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="lagrowthmachine_get_me",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their La Growth Machine credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'lagrowthmachine_get_audience',
  toolInput: {
    audience_id: '<audience_id>',
  },
  connector: 'lagrowthmachine',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="lagrowthmachine_get_audience",
    tool_input={
        "audience_id": "<audience_id>",
    },
    connection_name="lagrowthmachine",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `lagrowthmachine_get_audience`

Get Audience · Read-only

Get details of one audience, including its import progress.
Returns id, name, size, type, created and modified dates, and importStatus.
Use to follow an import started with import_audience_from_linkedin. Use list_audiences to browse all audiences.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `audience_id` (`string`, required): ID of the audience (24-character hex ObjectId). Get it from lagrowthmachine_list_audiences.

Example input: `{"audience_id":"<audience_id>"}`

### `lagrowthmachine_get_audience_leads`

Get Audience Leads · Read-only

List the leads in an audience with their full lead records, paginated with skip and limit.
Returns lead profile fields, emails, enrichment status, audiences and status, plus the total lead count.
Use to browse an audience. Use search_lead to find one lead across the workspace.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `audience_id` (`string`, required): ID of the audience (24-character hex ObjectId). Get it from lagrowthmachine_list_audiences.
- `limit` (`integer`, optional): Maximum number of items to return. Default: `25`.
- `skip` (`integer`, optional): Number of items to skip, for pagination. Default: `0`.

Example input: `{"audience_id":"<audience_id>"}`

### `lagrowthmachine_get_campaign`

Get Campaign · Read-only

Get the configuration and status of one campaign.
Returns name, status, objective, language, channels, audience name and size, identity, and sync and enrichment settings.
Use for campaign settings. Use get_campaign_stats for performance numbers.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.

Example input: `{"campaign_id":"<campaign_id>"}`

### `lagrowthmachine_get_campaign_lead_stats`

Get Campaign Lead Stats · Read-only

Get per-lead results of a campaign, such as emails sent, opened and replied, LinkedIn actions and status.
Returns a list of leads with their per-channel activity flags, plus count, hasMore and hasLess.
Use for lead-level reporting. Use get_campaign_stats for totals.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.
- `get_leads_after` (`string`, optional): Lead ID. Returns the leads that come after this one (next page).
- `get_leads_before` (`string`, optional): Lead ID. Returns leads that come before this one, starting from the first lead of the campaign (see the known issue in the description of `hasLess`).

Example input: `{"campaign_id":"<campaign_id>"}`

### `lagrowthmachine_get_campaign_messages`

Get Campaign Messages · Read-only

List the message templates of a campaign.
Returns each template id, type, channel, HTML content, subject, order and active flag.
Use to read messages or to find the templateId for edit_campaign_message. Use get_campaign_steps for the step structure.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.

Example input: `{"campaign_id":"<campaign_id>"}`

### `lagrowthmachine_get_campaign_stats`

Get Campaign Stats · Read-only

Get aggregated performance statistics of a campaign.
Returns audience size, started, completed, converted and skipped counts, reply, relation and channel breakdowns, status counts and per-template stats.
Use for campaign totals. Use get_campaign_lead_stats for per-lead results.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.

Example input: `{"campaign_id":"<campaign_id>"}`

### `lagrowthmachine_get_campaign_steps`

Get Campaign Steps · Read-only

List the sequence steps of a campaign.
Returns each step id, type, channel, position, whether it has a message, and its template id and name.
Use to find the stepId for add_campaign_step_message. Use get_campaign_messages for message content.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.

Example input: `{"campaign_id":"<campaign_id>"}`

### `lagrowthmachine_get_conversation_messages`

Get Conversation Messages · Read-only

Read the messages of an inbox conversation, paginated.
Returns each message id, channel, status, content, sender, direction, date and attachments, plus the total.
Use after search_conversations or get_lead_conversations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `conversation_id` (`string`, required): ID of an inbox conversation. Get it from lagrowthmachine_search_conversations or lagrowthmachine_get_lead_conversations.
- `page` (`integer`, optional): Accepted (integer, 0 or more) but currently has no effect: the 25 most recent messages are always returned. Default: `0`.

Example input: `{"conversation_id":"<conversation_id>"}`

### `lagrowthmachine_get_credits`

Get Credits · Read-only

Get the enrichment credit balance of the workspace.
Returns total and perishable credits, and whether the workspace has CRM and extension access.
Use before enrich_lead or enrich_linkedin_post, which spend credits.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `lagrowthmachine_get_enrich_result`

Get Enrich Result · Read-only

Read the result of an enrichment request started with enrich_lead.
Returns status, email, emailStatus, phone, linkedinProfile, provider and enrichedAt; results stay readable for 24 hours.
Use after enrich_lead in polling mode.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `enrich_request_id` (`string`, required): ID returned by lagrowthmachine_enrich_lead when the request was started in polling mode.

Example input: `{"enrich_request_id":"<enrich_request_id>"}`

### `lagrowthmachine_get_lead_conversations`

Get Lead Conversations · Read-only

List the inbox conversations of a lead, one per sending identity.
Returns conversation id, identity, status, last message time and preview, and whether the lead replied.
Use to find the conversationId for get_conversation_messages or the conversation actions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `lead_id` (`string`, required): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `identity_id` (`string`, optional): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.

Example input: `{"lead_id":"<lead_id>"}`

### `lagrowthmachine_get_lead_logs`

Get Lead Logs · Read-only

List the activity log of a lead (messages sent, replies, status changes), paginated.
Returns entries with type, status, channel, message, date, campaign, step and reply, plus the total.
Use to review what happened with a lead. Use get_lead_conversations for its inbox conversations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `lead_id` (`string`, required): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `identity_id` (`string`, optional): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `limit` (`integer`, optional): Maximum number of items to return. Default: `25`.
- `skip` (`integer`, optional): Number of items to skip, for pagination. Default: `0`.

Example input: `{"lead_id":"<lead_id>"}`

### `lagrowthmachine_get_me`

Get Authenticated Member · Read-only

Get the member behind the API key.
Returns the member id and email.
Use to check the key works or to learn which member actions are performed as.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `lagrowthmachine_list_audiences`

List Audiences · Read-only

List all audiences in the workspace.
Returns each audience id, name, type, size (lead count) and import state.
Use to find an audience id. Use get_audience for one audience import progress, get_audience_leads for its leads.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `lagrowthmachine_list_campaigns`

List Campaigns · Read-only

List the campaigns of the workspace, paginated, optionally filtered by status or name.
Returns each campaign id, name, status, channels, audience, identity, lead count and reply rate.
Use to find a campaign id. Use get_campaign for one campaign and list_public_campaigns for shareable templates.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, required): Number of campaigns to return (25 max).
- `search` (`string`, optional): Case-insensitive search on the campaign name.
- `skip` (`integer`, optional): Number of campaigns to skip (0 minimum). Default: `0`.
- `status` (`string`, optional): Comma-separated list of statuses to keep, among RUNNING, READY, PAUSED, CANCELED.

Example input: `{"limit":1}`

### `lagrowthmachine_list_identities`

List Identities · Read-only

List the connected sending identities (LinkedIn and email accounts) of the workspace.
Returns each identity id, name, LinkedIn connection state, company and job title.
Use to find an identityId for sending messages or importing from LinkedIn.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `lagrowthmachine_list_identity_preferences`

List Identity Preferences · Read-only

List the preferences saved for a sending identity, optionally for one category.
Returns each preference id, category, key, value, channel and dates, plus the total.
Use before save_identity_preference or delete_identity_preference.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `identity_id` (`string`, required): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `category` (`string`, optional): Only return the preferences of this category.

Example input: `{"identity_id":"<identity_id>"}`

### `lagrowthmachine_list_members`

List Members · Read-only

List the members of the workspace.
Returns each member id, name and label.
Use to find a memberId for send_linkedin_message.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `lagrowthmachine_list_public_campaigns`

List Public Campaigns · Read-only

List shareable campaign templates (public, recommended or featured).
Returns each template id, name, channels, tags and origin.
Use to browse templates. Use list_campaigns for the campaigns of this workspace.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `type` (`string`, optional): Which kind of shared campaign templates to list. Allowed values: public, recommended, featured. One of: `public`, `recommended`, `featured`. Default: `public`.

Example input: `{}`

### `lagrowthmachine_list_workspaces`

List Workspaces · Read-only

List the workspaces the API key can act in.
Returns multiWorkspace and each workspace id, name, company, slug, plan and identity count.
Use to inspect a multi-workspace account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `lagrowthmachine_search_conversations`

Search Conversations · Read-only

Search and filter inbox conversations by text, lead, identity, campaign, audience, status, channel and dates.
Returns conversation ids and metadata (lead, identity, last message time, status, type) with total, hasMore and nextToken; no message text.
Use to find conversations, then get_conversation_messages to read them. Pass nextToken as search_after for the next page.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `audience_ids` (`string`, optional): Only conversations with leads of these audiences. Comma-separated audience IDs.
- `call_completed_at_from` (`integer`, optional): Only conversations with a call completed at or after this Unix timestamp in milliseconds.
- `call_completed_at_to` (`integer`, optional): Only conversations with a call completed at or before this Unix timestamp in milliseconds.
- `campaign_ids` (`string`, optional): Campaign IDs, comma-separated. A campaign filters on its audience and its identity; ignored for each of these when `audienceIds` or `identityIds` is also set. Comma-separated values.
- `favourite` (`boolean`, optional): `true`: only the conversations starred by the member. `false` has no effect.
- `identity_ids` (`string`, optional): Only conversations of these sending identities. Comma-separated identity IDs.
- `last_message_at_from` (`integer`, optional): Only conversations whose last message is at or after this Unix timestamp in milliseconds.
- `last_message_at_to` (`integer`, optional): Only conversations whose last message is at or before this Unix timestamp in milliseconds.
- `last_message_status` (`string`, optional): Status of the last message, comma-separated. `RECEIVED` = the lead spoke last, `SENT` = you spoke last. Comma-separated values.
- `last_message_type` (`string`, optional): Filter by type of the last message. Comma-separated values from LINKEDIN, EMAIL, INFO_TEMPLATE_SNOOZE, LGM, COMMENT, MANUAL_TASK, AUTO_QUALIFY.
- `lead_ids` (`string`, optional): Only conversations with these leads. Comma-separated lead IDs.
- `lead_replied` (`boolean`, optional): When true, only conversations where the lead replied; when false, only those without a reply.
- `limit` (`integer`, optional): Maximum number of items to return. Default: `25`.
- `perseverance` (`string`, optional): Reply manager follow-up filter. `PERSEVERED` = conversations already followed up; `TO_PERSEVERE` = open or curious replies still to follow up. Allowed values: PERSEVERED, TO_PERSEVERE. One of: `PERSEVERED`, `TO_PERSEVERE`.
- `q` (`string`, optional): Full-text search on leads (name, company...). Only conversations of the matching leads are returned.
- `read` (`boolean`, optional): `false`: unread conversations only; `true`: read ones only.
- `search_after` (`string`, optional): Pagination token: pass the nextToken of the previous page, with the same filters and sort.
- `sort_direction` (`integer`, optional): Sort direction: -1 for newest first, 1 for oldest first. Allowed values: 1, -1. One of: `1`, `-1`. Default: `-1`.
- `sort_field` (`string`, optional): Field to sort by: lastMessageAt, callCompletedAt or snoozeUntil. Allowed values: lastMessageAt, callCompletedAt, snoozeUntil. One of: `lastMessageAt`, `callCompletedAt`, `snoozeUntil`. Default: `lastMessageAt`.
- `status` (`string`, optional): Filter by conversation status. Comma-separated values from OPEN, SNOOZED, ARCHIVED.
- `unsubscribed` (`boolean`, optional): When true, only conversations with unsubscribed leads.

Example input: `{}`

### `lagrowthmachine_search_crm`

Search CRM · Read-only

Look up a lead in the CRM connected to the workspace (HubSpot or Pipedrive).
Returns one result per connected CRM with found, tooManyResults and the matching contact.
Use to check whether a lead already exists in the CRM. Read-only despite using POST.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `company_name` (`string`, optional): Name of the lead's company.
- `email` (`string`, optional): Email address (professional or personal) of the lead.
- `firstname` (`string`, optional): First name of the lead. Matching by name needs the last name and a company name or company URL as well.
- `hubspot_id` (`string`, optional): HubSpot contact ID to look up.
- `lastname` (`string`, optional): Last name of the lead.
- `linkedin_long_public_id` (`string`, optional): Long form of the LinkedIn public identifier.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead.
- `perso_email` (`string`, optional): Personal email address of the lead.
- `pipedrive_id` (`string`, optional): Pipedrive person ID to look up.
- `pro_email` (`string`, optional): Professional (work) email address of the lead.

Example input: `{}`

### `lagrowthmachine_search_lead`

Search Lead · Read-only

Find one lead in the workspace by id, CRM id, LinkedIn identifiers, email, or first name + last name + company.
Returns the first matching lead with its involved campaigns and recent activity logs; responds 404 when nothing matches.
Use to look up a single known lead. Use get_audience_leads to list the leads of an audience.
At least one search criterion is required.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `company_name` (`string`, optional): Lead company name.
- `company_url` (`string`, optional): Website of the lead's company.
- `crm_id` (`string`, optional): External CRM ID of the lead (HubSpot or Pipedrive contact ID).
- `email` (`string`, optional): Email address (professional or personal) of the lead.
- `firstname` (`string`, optional): First name of the lead. Matching by name needs the last name and a company name or company URL as well.
- `lastname` (`string`, optional): Lead lastname.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_id` (`string`, optional): Lead LinkedIn numeric id.
- `linkedin_long_public_id` (`string`, optional): Long form of the LinkedIn public identifier.
- `linkedin_public_id` (`string`, optional): LinkedIn public identifier (the slug in the profile URL).
- `linkedin_url` (`string`, optional): Lead LinkedIn profile URL (with or without trailing slash).

Example input: `{}`

### `lagrowthmachine_add_campaign_step_message`

Add Campaign Step Message · Write

Add a message to a campaign step that has no message yet.
Returns the new message id, step id, channel, content and subject.
Use get_campaign_steps to find steps where hasMessage is false. Use edit_campaign_message to change an existing message.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.
- `new_html` (`string`, required): The message body, in the `newHtml` format.
- `step_id` (`string`, required): ID of the step, the `stepId` returned by `GET /campaigns/{campaignId}/steps`.
- `subject_new_html` (`string`, optional): Email steps only: the subject, as a single `<p>…</p>` containing text, `<var/>` or `<spin>`.
Ignored for LinkedIn and Twitter steps.

Example input: `{"campaign_id":"<campaign_id>","new_html":"<new_html>","step_id":"<step_id>"}`

### `lagrowthmachine_archive_conversation`

Archive Conversation · Write

Archive an inbox conversation.
Returns the conversation id, lead id, archived flag and timestamp.
Use to clear handled conversations. Reverse with unarchive_conversation.
Provide conversationId, or identify the lead with leadId, email or linkedinUrl and narrow with identityId or campaign.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, optional): When the lead is identified without `conversationId`, picks the conversation with this campaign's identity.
- `campaign_name` (`string`, optional): Name of the campaign, used with a lead identifier to pick the right conversation (the campaign's identity is used).
- `conversation_id` (`string`, optional): ID of an inbox conversation. Get it from lagrowthmachine_search_conversations or lagrowthmachine_get_lead_conversations.
- `email` (`string`, optional): Email of the lead, alternative to `conversationId`.
- `identity_id` (`string`, optional): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead (must contain `linkedin.com`), alternative to `conversationId`.

Example input: `{}`

### `lagrowthmachine_complete_call_manual_task`

Complete Call Manual Task · Write

Mark a manual call task of a campaign as completed with its outcome and an optional lead tag.
Returns the task id, call status, tag and task status.
Use when a rep has made the call a campaign step asked for.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `call_status` (`string`, required): Outcome of the call: DECISIVE (reached the decision point) or UNREACHABLE. Allowed values: DECISIVE, UNREACHABLE. One of: `DECISIVE`, `UNREACHABLE`.
- `manual_task_id` (`string`, required): ID of the manual task to complete (a manual call or message step of a campaign).
- `tag` (`string`, optional): Optional lead tag to apply when the task is completed. See the allowed values in the description. Allowed values: NOT_ACTIVATED, SKIPPED, ACTIVATED, ENRICHED, CONTACTED, COMPLETED_WITHOUT_REPLY, TO_QUALIFY, UNSUBSCRIBED, OUT_OF_OFFICE, WRONG_TIMING, INTERESTED, NOT_INTERESTED, CALL_BOOKED, NEGOTIATING, READY_TO_BUY, CONVERTED, WRONG_TARGET, ALREADY_EQUIPPED. One of: `NOT_ACTIVATED`, `SKIPPED`, `ACTIVATED`, `ENRICHED`, `CONTACTED`, `COMPLETED_WITHOUT_REPLY`, `TO_QUALIFY`, `UNSUBSCRIBED`, `OUT_OF_OFFICE`, `WRONG_TIMING`, `INTERESTED`, `NOT_INTERESTED`, `CALL_BOOKED`, `NEGOTIATING`, `READY_TO_BUY`, `CONVERTED`, `WRONG_TARGET`, `ALREADY_EQUIPPED`.

Example input: `{"call_status":"DECISIVE","manual_task_id":"<manual_task_id>"}`

### `lagrowthmachine_complete_message_manual_task`

Complete Message Manual Task · Write

Complete a manual message task of a campaign by sending the message for it.
Returns the task id and task status.
Use when a campaign step is set to manual messaging.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `manual_task_id` (`string`, required): ID of the manual task to complete (a manual call or message step of a campaign).
- `message` (`string`, required): Message to send. Plain text for LinkedIn, HTML for email.
- `attachments` (`array`, optional): Files attached to the email (email steps only).
- `bcc` (`string`, optional): Comma-separated BCC recipients (email steps only).
- `cc` (`string`, optional): Comma-separated CC recipients (email steps only).
- `subject` (`string`, optional): Email subject (email steps only).

Example input: `{"manual_task_id":"<manual_task_id>","message":"<message>"}`

### `lagrowthmachine_create_audience`

Create Audience · Write

Create an empty audience (type CLASSIC) with a unique name.
Returns the new audience id and name.
Use before adding leads with create_or_update_lead. Use import_audience_from_linkedin to fill an audience from a LinkedIn URL instead.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Audience name. Must be unique in the workspace.

Example input: `{"name":"<name>"}`

### `lagrowthmachine_create_or_update_lead`

Create Or Update Lead · Write

Create a lead, or update it when it already exists (matched by leadId or by identifiers such as email, LinkedIn URL or name + company).
Returns the lead id and a message saying whether the lead was created, merged, updated or ignored.
Use to add leads to an audience. Use update_lead_status to change a lead status inside a campaign.
At least one lead identifier is required: an email, LinkedIn URL, Twitter, CRM ID, or first name + last name + company name or URL.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `audience` (`string`, optional): Name or ID of the target audience. A new audience is created when none matches the name.
- `bio` (`string`, optional): Short bio or LinkedIn headline of the lead (max 5000 characters).
- `company_name` (`string`, optional): Name of the lead's company.
- `company_url` (`string`, optional): Website of the lead's company.
- `crm_id` (`string`, optional): ID of the matching contact in the CRM connected to the workspace (HubSpot or Pipedrive).
- `custom_attributes` (`object`, optional): Custom fields to set on the lead, as an object keyed customAttribute1 to customAttribute20 with string values (max 2500 characters each). Example: {"customAttribute1": "Series B"}.
- `exclude_contacted_leads` (`boolean`, optional): When true, a lead already contacted in one of your campaigns is ignored: nothing is created or updated. Default: `false`.
- `firstname` (`string`, optional): First name of the lead. Matching by name needs the last name and a company name or company URL as well.
- `gender` (`string`, optional): Gender of the lead. Allowed values: man, woman. One of: `man`, `woman`.
- `industry` (`string`, optional): Industry of the lead or their company.
- `job_title` (`string`, optional): Job title of the lead.
- `lastname` (`string`, optional): Last name of the lead.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead.
- `location` (`string`, optional): Location of the lead (city, region or country).
- `note` (`string`, optional): Free-text note shown on the lead profile (max 1500 characters). Replaces any existing note; omit it to keep the current one.
- `perso_email` (`string`, optional): Personal email address of the lead.
- `phone` (`string`, optional): Phone number of the lead.
- `pro_email` (`string`, optional): Professional (work) email address of the lead.
- `profile_picture` (`string`, optional): URL of the profile picture.
- `relations_count` (`integer`, optional): Number of LinkedIn relations the lead has.
- `twitter` (`string`, optional): Twitter/X handle or profile URL of the lead.

Example input: `{}`

### `lagrowthmachine_duplicate_campaign`

Duplicate Campaign · Write

Create a copy of a campaign.
Returns the new campaign id, name and status.
Use to reuse a sequence for a new audience, then change it with update_campaign.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.

Example input: `{"campaign_id":"<campaign_id>"}`

### `lagrowthmachine_edit_campaign_message`

Edit Campaign Message · Write

Replace the HTML content (and email subject) of an existing campaign message template.
Returns the template id, channel, content and subject.
Use get_campaign_messages to find the templateId. Use add_campaign_step_message for an empty step.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.
- `new_html` (`string`, required): The new message body, in the `newHtml` format described above.
- `template_id` (`string`, required): ID of the message to edit (24-character hex string), the `id` returned by `GET /campaigns/{campaignId}/messages`.
- `subject_new_html` (`string`, optional): Email steps only: the subject, as a single `<p>…</p>` containing text, `<var/>` or `<spin>` (no lists,
images, headings or signature). Omit it for LinkedIn and Twitter steps. An empty string is accepted.

Example input: `{"campaign_id":"<campaign_id>","new_html":"<new_html>","template_id":"<template_id>"}`

### `lagrowthmachine_edit_conversation_note`

Edit Conversation Note · Write

Write or append to the note (post-it) of an inbox conversation, up to 1500 characters.
Returns the conversation id, lead id, note, mode, truncated flag and note length.
Use to annotate a conversation.
Provide conversationId, or identify the lead with leadId, email or linkedinUrl and narrow with identityId or campaign.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `note` (`string`, required): Free-text note shown on the lead profile (max 1500 characters). Replaces any existing note; omit it to keep the current one.
- `campaign_id` (`string`, optional): When the lead is identified without `conversationId`, picks the conversation with this campaign's identity.
- `campaign_name` (`string`, optional): Name of the campaign, used with a lead identifier to pick the right conversation (the campaign's identity is used).
- `conversation_id` (`string`, optional): ID of an inbox conversation. Get it from lagrowthmachine_search_conversations or lagrowthmachine_get_lead_conversations.
- `email` (`string`, optional): Email of the lead, alternative to `conversationId`.
- `identity_id` (`string`, optional): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead (must contain `linkedin.com`), alternative to `conversationId`.
- `mode` (`string`, optional): How the note is written: replace (default) overwrites it, append adds to the existing note. Allowed values: replace, append. One of: `replace`, `append`. Default: `replace`.

Example input: `{"note":"<note>"}`

### `lagrowthmachine_enrich_lead`

Enrich Lead · Write

Start an enrichment request that finds a professional email, a phone number and/or LinkedIn profile fields for a lead. Spends credits (up to 5, 1 or 20 depending on enrichType).
Returns enrichRequestId and status, plus email, phone or linkedinProfile when ready (always with sync mode).
Use get_enrich_result to poll a pending request and get_credits to check the balance first.
Identify the lead with leadId, a LinkedIn URL, or first name + last name + company.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `company_name` (`string`, optional): Name of the lead's company.
- `company_url` (`string`, optional): Website of the lead's company.
- `enrich_type` (`string`, optional): What to enrich: EMAIL_ENRICH (pro email, up to 5 credits), LINKEDIN_ENRICH (profile fields, 1 credit), FULL_ENRICH (profile + email, up to 5 credits) or PHONE_ENRICH (phone, up to 20 credits, needs leadId). Allowed values: EMAIL_ENRICH, LINKEDIN_ENRICH, FULL_ENRICH, PHONE_ENRICH. One of: `EMAIL_ENRICH`, `LINKEDIN_ENRICH`, `FULL_ENRICH`, `PHONE_ENRICH`. Default: `EMAIL_ENRICH`.
- `firstname` (`string`, optional): First name of the lead. Matching by name needs the last name and a company name or company URL as well.
- `lastname` (`string`, optional): Last name of the lead.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): HTTPS LinkedIn profile URL.
- `mode` (`string`, optional): polling (default) returns immediately with an enrichRequestId to poll; sync waits up to 60 seconds for the result. Allowed values: polling, sync. One of: `polling`, `sync`. Default: `polling`.

Example input: `{}`

### `lagrowthmachine_enrich_linkedin_post`

Enrich LinkedIn Post · Write

Fetch the author and engagement details of a LinkedIn post. Spends 1 credit.
Returns post text, reaction and comment counts, share URL, posted date, author and images.
Use to analyze a post before importing its engagers. Check get_credits for the balance.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `post_url` (`string`, required): HTTPS URL of the LinkedIn post (must contain `linkedin.com`). Query parameters such as `utm_source` are tolerated.

Example input: `{"post_url":"<post_url>"}`

### `lagrowthmachine_import_audience_from_linkedin`

Import Audience From LinkedIn · Write

Queue an import of leads into an audience from a LinkedIn search, Sales Navigator, post, followers or event URL.
Returns a status code confirming the import was queued; it runs asynchronously on the identity LinkedIn account.
Use get_audience to follow progress. Use create_audience for an empty audience.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `audience` (`string`, required): Name or ID of the target audience. A new audience is created when none matches the name.
- `identity_id` (`string`, required): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `linkedin_url` (`string`, required): HTTPS LinkedIn URL. Global "All results" search URLs are rejected; use a "People" search.
- `auto_import` (`boolean`, optional): Keep importing new matching leads into the audience over time. Only for Sales Navigator, post, followers and event URLs. Default: `false`.
- `exclude_contacted_leads` (`boolean`, optional): When true, a lead already contacted in one of your campaigns is ignored: nothing is created or updated. Default: `false`.
- `linkedin_post_category` (`string`, optional): For a LinkedIn post URL, which engagement to import: people who liked or commented. Allowed values: like, comment. One of: `like`, `comment`.

Example input: `{"audience":"<audience>","identity_id":"<identity_id>","linkedin_url":"<linkedin_url>"}`

### `lagrowthmachine_remove_lead_from_audiences`

Remove Lead From Audiences · Write

Remove a lead from one audience, or from all audiences.
Returns a status code only; a lead not present in the audience is silently ignored.
Use to take a lead out of an audience. leadId is not accepted here: identify the lead by email, LinkedIn URL, Twitter, CRM ID, or name + company.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `audience` (`string`, required): Name or ID of the target audience. A new audience is created when none matches the name.
- `company_name` (`string`, optional): Name of the lead's company.
- `company_url` (`string`, optional): Website of the lead's company.
- `crm_id` (`string`, optional): ID of the matching contact in the CRM connected to the workspace (HubSpot or Pipedrive).
- `firstname` (`string`, optional): First name of the lead. Matching by name needs the last name and a company name or company URL as well.
- `lastname` (`string`, optional): Last name of the lead.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead.
- `perso_email` (`string`, optional): Personal email address of the lead.
- `pro_email` (`string`, optional): Professional (work) email address of the lead.
- `twitter` (`string`, optional): Twitter/X handle or profile URL of the lead.

Example input: `{"audience":"<audience>"}`

### `lagrowthmachine_save_identity_preference`

Save Identity Preference · Write

Create or update a preference of a sending identity.
Returns a success flag.
Use to change identity-level settings such as signature. Use list_identity_preferences to see current values.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `category` (`string`, required): Preference category, for example `tone`, `language` or `style`.
- `identity_id` (`string`, required): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `key` (`string`, required): Preference key within the category.
- `value` (`string`, required): Preference value.
- `channel` (`string`, optional): Optional channel scope, for example `linkedin` or `email`. Omit it for a preference that applies to every channel.

Example input: `{"category":"<category>","identity_id":"<identity_id>","key":"<key>","value":"<value>"}`

### `lagrowthmachine_send_email_message`

Send Email Message · Write

Send an email reply to a lead from a connected email identity, inside an existing email thread.
Returns the updated lead record.
Use to answer an email conversation. Starting a brand-new thread is not supported. Use send_linkedin_message for LinkedIn.
Provide leadId or leadEmail, and either replyInLastThread true or a replyToMessageId.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `identity_id` (`string`, required): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `message_html` (`string`, required): HTML version of the email body.
- `message_text` (`string`, required): Plain-text version of the email body.
- `bcc` (`string`, optional): Comma-separated list of BCC recipients.
- `cc` (`string`, optional): Comma-separated list of CC recipients.
- `lead_email` (`string`, optional): Email address of an existing lead. Required if `leadId` is not provided.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `reply_in_last_thread` (`boolean`, optional): When true, replies in the most recent email thread of the conversation (subject becomes Re: <thread subject>).
- `reply_to_message_id` (`string`, optional): ID of a specific message to reply to. Get it from lagrowthmachine_get_conversation_messages.
- `subject` (`string`, optional): Email subject. Ignored when `replyInLastThread` finds a thread (the subject becomes `Re:` + the thread subject).

Example input: `{"identity_id":"<identity_id>","message_html":"<message_html>","message_text":"<message_text>"}`

### `lagrowthmachine_send_linkedin_message`

Send LinkedIn Message · Write

Send a LinkedIn text or voice message to a lead from a connected LinkedIn identity; the message is queued, not confirmed delivered.
Returns the updated lead record.
Use for one-off replies. A conversation between the lead and the identity must already exist. Use send_email_message for email.
Provide leadId or linkedinUrl, and either message or audioUrl. Use list_identities and list_members for identityId and memberId.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `identity_id` (`string`, required): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `member_id` (`string`, required): ID of the workspace member performing the action. Get it from lagrowthmachine_list_members.
- `attachments` (`array`, optional): Public URLs of files to attach to the message.
- `audio_url` (`string`, optional): Public URL of a hosted voice message (MP3). Required if `message` is not provided. When set, a voice message is sent.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of an existing lead. Required if `leadId` is not provided.
- `message` (`string`, optional): Text message to send. Required when audioUrl is not provided.

Example input: `{"identity_id":"<identity_id>","member_id":"<member_id>"}`

### `lagrowthmachine_snooze_conversation`

Snooze Conversation · Write

Hide an inbox conversation until a given date and time.
Returns the conversation id, lead id, snoozed flag and snoozeUntil.
Use to defer a conversation. An already snoozed conversation must be unsnoozed first with unsnooze_conversation.
Provide conversationId, or identify the lead with leadId, email or linkedinUrl and narrow with identityId or campaign.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `snooze_until` (`string`, required): ISO 8601 date, in the future, until which the conversation stays snoozed.
- `campaign_id` (`string`, optional): When the lead is identified without `conversationId`, picks the conversation with this campaign's identity.
- `campaign_name` (`string`, optional): Name of the campaign, used with a lead identifier to pick the right conversation (the campaign's identity is used).
- `conversation_id` (`string`, optional): ID of an inbox conversation. Get it from lagrowthmachine_search_conversations or lagrowthmachine_get_lead_conversations.
- `email` (`string`, optional): Email of the lead, alternative to `conversationId`.
- `identity_id` (`string`, optional): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead (must contain `linkedin.com`), alternative to `conversationId`.

Example input: `{"snooze_until":"<snooze_until>"}`

### `lagrowthmachine_unarchive_conversation`

Unarchive Conversation · Write

Restore an archived inbox conversation.
Returns the conversation id, lead id, archived flag and timestamp.
Use to reverse archive_conversation.
Provide conversationId, or identify the lead with leadId, email or linkedinUrl and narrow with identityId or campaign.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, optional): When the lead is identified without `conversationId`, picks the conversation with this campaign's identity.
- `campaign_name` (`string`, optional): Name of the campaign, used with a lead identifier to pick the right conversation (the campaign's identity is used).
- `conversation_id` (`string`, optional): ID of an inbox conversation. Get it from lagrowthmachine_search_conversations or lagrowthmachine_get_lead_conversations.
- `email` (`string`, optional): Email of the lead, alternative to `conversationId`.
- `identity_id` (`string`, optional): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead (must contain `linkedin.com`), alternative to `conversationId`.

Example input: `{}`

### `lagrowthmachine_unsnooze_conversation`

Unsnooze Conversation · Write

Bring a snoozed inbox conversation back to the active inbox.
Returns the conversation id, lead id, snoozed flag and timestamp.
Use to reverse snooze_conversation.
Provide conversationId, or identify the lead with leadId, email or linkedinUrl and narrow with identityId or campaign.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, optional): When the lead is identified without `conversationId`, picks the conversation with this campaign's identity.
- `campaign_name` (`string`, optional): Name of the campaign, used with a lead identifier to pick the right conversation (the campaign's identity is used).
- `conversation_id` (`string`, optional): ID of an inbox conversation. Get it from lagrowthmachine_search_conversations or lagrowthmachine_get_lead_conversations.
- `email` (`string`, optional): Email of the lead, alternative to `conversationId`.
- `identity_id` (`string`, optional): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead (must contain `linkedin.com`), alternative to `conversationId`.

Example input: `{}`

### `lagrowthmachine_update_campaign`

Update Campaign · Write

Change the settings of a campaign: name, audience, enrichment, CRM sync and reply handling.
Returns the updated campaign settings and status.
Use to edit configuration. Use update_campaign_status to pause or run it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.
- `audience_id` (`string`, optional): ID of the audience (24-character hex ObjectId). Get it from lagrowthmachine_list_audiences.
- `auto_reschedule_out_of_office` (`boolean`, optional): Whether leads who reply with an out-of-office message are rescheduled automatically.
- `enrich` (`boolean`, optional): Whether the campaign enriches leads automatically.
- `hubspot` (`boolean`, optional): Sync the campaign with HubSpot.
- `ignore_emoji_only_reply` (`boolean`, optional): A reply made only of emojis (e.g. 👍) does not stop the sequence.
- `name` (`string`, optional): New campaign name, unique in your workspace.
- `pipedrive` (`boolean`, optional): Sync the campaign with Pipedrive.
- `skip_already_contacted` (`boolean`, optional): Skip leads you have already contacted in another campaign.

Example input: `{"campaign_id":"<campaign_id>"}`

### `lagrowthmachine_update_campaign_status`

Update Campaign Status · Write

Pause or run a campaign.
Returns the campaign id, name and new status.
Use to launch, resume or pause outreach for every lead in the campaign. Use update_lead_status to act on a single lead.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `campaign_id` (`string`, required): ID of the campaign (24-character hex ObjectId). Get it from lagrowthmachine_list_campaigns.
- `status` (`string`, required): New campaign status: PAUSED to pause it, RUNNING to run it. One of: `PAUSED`, `RUNNING`.

Example input: `{"campaign_id":"<campaign_id>","status":"PAUSED"}`

### `lagrowthmachine_update_lead_status`

Update Lead Status · Write

Pause, resume, stop, convert or tag a lead inside one or more campaigns.
Returns one log entry per campaign with leadUpdated, leadStatus and reason.
Use to change what happens to a lead in a campaign. Use remove_lead_from_audiences to take a lead out of an audience.
At least one lead identifier is required: an email, LinkedIn URL, Twitter, CRM ID, or first name + last name + company name or URL.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `campaign` (`string`, required): Name or ID of a campaign, or "all" for every non-stopped campaign whose audience contains the lead.
- `status` (`string`, required): New status value. See the allowed values listed in the description. Allowed values: RESUME, PAUSED, STOPPED, CONVERTED, SUBSCRIBED, COMPLETED_NO_REPLY, REPLIED, CANNOT_CONTACT, NOT_ACTIVATED, SKIPPED, ACTIVATED, ENRICHED, CONTACTED, COMPLETED_WITHOUT_REPLY, TO_QUALIFY, UNSUBSCRIBED, OUT_OF_OFFICE, WRONG_TIMING, INTERESTED, NOT_INTERESTED, CALL_BOOKED, NEGOTIATING, READY_TO_BUY, WRONG_TARGET, ALREADY_EQUIPPED. One of: `RESUME`, `PAUSED`, `STOPPED`, `CONVERTED`, `SUBSCRIBED`, `COMPLETED_NO_REPLY`, `REPLIED`, `CANNOT_CONTACT`, `NOT_ACTIVATED`, `SKIPPED`, `ACTIVATED`, `ENRICHED`, `CONTACTED`, `COMPLETED_WITHOUT_REPLY`, `TO_QUALIFY`, `UNSUBSCRIBED`, `OUT_OF_OFFICE`, `WRONG_TIMING`, `INTERESTED`, `NOT_INTERESTED`, `CALL_BOOKED`, `NEGOTIATING`, `READY_TO_BUY`, `WRONG_TARGET`, `ALREADY_EQUIPPED`.
- `company_name` (`string`, optional): Name of the lead's company.
- `company_url` (`string`, optional): Website of the lead's company.
- `crm_id` (`string`, optional): ID of the matching contact in the CRM connected to the workspace (HubSpot or Pipedrive).
- `firstname` (`string`, optional): First name of the lead. Matching by name needs the last name and a company name or company URL as well.
- `from` (`string`, optional): Records who asked for the change: the lead or a member. Allowed values: lead, member. One of: `lead`, `member`.
- `lastname` (`string`, optional): Last name of the lead.
- `lead_id` (`string`, optional): ID of an existing lead (24-character hex ObjectId). Get it from lagrowthmachine_search_lead or lagrowthmachine_get_audience_leads.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the lead.
- `member_email` (`string`, optional): Email of the member on whose behalf a SUBSCRIBED change is made. Defaults to the workspace owner.
- `perso_email` (`string`, optional): Personal email address of the lead.
- `pro_email` (`string`, optional): Professional (work) email address of the lead.
- `twitter` (`string`, optional): Twitter/X handle or profile URL of the lead.

Example input: `{"campaign":"<campaign>","status":"RESUME"}`

### `lagrowthmachine_delete_identity_preference`

Delete Identity Preference · Destructive

Delete a saved preference of a sending identity.
Returns a success flag.
Use list_identity_preferences to find the preferenceId.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `identity_id` (`string`, required): ID of a connected sending identity (LinkedIn or email account). Get it from lagrowthmachine_list_identities.
- `preference_id` (`string`, required): ID of the identity preference. Get it from lagrowthmachine_list_identity_preferences.

Example input: `{"identity_id":"<identity_id>","preference_id":"<preference_id>"}`

## Related

Other Marketing connectors ([all 87](/agentkit/connectors/?category=marketing)):

- [HubSpot](/agentkit/connectors/hubspot/): Scalekit connector, OAuth, 457 tools
- [Mailchimp](/agentkit/connectors/mailchimp/): Scalekit connector, OAuth, 73 tools
- [Twitter / X](/agentkit/connectors/twitteroauth/): Scalekit connector, OAuth, 92 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
