🎯 Lead Qualification & Inbound

Connecting Voice Lead Qual to Salesforce

Salesforce is where most enterprise sales teams live. For voice-AI-qualified leads to generate real pipeline, they have to land in Salesforce cleanly — right object type, right owner, right stage, right custom fields populated.

Tyler Weitzman
Tyler Weitzman
February 26, 2026 · 5 min read
Speechify

Salesforce is where most enterprise sales teams live. For voice-AI-qualified leads to generate real pipeline, they have to land in Salesforce cleanly — right object type, right owner, right stage, right custom fields populated. This piece walks through the integration patterns specific to lead qualification: what object to create, how to route, and how to handle the interaction with existing Salesforce workflow.

TL;DR

  • Choose Lead vs Contact + Opportunity based on your sales motion.
  • Populate structured fields from qualification data.
  • Use Salesforce's Lead Assignment Rules for routing.
  • Round-trip data — AE outcomes feed back to improve AI qualification.
  • Handle deduplication and existing-customer scenarios.

The object-type question

Salesforce separates Leads (unqualified prospects) from Contacts + Opportunities (qualified buyers). Voice-AI output goes to one or the other:

Lead. Appropriate for unqualified or newly-qualified inbound. Uses Salesforce's Lead conversion flow — Lead → Contact + Opportunity when the AE takes over.

Contact + Opportunity. Direct, if you're skipping the Lead stage. AI-qualified → straight to Opportunity.

Most orgs use Leads for marketing-sourced inbound. Voice-AI-qualified leads typically arrive as Leads, convert to Opps when the AE engages.

Lead field mapping

Voice AI qualification output → Salesforce Lead fields:

AI SignalSalesforce Field
NameFirstName + LastName
CompanyCompany
EmailEmail
PhonePhone
RoleTitle
Company sizeNumberOfEmployees
Use caseCustom field: Use_Case__c
TimelineCustom field: Expected_Close__c
ScoreCustom field: Lead_Score__c
SourceLeadSource (e.g., "Inbound Voice AI")
StatusStatus (e.g., "Qualified by AI")
DescriptionDescription (summary + transcript link)

Custom fields capture AI-specific data. Coordinate with Salesforce admin.

Lead Assignment Rules

Salesforce's Lead Assignment Rules route on create:

  • By territory (state, country, zip).
  • By industry.
  • By company size.
  • By custom fields (lead score, use case).
  • Round-robin within a group.

AI creates the Lead; rules route it. Cleaner than AI doing its own routing logic.

Creation via API

Standard POST:

POST /services/data/v60.0/sobjects/Lead/
{
  "FirstName": "Jamie",
  "LastName": "Patel",
  "Company": "NovaCorp",
  "Email": "[email protected]",
  "Phone": "+15551234567",
  "Title": "VP of Operations",
  "NumberOfEmployees": 250,
  "LeadSource": "Inbound Voice AI",
  "Status": "Qualified by AI",
  "Use_Case__c": "Support team voice AI",
  "Expected_Close__c": "2026-06-30",
  "Lead_Score__c": 75,
  "Description": "AI-qualified inbound call. Use case: voice AI for 80-agent support team. Timeline: Q2 pilot."
}

Assignment rules trigger automatically on insert (if configured).

Handling duplicates

Before creating, check for existing:

POST /services/data/v60.0/sobjects/Lead/search
{
  "q": "SELECT Id FROM Lead WHERE Email = '[email protected]' OR Phone = '+15551234567'",
  "limit": 1
}

If existing:

  • If Lead exists (open): add a Task or update, don't duplicate.
  • If Contact exists (customer): create Task or Opportunity instead of Lead.
  • If Converted Lead: route to the owner of the related Contact/Opportunity.

Duplication frustrates sales teams. Handle carefully.

Existing-customer scenarios

When the caller is already a customer:

  • Upsell opportunity. Create Opportunity against existing Account.
  • Support issue. Create Case.
  • Account question. Route to account team.

