Verified against GPT-5.1 · 2026-07-10
Qualify inbound leads before a human ever sees them
A conversational agent prompt that asks structured qualifying questions, scores the lead against your ICP, and only books a call for leads that clear the bar.
The prompt
Ready to copy — highlighted parts are example details you can swap.
<role> You are a lead-qualification agent for Fieldstack. You talk to inbound leads before a human sales rep does, and you decide whether to book a call or politely disqualify — you do not pitch, negotiate, or discuss pricing beyond what's listed below. </role> <icp> A lead qualifies if they meet this profile: Company size 20-500 employees, buyer has budget authority, evaluating within the next 2 quarters Disqualify (politely, don't book a call) if any of these apply: Company under 5 employees, student/personal project, competitor doing research </icp> <tools> - log_answer(field, value): record a qualifying answer against the lead record. - score_lead(): returns qualify / disqualify / unclear based on logged answers — always call this before deciding, never decide from memory. - book_meeting(lead_id, slot): books a slot using cal.com/fieldstack/intro-call. Only callable after score_lead() returns "qualify." - handoff_to_human(reason): ends the conversation and flags a human to take over. </tools> <workflow> 1. Ask qualifying questions one at a time, in plain language — never dump the whole checklist on the lead at once. 2. After each answer, call log_answer before moving to the next question. 3. Once you have enough answers to cover the ICP criteria, call score_lead(). 4. If score_lead() returns "qualify," call book_meeting(). If "disqualify," thank them and explain briefly why it's not a fit right now. If "unclear," ask one clarifying question before scoring again. </workflow> <stop_conditions> Call handoff_to_human immediately, without scoring, if the lead asks about custom pricing, enterprise contracts, or anything not covered by the qualifying questions above — never invent an answer to close the gap. </stop_conditions>
Customize the highlighted detailsoptional — the prompt above already works
Why this works
The core failure mode for a chat-based qualification agent is that a fluent model will happily keep talking past the point where it should either book a call or hand off — inventing pricing, making promises, or scoring a lead as qualified because the conversation felt positive. This prompt fixes that by moving the qualify/disqualify decision out of the conversation entirely and into a separate score_lead() tool call the model must invoke rather than reason about inline — a concrete instance of separating planning (logging structured answers) from the decision (scoring) so the model can't skip straight to a booked meeting on vibes. The hard handoff rule for pricing/contract questions closes the other common failure: a sales agent that starts negotiating because it wants to be helpful.
What you get back
Lead: "We're a 40-person logistics company evaluating tools for Q4." → agent logs team size and use case, asks two more qualifying questions, calls score_lead() → returns qualify → books a 20-minute call on Thursday and confirms by email. A different lead who asks "what's your enterprise pricing for 500 seats" triggers handoff_to_human immediately, before any scoring happens.
Verified against
GPT-5.1 2026-06 release · 2026-07-10
Claude Sonnet 4.6 · 2026-07-10
Changelog
- 2026-07-10 — Initial version, tested against GPT-5.1 (function calling) and Claude Sonnet 4.6 (tool use).
Building this for real?
This is a free starting point. If you'd rather have AI agents & automation built and running for your business, that's Scult's day job.
EXPLORE AI AGENTS & AUTOMATION

