upsert_lead
ActiveTool of KaiCalls
Create a new lead or update existing leads for the authenticated business, routed through the governed leads API (business access-checked, usage-logged, and audited). To create one, pass `lead` with at least one of name/phone/email plus optional status/source/notes/agent_id/etc. To update, pass `updates`: an array of { id, ...fields } for one or many existing leads (status, name, phone, email, notes, address, city, state, zip). Updates are access-checked per row and report partial success.
Parameters schema
{
"type": "object",
"properties": {
"lead": {
"type": "object",
"description": "Fields for a NEW lead: name, first_name, last_name, phone, email, status, source, notes, address, city, state, zip, agent_id, message. At least one of name/phone/email is required."
},
"updates": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Lead ID to update."
}
}
},
"description": "Update existing leads. Each item is { id, ...fields } where fields are a subset of name, first_name, last_name, email, phone, status, source, notes, address, city, state, zip. Max 100 per call."
},
"business_id": {
"type": "string",
"description": "Business ID. Required for create when the API key can access multiple businesses."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
KaiCalls
https://github.com/cgallic/kai_calls
1/7 registries