Skip to main content
Each tool below is one switch in Settings → MCP Server. Your AI app sees a tool only when it is switched on for your role; every call is checked again on the server.
CRM tools need the CRM in your institute’s plan. Each person sees only the leads their admin portal shows them. Anything that changes a lead, calls or messages someone shows you a preview first and waits for your yes — see Confirmations.

crm_leads

CRM leads: view · Read only Find leads by name, phone or email and see each lead’s details, status, owner, follow-ups, calls and timeline, a counsellor’s day plan, and the statuses, lists and counsellors the CRM uses. Each user sees only the leads they see on the dashboard; lists show phone numbers and emails masked, and a bulk export comes as a private download link.
string
required
The action to run: find, list, get, timeline, my_day, check_exists, catalog, automations, export.
string
find: a name, phone number or email (2+ characters).
string
get / timeline / automations: a lead_id from find, list or my_day.
string
get / timeline / automations: a person’s id; their newest lead you can see is used.
string
get / check_exists: the lead’s phone number.
string
get / check_exists: the lead’s email.
string
check_exists: the full name (only where allowed).
object
list / export: which leads. All keys optional and combined with AND. Opted-out and deleted leads are never included.
integer
find / list / my_day / timeline: rows (default 20, max 50).
integer
list: rows to skip (next_offset from the last page).
string
timeline: next_before from the previous page.

crm_lead_activity

CRM leads: log activity and follow-ups · Makes changes · Adds to live records — what it adds is visible straight away. · Turned on separately (opt-in) Let the connected AI app log calls, visits and notes on a lead and schedule, move or complete follow-ups — for example after a counsellor says “spoke to her, call back Friday 5 pm”. Adds to the lead’s history and never removes anything. Follow-ups can trigger your follow-up automations. Turned on separately.
What keeps it safe: live additive, the admin’s explicit choice: adds notes / logged interactions to one lead at a time as timeline activity and schedules or moves follow-ups; never edits or deletes earlier activity; every lead, call and follow-up id is verified to belong to this institute and the caller’s lead scope; completing a follow-up, and a status change that would fire an automation, apply only with the confirm_token of a preview of the identical request
string
required
The action to run: log_interaction, add_note, schedule_followup, reschedule_followup, complete_followup.
string
The lead (lead_id from crm_leads find / list / get).
string
Instead of lead_id: the lead’s phone number (last 10 digits match).
string
Instead of lead_id: the lead’s email.
string
What happened (default NOTE; CALL with call_id). One of: CALL, WHATSAPP, MEETING, NOTE, VISIT, EMAIL.
string
What happened / the note, in the user’s words.
string
log_interaction: a short outcome, e.g. ‘Interested’, ‘No answer’.
string
log_interaction: new lead status (key or label).
object
{form question (field key or label): answer} for the lead’s list, e.g. {“Course interested in”: “NEET”}.
string
log_interaction: the call this is about (crm_calls).
string
log_interaction: the call’s outcome key (needs call_id).
string
log_interaction / complete_followup: when to follow up next.
string
What the next follow-up is for.
string
schedule_followup / reschedule_followup: when.
string
reschedule_followup / complete_followup: the follow-up.
string
Follow-up field (an option from crm_leads catalog).
string
Follow-up field (an option from crm_leads catalog).
string
Follow-up field (an option from crm_leads catalog).
string
The confirm_token a preview returned (second call only).

crm_lead_edit

