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

# Pipedrive: Duplicate Product

> Create a copy of a Pipedrive product with its variations, prices and custom fields. Includes inputs, outputs, SDK V2 examples, and Deepline cost.

Create a copy of a Pipedrive product with its variations, prices and custom fields.

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

## 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(
  'pipedrive_duplicate_product',
  {
    "id": 123
  },
);

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

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute pipedrive_duplicate_product --input '{
  "id": 123
}' --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": {
    "success": true,
    "data": {
      "id": 123,
      "name": "Example",
      "code": "example"
    }
  }
}
```

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

## Input reference

Creates a duplicate of an existing product including all variations, prices, and custom fields.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.id` | `integer` | Yes | — | The ID of the product |

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

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Creates a duplicate of an existing product including all variations, prices, and custom fields.",
    "properties": {
      "id": {
        "type": "integer",
        "description": "The ID of the product"
      }
    },
    "required": [
      "id"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Provider response payload. |
| `result.data.success` | `boolean` | No | — | If the response is successful or not |
| `result.data.data` | `object` | No | — | — |
| `result.data.data.id` | `integer` | No | — | The ID of the product |
| `result.data.data.name` | `string` | No | — | The name of the product |
| `result.data.data.code` | `string` | No | — | The product code |
| `result.data.data.unit` | `string` | No | — | The unit in which this product is sold |
| `result.data.data.tax` | `number` | No | `0` | The tax percentage |
| `result.data.data.is_deleted` | `boolean` | No | `false` | Whether this product will be marked as deleted or not |
| `result.data.data.is_linkable` | `boolean` | No | `true` | Whether this product can be added to a deal or not |
| `result.data.data.visible_to` | `1 \| 3 \| 5 \| 7` | No | — | Allowed: `1`, `3`, `5`, `7`. |
| `result.data.data.owner_id` | `integer` | No | — | The ID of the Pipedrive user who owns the product |
| `result.data.data.add_time` | `string` | No | — | The date and time when the product was added |
| `result.data.data.update_time` | `string` | No | — | The date and time when the product was last updated |
| `result.data.data.description` | `string` | No | — | The description of the product |
| `result.data.data.category` | `string \| null` | No | — | The category of the product |
| `result.data.data.custom_fields` | `record` | No | — | An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to `null`. For multi-option fields (field type `set`), use `null` to clear the selection — sending an empty array `[]` is not supported and will result in a validation error. |
| `result.data.data.billing_frequency` | `"one-time" \| "annually" \| "semi-annually" \| "quarterly" \| "monthly" \| "weekly"` | No | `"one-time"` | Only available in Growth and above plans How often a customer is billed for access to a service or product Allowed: `one-time`, `annually`, `semi-annually`, `quarterly`, `monthly`, `weekly`. |
| `result.data.data.billing_frequency_cycles` | `integer \| null` | No | `null` | Only available in Growth and above plans The number of times the billing frequency repeats for a product in a deal When `billing_frequency` is set to `one-time`, this field must be `null` When `billing_frequency` is set to `weekly`, this field cannot be `null` For all the other values of `billing_frequency`, `null` represents a product billed indefinitely Must be a positive integer less or equal to 208 |
| `result.data.data.prices` | `array` | No | — | The prices of the product in different currencies |
| `result.data.data.prices[].product_id` | `integer` | No | — | The ID of the product |
| `result.data.data.prices[].price` | `number` | No | — | The price of the product |
| `result.data.data.prices[].currency` | `string` | No | — | The currency of the price |
| `result.data.data.prices[].cost` | `number` | No | — | The cost of the product |
| `result.data.data.prices[].direct_cost` | `number \| null` | No | — | The direct cost of the product |
| `result.data.data.prices[].notes` | `string` | No | — | The notes about the price |
| `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": {
          "success": {
            "type": "boolean",
            "description": "If the response is successful or not"
          },
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The ID of the product"
              },
              "name": {
                "type": "string",
                "description": "The name of the product"
              },
              "code": {
                "type": "string",
                "description": "The product code"
              },
              "unit": {
                "type": "string",
                "description": "The unit in which this product is sold"
              },
              "tax": {
                "type": "number",
                "description": "The tax percentage",
                "default": 0
              },
              "is_deleted": {
                "type": "boolean",
                "description": "Whether this product will be marked as deleted or not",
                "default": false
              },
              "is_linkable": {
                "type": "boolean",
                "description": "Whether this product can be added to a deal or not",
                "default": true
              },
              "visible_to": {
                "type": "number",
                "enum": [
                  1,
                  3,
                  5,
                  7
                ]
              },
              "owner_id": {
                "type": "integer",
                "description": "The ID of the Pipedrive user who owns the product"
              },
              "add_time": {
                "type": "string",
                "description": "The date and time when the product was added"
              },
              "update_time": {
                "type": "string",
                "description": "The date and time when the product was last updated"
              },
              "description": {
                "type": "string",
                "description": "The description of the product"
              },
              "category": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The category of the product"
              },
              "custom_fields": {
                "type": "object",
                "description": "An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to `null`. For multi-option fields (field type `set`), use `null` to clear the selection — sending an empty array `[]` is not supported and will result in a validation error.",
                "additionalProperties": true
              },
              "billing_frequency": {
                "type": "string",
                "description": "Only available in Growth and above plans How often a customer is billed for access to a service or product",
                "default": "one-time",
                "enum": [
                  "one-time",
                  "annually",
                  "semi-annually",
                  "quarterly",
                  "monthly",
                  "weekly"
                ]
              },
              "billing_frequency_cycles": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Only available in Growth and above plans The number of times the billing frequency repeats for a product in a deal When `billing_frequency` is set to `one-time`, this field must be `null` When `billing_frequency` is set to `weekly`, this field cannot be `null` For all the other values of `billing_frequency`, `null` represents a product billed indefinitely Must be a positive integer less or equal to 208",
                "default": null
              },
              "prices": {
                "type": "array",
                "description": "The prices of the product in different currencies",
                "items": {
                  "type": "object",
                  "properties": {
                    "product_id": {
                      "type": "integer",
                      "description": "The ID of the product"
                    },
                    "price": {
                      "type": "number",
                      "description": "The price of the product"
                    },
                    "currency": {
                      "type": "string",
                      "description": "The currency of the price"
                    },
                    "cost": {
                      "type": "number",
                      "description": "The cost of the product"
                    },
                    "direct_cost": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "The direct cost of the product"
                    },
                    "notes": {
                      "type": "string",
                      "description": "The notes about the price"
                    }
                  },
                  "additionalProperties": false
                }
              }
            },
            "required": [],
            "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

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