AI should query for existing Account/Contact before defaulting to Lead creation.

Activity logging

Every AI call should produce a Task:

POST /services/data/v60.0/sobjects/Task/
{
  "Subject": "AI-qualified inbound call",
  "Status": "Completed",
  "ActivityDate": "2026-04-16",
  "Description": "Full transcript + summary",
  "WhoId": "{LeadId or ContactId}",
  "WhatId": "{OpportunityId if applicable}",
  "CallType": "Inbound",
  "CallDurationInSeconds": 247
}

Task gives the AE a clean timeline of the prospect's engagement history.

Round-trip data

AEs provide feedback via CRM:

  • Lead disposition (converted, nurture, disqualified).
  • Notes on why.
  • Outcome of AE follow-up.

Feed this back into AI for qualification improvement:

  • Patterns in rejected leads → tighter AI filtering.
  • Patterns in converting leads → higher AI confidence.

Build this feedback loop from day one.

Working with Salesforce admin

Non-negotiable. Salesforce admins:

  • Control custom fields.
  • Own Lead Assignment Rules.
  • Manage validation rules (hidden barriers to API inserts).
  • Handle permissions.
  • Care about data quality.

Involve them in the integration design. Grateful admins help; ignored admins block.

See connecting voice agents to salesforce CRM for the technical foundation.

Permissions and access

Integration user needs:

  • Create on Lead, Contact, Account, Opportunity, Task (as relevant).
  • Read on Contact, Account (for dedup).
  • Edit on specific fields (not all).
  • API access enabled.
  • Connected App permissions scoped appropriately.

Least privilege. Coordinate with admin.

Handling rejection

Some callers shouldn't become Salesforce records:

  • Tire-kickers. Log internally, don't pollute CRM.
  • Clear fraud. Don't create.
  • Opt-outs. Respect; capture as suppressed.
  • Competitors. Judgment call; many orgs log for awareness.

Every call → record is wrong. Some calls → record is right.

Analytics

Salesforce reports on AI-sourced pipeline:

  • Pipeline from "Inbound Voice AI" lead source.
  • Conversion rates by AI-scored tier.
  • Cycle time from AI creation to close.
  • Attribution to marketing channels via UTM capture.

Common pitfalls

Bloating the Lead object. Dozens of voice-AI custom fields → admin revolt. Coordinate field creation.

Bypassing Assignment Rules. AI routes directly; rules get confused. Use rules, don't replace them.

Activity spam. Every call creates 5 Tasks. AEs drown. Create one structured Task per call.

Duplicate Leads. Running into Salesforce's dedup rules or creating parallel records. Handle proactively.

Stale lead status. Status changes over time in AE workflow; AI's initial status becomes wrong. Update as appropriate.

FAQ

Can we skip Leads entirely and use Contacts? Yes, if your sales motion treats every inbound as qualified. Check with sales ops.

What about Salesforce's native AI (Agentforce)? Different product. Voice AI and Agentforce can coexist or complement.

How do we handle leads from multiple channels? LeadSource field captures channel. Reports slice accordingly.

What if AI qualifies a lead but the AE rejects? Capture in a custom field (Rejection_Reason__c). Feed back.

Can we trigger Salesforce workflows from voice AI events? Yes, via Platform Events or Flow triggers on Lead create/update.

Tyler Weitzman
Tyler Weitzman
Co-Founder & Head of AI, Speechify

Tyler Weitzman is co-founder and Head of AI at Speechify. He has spent the past decade building the speech-synthesis stack that powers millions of users. Tyler writes about the engineering of real-time conversational systems — text-to-speech, speech recognition, latency budgets, model serving, and the architectural choices that separate prototypes from production-grade voice agents.

More from Tyler Weitzman

View all →

Related reading

Voice AI, twice a month.

Get the best of the SIMBA resources hub — new articles, trend notes, and operator guides. No spam.