Lead Scorer (Preview)
Score leads into a CALL/NURTURE/VERIFY queue with money at risk.
This connector is available in the following products and regions:
| Service | Class | Regions |
|---|---|---|
| Copilot Studio | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Logic Apps | Standard | All Logic Apps regions except the following: - Azure Government regions - Azure China regions - US Department of Defense (DoD) |
| Power Apps | Premium | All Power Apps regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Power Automate | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Contact | |
|---|---|
| Name | Saifs AI |
| URL | https://saifs.ai/ |
| taher@saifytech.com |
| Connector Metadata | |
|---|---|
| Publisher | Saifs AI |
| Website | https://saifs.ai/ |
| Privacy Policy | https://saifs.ai/privacy_policy/lead-scorer |
| Categories | AI;Data |
Lead Scorer - Saifs AI
Lead Scorer - Saifs AI is a Model Context Protocol (MCP) server that scores an open sales pipeline from raw lead records (plus optional touch and stage-history logs) into actionable conversion probabilities, money-at-risk figures, multi-touch channel credit, and a ranked daily call queue.
Sales managers and makers get plain-language who to contact today cards (CALL / NURTURE / VERIFY), pipeline exposure with a confidence range, and a ready-to-send daily list — without needing to build scoring models themselves.
This MCP is documented for Microsoft MCP server certification.
Publisher: Saifs AI
Website: https://saifs.ai
Sign up / Get started: https://saifs.ai
Contact us / Help: https://saifs.ai/contact-us
Privacy: https://saifs.ai/privacy_policy/lead-scorer
Terms: https://saifs.ai/eula
Authentication: OAuth 2.0
Who can use it
This MCP is built for people who decide which leads to work today and how much pipeline is at risk — not for writing a statistics report.
| Role | How they use it |
|---|---|
| Sales executives / VPs of Sales | See how much open pipeline is stalling, with a money range, before the weekly forecast review. |
| Sales managers / team leads | Get a ranked “call today” list so reps work the deals that would hurt most if they go cold. |
| SDRs / BDRs / inside sales | Follow a daily CALL / NURTURE / VERIFY queue instead of scrolling CRM by recency or gut. |
| Account executives | Advance active opportunities that still have contact value, and rescue silent late-stage deals. |
| RevOps / sales ops | Score CRM or spreadsheet exports into a consistent queue, exposure headline, and data-quality notes. |
| Marketing / demand-gen leads | See which channels get relative credit on closed deals (when touch logs are provided) — a shopping-pattern style signal, not a causal ROI proof. |
| CRM / Salesforce / HubSpot admins | Connect Copilot agents to lead, activity, and stage exports so makers do not have to hand-build scoring formulas. |
| Copilot Studio / Microsoft 365 Copilot makers | Add lead-scoring tools to an agent so end users can ask “who should we call today?” from a CSV or CRM dump. |
Best fit: B2B and mid-market teams that keep a lead/opportunity book (CRM, Excel, or CSV) and need a daily contact list ranked by money at stake.
Industries: software and services, agencies, distributors with a named sales funnel, professional services, and any team with open leads plus (ideally) activity and stage history.
Not required: a data-science team, a custom scoring model, or an enterprise attribution suite. A lead export with lead_id and created_date is enough to start; touches and stage history make the queue and money figures sharper.
How it is useful
Most teams still work the pipeline from last-touch date, stage name, or deal size alone. That misses silent late-stage deals (high money at risk) and over-works noisy early leads. Lead Scorer - Saifs AI turns the book into explained, money-ranked actions:
- Who to call today — stalling leads ranked by pipeline at risk (
CALL). - Who to push forward — active leads where one contact is still worth something (
NURTURE/PUSH FORWARD). - Who to qualify first — thin-history leads that need a human check (
VERIFY/QUALIFY). - How much is at stake — expected pipeline value and value at risk, shown as ranges with confidence — never a bare point estimate alone.
- What the funnel looks like — stage outlook from stage history when you have it; otherwise observed win rates by stage.
- Which channels appear together on won deals — relative multi-touch credit when activity logs are dense enough.
Honesty is built in: thin books refuse the heavier models with a stated reason and still return a usable engagement / stage-rate queue rather than inventing precision.
Use cases
1. Monday morning call list
Who: Sales manager or SDR lead.
How: Connect the MCP, paste or upload this week’s open-lead export (and activity log if you have it), then ask “Who should the team call today?”
Outcome: A ranked CALL / NURTURE / VERIFY queue plus a plain-language summary you can drop into Teams, Slack, or a stand-up.
2. Rescue stalling pipeline
Who: VP Sales or sales manager before forecast.
How: Score the open book with a cold-silence window (default 21 days).
Outcome: Pipeline-at-risk headline with a confidence range, plus alerts for silent late-stage deals so you call the ones that would hurt most if they go cold.
3. Daily SDR / BDR queue from CRM
Who: SDR team using Salesforce, HubSpot, or Dynamics exports.
How: Export leads (lead_id, created_date, stage, deal size) and optional activities; ask the agent to score the file.
Outcome: Reps work a money-ranked list instead of oldest-first or round-robin only.
4. Advance warm opportunities (nurture, don’t just dial)
Who: Account executives.
How: Include recent touches so engagement and contact value can be estimated.
Outcome: NURTURE items ranked by value of contact — next step / proposal on deals that are still moving, not only the silent ones.
5. Qualify thin or unverified leads
Who: RevOps and SDRs.
How: Score a mixed book that includes records with little or no activity.
Outcome: Low-confidence leads land in VERIFY / QUALIFY so the team confirms they are real before treating scores as sure.
6. Manager briefing without model jargon
Who: Sales executives.
How: Ask for “today’s decisions” after scoring.
Outcome: decisions cards (CALL TODAY / PUSH FORWARD / QUALIFY) that name the lead, the money, the days of silence, and how sure we are — no survival-model vocabulary.
7. Channel mix conversation (when you have touches)
Who: Marketing and sales ops together.
How: Send a touch log (lead_id, date, channel) plus enough closed leads.
Outcome: Relative channel credit on conversions for a budget / mix discussion. Treat it as an observational pattern (“these channels show up on won deals”), not proof that one channel caused the win.
8. Funnel health from stage history
Who: RevOps.
How: Include stage-change history (lead_id, date, stage).
Outcome: A clearer view of how leads move Lead → MQL → SQL → Opportunity → Won/Lost, instead of a single snapshot stage.
9. Currency-local reporting (INR, USD, and others)
Who: Regional sales leaders.
How: Pass currency (and optional currency_symbol).
Outcome: Display-formatted money (for example ₹ with Indian grouping). Amounts are not FX-converted — send values already in the currency you want reported.
10. Large CRM dumps (sandbox path)
Who: RevOps with more than 500 lead rows.
How: Call lead_pipeline_get_engine with the file path; save and run the returned script as given.
Outcome: The same scoring stack without sending thousands of rows through the agent as tool arguments.
Prerequisites
- Access to Microsoft Copilot Studio, Microsoft 365 Copilot, Azure Foundry, or another host that can call this MCP server
- Permission to create agents and add MCP tools
- A Saifs AI account authorized for Lead Scorer - Saifs AI
- Ability to complete OAuth 2.0 sign-in when connecting the MCP server
- A lead export with at least:
lead_id(unique identifier)created_date(when the lead entered the funnel)
- Optional but recommended:
stage(Lead,MQL,SQL,Opportunity,Won,Lost)status(open/won/lost)closed_datefor won/lost rowsdeal_size(estimated value; missing values are imputed from the book median and flagged)source(acquisition channel, for reporting)- Touches:
lead_id,date, optionalchannel(email, demo, webinar, call, …) - Stage history:
lead_id,date,stage
- For pipelines larger than 500 lead rows: a code sandbox with network access to run the script returned by
lead_pipeline_get_engine
Useful defaults if you do not set them: conversion horizon 90 days; cold silence 21 days; call queue length 10; currency USD.
Supported Operations
lead_pipeline
Scores an open sales pipeline of 500 lead rows or fewer. Send the rows directly; the server returns the full result, including the per-lead ledger, manager decisions, pipeline exposure, and daily call queue.
Use when the user asks who to call, how much pipeline is at risk, conversion outlook, a daily SDR queue, or to score a CRM/CSV dump of 500 leads or fewer.
Do not use when there are more than 500 leads — call lead_pipeline_get_engine instead.
Required parameters
| Parameter | Type | Description |
|---|---|---|
leads |
array | Raw lead rows. Each item needs lead_id and created_date. |
Optional parameters
| Parameter | Type | Description |
|---|---|---|
touches |
array | Activity log (lead_id, date, optional channel). Improves engagement, contact-value learning, and channel credit. |
stage_history |
array | Stage-change log (lead_id, date, stage). Enables a real funnel model; otherwise empirical win rates by stage are used. |
as_of |
string | Analysis / “today” date (YYYY-MM-DD). Defaults to the latest date in the data. |
horizon_days |
integer | Window for conversion outlook (default 90). |
currency |
string | ISO code for money display (default USD). No FX conversion. |
cold_threshold_days |
integer | Days of silence after which a lead counts as going cold (default 21). |
call_queue_size |
integer | Max length of the daily call queue (default 10). |
include_diagnostics |
boolean | If true, include extra model-fit diagnostics (default false). |
What you get back (conceptually)
- Ranked manager
decisions(CALL TODAY/PUSH FORWARD/QUALIFY) - Pipeline exposure: open pipeline value and pipeline at risk, with a confidence range
- Per-lead ledger: engagement label (Hot / Warming / Cold / …), conversion outlook, money figures, short “why” traces
- Daily
call_queue(CALL/NURTURE/VERIFY) plus a ready-to-senddelivery_text - Data-quality notes (dropped rows, imputed deal sizes, thin-history warnings)
- Optional channel credit when touches and enough closed leads are present
lead_pipeline_get_engine
For pipelines larger than 500 lead rows. Returns a complete, runnable Python script that loads the lead export in your sandbox and scores it. Rows never pass through the agent as tokens. Save and run the returned script verbatim.
Required parameters
| Parameter | Type | Description |
|---|---|---|
file_path |
string | Path to the lead export (CSV / TSV / JSON) inside the sandbox. |
Optional parameters
| Parameter | Type | Description |
|---|---|---|
touches_path |
string | Path to a touch / activity log. |
stage_history_path |
string | Path to stage-change history. |
currency |
string | ISO currency code for display (default USD). |
as_of |
string | Analysis date YYYY-MM-DD. |
How to run the returned script
- Save the script exactly as given (do not retype, shorten, or reimplement the scoring).
- Point PATH / currency / date lines at the user’s files if needed.
- Run it in a sandbox with network access to the scoring service.
- Read the printed decisions and headline figures; use the full result JSON for the ledger and queue.
Obtaining Credentials
Lead Scorer - Saifs AI uses OAuth 2.0.
Administrators and makers do not create API keys manually. When you create a new connection in Copilot Studio, you are redirected to Saifs AI to sign in. After successful login, the connection is created and the agent can call MCP tools under that account.
For makers connecting the MCP in Copilot Studio
- Sign in or create an account at https://saifs.ai.
- In Copilot Studio, add Lead Scorer - Saifs AI and start Create New Connection.
- Complete OAuth 2.0 sign-in and approve access when prompted.
- Confirm the connection succeeds (
lead_pipelineandlead_pipeline_get_engineare listed and callable).
During authentication, Saifs AI validates an OAuth access token (and associated account identity) server-side to authorize MCP tool calls. Tokens are used for the authenticated session. See the Saifs AI Privacy Policy.
For publishers / Microsoft validation (Azure Key Vault)
Certification submissions configure OAuth 2.0 via Azure Key Vault (authorization.type = AzureKeyVault). Store secrets with exact names (case-sensitive):
| Secret name | Required for OAuth 2.0 | Purpose |
|---|---|---|
ClientId |
Yes | OAuth client / application ID |
ClientSecret |
Yes | OAuth client secret |
AuthorizationUrl |
Yes | Authorization endpoint |
TokenUrl |
Yes | Token endpoint |
RefreshUrl |
If refresh tokens are used | Refresh endpoint |
Scopes |
If scopes are required | Space-separated scopes |
Grant the Microsoft certification service principal 8e91e74f-afe9-41cd-8c3f-17a9562a74ea Key Vault Secrets User (or equivalent read access). Set authorization.referenceId in the MCP manifest to the Key Vault URI, not a secret URI.
"authorization": {
"type": "AzureKeyVault",
"referenceId": "https://saifs-mcp-kv.vault.azure.net/"
}
For Key Vault setup details, see Microsoft MCP server certification — How can I set up the Key Vault?.
Getting Started
Flow for administrators
- Click New Agent.
- In the right-hand side menu, click Tools.
- Click Model Context Protocol (MCP).
- Select Lead Scorer - Saifs AI.
- Click not Connected, then click Create New Connection.
- Complete Saifs AI OAuth 2.0 sign-in when prompted.
- After login, the connection is created successfully.
Example: create a Daily Call Queue agent
- Name your agent, for example Daily Call Queue.
- Add instructions such as:
You help sales managers decide who to contact today.
When the user provides a lead export (lead_id, created_date; optional stage, status, deal_size, touches, stage_history):
- If there are 500 lead rows or fewer, call lead_pipeline with the rows.
- If there are more than 500 leads, call lead_pipeline_get_engine and run the returned script verbatim against the file.
Always lead with ranked CALL / NURTURE / VERIFY (or CALL TODAY / PUSH FORWARD / QUALIFY) actions and money impact in the user's currency.
Explain in plain language. Do not invent rupee or dollar figures the tools did not return.
If history is thin, say so and treat VERIFY items as qualification — do not auto-act on low-confidence leads.
- Click Preview and test with a small lead CSV (include a few won/lost rows and some activity if you can).
- Click Publish.
Quick verification after connecting
- Score a small book with
lead_pipeline(include some open leads and, if possible, closed leads plus touches). - Confirm the response includes
decisions, pipeline exposure, a per-lead ledger, and acall_queue. - For a larger file, call
lead_pipeline_get_engine, save and run the returned script as given, and confirm the result file is written.
Example questions after connecting
- “Who should we call today from this lead export?”
- “How much pipeline is stalling, and which deals are going cold?”
- “Build a 10-person SDR queue in INR.”
- “Which channels show up on won deals in this touch log?”
Known Issues and Limitations
- Active account required. An active Saifs AI account with access to Lead Scorer is required. Tools cannot be called until OAuth 2.0 sign-in completes successfully on the connection.
- Minimum data for the heavier models. By default, conversion-timing and channel-credit layers need enough closed history (typically about 30 closed leads and about 8 wins). Below that, those layers refuse with a stated reason; scoring continues with engagement and stage-rate fallbacks.
- Row-path size limit.
lead_pipelineaccepts 500 lead rows or fewer. Larger books must uselead_pipeline_get_engine. - Touches and stage history are optional but material. Without touches, engagement, learned contact value, and channel credit are weak or skipped. Without stage history, funnel outlook uses observed win rates by stage, not a full transition model.
- Contact value can be assumed, not learned. Learned uplift needs enough touched and untouched closed leads in a stage. Otherwise a default contact-effectiveness assumption is used and labelled as such.
- Observational, not a lab experiment. Touched-vs-untouched comparisons and channel credit are patterns in your history, not randomized proof that a call or a channel “caused” the win. If reps already work the best leads, measured contact value can look too high.
- Open leads are “not yet,” not “never.” Open records stay in play until
as_of; lost records leave without converting. Do not treat a single conversion probability as a quota or commission number without your own holdout / backtest. - Low-confidence leads are not auto-called. Records with no touches or an unavailable conversion model are flagged low confidence: they may appear as
VERIFY, notCALL/NURTURE. - Currency is a display label. Passing INR or USD does not convert amounts. Send deal sizes already in the currency you want reported.
- Invalid rows are dropped, not invented. Missing
lead_idorcreated_date, unparseable dates, duplicate ids (first wins), and negative/non-finite deal sizes are cleaned and counted in the data-quality report. - No CRM write-back in this version. The MCP scores and explains; it does not update Salesforce, HubSpot, or Dataverse by itself.
- Personal data. Lead names, ids, and activity can be personal data under applicable privacy law (including India’s DPDP). Use only data you are authorized to process.
- ASCII in package headers. Per Microsoft certification guidance, use ASCII-only header names and values in manifest and tool definition files to avoid validation failures.
- OAuth session required. Tools will not run until OAuth 2.0 connection succeeds; expired tokens may require the user to reconnect.
Frequently Asked Questions
How do I connect the MCP?
Follow Flow for administrators under Getting Started: New Agent → Tools → Model Context Protocol (MCP) → select Lead Scorer - Saifs AI → Create New Connection → complete Saifs AI OAuth 2.0 sign-in.
What columns do I need?
At minimum: lead_id and created_date. Stronger results need stage, status, deal size, a touch log, and stage history. Dates may be YYYY-MM-DD or common day/month/year variants.
Which tool should I use?
- 500 leads or fewer:
lead_pipeline(send rows in the tool call). - More than 500 leads:
lead_pipeline_get_engine(run the returned script locally).
What is the CALL / NURTURE / VERIFY queue?
A short, money-ranked daily list:
- CALL — stalling deals (silent at least
cold_threshold_days) ranked by value at risk - NURTURE — active deals ranked by value of one more contact
- VERIFY — thin-history / low-confidence records that need a human check
Manager cards use the same idea as CALL TODAY / PUSH FORWARD / QUALIFY.
Why do money figures show ranges?
Every currency figure is returned with a range (and pipeline totals with a bootstrap-style band), not only a single point. That is intentional so managers can trust the number when reality lands inside the range.
Can I use Salesforce, HubSpot, or Excel exports?
Yes. Any export with lead ids and created dates works. Map activities to touches and stage changes to stage_history when you can. The MCP does not write back to the CRM.
Is channel credit the same as marketing ROI?
No. When touches and enough closed leads exist, you get relative multi-touch credit. Use it as a mix signal in a marketing conversation, not as proof that a channel caused revenue.
Who do I contact for support?
Use https://saifs.ai/contact-us. Include your Copilot Studio environment, connection errors (if any), and whether you used lead_pipeline or lead_pipeline_get_engine.
Deployment Instructions
In Microsoft Copilot Studio (certified / published path)
- Open Copilot Studio and create or edit an agent.
- Add tools / MCP servers and select Lead Scorer - Saifs AI from the certified catalog (after Microsoft publication).
- Complete OAuth 2.0 consent with a Saifs AI account that has Lead Scorer access.
- Test
lead_pipelinewith a small sample (≤500 leads) before production prompts. - Document for makers which exports to attach (leads, optional touches, optional stage history).
Package contents for Microsoft certification
Prepare the MCP package per Microsoft MCP server certification (preview), including:
- Manifest (MCP server definition, metadata, icons, Azure Key Vault authorization reference)
- Tool definition file (
lead_scoring_mcptools.json) describinglead_pipelineandlead_pipeline_get_engine - This
intro.md(public documentation) - Icons and branding assets that follow Microsoft 365 / Teams package icon guidance
- Support, privacy, and terms URLs
- OAuth 2.0 Key Vault secrets for validation (
ClientId,ClientSecret,AuthorizationUrl,TokenUrl, and optionalRefreshUrl/Scopes)
Submit through Partner Center using the Apps and Agents for M365 and Copilot offer type. Keep the live implementation aligned with the certified package; resubmit when adding tools or making significant behavior or metadata changes.
Support
- Product: Lead Scorer - Saifs AI
- Publisher: Saifs AI
- Website: https://saifs.ai
- Sign up / Get started: https://saifs.ai
- Contact us / Help: https://saifs.ai/contact-us
- Privacy: https://saifs.ai/privacy_policy/lead-scorer
- Terms: https://saifs.ai/eula
- MCP endpoint (reference):
https://lead-scoring-mcp.saifs.ai/mcp
Actions
| Lead Scorer |
Score leads into a CALL/NURTURE/VERIFY queue with money at risk. |
Lead Scorer
Score leads into a CALL/NURTURE/VERIFY queue with money at risk.