Lead quality

Counts the people who left a contact you can actually use

Free agent skill for Claude Code, Codex, Cursor and Gemini CLI. It works through the SurveyNinja MCP server, with your permissions.

Category
Deliver responses
Tags
leads, data quality, funnel
Works with
Claude Code, Codex, Cursor, Gemini CLI
MCP tools
8, all read only
Version
1.1, October 20, 2026
Made by
SurveyNinja
Price
Free
Skill file
SKILL.md

What it does

  • Leads instead of completions. The headline number is the share of people who left a usable contact out of everyone who started.
  • You see where people change their mind. The gap between the question before the contact and the contact itself is the people who got there and left.
  • Contacts stay out of the chat. The skill counts and checks contacts but does not paste them into the conversation. They belong in an export, Google Sheets, Zapier or a webhook.

Example

You type

How many usable leads did this survey collect?

What the assistant brings back

512
Started
243
Reached the contact47%
186
Left a contact
164
Usable32% of those who started
  • Newsletter 38% usable
  • LinkedIn post 31%
  • Website banner 19%
  • No label 24%
Leads are lost at the moment you ask for the contact

57 people reached the email field and left it empty. One line explaining why you need the address usually lifts that share more than any design change.

The numbers above are an example. The real count runs on your responses and your link labels.

How it works

  1. Puts the right number firstThe share of people who left a usable contact, out of everyone who started. Completion can be high while leads are almost absent.
  2. Finds where people changed their mindIt compares the question before the contact with the contact itself. The gap shows how many got that far and still closed the tab.
  3. Filters out what you cannot useBroken emails, test@test.com, phone numbers with too few or too many digits, one-letter names and duplicates are counted apart. A lead you cannot reach does not go into the total.
  4. Splits leads by channelIf the link carried source labels, you see where leads are more numerous and where they are better. Quite often those are different channels.

Try also

  • Check the quality of our leads and tell me where we lose them
  • Which channel brings better leads?

What it will not do

  • Do not count a submission without a contact as a lead
  • Do not paste contacts into the chat
  • Do not advise removing every required field
  • Do not suggest a plan upgrade or lead to payment

The skill works with your permissions. Tools that change data are marked, so you check what the assistant is about to do before you confirm. To cut access, remove the connector in the assistant or delete the API key.

In short

What does the skill count as a lead?

A submission with a usable contact. A submission without a contact is not a lead, and neither is one with a broken email or a phone number that cannot exist.

Why not the completion rate?

When a survey works as a lead form, what matters is how many people you can contact afterwards. The headline number is the share with a usable contact out of everyone who started.

What counts as an unusable contact?

Emails with a broken format, placeholder addresses such as test@test.com, typos like gmial.com, phone numbers with fewer than 7 or more than 15 digits, one-letter names. The skill counts them separately and merges duplicates.

Can I compare channels?

Yes, if the link was shared with labels such as utm_source. Each response carries its labels, so the skill splits leads by label and says where they are better in substance, not only in number.

Will it change my survey or show contacts in the chat?

No. The skill only reads the survey and its responses. It suggests changes, such as asking for the contact later or opening the phone question to every country, and contacts stay in your exports and integrations.

What do I need to use it?

A SurveyNinja account and an assistant that supports MCP and loads skills from a folder, such as Claude Code, Codex, Cursor or Gemini CLI. The MCP server works on every plan, the free one included. You connect with "Allow access" in the assistant or with your own API key.

The full skill

The SKILL.md file the assistant reads, exactly as it is in the archive.

Show the full text

Counting usable leads

When a survey works as a lead form, the completion rate says little. What matters is how many people left a contact the team can actually reach.

Reply to the person in the language they write in.

Collect

get_quiz_structure: find the contact questions (types phone, email, and fio for the name) and the question right before the first of them.

get_quiz_summary: how many finished (filled_completely) and how many started but left (started_not_finished). get_quiz_report counts the answers to each question, but only among completed responses.

get_quiz_answers with is_complete false: the unfinished responses, paged with limit and offset. They show who reached the contact question and left without filling it. They are not kept on every plan (incomplete_answers in get_workspace_tariff, with the workspace_id from get_workspace_list), and without them is_complete false returns completed responses instead: check the is_complete field. Then say that the drop-off before the contact cannot be measured.

get_quiz_report_inputs: the values entered in the contact questions, to check whether they are usable. It needs report_uuid from get_quiz_report and the question's widget_id and widget_hash from get_quiz_structure, and returns 50 rows at a time: page with offset. Reading the completed responses with get_quiz_answers page by page works too.

Link labels such as utm_source, if the link was shared per channel: each response from get_quiz_answers carries them in extra_fields, and get_quiz_variables lists the label names set up for the survey. Count leads per label from the responses.

Compute

  1. Share with a usable contact out of everyone who started. This is the headline number. Completion can be high while leads are few.
  2. Where people drop off. Among the unfinished responses, count those that answered the question before the contact but not the contact itself. They are the people who got there and changed their mind.
  3. Contact usability. Count separately:

    • emails with a broken format, placeholder addresses (test@test.com, a@a.com, anything at example.com) and typos in big mail domains (gmial.com, hotmial.com);
    • phone numbers that cannot exist: fewer than 7 or more than 15 digits (the international maximum), one digit repeated, runs like 123456789;
    • one-letter names and keyboard mash.

    A lead with a dead email or phone does not count as a lead.

  4. Duplicates. The same email or phone several times is one lead.
  5. By channel, if labels exist: leads and the usable share per label.

What usually gets in the way

  • The contact is asked too early, before the person sees what they get. Move it closer to the end.
  • Too much is asked. Email, phone and city at once: every extra field costs leads. Ask for the one channel the team really uses.
  • No reason given. One line such as "we will call to agree on a time" usually lifts the share more than any design change.
  • A phone question locked to one country. When respondents come from several countries, a single default country with the selector hidden turns the others away. Suggest country auto-detection or showing the selector in the phone question settings.
  • A required contact in an otherwise optional survey: people leave without answering anything.

How to present

Numbers first: started, reached the contact question, left a contact, usable, and usable as a share of those who started. Then where people drop off and what to change, ordered by payoff.

With channels, a table plus a conclusion about which channel brings better leads in substance, since the biggest channel is often not the best one.

What not to do

  • Do not count a submission without a contact as a lead.
  • Do not paste contacts into the chat: they belong in an export or in the connected Google Sheets, Zapier or webhook.
  • Do not advise removing every required field: a lead without a contact is useless.
  • Do not suggest a plan upgrade or lead to payment. If a limit is hit, state the fact and stop.
The SurveyNinja ninja on a rocket

Connect SurveyNinja to your assistant

The MCP server works on every plan, Free included. Sign up, allow access and ask your assistant to build the first survey.