> ## 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 Webhook Operations: Inputs, Cost & CLI Example

> Creating a Lemlist webhook for real-time event callbacks. Includes inputs, outputs, pricing notes, Deepline CLI examples, and GTM automation guidance.

## Run in Enrichment Spreadsheet

<Info>
  Use this function as a column step in `deepline enrich`.
</Info>

```bash theme={null}
deepline enrich --input leads.csv --output leads.enriched.csv --with 'result=lemlist_add_webhook:{"target_url":"{{target_url}}"}' --json
```

<Tip>
  Map payload values to spreadsheet columns with `{{column_name}}` placeholders.
</Tip>

## Input Schema

| Name                  | Type                                                                                                                                                                                                                                                                                                                                                                                                                    | Required | Default | Description                                    |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- | ---------------------------------------------- |
| `payload.target_url`  | `string`                                                                                                                                                                                                                                                                                                                                                                                                                | Yes      |         | HTTPS URL to receive POST callbacks            |
| `payload.type`        | `"emailsSent" \| "emailsOpened" \| "emailsClicked" \| "emailsReplied" \| "emailsBounced" \| "emailsUnsubscribed" \| "emailsFailed" \| "emailsInterested" \| "emailsNotInterested" \| "linkedinSent" \| "linkedinOpened" \| "linkedinReplied" \| "linkedinInterested" \| "linkedinNotInterested" \| "apiDone" \| "aircallCreated" \| "aircallCompleted" \| "aircallNotAnswered" \| "manualDone" \| "contactedByVisitor"` | No       |         | Event type to listen for (omit for all events) |
| `payload.campaign_id` | `string`                                                                                                                                                                                                                                                                                                                                                                                                                | No       |         | Scope webhook to specific campaign             |

### Allowed values

| Field          | Allowed values                                                                                                                                                                                                                                                                                                                                                                  |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.type` | `emailsSent`, `emailsOpened`, `emailsClicked`, `emailsReplied`, `emailsBounced`, `emailsUnsubscribed`, `emailsFailed`, `emailsInterested`, `emailsNotInterested`, `linkedinSent`, `linkedinOpened`, `linkedinReplied`, `linkedinInterested`, `linkedinNotInterested`, `apiDone`, `aircallCreated`, `aircallCompleted`, `aircallNotAnswered`, `manualDone`, `contactedByVisitor` |

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

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Create a Lemlist webhook.",
    "properties": {
      "target_url": {
        "type": "string",
        "description": "HTTPS URL to receive POST callbacks",
        "minLength": 1,
        "format": "uri"
      },
      "type": {
        "type": "string",
        "description": "Event type to listen for (omit for all events)",
        "enum": [
          "emailsSent",
          "emailsOpened",
          "emailsClicked",
          "emailsReplied",
          "emailsBounced",
          "emailsUnsubscribed",
          "emailsFailed",
          "emailsInterested",
          "emailsNotInterested",
          "linkedinSent",
          "linkedinOpened",
          "linkedinReplied",
          "linkedinInterested",
          "linkedinNotInterested",
          "apiDone",
          "aircallCreated",
          "aircallCompleted",
          "aircallNotAnswered",
          "manualDone",
          "contactedByVisitor"
        ]
      },
      "campaign_id": {
        "type": "string",
        "description": "Scope webhook to specific campaign"
      }
    },
    "required": [
      "target_url"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output Schema

| Name                | Type     | Required | Default | Description |
| ------------------- | -------- | -------- | ------- | ----------- |
| `result.id`         | `string` | Yes      |         |             |
| `result.target_url` | `string` | Yes      |         |             |
| `result.type`       | `string` | No       |         |             |

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

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "target_url": {
        "type": "string"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "target_url"
    ],
    "additionalProperties": true
  }
  ```
</details>

## Advanced: Direct CLI

<Info>
  Use direct execution for single payload debugging.
</Info>

```bash theme={null}
deepline tools execute lemlist_add_webhook --payload '{
  "target_url": "string"
}' --json
```

### CLI flags

| Flag                        | Description                                         |
| --------------------------- | --------------------------------------------------- |
| `--json`                    | Print machine-readable output.                      |
| `--wait`                    | Wait for terminal provider status when supported.   |
| `--debug`                   | Enable wait mode with additional status/log output. |
| `--wait-timeout SECONDS`    | Max seconds to wait in wait mode.                   |
| `--poll-interval SECONDS`   | Polling interval in seconds during wait mode.       |
| `--timeout SECONDS`         | Request timeout in seconds.                         |
| `--connect-timeout SECONDS` | Connection timeout in seconds.                      |

## Provider API Context

<details>
  <summary>Show provider reference (optional)</summary>

  ````md theme={null}
  > Creates a webhook that receives real-time POST callbacks for selected events.

  # Add Webhook

  export const SnippetObjectReference = ({objectName, objectPath = null}) => {
    const lowerCaseObjectName = objectName.toLowerCase();
    if (lowerCaseObjectName === 'lead' || lowerCaseObjectName === 'leads') {
      return &lt;Note>
          This endpoint uses the &lt;a href={`/api-reference/objects-definitions/${objectPath}`}>{objectName} object&lt;/a>. Make sure to also check the &lt;a href={`/api-reference/objects-definitions/${lowerCaseObjectName === 'lead' ? 'contact' : 'lead'}`}>{lowerCaseObjectName === 'lead' ? 'Contact' : 'Lead'} object&lt;/a> to understand the distinction between the two.
        &lt;/Note>;
    }
    return &lt;Note>
        This endpoint uses the &lt;a href={`/api-reference/objects-definitions/${objectPath}`}>{objectName} object&lt;/a>.
      &lt;/Note>;
  };

  &lt;SnippetObjectReference objectName="Webhook" objectPath="webhook" />

  ## What you can subscribe to

  * Activities by type (e.g., emailsSent, emailsOpened, emailsReplied, linkedinInterested). See the full list in the API reference for this endpoint’s request body.
  * Operational alerts (e.g., customDomainErrors, connectionIssue, sendLimitReached, lemwarmPaused, campaignComplete).

  Optionally, you can scope a webhook to a single campaign and/or only trigger it the first time an event happens.

  ## Examples

  &lt;CodeGroup>
    ```json all events theme={"theme":"dracula"}
    {
    	"targetUrl": "https://webhook.site/your-id"
    }
    ```

    ```json specific event and campaign theme={"theme":"dracula"}
    {
    	"targetUrl": "https://webhook.site/your-id",
    	"type": "linkedinInterested",
    	"campaignId": "cam_A1B2C3D4E5F6G7H8I9",
    	"isFirst": true
    }
    ```
  &lt;/CodeGroup>

  &lt;Note>
    Tip: You can include an optional `zapId` if you use Zapier to track the webhook mapping on your side.
  &lt;/Note>

  ## 97. Delete Webhook

  Source: https://developer.lemlist.com/api-reference/endpoints/webhooks/delete-webhook.md
  ````
</details>

## Cost

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