Getting Started

First setup for login, API keys, LinkedIn accounts and the three public SalesTouch surfaces.

Getting Started

The three public SalesTouch surfaces share the same account model. CLI + skills is the default setup path. Remote MCP stays available when you ask for it explicitly with --mcp. The npm package is not published yet, so run the CLI from the repository root with pnpm salestouch ....

  1. Bootstrap your agent with the CLI:
pnpm salestouch setup --claude --login

If you prefer a non-interactive setup, create an API key and use:

pnpm salestouch setup --claude --api-key st_...
  1. Connect at least one LinkedIn account in SalesTouch.
  2. Choose the execution surface that matches your workflow:
  • REST API for deterministic backend integrations
  • CLI for terminal-first usage
  • Remote MCP for Claude Code and assistant-driven workflows when you opt into --mcp
  • Local stdio MCP only when you need an explicit fallback

First useful read

Before sending anything, load the full prospecting context:

leadsmutateallow
Get Lead

Load one lead with the commercial and activity context needed to decide the next prospecting action.

When to use

Use this when you already know the lead id or after a `lead.search` result selection. In `full`, it returns `prospect_context` by default.

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
    },
    "latest_import": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "import_id": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "imported_at": {
              "type": "string",
              "format": "date-time"
            },
            "source_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "context": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "metadata": {
              "description": "Arbitrary JSON value.",
              "oneOf": [
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "lead_import_metadata": {
              "description": "Arbitrary JSON value.",
              "oneOf": [
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "lead_import_source": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "mission_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "import_id",
            "type",
            "imported_at",
            "source_url",
            "context",
            "metadata",
            "lead_import_metadata",
            "lead_import_source",
            "mission_id"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "import_context": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            },
            "context": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "metadata": {
              "description": "Arbitrary JSON value.",
              "oneOf": [
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "lead_import_metadata": {
              "description": "Arbitrary JSON value.",
              "oneOf": [
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "lead_import_source": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "type",
            "context",
            "metadata",
            "lead_import_metadata",
            "lead_import_source"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "prospect_context": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "prospect": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "firstName": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "lastName": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "headline": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "jobTitle": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "companyName": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "type": "string"
                },
                "score": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "notes": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "linkedinUrl": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "linkedin_url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "linkedinId": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "linkedinProviderId": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "linkedinIsRelationship": {
                  "type": "boolean"
                },
                "lastActivityAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "lastContactAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "linkedinOwnerAccount": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "email": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "email",
                        "status"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "leadIdentityAliases": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "provider": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "provider",
                      "type",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                "leadActivities": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "description": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "occurredAt": {
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "title",
                      "description",
                      "occurredAt"
                    ],
                    "additionalProperties": false
                  }
                },
                "linkedinRelations": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "userProviderId": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "userPublicIdentifier": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "userProfileUrl": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "userFullName": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "acceptedAt": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date-time"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "userProviderId",
                      "userPublicIdentifier",
                      "userProfileUrl",
                      "userFullName",
                      "acceptedAt"
                    ],
                    "additionalProperties": false
                  }
                },
                "linkedinConversations": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "title": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "status": {
                        "type": "string"
                      },
                      "lastMessageAt": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date-time"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "participants": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "fullName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "publicIdentifier": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "profileUrl": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "isSelf": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "id",
                            "fullName",
                            "publicIdentifier",
                            "profileUrl",
                            "isSelf"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "messages": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "direction": {
                              "type": "string"
                            },
                            "state": {
                              "type": "string"
                            },
                            "bodyText": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "sentAt": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "format": "date-time"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "createdAt": {
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "required": [
                            "id",
                            "direction",
                            "state",
                            "bodyText",
                            "sentAt",
                            "createdAt"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "id",
                      "title",
                      "status",
                      "lastMessageAt",
                      "participants",
                      "messages"
                    ],
                    "additionalProperties": false
                  }
                },
                "linkedinOutreachActions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "bodyText": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "scheduledFor": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date-time"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "sentAt": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date-time"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "failureReason": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "status",
                      "bodyText",
                      "scheduledFor",
                      "sentAt",
                      "failureReason",
                      "createdAt"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "id",
                "firstName",
                "lastName",
                "email",
                "headline",
                "jobTitle",
                "companyName",
                "status",
                "score",
                "notes",
                "linkedinUrl",
                "linkedin_url",
                "linkedinId",
                "linkedinProviderId",
                "linkedinIsRelationship",
                "lastActivityAt",
                "lastContactAt",
                "linkedinOwnerAccount",
                "leadIdentityAliases",
                "leadActivities",
                "linkedinRelations",
                "linkedinConversations",
                "linkedinOutreachActions"
              ],
              "additionalProperties": false
            },
            "next_actions": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "reply_to_message",
                  "wait_for_invitation_acceptance",
                  "send_message",
                  "send_invitation"
                ]
              }
            }
          },
          "required": [
            "prospect",
            "next_actions"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "lead_id",
    "lead",
    "latest_import",
    "import_context",
    "prospect_context"
  ],
  "additionalProperties": false
}

CLI

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

Payload

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

First useful write

When the lead is ready, create a draft first and approve it through the shared runtime:

linkedinmutateallow
Create LinkedIn Draft

Generate a LinkedIn draft with up to three candidate message variations.

When to use

