---
title: "Sales angle tools"
description: "Create, edit, reorder and generate sales angles and hooks."
url: "https://sellify.ai/docs/developers/mcp-tools/angles"
---

# Sales angle tools

> Create, edit, reorder and generate sales angles and hooks.

Create, edit, reorder and generate sales angles and hooks. This page lists 11 tools, 3 of them read-only.

- [`ecom_sales_angle_list`](#ecom_sales_angle_list): List sales angles for a product
- [`ecom_sales_angle_get`](#ecom_sales_angle_get): Get a sales angle
- [`ecom_sales_angle_get_generation_status`](#ecom_sales_angle_get_generation_status): Get sales-angle generation status
- [`ecom_sales_angle_create`](#ecom_sales_angle_create): Create a sales angle
- [`ecom_sales_angle_update`](#ecom_sales_angle_update): Update or rename a sales angle
- [`ecom_sales_angle_delete`](#ecom_sales_angle_delete): Delete a sales angle
- [`ecom_sales_angle_set_winner`](#ecom_sales_angle_set_winner): Set whether a sales angle is a product winner
- [`ecom_sales_angle_reorder`](#ecom_sales_angle_reorder): Reorder sales angles for a product
- [`ecom_sales_angle_generate_from_brief`](#ecom_sales_angle_generate_from_brief): Generate one sales angle from a brief
- [`ecom_sales_angle_generate_bulk`](#ecom_sales_angle_generate_bulk): Generate a batch of sales angles
- [`ecom_sales_angle_generate_more_hooks`](#ecom_sales_angle_generate_more_hooks): Generate more hooks for a sales angle

## `ecom_sales_angle_list`

**List sales angles for a product**

Lists the sales angles linked to one product in deterministic display order with optional text filtering and cursor pagination.

| Property       | Value                  |
| -------------- | ---------------------- |
| Access         | Read-only              |
| Scope          | Ads: read (`ads:read`) |
| Credits        | Free                   |
| Safe to repeat | Yes                    |

### Input

| Field             | Type           | Required | Description                                                                                                                                                                                                                      |
| ----------------- | -------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `productId`       | string         | Yes      |                                                                                                                                                                                                                                  |
| `query`           | string         | No       | Length up to 120.                                                                                                                                                                                                                |
| `limit`           | integer        | No       | Between 1 and 100. Defaults to `25`.                                                                                                                                                                                             |
| `cursor`          | string or null | No       |                                                                                                                                                                                                                                  |
| `response_format` | enum           | No       | "concise" (the default) shortens long text and leaves out nested details in each result. Pass "detailed" only when you need the full text or nested details of a result. One of: `concise`, `detailed`. Defaults to `"concise"`. |

### Output

| Field        | Type            | Description      |
| ------------ | --------------- | ---------------- |
| `angles`     | array of object | Items up to 100. |
| `nextCursor` | string or null  |                  |
| `hasMore`    | boolean         |                  |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_list",
    "arguments": {
      "productId": "example"
    }
  }
}
```

## `ecom_sales_angle_get`

**Get a sales angle**

Gets one workspace sales angle with readable strategy fields.

| Property       | Value                  |
| -------------- | ---------------------- |
| Access         | Read-only              |
| Scope          | Ads: read (`ads:read`) |
| Credits        | Free                   |
| Safe to repeat | Yes                    |

### Input

| Field     | Type   | Required | Description |
| --------- | ------ | -------- | ----------- |
| `angleId` | string | Yes      |             |

### Output

| Field              | Type            | Description                                                                          |
| ------------------ | --------------- | ------------------------------------------------------------------------------------ |
| `id`               | string          |                                                                                      |
| `name`             | string          | Length 1 to 200.                                                                     |
| `hook`             | string          | Length up to 500.                                                                    |
| `description`      | string          | Length up to 5000.                                                                   |
| `source`           | enum            | One of: `ai_bulk`, `ai_brief`, `manual`, `winning_ad_clone`.                         |
| `status`           | enum            | One of: `draft`, `testing`, `active`, `winning`.                                     |
| `productIds`       | array of string | Items up to 50.                                                                      |
| `winnerProductIds` | array of string | Items up to 50.                                                                      |
| `pinned`           | boolean         |                                                                                      |
| `updatedAt`        | string          |                                                                                      |
| `shortExplanation` | string          | Length up to 1000.                                                                   |
| `rank`             | integer         | Between 1 and 10.                                                                    |
| `rankRationale`    | string          | Length up to 2000.                                                                   |
| `targetBuyer`      | string          | Length up to 2000.                                                                   |
| `notForBuyer`      | string          | Length up to 2000.                                                                   |
| `awarenessLevel`   | enum            | One of: `unaware`, `problem_aware`, `solution_aware`, `product_aware`, `most_aware`. |
| `dominantEmotion`  | string          | Length up to 1000.                                                                   |
| `hookVariants`     | array of string | Items up to 50.                                                                      |
| `createdAt`        | string          |                                                                                      |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_get",
    "arguments": {
      "angleId": "example"
    }
  }
}
```

## `ecom_sales_angle_get_generation_status`

**Get sales-angle generation status**

Returns the persisted state, progress step, and created angle summaries for one asynchronous angle generation. This read never mutates submission state.

| Property       | Value                  |
| -------------- | ---------------------- |
| Access         | Read-only              |
| Scope          | Ads: read (`ads:read`) |
| Credits        | Free                   |
| Safe to repeat | Yes                    |

### Input

| Field             | Type          | Required | Description                                                                                                                                                                                                                      |
| ----------------- | ------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `submissionId`    | string (uuid) | Yes      |                                                                                                                                                                                                                                  |
| `productId`       | string        | No       |                                                                                                                                                                                                                                  |
| `response_format` | enum          | No       | "concise" (the default) shortens long text and leaves out nested details in each result. Pass "detailed" only when you need the full text or nested details of a result. One of: `concise`, `detailed`. Defaults to `"concise"`. |

### Output

| Field            | Type            | Description                                             |
| ---------------- | --------------- | ------------------------------------------------------- |
| `id`             | string (uuid)   |                                                         |
| `status`         | enum            | One of: `pending`, `processing`, `completed`, `failed`. |
| `error`          | string or null  |                                                         |
| `result`         | object or null  |                                                         |
| `createdAngles`  | array of object | Items up to 100.                                        |
| `productId`      | string or null  |                                                         |
| `productName`    | string or null  |                                                         |
| `createdAt`      | string          |                                                         |
| `completedAt`    | string or null  |                                                         |
| `step`           | enum or null    | One of: `generating`, `validating`, `saving`.           |
| `startedAt`      | string          |                                                         |
| `requestedCount` | integer or null |                                                         |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_get_generation_status",
    "arguments": {
      "submissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  }
}
```

## `ecom_sales_angle_create`

**Create a sales angle**

Creates a manual sales angle and optionally links it to existing products. This write is unmetered and requires approval.

| Property        | Value                              |
| --------------- | ---------------------------------- |
| Access          | Writes data                        |
| Scope           | Products: write (`products:write`) |
| Credits         | Free                               |
| Who can call it | Workspace owners and admins        |

### Input

| Field             | Type                   | Required | Description                                                                                           |
| ----------------- | ---------------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| `name`            | string                 | Yes      | Length 1 to 100.                                                                                      |
| `hook`            | string                 | No       | Length up to 200. Defaults to `""`.                                                                   |
| `description`     | string                 | No       | Length up to 2000. Defaults to `""`.                                                                  |
| `productIds`      | array of string (uuid) | No       | Items up to 50.                                                                                       |
| `idempotency_key` | string                 | No       | Client-chosen key identifying this write. Reuse it only when retrying the same call. Length 1 to 200. |

### Output

| Field                     | Type                   | Description                                                                                                                                                                                                                                                   |
| ------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                      | string (uuid)          |                                                                                                                                                                                                                                                               |
| `name`                    | string                 |                                                                                                                                                                                                                                                               |
| `hook`                    | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `shortExplanation`        | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `rank`                    | integer                | Between 1 and 10.                                                                                                                                                                                                                                             |
| `rankRationale`           | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `description`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `source`                  | enum                   | One of: `ai_bulk`, `ai_brief`, `manual`, `winning_ad_clone`.                                                                                                                                                                                                  |
| `status`                  | enum                   | One of: `draft`, `testing`, `active`, `winning`. Defaults to `"draft"`.                                                                                                                                                                                       |
| `productIds`              | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `pinned`                  | boolean                | Defaults to `false`.                                                                                                                                                                                                                                          |
| `winnerProductIds`        | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `sortOrderByProductId`    | object                 | Defaults to `\{\}`.                                                                                                                                                                                                                                           |
| `targetBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `notForBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `awarenessLevel`          | enum                   | One of: `unaware`, `problem_aware`, `solution_aware`, `product_aware`, `most_aware`.                                                                                                                                                                          |
| `awarenessRationale`      | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `sophisticationLevel`     | integer                | Between 1 and 5.                                                                                                                                                                                                                                              |
| `sophisticationRationale` | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `dominantEmotion`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `motivationBucket`        | enum                   | One of: `pain_escape`, `pleasure_desire`, `status_signaling`, `identity_self_image`, `fear_loss_aversion`, `gift`, `ritual_habit_upgrade`, `price_value_roi`, `social_proof_tribe`, `novelty_unique_mechanism`, `time_convenience`, `vindication_contrarian`. |
| `trustLane`               | enum                   | The grounded trust-evidence lane this angle directly uses, or none when it is not trust-forward. One of: `none`, `guarantee_risk_reversal`, `shipping_delivery_confidence`, `reviews_brand_credibility`.                                                      |
| `categoryAssumed`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `recommendedImageFormats` | array of object        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `hookVariants`            | array of string        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `cloneMetadata`           | object                 |                                                                                                                                                                                                                                                               |
| `createdAt`               | string                 |                                                                                                                                                                                                                                                               |
| `updatedAt`               | string                 |                                                                                                                                                                                                                                                               |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_create",
    "arguments": {
      "name": "example"
    }
  }
}
```

## `ecom_sales_angle_update`

**Update or rename a sales angle**

Renames a sales angle or edits its hook, description, status, product links, or pinned state. Does not change winner state. Repeating the same update converges on the same state.

| Property        | Value                              |
| --------------- | ---------------------------------- |
| Access          | Changes or deletes data            |
| Scope           | Products: write (`products:write`) |
| Credits         | Free                               |
| Who can call it | Workspace owners and admins        |
| Safe to repeat  | Yes                                |

### Input

| Field         | Type                   | Required | Description                                      |
| ------------- | ---------------------- | -------- | ------------------------------------------------ |
| `angleId`     | string (uuid)          | Yes      |                                                  |
| `name`        | string                 | No       | Length 1 to 100.                                 |
| `hook`        | string                 | No       | Length up to 200.                                |
| `description` | string                 | No       | Length up to 2000.                               |
| `status`      | enum                   | No       | One of: `draft`, `testing`, `active`, `winning`. |
| `productIds`  | array of string (uuid) | No       | Items up to 50.                                  |
| `pinned`      | boolean                | No       |                                                  |

### Output

| Field                     | Type                   | Description                                                                                                                                                                                                                                                   |
| ------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                      | string (uuid)          |                                                                                                                                                                                                                                                               |
| `name`                    | string                 |                                                                                                                                                                                                                                                               |
| `hook`                    | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `shortExplanation`        | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `rank`                    | integer                | Between 1 and 10.                                                                                                                                                                                                                                             |
| `rankRationale`           | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `description`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `source`                  | enum                   | One of: `ai_bulk`, `ai_brief`, `manual`, `winning_ad_clone`.                                                                                                                                                                                                  |
| `status`                  | enum                   | One of: `draft`, `testing`, `active`, `winning`. Defaults to `"draft"`.                                                                                                                                                                                       |
| `productIds`              | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `pinned`                  | boolean                | Defaults to `false`.                                                                                                                                                                                                                                          |
| `winnerProductIds`        | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `sortOrderByProductId`    | object                 | Defaults to `\{\}`.                                                                                                                                                                                                                                           |
| `targetBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `notForBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `awarenessLevel`          | enum                   | One of: `unaware`, `problem_aware`, `solution_aware`, `product_aware`, `most_aware`.                                                                                                                                                                          |
| `awarenessRationale`      | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `sophisticationLevel`     | integer                | Between 1 and 5.                                                                                                                                                                                                                                              |
| `sophisticationRationale` | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `dominantEmotion`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `motivationBucket`        | enum                   | One of: `pain_escape`, `pleasure_desire`, `status_signaling`, `identity_self_image`, `fear_loss_aversion`, `gift`, `ritual_habit_upgrade`, `price_value_roi`, `social_proof_tribe`, `novelty_unique_mechanism`, `time_convenience`, `vindication_contrarian`. |
| `trustLane`               | enum                   | The grounded trust-evidence lane this angle directly uses, or none when it is not trust-forward. One of: `none`, `guarantee_risk_reversal`, `shipping_delivery_confidence`, `reviews_brand_credibility`.                                                      |
| `categoryAssumed`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `recommendedImageFormats` | array of object        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `hookVariants`            | array of string        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `cloneMetadata`           | object                 |                                                                                                                                                                                                                                                               |
| `createdAt`               | string                 |                                                                                                                                                                                                                                                               |
| `updatedAt`               | string                 |                                                                                                                                                                                                                                                               |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_update",
    "arguments": {
      "angleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  }
}
```

## `ecom_sales_angle_delete`

**Delete a sales angle**

Deletes a sales angle. Repeating the command reports success after the angle is already absent.

| Property        | Value                              |
| --------------- | ---------------------------------- |
| Access          | Changes or deletes data            |
| Scope           | Products: write (`products:write`) |
| Credits         | Free                               |
| Who can call it | Workspace owners and admins        |
| Safe to repeat  | Yes                                |

### Input

| Field     | Type          | Required | Description |
| --------- | ------------- | -------- | ----------- |
| `angleId` | string (uuid) | Yes      |             |

### Output

| Field     | Type | Description |
| --------- | ---- | ----------- |
| `success` | true |             |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_delete",
    "arguments": {
      "angleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  }
}
```

## `ecom_sales_angle_set_winner`

**Set whether a sales angle is a product winner**

Marks or unmarks a product-linked sales angle as a winner. Changes only the winner state. Retry-safe, because repeated calls do not toggle state.

| Property        | Value                              |
| --------------- | ---------------------------------- |
| Access          | Writes data                        |
| Scope           | Products: write (`products:write`) |
| Credits         | Free                               |
| Who can call it | Workspace owners and admins        |
| Safe to repeat  | Yes                                |

### Input

| Field       | Type          | Required | Description |
| ----------- | ------------- | -------- | ----------- |
| `angleId`   | string (uuid) | Yes      |             |
| `productId` | string (uuid) | Yes      |             |
| `isWinner`  | boolean       | Yes      |             |

### Output

| Field                     | Type                   | Description                                                                                                                                                                                                                                                   |
| ------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                      | string (uuid)          |                                                                                                                                                                                                                                                               |
| `name`                    | string                 |                                                                                                                                                                                                                                                               |
| `hook`                    | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `shortExplanation`        | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `rank`                    | integer                | Between 1 and 10.                                                                                                                                                                                                                                             |
| `rankRationale`           | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `description`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `source`                  | enum                   | One of: `ai_bulk`, `ai_brief`, `manual`, `winning_ad_clone`.                                                                                                                                                                                                  |
| `status`                  | enum                   | One of: `draft`, `testing`, `active`, `winning`. Defaults to `"draft"`.                                                                                                                                                                                       |
| `productIds`              | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `pinned`                  | boolean                | Defaults to `false`.                                                                                                                                                                                                                                          |
| `winnerProductIds`        | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `sortOrderByProductId`    | object                 | Defaults to `\{\}`.                                                                                                                                                                                                                                           |
| `targetBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `notForBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `awarenessLevel`          | enum                   | One of: `unaware`, `problem_aware`, `solution_aware`, `product_aware`, `most_aware`.                                                                                                                                                                          |
| `awarenessRationale`      | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `sophisticationLevel`     | integer                | Between 1 and 5.                                                                                                                                                                                                                                              |
| `sophisticationRationale` | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `dominantEmotion`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `motivationBucket`        | enum                   | One of: `pain_escape`, `pleasure_desire`, `status_signaling`, `identity_self_image`, `fear_loss_aversion`, `gift`, `ritual_habit_upgrade`, `price_value_roi`, `social_proof_tribe`, `novelty_unique_mechanism`, `time_convenience`, `vindication_contrarian`. |
| `trustLane`               | enum                   | The grounded trust-evidence lane this angle directly uses, or none when it is not trust-forward. One of: `none`, `guarantee_risk_reversal`, `shipping_delivery_confidence`, `reviews_brand_credibility`.                                                      |
| `categoryAssumed`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `recommendedImageFormats` | array of object        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `hookVariants`            | array of string        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `cloneMetadata`           | object                 |                                                                                                                                                                                                                                                               |
| `createdAt`               | string                 |                                                                                                                                                                                                                                                               |
| `updatedAt`               | string                 |                                                                                                                                                                                                                                                               |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_set_winner",
    "arguments": {
      "angleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "isWinner": true
    }
  }
}
```

## `ecom_sales_angle_reorder`

**Reorder sales angles for a product**

Sets the complete display order of the sales angles linked to a product.

| Property        | Value                              |
| --------------- | ---------------------------------- |
| Access          | Writes data                        |
| Scope           | Products: write (`products:write`) |
| Credits         | Free                               |
| Who can call it | Workspace owners and admins        |
| Safe to repeat  | Yes                                |

### Input

| Field       | Type                   | Required | Description |
| ----------- | ---------------------- | -------- | ----------- |
| `productId` | string (uuid)          | Yes      |             |
| `angleIds`  | array of string (uuid) | Yes      |             |

### Output

| Field       | Type                   | Description |
| ----------- | ---------------------- | ----------- |
| `angleIds`  | array of string (uuid) |             |
| `requested` | integer                |             |
| `written`   | integer                |             |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_reorder",
    "arguments": {
      "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "angleIds": [
        "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
    }
  }
}
```

## `ecom_sales_angle_generate_from_brief`

**Generate one sales angle from a brief**

Uses AI to generate and save one product-linked sales angle from a specific brief. Consumes angle-generation credits.

| Property        | Value                       |
| --------------- | --------------------------- |
| Access          | Writes data                 |
| Scope           | Ads: write (`ads:write`)    |
| Credits         | About 7 credits             |
| Who can call it | Workspace owners and admins |

### Input

| Field             | Type          | Required | Description                                                                                           |
| ----------------- | ------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| `productId`       | string (uuid) | Yes      |                                                                                                       |
| `brief`           | string        | Yes      | Length 1 to 2000.                                                                                     |
| `idempotency_key` | string        | No       | Client-chosen key identifying this write. Reuse it only when retrying the same call. Length 1 to 200. |
| `max_credits`     | number        | Yes      | The most credits this call may spend, with at most two decimals. Up to 10000.                         |

### Output

| Field                     | Type                   | Description                                                                                                                                                                                                                                                   |
| ------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                      | string (uuid)          |                                                                                                                                                                                                                                                               |
| `name`                    | string                 |                                                                                                                                                                                                                                                               |
| `hook`                    | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `shortExplanation`        | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `rank`                    | integer                | Between 1 and 10.                                                                                                                                                                                                                                             |
| `rankRationale`           | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `description`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `source`                  | enum                   | One of: `ai_bulk`, `ai_brief`, `manual`, `winning_ad_clone`.                                                                                                                                                                                                  |
| `status`                  | enum                   | One of: `draft`, `testing`, `active`, `winning`. Defaults to `"draft"`.                                                                                                                                                                                       |
| `productIds`              | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `pinned`                  | boolean                | Defaults to `false`.                                                                                                                                                                                                                                          |
| `winnerProductIds`        | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `sortOrderByProductId`    | object                 | Defaults to `\{\}`.                                                                                                                                                                                                                                           |
| `targetBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `notForBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `awarenessLevel`          | enum                   | One of: `unaware`, `problem_aware`, `solution_aware`, `product_aware`, `most_aware`.                                                                                                                                                                          |
| `awarenessRationale`      | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `sophisticationLevel`     | integer                | Between 1 and 5.                                                                                                                                                                                                                                              |
| `sophisticationRationale` | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `dominantEmotion`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `motivationBucket`        | enum                   | One of: `pain_escape`, `pleasure_desire`, `status_signaling`, `identity_self_image`, `fear_loss_aversion`, `gift`, `ritual_habit_upgrade`, `price_value_roi`, `social_proof_tribe`, `novelty_unique_mechanism`, `time_convenience`, `vindication_contrarian`. |
| `trustLane`               | enum                   | The grounded trust-evidence lane this angle directly uses, or none when it is not trust-forward. One of: `none`, `guarantee_risk_reversal`, `shipping_delivery_confidence`, `reviews_brand_credibility`.                                                      |
| `categoryAssumed`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `recommendedImageFormats` | array of object        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `hookVariants`            | array of string        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `cloneMetadata`           | object                 |                                                                                                                                                                                                                                                               |
| `createdAt`               | string                 |                                                                                                                                                                                                                                                               |
| `updatedAt`               | string                 |                                                                                                                                                                                                                                                               |
| `briefFidelity`           | object                 |                                                                                                                                                                                                                                                               |
| `credits_charged`         | number                 | Workspace credits charged by this call.                                                                                                                                                                                                                       |
| `credits_left`            | number or null         | Workspace credits remaining after this call, or null when the balance could not be read.                                                                                                                                                                      |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_generate_from_brief",
    "arguments": {
      "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "brief": "example",
      "max_credits": 1
    }
  }
}
```

## `ecom_sales_angle_generate_bulk`

**Generate a batch of sales angles**

Queues an AI sales-angle research batch for a product and returns a submission id to poll. Consumes one angle-generation credit per requested angle.

| Property        | Value                                                     |
| --------------- | --------------------------------------------------------- |
| Access          | Writes data                                               |
| Scope           | Ads: write (`ads:write`)                                  |
| Credits         | About 21 to 70 credits, depending on quantity and options |
| Who can call it | Workspace owners and admins                               |

### Input

| Field             | Type          | Required | Description                                                                                           |
| ----------------- | ------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| `productId`       | string (uuid) | Yes      |                                                                                                       |
| `count`           | integer       | No       | Between 3 and 10. Defaults to `6`.                                                                    |
| `idempotency_key` | string        | No       | Client-chosen key identifying this write. Reuse it only when retrying the same call. Length 1 to 200. |
| `max_credits`     | number        | Yes      | The most credits this call may spend, with at most two decimals. Up to 10000.                         |

### Output

| Field             | Type           | Description                                                                              |
| ----------------- | -------------- | ---------------------------------------------------------------------------------------- |
| `submissionId`    | string (uuid)  |                                                                                          |
| `credits_charged` | number         | Workspace credits charged by this call.                                                  |
| `credits_left`    | number or null | Workspace credits remaining after this call, or null when the balance could not be read. |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_generate_bulk",
    "arguments": {
      "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "max_credits": 1
    }
  }
}
```

## `ecom_sales_angle_generate_more_hooks`

**Generate more hooks for a sales angle**

Uses AI to generate and append non-duplicate hook variants to a product-specific sales angle. Consumes angle-generation credits when at least one hook is added.

| Property        | Value                       |
| --------------- | --------------------------- |
| Access          | Writes data                 |
| Scope           | Ads: write (`ads:write`)    |
| Credits         | About 7 credits             |
| Who can call it | Workspace owners and admins |

### Input

| Field             | Type          | Required | Description                                                                                           |
| ----------------- | ------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| `angleId`         | string (uuid) | Yes      |                                                                                                       |
| `productId`       | string (uuid) | Yes      |                                                                                                       |
| `count`           | integer       | No       | Between 1 and 10. Defaults to `5`.                                                                    |
| `idempotency_key` | string        | No       | Client-chosen key identifying this write. Reuse it only when retrying the same call. Length 1 to 200. |
| `max_credits`     | number        | Yes      | The most credits this call may spend, with at most two decimals. Up to 10000.                         |

### Output

| Field                     | Type                   | Description                                                                                                                                                                                                                                                   |
| ------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                      | string (uuid)          |                                                                                                                                                                                                                                                               |
| `name`                    | string                 |                                                                                                                                                                                                                                                               |
| `hook`                    | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `shortExplanation`        | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `rank`                    | integer                | Between 1 and 10.                                                                                                                                                                                                                                             |
| `rankRationale`           | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `description`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `source`                  | enum                   | One of: `ai_bulk`, `ai_brief`, `manual`, `winning_ad_clone`.                                                                                                                                                                                                  |
| `status`                  | enum                   | One of: `draft`, `testing`, `active`, `winning`. Defaults to `"draft"`.                                                                                                                                                                                       |
| `productIds`              | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `pinned`                  | boolean                | Defaults to `false`.                                                                                                                                                                                                                                          |
| `winnerProductIds`        | array of string (uuid) | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `sortOrderByProductId`    | object                 | Defaults to `\{\}`.                                                                                                                                                                                                                                           |
| `targetBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `notForBuyer`             | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `awarenessLevel`          | enum                   | One of: `unaware`, `problem_aware`, `solution_aware`, `product_aware`, `most_aware`.                                                                                                                                                                          |
| `awarenessRationale`      | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `sophisticationLevel`     | integer                | Between 1 and 5.                                                                                                                                                                                                                                              |
| `sophisticationRationale` | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `dominantEmotion`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `motivationBucket`        | enum                   | One of: `pain_escape`, `pleasure_desire`, `status_signaling`, `identity_self_image`, `fear_loss_aversion`, `gift`, `ritual_habit_upgrade`, `price_value_roi`, `social_proof_tribe`, `novelty_unique_mechanism`, `time_convenience`, `vindication_contrarian`. |
| `trustLane`               | enum                   | The grounded trust-evidence lane this angle directly uses, or none when it is not trust-forward. One of: `none`, `guarantee_risk_reversal`, `shipping_delivery_confidence`, `reviews_brand_credibility`.                                                      |
| `categoryAssumed`         | string                 | Defaults to `""`.                                                                                                                                                                                                                                             |
| `recommendedImageFormats` | array of object        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `hookVariants`            | array of string        | Defaults to `[]`.                                                                                                                                                                                                                                             |
| `cloneMetadata`           | object                 |                                                                                                                                                                                                                                                               |
| `createdAt`               | string                 |                                                                                                                                                                                                                                                               |
| `updatedAt`               | string                 |                                                                                                                                                                                                                                                               |
| `insertedCount`           | integer                |                                                                                                                                                                                                                                                               |
| `credits_charged`         | number                 | Workspace credits charged by this call.                                                                                                                                                                                                                       |
| `credits_left`            | number or null         | Workspace credits remaining after this call, or null when the balance could not be read.                                                                                                                                                                      |

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ecom_sales_angle_generate_more_hooks",
    "arguments": {
      "angleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "max_credits": 1
    }
  }
}
```

## Related

[Tool reference overview](https://sellify.ai/docs/developers/mcp-tools) · [Authentication](https://sellify.ai/docs/developers/authentication) · [Credits and limits](https://sellify.ai/docs/developers/credits-and-limits)
