Lead Qualification Call
SkillProductivityQualify a warm, consenting lead by phone with CALL-E, capture needs, budget, timing, decision authority, and interest as structured JSON, and route the disposition to a human or CRM without cold outreach.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Lead Qualification Call skill
What this skill tells your AI
The instructions your AI receives, as published by calle-ai/awesome-phone-call-agents in skills/lead-qualification-call/SKILL.md and read by ahel’s review.
Use this skill when a sales or marketing team has warm inbound leads that have explicitly consented to a call and wants one disclosed CALL-E phone call to qualify them. The call collects needs, budget range, timeline, decision authority, and interest level, and returns a fail-closed structured JSON result with a disposition a human or CRM can act on.
This skill qualifies a lead. It does not sell, book, close, or write to a CRM. A human reviews the result and owns every next step, including any CRM update.
When To Use
- Qualify leads from an opt-in form, callback request, or consent-gated campaign
- Collect needs, budget range, timeline, decision authority, and interest in one disclosed call
- Separate high-intent leads from low-intent ones with transcript-evidenced structured results
- Feed a disposition (qualified / needs_human / not_interested) to a human-run sales queue or CRM routing
When Not To Use
- Cold outreach, scraped lists, unsolicited marketing, or SPAM-style dialing
- Medical, legal, financial, emergency, collections, or political calls
- Selling, closing, negotiating, or collecting payment on the call
- Calling a number the user did not provide and authorize
- Hidden retries, recurring schedules, or provider-side campaigns
- Writing to a CRM or booking a meeting before a human reviews the result
Required Inputs
lead_id: stable local identifier (3-64 chars of letters, digits, dot, dash, underscore)campaign_id: campaign or source-batch identifier for idempotency and routinglead_source: Google Form, website callback, ticket, partner, or other consent-gated sourceto_phone_e164: E.164, authorizedconsent: must betrueauthorized_reason: why this specific call is allowedcompany_name: business name disclosed on the callproduct_offer: what is being qualified (offer name or one-line description)timezone: IANA timezone for quiet-hours decisionsqualification_fields: the subset of BANT fields the team wants, chosen from the schema contract
Optional: locale, language, region, lead_first_name, notes passed as call context.
Preflight
- Confirm the user authorized this one qualification call and that
consentistrue. - Confirm the phone is E.164 and came from the consent-gated lead record.
- Confirm the lead is warm: the record has an explicit outreach basis or callback request. If the lead is cold or
do_not_callis true, refuse. - Build the compiled task from the goal template below and review a masked preview before any CALL-E plan.
Dry-Run Preview
Preview is the default. It performs no network access and no call. From the skill directory:
python3 -m json.tool assets/sample-lead.json
Review the compiled task, the result schema, the masked phone, and the idempotency key before touching CALL-E. All example numbers are reserved fictional numbers (see references/examples.md).
CALL-E Goal Template
You are an AI phone assistant calling on behalf of {company_name}.
Disclose immediately that you are AI and that this is one lead-qualification call.
Speak with {lead_first_name}. If you have the wrong person, apologise and end the call.
Purpose: understand whether {product_offer} fits this person's needs.
Do not sell, pitch, close, negotiate, collect payment, or give medical, legal, or financial advice.
Ask only the approved qualification questions:
- What problem or need is this person trying to solve?
- What budget range applies: under 1k, 1k to 5k, 5k to 20k, or above 20k? Mark not disclosed if they decline.
- What timeline applies: immediate, 1 to 3 months, 3 to 6 months, 6 months or more, or unknown?
- Are they the decision maker, or do they need to include someone else?
- How interested are they: high, medium, or low? Base this only on what they say, not on guessing.
- Would they like a human from the team to call back, and when?
Do not infer answers from silence. If the person declines to answer a question, record the value as unknown, not_disclosed, or low as appropriate. Never pressure, repeat an unanswered question aggressively, or invent an interest level. If the call is a voicemail, leave a short message and record disposition voicemail.
Structured Result
{
"needs": "short text, empty if not disclosed",
"budget_range": "under_1k | 1k_5k | 5k_20k | 20k_plus | not_disclosed",
"timeline": "immediate | 1_3_months | 3_6_months | 6_months_plus | unknown",
"is_decision_maker": true,
"interest_level": "high | medium | low",
"callback_requested": true,
"disposition": "qualified | needs_human | not_interested | blocked_compliance | voicemail | no_answer | wrong_number"
}
A qualified result is an interest signal, not a closed sale. needs_human, voicemail, no_answer, and low-confidence answers all route to a human and are never auto-qualified. See references/qualification-schema.md for the full contract.
Live Planning
Only after explicit user authorization and CALL-E authentication:
export CALLE_API_KEY="<server key>"
calle call plan --to-phone <E164_PHONE> --goal "<reviewed goal text>" --timezone <IANA> --language English --region <REGION>
calle call plan is planning, not execution. Do not start the call unless the user separately confirms. Read references/calle-workflow.md for the exact plan/run/status sequence, preflight, and idempotency handling.
Cancellation And Idempotency
Idempotency key: lead_qualification:{lead_id}:{campaign_id}. If the user cancels before dial, do not execute. If a result is ambiguous, route to a human rather than calling again. Never automatically retry an error or unknown outcome; that would create a duplicate qualification call.
Safety Notes
Read references/safety.md and references/examples.md before any live planning. Read references/crm-routing.md before routing a disposition, and references/calle-workflow.md before the live sequence. No CRM write and no meeting booking happens without a human review.
Signals
- GitHub stars
- 104
- Forks
- 527
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
lead-qualification-call- Source
- github.com/calle-ai/awesome-phone-call-agents