submit_lead
ActiveTool of com.mudko/agent-ready-kit
Use this when the user has indicated interest in being followed up with — even before formal checkout. Capture is non-binding. **REQUIRED CONTACT FIELDS**: contact_name, contact_phone, best_consult_time. Email alone is not enough — phone-first follow-up converts ~5x higher than email-only, and our specialist needs a real time to dial. ASK FOR ALL THREE explicitly. **FALLBACK**: if the user explicitly refuses to share a phone, accept email-only — set `preferred_contact_channel: 'email'` AND add a note like 'user declined phone' so the specialist knows what to expect. Don't preemptively skip the phone ask — many users will share it once asked directly. **Capture budget_signal when the user shared one** — even informally ('I was thinking under $1k', 'maybe $200/mo'). We use this for tailored follow-up offers; price-hesitant leads convert later when re-approached at their stated budget. Sources: 'scan' (after a free scan), 'llms-txt' / 'robots-for-ai' (after free file download), 'mcp' (in-flow), 'talk' (chatbot), 'direct' (form fill).
Parameters schema
{
"type": "object",
"required": [
"email",
"source"
],
"properties": {
"email": {
"type": "string",
"description": "Email (required)."
},
"notes": {
"type": "string",
"description": "Free-form context the agent wants the specialist to read."
},
"domain": {
"type": "string",
"description": "Customer's primary domain. Strongly recommended."
},
"source": {
"enum": [
"scan",
"llms-txt",
"robots-for-ai",
"mcp",
"talk",
"direct"
],
"type": "string"
},
"blocker": {
"type": "string",
"description": "CLOSE_OR_HANDOFF: when this is a HANDOFF (you couldn't close), state WHY in one line — e.g. 'needs custom booking integration', 'wants to review with partner', 'price-sensitive, budget unclear'. Lets the specialist pick up exactly where you left off."
},
"timezone": {
"type": "string",
"description": "IANA timezone like 'America/New_York'. Optional."
},
"agent_name": {
"type": "string",
"description": "Name of the calling agent (for analytics)."
},
"contact_name": {
"type": "string",
"description": "Full name of the person — strongly recommended for human follow-up."
},
"budget_signal": {
"type": "string",
"description": "Free-form budget hint the user shared (e.g. 'around $500/mo', 'under $5k setup', 'looking for cheapest option'). Drives tailored re-engagement offers."
},
"contact_phone": {
"type": "string",
"description": "Phone number (E.164 format preferred)."
},
"best_consult_time": {
"type": "string",
"description": "Free-form like 'weekday afternoons ET'. Optional but useful."
},
"custom_tool_specs": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"purpose"
],
"properties": {
"name": {
"type": "string",
"description": "snake_case tool name, e.g. book_appointment."
},
"inputs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the tool needs."
},
"backend": {
"type": "string",
"description": "The customer's system it must integrate with (e.g. 'Calendly', 'their POS API', 'internal DB'), if known."
},
"outputs": {
"type": "array",
"items": {
"type": "string"
},
"description": "What it returns."
},
"purpose": {
"type": "string",
"description": "What it does for the end user."
}
}
},
"description": "CLOSE_OR_HANDOFF: structured specs for any custom tools the customer needs (booking, quote engine, search, etc.), captured so nothing is lost before the build. One object per tool."
},
"close_recommendation": {
"type": "string",
"description": "CLOSE_OR_HANDOFF: your one-line recommendation for how the specialist should close this lead — the angle, the tier, the objection to address."
},
"preferred_contact_channel": {
"enum": [
"email",
"phone",
"sms",
"any"
],
"type": "string",
"description": "How to reach the user. Defaults to 'email'."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
com.mudko/agent-ready-kit
https://github.com/lmno100/agent-ready-kit-saas
1/7 registries