CRM leads: edit status, tier, details and tags · Makes changes · Changes live data — the change applies straight away. · Turned on separately (opt-in) Let the connected AI app change leads’ status, tier, details and tags, one lead or up to 500 at a time. It always shows you each change first and applies it only after you confirm. Status changes can trigger your automations. Turned on separately.
What keeps it safe: confirm-gated live edit, the admin’s explicit choice: changes the status, tier, details or tags of leads in the caller’s lead scope (at most 500 per call); never deletes a lead; every write needs the confirm_token of a preview that showed each before → after, signed over the resolved leads and their current state (single-use for more than one lead), so a changed lead or target list is refused
string
required
The action to run: set_status, set_tier, update_details, tag, untag.
string
The lead (lead_id from crm_leads find / list / get).
string
Instead of lead_id: the lead’s phone number (last 10 digits match).
string
Instead of lead_id: the lead’s email.
string[]
Leads to change (≤500).
object
Instead of lead_ids: the crm_leads list filter {status_keys, exclude_status_keys, tier, owner: me | <counsellor_id> | unassigned, list_ids, source, min_score, max_score, submitted_from, submitted_to, last_activity_before, sla: overdue | due_soon, never_called, has_open_followup, converted: exclude | only}; at most 500 leads (opted-out leads are left out).
string
set_status: the new status (key or label).
boolean
set_status: only the given leads, not the person’s other lists.
string
set_tier: the tier key.
object
update_details: the person’s own {name?, phone?, email?} — new values.
object
update_details: the guardian contact {name?, phone?, email?} on this lead’s record — new values.
object
{form question (field key or label): answer} for the lead’s list, e.g. {“Course interested in”: “NEET”}.
string[]
tag / untag: existing tag ids.
string
The confirm_token a preview returned (second call only).

crm_lead_intake

CRM leads: add leads · Makes changes · Changes live data — the change applies straight away. · Turned on separately (opt-in) Let the connected AI app add new leads — a walk-in or a phone enquiry, or a short list of up to 100 — to one of your lead lists. It checks first whether the person already is a lead and adds only after you confirm. New leads can trigger your automations. Turned on separately.
What keeps it safe: live additive, confirm-gated: adds leads (one, or up to 100 from a list) to a lead list verified to belong to this institute; looks the person up first and refuses an existing lead or an opted-out person unless the user asks for a re-enquiry; never edits or removes existing leads; every write needs the confirm_token of a preview of the identical request
string
required
The action to run: add_lead, import_leads.
string
The lead list (audience) to add to.
string
add_lead: the lead’s full name.
string
add_lead: phone with country code if not Indian.
string
add_lead: email.
string
One of: MANUAL, WALK_IN, INBOUND_CALL, REFERRAL.
string
Owner: ‘me’ or a counsellor id you can assign to.
string
Starting status (key or label).
object
{form question (field key or label): answer} for the lead’s list, e.g. {“Course interested in”: “NEET”}.
object[]
import_leads: up to 100 rows.
boolean
Add even when the person already is a lead.
string
The confirm_token a preview returned (second call only).

crm_team_edit

CRM leads: assign and route · Makes changes · Changes live data — the change applies straight away. · Turned on separately (opt-in) Let the connected AI app assign or reassign leads between counsellors (for example while someone is on leave) and pause or resume a counsellor’s lead routing. For admins and managers; shows the moves first and applies them only after you confirm. Turned on separately.
What keeps it safe: confirm-gated live edit, admins and managers only: assigns or reassigns leads of this institute (at most 500) to counsellors verified to be in the caller’s assignable set, and pauses / resumes a counsellor’s routing without moving leads; never deletes leads or follow-ups; every write needs the confirm_token of a preview listing each lead’s current → new owner
string
required
The action to run: assign_leads, reassign_from_counsellor, pause_routing, resume_routing.
string[]
assign_leads / reassign_from_counsellor: lead_id values from crm_leads (≤500).
object
assign_leads instead of lead_ids: the crm_leads list filter {status_keys, exclude_status_keys, tier, owner: me|<counsellor_id>|unassigned, list_ids, source, min_score, max_score, submitted_from, submitted_to (YYYY-MM-DD), last_activity_before, sla: overdue|due_soon, never_called, has_open_followup, converted: exclude|only}. Newest 500 matches.
string
single (default when to_counsellor_id is given) | round_robin | unassign (assign_leads only). One of: single, round_robin, unassign.
string
The counsellor who receives the leads.
string[]
assign_leads round_robin: the counsellors to spread over.
string
reassign_from_counsellor: whose leads move.
boolean
reassign_from_counsellor: also stop routing new leads to them (same as pause_routing), in the same change.
string
pause_routing / resume_routing: the counsellor.
string
Second call only: the token the preview returned.