> ## 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.

# EmailBison: Update Or Create Lead

> Update an EmailBison lead if it exists, or create it if it does not. Includes SDK V2 guidance, input constraints, response fields, and Deepline credit cost.

Update an EmailBison lead if it exists, or create it if it does not.

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

## 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(
  'emailbison_update_or_create_lead',
  {
    "lead_id": "lead_123",
    "first_name": "Jane",
    "email": "jane.doe@example.com"
  },
);

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

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute emailbison_update_or_create_lead --input '{
  "lead_id": "lead_123",
  "first_name": "Jane",
  "email": "jane.doe@example.com"
}' --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": "example"
}
```

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

## Input reference

Update the details of a specific lead if it exists, otherwise create a new record

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.lead_id` | `string` | Yes | — | Optional parameter. int\|string\|null optional The ID or email of the lead |
| `payload.existing_lead_behavior` | `"put" \| "patch"` | No | — | The behavior to apply if the lead exists. If "put", replace all the lead's fields, including custom variables, with the fields from this request. Fields not passed are cleared. If "patch", only update a field if it's passed. Fields and custom variables not passed are kept. Will default to "put" if not passed. Allowed: `put`, `patch`. |
| `payload.first_name` | `string` | Yes | — | The first name of the contact. |
| `payload.last_name` | `string` | No | — | optional The last name of the contact. |
| `payload.email` | `string` | Yes | — | The email address of the contact. Must be in a valid email format. |
| `payload.title` | `string` | No | — | optional The title of the contact. |
| `payload.company` | `string` | No | — | optional The company name of the contact. |
| `payload.notes` | `string` | No | — | optional Additional notes about the contact. |
| `payload.custom_variables` | `array` | No | — | optional Array of custom variable objects |

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

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Update the details of a specific lead if it exists, otherwise create a new record",
    "properties": {
      "lead_id": {
        "type": "string",
        "description": "Optional parameter. int|string|null optional The ID or email of the lead"
      },
      "existing_lead_behavior": {
        "type": "string",
        "description": "The behavior to apply if the lead exists. If \"put\", replace all the lead's fields, including custom variables, with the fields from this request. Fields not passed are cleared. If \"patch\", only update a field if it's passed. Fields and custom variables not passed are kept. Will default to \"put\" if not passed.",
        "enum": [
          "put",
          "patch"
        ]
      },
      "first_name": {
        "type": "string",
        "description": "The first name of the contact."
      },
      "last_name": {
        "type": [
          "string",
          "null"
        ],
        "description": "optional The last name of the contact."
      },
      "email": {
        "type": "string",
        "description": "The email address of the contact. Must be in a valid email format."
      },
      "title": {
        "type": [
          "string",
          "null"
        ],
        "description": "optional The title of the contact."
      },
      "company": {
        "type": [
          "string",
          "null"
        ],
        "description": "optional The company name of the contact."
      },
      "notes": {
        "type": "string",
        "description": "optional Additional notes about the contact."
      },
      "custom_variables": {
        "type": "array",
        "description": "optional Array of custom variable objects",
        "items": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "name": {
              "description": "name of the custom variable field"
            },
            "value": {
              "description": "value of the custom variable",
              "anyOf": [
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false
        }
      }
    },
    "required": [
      "lead_id",
      "first_name",
      "email"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `string` | Yes | — | Provider response payload. |
| `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": "string",
        "description": "Provider response payload."
      },
      "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

* [EmailBison provider guide](https://deepline.com/docs/providers/emailbison/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.