> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Lemlist: Post Watchlist

> Create a Lemlist Signal Agent that watches for a signal type, optionally feeding a campaign. Includes inputs, outputs, SDK V2 examples, and Deepline cost.

Create a Lemlist Signal Agent that watches for a signal type, optionally feeding a campaign.

> [!NOTE]
>
> Tool ID: `lemlist_post_watchlist`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'lemlist_post_watchlist',
  {
    "name": "Example",
    "type": "companyIsHiring"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute lemlist_post_watchlist --input '{
  "name": "Example",
  "type": "companyIsHiring"
}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "data": {
    "data": {
      "_id": "_123",
      "name": "Example",
      "type": "companyIsHiring"
    }
  }
}
```

Use `deepline describe lemlist_post_watchlist --json` for the latest machine-readable contract.

## Input reference

Create Signal Agent

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.name` | `string` | Yes | — | Display name |
| `payload.type` | `"companyIsHiring" \| "companyRaisedFunds" \| "recruitmentCampaign" \| "newHire" \| "companyEmployeeVisitedMyWebsite" \| "customSignals" \| "competitorConnections" \| "competitorReactions" \| "technologyChange" \| "linkedinPeopleProfile" \| "linkedinCompanyProfile" \| "mergersAcquisitions" \| "promotion" \| "linkedinKeywords" \| "republishedJobOffers" \| "buyingIntent" \| "newProductLaunch" \| "companyAward" \| "newPartnership" \| "newOffice" \| "closingOffice" \| "costCutting" \| "outagesAndSecurityBreaches" \| "lawsuitsAndLegalIssues" \| "githubStargazer"` | Yes | — | Signal type to monitor Allowed: `companyIsHiring`, `companyRaisedFunds`, `recruitmentCampaign`, `newHire`, `companyEmployeeVisitedMyWebsite`, `customSignals`, `competitorConnections`, `competitorReactions`, `technologyChange`, `linkedinPeopleProfile`, `linkedinCompanyProfile`, `mergersAcquisitions`, `promotion`, `linkedinKeywords`, `republishedJobOffers`, `buyingIntent`, `newProductLaunch`, `companyAward`, `newPartnership`, `newOffice`, `closingOffice`, `costCutting`, See the live schema for the complete constraint. |
| `payload.filters` | `array` | No | — | Filters to apply (validated against the signal type) |
| `payload.emoji` | `string` | No | — | Emoji shown next to the agent name (defaults to a random emoji) |
| `payload.segmentType` | `"all"` | No | — | Entity sourcing. Only `all` is supported via the API. Required together with signalProcessingType when activate is true. Allowed: `all`. |
| `payload.signalProcessingType` | `"manual" \| "create_opportunity" \| "push_to_campaign"` | No | — | How detected signals are processed Allowed: `manual`, `create_opportunity`, `push_to_campaign`. |
| `payload.signalOpportunityTemplate` | `object` | No | — | Task/opportunity template applied to each signal when signalProcessingType is create\_opportunity. |
| `payload.personaId` | `string` | No | — | Persona (pdp\_xxx) used to source contacts from the People Database. Only for a company Signal Agent with signalProcessingType = push\_to\_campaign whose signal type does not already ship its own contact (those company signals carry no contact, so the persona is the only way to know who to reach). Optional. rejected on any other configuration. |
| `payload.campaignId` | `string` | No | — | Campaign (cam\_xxx) to link as this Signal Agent's signal trigger, in the same call: every new signal pushes its contact into that campaign as a lead. Only with signalProcessingType = push\_to\_campaign. A campaign set up as manual in the lemlist app is refused (409). Requires the campaignSignalTrigger beta. Optional. on any refusal no agent is created. |
| `payload.activate` | `boolean` | No | — | Fully set up and activate the agent. Requires segmentType and signalProcessingType. |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Create Signal Agent",
    "properties": {
      "name": {
        "type": "string",
        "description": "Display name"
      },
      "type": {
        "type": "string",
        "description": "Signal type to monitor",
        "enum": [
          "companyIsHiring",
          "companyRaisedFunds",
          "recruitmentCampaign",
          "newHire",
          "companyEmployeeVisitedMyWebsite",
          "customSignals",
          "competitorConnections",
          "competitorReactions",
          "technologyChange",
          "linkedinPeopleProfile",
          "linkedinCompanyProfile",
          "mergersAcquisitions",
          "promotion",
          "linkedinKeywords",
          "republishedJobOffers",
          "buyingIntent",
          "newProductLaunch",
          "companyAward",
          "newPartnership",
          "newOffice",
          "closingOffice",
          "costCutting",
          "outagesAndSecurityBreaches",
          "lawsuitsAndLegalIssues",
          "githubStargazer"
        ]
      },
      "filters": {
        "type": "array",
        "description": "Filters to apply (validated against the signal type)",
        "items": {
          "type": "object",
          "description": "A filter narrowing which entities or events a Signal Agent tracks. `in` includes matching values, `out` excludes them.",
          "properties": {
            "filterId": {
              "type": "string",
              "description": "Filter identifier",
              "enum": [
                "title",
                "description",
                "location",
                "visitLocation",
                "website",
                "pagesTracked",
                "minVisitDuration",
                "minPageViewed",
                "internalTraffic",
                "linkedinUrls",
                "companyLinkedinUrls",
                "companyNames",
                "companyLocation",
                "companyIndustries",
                "companySizes",
                "maxIdentificationsPerDay",
                "excludedVisitorIps",
                "reactionTypes",
                "linkedinTopics",
                "bomboraTopics",
                "watcherWatchKey",
                "questions",
                "fundraisingMinAmount",
                "fundraisingMaxAmount",
                "fundraisingInvestmentTypes",
                "fundraisingInvestors",
                "technologies",
                "detectionMode",
                "maDealTypes",
                "maMinAmount",
                "persona",
                "customPersonaTitles",
                "externalSignalFieldMapping",
                "externalSignalCustomFieldMapping",
                "seniority",
                "crmListIds",
                "minJobCount",
                "timeframe",
                "githubRepoUrls"
              ]
            },
            "in": {
              "type": "array",
              "description": "Values to include",
              "items": {
                "type": "string"
              }
            },
            "out": {
              "type": "array",
              "description": "Values to exclude",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "filterId"
          ],
          "additionalProperties": false
        }
      },
      "emoji": {
        "type": "string",
        "description": "Emoji shown next to the agent name (defaults to a random emoji)"
      },
      "segmentType": {
        "type": "string",
        "description": "Entity sourcing. Only `all` is supported via the API. Required together with signalProcessingType when activate is true.",
        "enum": [
          "all"
        ]
      },
      "signalProcessingType": {
        "type": "string",
        "description": "How detected signals are processed",
        "enum": [
          "manual",
          "create_opportunity",
          "push_to_campaign"
        ]
      },
      "signalOpportunityTemplate": {
        "type": "object",
        "description": "Task/opportunity template applied to each signal when signalProcessingType is create_opportunity.",
        "properties": {
          "ownerType": {
            "type": "string",
            "description": "Who the created opportunity is assigned to",
            "enum": [
              "contact_owner",
              "specific_owner"
            ]
          },
          "ownerId": {
            "type": "string",
            "description": "Owner user id, when ownerType is specific_owner"
          },
          "type": {
            "type": "string",
            "description": "Opportunity channel",
            "enum": [
              "email",
              "phone",
              "linkedinSend",
              "whatsappMessage",
              "manual"
            ]
          },
          "priority": {
            "type": "integer",
            "description": "Opportunity priority",
            "enum": [
              0,
              1,
              2
            ]
          },
          "data": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "description": "Opportunity title"
              },
              "subject": {
                "type": "string",
                "description": "Email subject (email channel)"
              },
              "emailTemplateId": {
                "type": "string",
                "description": "Email template id"
              },
              "message": {
                "type": "string",
                "description": "Message body"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "personaId": {
        "type": "string",
        "description": "Persona (pdp_xxx) used to source contacts from the People Database. Only for a company Signal Agent with signalProcessingType = push_to_campaign whose signal type does not already ship its own contact (those company signals carry no contact, so the persona is the only way to know who to reach). Optional; rejected on any other configuration."
      },
      "campaignId": {
        "type": "string",
        "description": "Campaign (cam_xxx) to link as this Signal Agent's signal trigger, in the same call: every new signal pushes its contact into that campaign as a lead. Only with signalProcessingType = push_to_campaign. A campaign set up as manual in the lemlist app is refused (409). Requires the campaignSignalTrigger beta. Optional; on any refusal no agent is created."
      },
      "activate": {
        "type": "boolean",
        "description": "Fully set up and activate the agent. Requires segmentType and signalProcessingType."
      }
    },
    "required": [
      "name",
      "type"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Provider response payload. |
| `result.data.data` | `object` | No | — | A Signal Agent (watch list) configuration. |
| `result.data.data._id` | `string` | No | — | Unique Signal Agent identifier |
| `result.data.data.name` | `string` | No | — | Display name |
| `result.data.data.type` | `"companyIsHiring" \| "companyRaisedFunds" \| "recruitmentCampaign" \| "jobChange" \| "newHire" \| "companyEmployeeVisitedMyWebsite" \| "customSignals" \| "competitorConnections" \| "competitorReactions" \| "technologyChange" \| "linkedinPeopleProfile" \| "linkedinCompanyProfile" \| "mergersAcquisitions" \| "promotion" \| "linkedinKeywords" \| "republishedJobOffers" \| "externalSignalContact" \| "externalSignalCompany" \| "buyingIntent" \| "newProductLaunch" \| "companyAward" \| "newPartnership" \| "newOffice" \| "closingOffice" \| "costCutting" \| "outagesAndSecurityBreaches" \| "lawsuitsAndLegalIssues" \| "githubStargazer"` | No | — | Signal type monitored by this Signal Agent Allowed: `companyIsHiring`, `companyRaisedFunds`, `recruitmentCampaign`, `jobChange`, `newHire`, `companyEmployeeVisitedMyWebsite`, `customSignals`, `competitorConnections`, `competitorReactions`, `technologyChange`, `linkedinPeopleProfile`, `linkedinCompanyProfile`, `mergersAcquisitions`, `promotion`, `linkedinKeywords`, `republishedJobOffers`, `externalSignalContact`, `externalSignalCompany`, `buyingIntent`, `newProductLaunch`, `companyAward`, See the live schema for the complete constraint. |
| `result.data.data.status` | `"active" \| "inactive" \| "draft" \| "insufficient_credits" \| "empty_crm_lists" \| "error" \| "delete"` | No | — | Lifecycle status Allowed: `active`, `inactive`, `draft`, `insufficient_credits`, `empty_crm_lists`, `error`, `delete`. |
| `result.data.data.entity` | `"contact" \| "company"` | No | — | Entity kind the agent tracks Allowed: `contact`, `company`. |
| `result.data.data.segmentType` | `"all" \| "list" \| "csv"` | No | — | How the monitored entities are sourced Allowed: `all`, `list`, `csv`. |
| `result.data.data.signalProcessingType` | `"manual" \| "create_opportunity" \| "push_to_campaign"` | No | — | How detected signals are processed Allowed: `manual`, `create_opportunity`, `push_to_campaign`. |
| `result.data.data.signalOpportunityTemplate` | `object` | No | — | Task/opportunity template applied to each signal when signalProcessingType is create\_opportunity. |
| `result.data.data.signalOpportunityTemplate.ownerType` | `"contact_owner" \| "specific_owner"` | No | — | Who the created opportunity is assigned to Allowed: `contact_owner`, `specific_owner`. |
| `result.data.data.signalOpportunityTemplate.ownerId` | `string` | No | — | Owner user id, when ownerType is specific\_owner |
| `result.data.data.signalOpportunityTemplate.type` | `"email" \| "phone" \| "linkedinSend" \| "whatsappMessage" \| "manual"` | No | — | Opportunity channel Allowed: `email`, `phone`, `linkedinSend`, `whatsappMessage`, `manual`. |
| `result.data.data.signalOpportunityTemplate.priority` | `0 \| 1 \| 2` | No | — | Opportunity priority Allowed: `0`, `1`, `2`. |
| `result.data.data.signalOpportunityTemplate.data` | `object` | No | — | — |
| `result.data.data.signalOpportunityTemplate.data.title` | `string` | No | — | Opportunity title |
| `result.data.data.signalOpportunityTemplate.data.subject` | `string` | No | — | Email subject (email channel) |
| `result.data.data.signalOpportunityTemplate.data.emailTemplateId` | `string` | No | — | Email template id |
| `result.data.data.signalOpportunityTemplate.data.message` | `string` | No | — | Message body |
| `result.data.data.filters` | `array` | No | — | Filters narrowing which entities/events are tracked |
| `result.data.data.filters[].filterId` | `"title" \| "description" \| "location" \| "visitLocation" \| "website" \| "pagesTracked" \| "minVisitDuration" \| "minPageViewed" \| "internalTraffic" \| "linkedinUrls" \| "companyLinkedinUrls" \| "companyNames" \| "companyLocation" \| "companyIndustries" \| "companySizes" \| "maxIdentificationsPerDay" \| "excludedVisitorIps" \| "reactionTypes" \| "linkedinTopics" \| "bomboraTopics" \| "watcherWatchKey" \| "questions" \| "fundraisingMinAmount" \| "fundraisingMaxAmount" \| "fundraisingInvestmentTypes" \| "fundraisingInvestors" \| "technologies" \| "detectionMode" \| "maDealTypes" \| "maMinAmount" \| "persona" \| "customPersonaTitles" \| "externalSignalFieldMapping" \| "externalSignalCustomFieldMapping" \| "seniority" \| "crmListIds" \| "minJobCount" \| "timeframe" \| "githubRepoUrls"` | Yes | — | Filter identifier Allowed: `title`, `description`, `location`, `visitLocation`, `website`, `pagesTracked`, `minVisitDuration`, `minPageViewed`, `internalTraffic`, `linkedinUrls`, `companyLinkedinUrls`, `companyNames`, `companyLocation`, `companyIndustries`, `companySizes`, `maxIdentificationsPerDay`, `excludedVisitorIps`, `reactionTypes`, `linkedinTopics`, `bomboraTopics`, `watcherWatchKey`, `questions`, `fundraisingMinAmount`, `fundraisingMaxAmount`, `fundraisingInvestmentTypes`, See the live schema for the complete constraint. |
| `result.data.data.filters[].in` | `array` | No | — | Values to include |
| `result.data.data.filters[].out` | `array` | No | — | Values to exclude |
| `result.data.data.emoji` | `string` | No | — | Emoji shown next to the agent name |
| `result.meta` | `object` | No | — | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "properties": {
          "data": {
            "type": "object",
            "description": "A Signal Agent (watch list) configuration.",
            "properties": {
              "_id": {
                "type": "string",
                "description": "Unique Signal Agent identifier"
              },
              "name": {
                "type": "string",
                "description": "Display name"
              },
              "type": {
                "type": "string",
                "description": "Signal type monitored by this Signal Agent",
                "enum": [
                  "companyIsHiring",
                  "companyRaisedFunds",
                  "recruitmentCampaign",
                  "jobChange",
                  "newHire",
                  "companyEmployeeVisitedMyWebsite",
                  "customSignals",
                  "competitorConnections",
                  "competitorReactions",
                  "technologyChange",
                  "linkedinPeopleProfile",
                  "linkedinCompanyProfile",
                  "mergersAcquisitions",
                  "promotion",
                  "linkedinKeywords",
                  "republishedJobOffers",
                  "externalSignalContact",
                  "externalSignalCompany",
                  "buyingIntent",
                  "newProductLaunch",
                  "companyAward",
                  "newPartnership",
                  "newOffice",
                  "closingOffice",
                  "costCutting",
                  "outagesAndSecurityBreaches",
                  "lawsuitsAndLegalIssues",
                  "githubStargazer"
                ]
              },
              "status": {
                "type": "string",
                "description": "Lifecycle status",
                "enum": [
                  "active",
                  "inactive",
                  "draft",
                  "insufficient_credits",
                  "empty_crm_lists",
                  "error",
                  "delete"
                ]
              },
              "entity": {
                "type": "string",
                "description": "Entity kind the agent tracks",
                "enum": [
                  "contact",
                  "company"
                ]
              },
              "segmentType": {
                "type": "string",
                "description": "How the monitored entities are sourced",
                "enum": [
                  "all",
                  "list",
                  "csv"
                ]
              },
              "signalProcessingType": {
                "type": "string",
                "description": "How detected signals are processed",
                "enum": [
                  "manual",
                  "create_opportunity",
                  "push_to_campaign"
                ]
              },
              "signalOpportunityTemplate": {
                "type": "object",
                "description": "Task/opportunity template applied to each signal when signalProcessingType is create_opportunity.",
                "properties": {
                  "ownerType": {
                    "type": "string",
                    "description": "Who the created opportunity is assigned to",
                    "enum": [
                      "contact_owner",
                      "specific_owner"
                    ]
                  },
                  "ownerId": {
                    "type": "string",
                    "description": "Owner user id, when ownerType is specific_owner"
                  },
                  "type": {
                    "type": "string",
                    "description": "Opportunity channel",
                    "enum": [
                      "email",
                      "phone",
                      "linkedinSend",
                      "whatsappMessage",
                      "manual"
                    ]
                  },
                  "priority": {
                    "type": "integer",
                    "description": "Opportunity priority",
                    "enum": [
                      0,
                      1,
                      2
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string",
                        "description": "Opportunity title"
                      },
                      "subject": {
                        "type": "string",
                        "description": "Email subject (email channel)"
                      },
                      "emailTemplateId": {
                        "type": "string",
                        "description": "Email template id"
                      },
                      "message": {
                        "type": "string",
                        "description": "Message body"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              "filters": {
                "type": "array",
                "description": "Filters narrowing which entities/events are tracked",
                "items": {
                  "type": "object",
                  "description": "A filter narrowing which entities or events a Signal Agent tracks. `in` includes matching values, `out` excludes them.",
                  "properties": {
                    "filterId": {
                      "type": "string",
                      "description": "Filter identifier",
                      "enum": [
                        "title",
                        "description",
                        "location",
                        "visitLocation",
                        "website",
                        "pagesTracked",
                        "minVisitDuration",
                        "minPageViewed",
                        "internalTraffic",
                        "linkedinUrls",
                        "companyLinkedinUrls",
                        "companyNames",
                        "companyLocation",
                        "companyIndustries",
                        "companySizes",
                        "maxIdentificationsPerDay",
                        "excludedVisitorIps",
                        "reactionTypes",
                        "linkedinTopics",
                        "bomboraTopics",
                        "watcherWatchKey",
                        "questions",
                        "fundraisingMinAmount",
                        "fundraisingMaxAmount",
                        "fundraisingInvestmentTypes",
                        "fundraisingInvestors",
                        "technologies",
                        "detectionMode",
                        "maDealTypes",
                        "maMinAmount",
                        "persona",
                        "customPersonaTitles",
                        "externalSignalFieldMapping",
                        "externalSignalCustomFieldMapping",
                        "seniority",
                        "crmListIds",
                        "minJobCount",
                        "timeframe",
                        "githubRepoUrls"
                      ]
                    },
                    "in": {
                      "type": "array",
                      "description": "Values to include",
                      "items": {
                        "type": "string"
                      }
                    },
                    "out": {
                      "type": "array",
                      "description": "Values to exclude",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "filterId"
                  ],
                  "additionalProperties": false
                }
              },
              "emoji": {
                "type": "string",
                "description": "Emoji shown next to the agent name"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Lemlist provider guide](https://deepline.com/docs/providers/lemlist/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.