Burki’s AI-powered Spam Detection System evaluates calls in real-time to identify and automatically terminate spam, scam, and unwanted calls—protecting your business and saving agent time.
Overview
The Spam Detection System uses LLM-based evaluation to analyze conversations and detect unwanted calls:Real-Time Analysis
Evaluates transcripts during live calls without blocking conversation flow.
Configurable Scenarios
Define what constitutes spam for your specific business context.
Fail-Open Design
Errors default to allowing calls—never blocks legitimate callers.
How It Works
Call Begins
Spam detection is registered when the call starts. A grace period prevents premature evaluations.
Transcript Evaluation
As conversation progresses, the LLM periodically evaluates the transcript against your defined scenarios.
Verdict Aggregation
Multiple evaluations are aggregated. A final verdict requires consistent results with sufficient confidence.
Configuration
Enable and configure spam detection per assistant:Configuration Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Enable spam detection for this assistant |
denied_scenarios | array | [] | Scenarios that indicate spam/unwanted calls |
allowed_scenarios | array | [] | Scenarios that whitelist legitimate calls |
max_evaluations_per_call | integer | 5 | Maximum evaluations per call (cost control) |
min_evaluations | integer | 2 | Minimum evaluations before final verdict |
min_confidence | float | 0.75 | Required confidence threshold (0-1) |
min_call_duration_before_termination | integer | 15 | Grace period in seconds |
min_transcript_length | integer | 50 | Minimum transcript characters to evaluate |
min_transcript_turns | integer | 1 | Minimum caller turns before evaluation |
Scenario Configuration
Denied Scenarios
Define what constitutes spam for your business. Be specific and descriptive:Common Denied Scenarios
Common Denied Scenarios
Telemarketing & Sales
- “caller is trying to sell insurance products”
- “caller is offering credit card services”
- “caller is promoting investment opportunities”
- “caller is selling extended warranties”
- “caller is conducting a survey”
- “caller is doing market research”
- “caller is collecting opinions for a study”
- “caller refuses to identify themselves”
- “caller provides false or inconsistent information”
- “caller is asking for sensitive personal information”
- “caller claims to be from a government agency demanding immediate payment”
- “caller appears to be a robocall”
- “caller is playing pre-recorded messages”
- “call has long silences followed by scripted speech”
- “caller is using profanity or abusive language”
- “caller is making threats”
- “caller is harassing the assistant”
Allowed Scenarios
Whitelist legitimate call patterns to prevent false positives:Common Allowed Scenarios
Common Allowed Scenarios
Customer Identification
- “caller provides a valid order number”
- “caller mentions a valid account number”
- “caller references a recent transaction”
- “caller knows their service agreement details”
- “caller is returning a call from our company”
- “caller received a voicemail from us”
- “caller has a scheduled callback appointment”
- “caller mentions a specific employee by name”
- “caller is a known vendor or partner”
- “caller references an active contract or agreement”
- “caller is responding to an appointment reminder”
- “caller mentions the specific promotion they’re calling about”
- “caller provides the reference number from their email”
Start with a small set of clear scenarios and expand based on real spam patterns you observe. Over-broad scenarios may cause false positives.
Verdict Aggregation
The system requires multiple consistent evaluations before taking action:Requirements for Final Verdict
- Minimum Evaluations: At least
min_evaluations(default: 2) must be completed - Confidence Threshold: Average confidence must exceed
min_confidence(default: 0.75) - Consistency: Evaluations must be consistent (not flip-flopping)
- Transcript Quality: Sufficient transcript content to make a judgment
Example Aggregation
| Evaluation | Is Spam | Confidence | Scenario |
|---|---|---|---|
| 1 | Yes | 0.85 | ”selling insurance” |
| 2 | Yes | 0.82 | ”selling insurance” |
| Final | Yes | 0.835 | ”selling insurance” |
Safety Features
Grace Period
Grace Period
No call can be terminated within the first
min_call_duration_before_termination seconds (default: 15).This prevents premature termination from:- Misunderstood greetings
- Brief initial silences
- Caller gathering their thoughts
Non-Blocking Evaluation
Non-Blocking Evaluation
Spam evaluation runs asynchronously and never blocks conversation flow:
- Transcript is evaluated in background
- AI continues responding normally during evaluation
- No latency added to conversation
- If evaluation is slow, conversation proceeds unaffected
Fail-Open Design
Fail-Open Design
If any error occurs during spam detection:
- The call continues normally
- Error is logged for debugging
- No false terminations from system issues
Evaluation Limits
Evaluation Limits
The
max_evaluations_per_call parameter caps total evaluations to:- Control LLM costs
- Prevent infinite evaluation loops
- Once limit reached, no further evaluations occur
Call Termination
When spam is confirmed:- Verdict Persisted: The spam detection result is saved to the call record
- Termination Event Published: A Redis pub/sub event signals call termination
- Call Ends: The call is terminated with a configurable message
- Analytics Updated: Call is marked as spam in analytics
Termination Data
The call record includes:Best Practices
Start Conservative
Start Conservative
Begin with obvious spam scenarios and high confidence thresholds:Monitor for false positives before loosening thresholds.
Use Specific Scenarios
Use Specific Scenarios
Good: “caller is trying to sell life insurance or annuities”Bad: “caller is being annoying”Specific scenarios lead to more accurate detection and fewer false positives.
Balance Allowed Scenarios
Balance Allowed Scenarios
If you see legitimate calls being flagged:
- Review the call transcript
- Identify the pattern that makes it legitimate
- Add a corresponding allowed scenario
Monitor and Iterate
Monitor and Iterate
Review spam-flagged calls regularly:
- Check for false positives
- Identify new spam patterns to add
- Adjust confidence thresholds based on results
- Use call analytics to track spam rates over time
Example Configurations
- Customer Service
- Sales Line
- High Security
Troubleshooting
Legitimate Calls Being Flagged
Legitimate Calls Being Flagged
- Review the flagged call’s transcript
- Check which scenario was matched
- Add an allowed scenario to whitelist the pattern
- Consider increasing
min_confidencethreshold
Spam Calls Not Being Detected
Spam Calls Not Being Detected
- Verify spam detection is enabled for the assistant
- Check if your denied scenarios are specific enough
- Lower
min_confidenceif verdicts aren’t reaching threshold - Review the transcript—does it clearly match a denied scenario?
Too Many Evaluations
Too Many Evaluations
If you’re seeing high LLM costs from spam detection:
- Reduce
max_evaluations_per_call - Increase
min_transcript_lengthto skip short transcripts - Increase
min_transcript_turnsto require more conversation
Spam detection results are included in call webhooks, allowing you to build custom analytics and alerting systems.