Use this when you have enough lead context to draft outreach but still want a reviewable draft before anything is approved or sent.

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": {
    "draft": {
      "type": "object",
      "properties": {
        "draft_id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "PENDING_REVIEW",
            "READY_TO_SEND",
            "DISPATCHED",
            "CANCELLED"
          ]
        },
        "channel": {
          "type": "string",
          "enum": [
            "LINKEDIN"
          ]
        },
        "dispatched_queue_item_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "dispatched_message_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "dispatched_external_message_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "selected_variation_index": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "selected_body_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "approved_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "cancelled_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "dispatched_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time"
        },
        "created_by_user_id": {
          "type": "string"
        },
        "created_by_actor_kind": {
          "type": "string",
          "enum": [
            "USER",
            "AI_AGENT"
          ]
        },
        "approved_by_user_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "approved_by_actor_kind": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "USER",
                "AI_AGENT"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "lead": {
          "type": "object",
          "properties": {
            "lead_id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "company_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "job_title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "linkedin_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "lead_id",
            "name",
            "company_name",
            "job_title",
            "linkedin_url"
          ],
          "additionalProperties": false
        },
        "agent": {
          "type": "object",
          "properties": {
            "agent_id": {
              "type": "string"
            },
            "handle": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "agent_id",
            "handle",
            "name"
          ],
          "additionalProperties": false
        },
        "mission": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "mission_id": {
                  "type": "string"
                },
                "handle": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "mission_id",
                "handle",
                "name"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "variations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "position": {
                "type": "integer"
              },
              "body_text": {
                "type": "string"
              }
            },
            "required": [
              "position",
              "body_text"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "draft_id",
        "status",
        "channel",
        "dispatched_queue_item_id",
        "dispatched_message_id",
        "dispatched_external_message_id",
        "selected_variation_index",
        "selected_body_text",
        "approved_at",
        "cancelled_at",
        "dispatched_at",
        "created_at",
        "updated_at",
        "created_by_user_id",
        "created_by_actor_kind",
        "approved_by_user_id",
        "approved_by_actor_kind",
        "lead",
        "agent",
        "mission",
        "variations"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "draft"
  ],
  "additionalProperties": false
}

CLI

bash
salestouch commands run linkedin.draft.create --input-json '{"variations":[]}' --json

Payload

json
{
  "variations": []
}
linkedinmutateallow
Approve Or Send LinkedIn Draft

Approve a LinkedIn draft by default, or force an immediate send for an already engaged conversation.

When to use

Use this after `linkedin.draft.create` to select the final variation, and reserve `send_now=true` for leads whose existing LinkedIn conversation has already been synced.

Risk notes

  • This command mutates outbound draft state and can send immediately when `send_now=true`.

Output notes

  • Default behavior is approval-only and returns `mode=approved` with `dispatch_result=null`.
  • `send_now=true` bypasses LinkedIn usage limits and should only be used for existing conversations when the time savings justify the risk.
  • 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": {
    "draft": {
      "type": "object",
      "properties": {
        "draft_id": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "PENDING_REVIEW",
            "READY_TO_SEND",
            "DISPATCHED",
            "CANCELLED"
          ]
        },
        "channel": {
          "type": "string",
          "enum": [
            "LINKEDIN"
          ]
        },
        "dispatched_queue_item_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "dispatched_message_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "dispatched_external_message_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "selected_variation_index": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "selected_body_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "approved_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "cancelled_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "dispatched_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time"
        },
        "created_by_user_id": {
          "type": "string"
        },
        "created_by_actor_kind": {
          "type": "string",
          "enum": [
            "USER",
            "AI_AGENT"
          ]
        },
        "approved_by_user_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "approved_by_actor_kind": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "USER",
                "AI_AGENT"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "lead": {
          "type": "object",
          "properties": {
            "lead_id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "company_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "job_title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "linkedin_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "lead_id",
            "name",
            "company_name",
            "job_title",
            "linkedin_url"
          ],
          "additionalProperties": false
        },
        "agent": {
          "type": "object",
          "properties": {
            "agent_id": {
              "type": "string"
            },
            "handle": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "agent_id",
            "handle",
            "name"
          ],
          "additionalProperties": false
        },
        "mission": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "mission_id": {
                  "type": "string"
                },
                "handle": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "mission_id",
                "handle",
                "name"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "variations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "position": {
                "type": "integer"
              },
              "body_text": {
                "type": "string"
              }
            },
            "required": [
              "position",
              "body_text"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "draft_id",
        "status",
        "channel",
        "dispatched_queue_item_id",
        "dispatched_message_id",
        "dispatched_external_message_id",
        "selected_variation_index",
        "selected_body_text",
        "approved_at",
        "cancelled_at",
        "dispatched_at",
        "created_at",
        "updated_at",
        "created_by_user_id",
        "created_by_actor_kind",
        "approved_by_user_id",
        "approved_by_actor_kind",
        "lead",
        "agent",
        "mission",
        "variations"
      ],
      "additionalProperties": false
    },
    "dispatch_result": {
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "status": {
                  "const": "sent"
                },
                "messageId": {
                  "type": "string"
                },
                "externalMessageId": {
                  "type": "string"
                }
              },
              "required": [
                "status"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "const": "queued"
                },
                "queueId": {
                  "type": "string"
                }
              },
              "required": [
                "status",
                "queueId"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "const": "waiting_relation"
                },
                "messageQueueId": {
                  "type": "string"
                }
              },
              "required": [
                "status",
                "messageQueueId"
              ],
              "additionalProperties": false
            }
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "mode": {
      "type": "string",
      "enum": [
        "approved",
        "sent"
      ]
    }
  },
  "required": [
    "draft",
    "dispatch_result",
    "mode"
  ],
  "additionalProperties": false
}

CLI

bash
salestouch commands run linkedin.draft.approve --input-json '{"draft_id":"<string>"}' --json

Payload

json
{
  "draft_id": "<string>"
}

On this page