ReferenceCommands

Create Or Update Lead

Create a lead when no match exists, or update the existing lead matched by any unique identifier.

leadsmutateallow
Create Or Update Lead

Create a lead when no match exists, or update the existing lead matched by any unique identifier.

When to use

Use this for idempotent lead writes when you have at least one unique identifier such as lead id, email, LinkedIn identity, custom id, or Sales Navigator identity.

Output notes

  • Responses default to `full` mode through the public API and CLI.
  • Use `compact` only when token savings matter more than prospecting quality. It can noticeably reduce prospecting quality.

Output schema

json
{
  "type": "object",
  "properties": {
    "lead_id": {
      "type": "string"
    },
    "lead": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "jobTitle": {
          "type": "string"
        },
        "company": {
          "type": "string"
        },
        "score": {
          "type": "number"
        },
        "avatarUrl": {
          "type": "string"
        },
        "linkedinUrl": {
          "type": "string"
        },
        "linkedin_url": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "New",
            "Waiting",
            "Contacted",
            "Replied",
            "MeetingBooked",
            "Interested",
            "NotInterested",
            "DoNotContact"
          ]
        },
        "lastInteraction": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "linkedinProfileEnriched": {
          "type": "boolean"
        },
        "location": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "timezone": {
          "type": "string"
        },
        "companyWebsite": {
          "type": "string"
        },
        "companyLogoUrl": {
          "type": "string"
        },
        "companyLinkedinUrl": {
          "type": "string"
        },
        "companyHeadline": {
          "type": "string"
        },
        "personalWebsite": {
          "type": "string"
        },
        "companyIndustry": {
          "type": "string"
        },
        "companySize": {
          "type": "string"
        },
        "experience": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "role": {
                "type": "string"
              },
              "company": {
                "type": "string"
              },
              "duration": {
                "type": "string"
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "role",
              "company",
              "duration"
            ],
            "additionalProperties": false
          }
        },
        "education": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "school": {
                "type": "string"
              },
              "degree": {
                "type": "string"
              },
              "year": {
                "type": "string"
              }
            },
            "required": [
              "school",
              "degree",
              "year"
            ],
            "additionalProperties": false
          }
        },
        "skills": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "recentPosts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "content": {
                "type": "string"
              },
              "date": {
                "type": "string"
              },
              "likes": {
                "type": "number"
              },
              "comments": {
                "type": "number"
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "content",
              "date",
              "likes"
            ],
            "additionalProperties": false
          }
        },
        "mission": {
          "type": "string"
        },
        "missions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "sentMessages": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "content": {
                "type": "string"
              },
              "channel": {
                "type": "string",
                "enum": [
                  "EMAIL",
                  "LINKEDIN"
                ]
              },
              "date": {
                "type": "string"
              },
              "timestamp": {
                "type": "string"
              },
              "senderName": {
                "type": "string"
              },
              "isPending": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "content",
              "channel",
              "date"
            ],
            "additionalProperties": false
          }
        },
        "receivedMessages": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "content": {
                "type": "string"
              },
              "channel": {
                "type": "string",
                "enum": [
                  "EMAIL",
                  "LINKEDIN"
                ]
              },
              "date": {
                "type": "string"
              },
              "timestamp": {
                "type": "string"
              },
              "senderName": {
                "type": "string"
              },
              "isPending": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "content",
              "channel",
              "date"
            ],
            "additionalProperties": false
          }
        },
        "addedDate": {
          "type": "string"
        },
        "isFlagged": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "name",
        "title",
        "company",
        "score",
        "avatarUrl",
        "linkedinUrl",
        "linkedin_url",
        "status"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "lead_id",
    "lead"
  ],
  "additionalProperties": false
}

CLI

bash
salestouch commands run lead.upsert --input-json '{"lead_id":"<string>","prospect_id":"<string>","email":"<string>"}' --json

Payload

json
{
  "lead_id": "<string>",
  "prospect_id": "<string>",
  "email": "<string>"
}

Runtime Command

lead.upsert is exposed through the shared SalesTouch runtime and stays available across API, CLI and MCP.

HTTP Reference

POST
/api/v1/commands/{commandId}

Authorization

AuthorizationBearer <token>

Use Authorization: Bearer <salestouch_api_key>.

In: header

Path Parameters

commandId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.salestouch.io/api/v1/commands/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "ok": true,
  "status": 0,
  "data": {},
  "error": {
    "code": "string",
    "message": "string"
  },
  "meta": {
    "approval_required": true,
    "approval_request_id": "string",
    "command_hash": "string",
    "warnings": [
      "string"
    ]
  }
}
{
  "ok": true,
  "status": 0,
  "data": {},
  "error": {
    "code": "string",
    "message": "string"
  },
  "meta": {
    "approval_required": true,
    "approval_request_id": "string",
    "command_hash": "string",
    "warnings": [
      "string"
    ]
  }
}
{
  "error": {
    "message": "string",
    "code": "string"
  }
}
{
  "error": {
    "message": "string",
    "code": "string"
  }
}
{
  "ok": true,
  "status": 0,
  "data": {},
  "error": {
    "code": "string",
    "message": "string"
  },
  "meta": {
    "approval_required": true,
    "approval_request_id": "string",
    "command_hash": "string",
    "warnings": [
      "string"
    ]
  }
}
{
  "ok": true,
  "status": 0,
  "data": {},
  "error": {
    "code": "string",
    "message": "string"
  },
  "meta": {
    "approval_required": true,
    "approval_request_id": "string",
    "command_hash": "string",
    "warnings": [
      "string"
    ]
  }
}
{
  "ok": true,
  "status": 0,
  "data": {},
  "error": {
    "code": "string",
    "message": "string"
  },
  "meta": {
    "approval_required": true,
    "approval_request_id": "string",
    "command_hash": "string",
    "warnings": [
      "string"
    ]
  }
}

Schema Reference

GET
/api/v1/commands/{commandId}/schema

Authorization

AuthorizationBearer <token>

Use Authorization: Bearer <salestouch_api_key>.

In: header

Path Parameters

commandId*string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://www.salestouch.io/api/v1/commands/string/schema"
{
  "data": {
    "command": {
      "command_id": "string",
      "title": "string",
      "description": "string",
      "summary": "string",
      "visibility": "public",
      "risk": "read",
      "category": "linkedin",
      "default_permission": "allow",
      "when_to_use": "string",
      "risk_notes": [
        "string"
      ],
      "output_notes": [
        "string"
      ],
      "related_commands": [
        "string"
      ],
      "related_resources": [
        "string"
      ],
      "examples": [
        {
          "title": "string",
          "language": "string",
          "code": "string"
        }
      ],
      "input_schema": {},
      "output_schema": {},
      "approval_output_schema": {}
    }
  }
}
{
  "error": {
    "message": "string",
    "code": "string"
  }
}
{
  "error": {
    "message": "string",
    "code": "string"
  }
}
{
  "error": {
    "message": "string",
    "code": "string"
  }
}
  • salestouch://prospects/{id}

On this page