Mark leads
Bulk qualify/disqualify lead-group members in ONE call - writes the same global qualification_status as mark_person, plus the reason.
Tool: mark_leads
Status changes never stop running sequences (only do_not_contact does); overriding an earlier verdict is allowed and flagged in signals. NOT for: one ad-hoc lead outside a group → mark_person / mark_company.
Parameters
| Param | Type | Required | Description |
|---|---|---|---|
lead_group_id | string (slug or UUID) | yes | Targeting scope - ids must be members of this group. |
person_ids | array of strings | no | Person slugs from get_lead_group rows. |
company_ids | array of strings | no | Company slugs - pass either or both lists (at least one id total). |
status | string | no | new | qualified | disqualified | customer - the lead's one global qualification_status (same field mark_person writes); new resets a prior verdict. |
reason | string | no | Required when disqualifying - one short phrase (e.g. 'too small'); stored on the lead as qualification_reason, cleared on the next status change. |
do_not_contact | boolean | no | Global compliance flag: stops active enrollments and blocks all sends (companies cascade to their people). |
Bulk by design - one call for N members; non-members land in
skipped_not_memberinstead of failing the batch.Status changes never stop running sequences - only
do_not_contactdoes; a signal warns when marked leads are mid-sequence.Overriding an earlier verdict (e.g. disqualified → qualified) is allowed and reported in
signalswith the previous status and reason.Disqualified leads leave every group's
remaining(enrollable) pool; the verdict is appended to the group'sstepsas amarkentry (counts + reason, no id lists).
Sample request — qualify
{
"lead_group_id": "ceo-prospects-0010",
"person_ids": [
"dana-white-0015"
],
"status": "qualified"
}Sample request — disqualify with reason
{
"lead_group_id": "ceo-prospects-0010",
"person_ids": [
"dana-white-0015"
],
"status": "disqualified",
"reason": "too small"
}List lead groups
List lead groups, optionally filtered by status.
Resolve industry
Turn a natural industry/market phrase ('AI companies', 'data annotation', 'sports software') into exact validated filter values: ranked plans, each with a LinkedIn industry base plus (tech segments only) precise Crunchbase category tags, ready to paste into search_companies.