Get the outreach funnel for one campaign: invites sent, invites accepted, messages sent, and replies split into positive / negative / other by sentiment. If the user asks to analyse "LinkedIn reactions" they almost certainly mean the REPLIES people sent — use list_replies for the actual text; this tool only counts them. (Onsa stores no post likes or emoji reactions at all.) LinkedIn and email are merged, as in Onsa's Overview page. These count LEADS, not actions — a lead invited twice counts once — so where a lead was re-invited these read slightly lower than the Overview widget, which counts actions. Say so if the user compares the two. IMPORTANT: invitesSent can EXCEED leadsTotal, and that never means anyone was invited twice — the counters are already de-duplicated by lead. It means a lead who was contacted has since been skipped or deleted: action rows survive that, leadsTotal does not count it. Do not report such a gap as a double invite. Use it to judge which ICP cohort actually earned replies. rates already gives you acceptancePct, replyPct, positivePct and negativePct over the correct denominators — use them rather than doing the arithmetic yourself, and never divide by leadsTotal, which counts every prospect in the cohort including those never contacted. RANK COHORTS ON positivePct, NEVER ON replyPct: a rejection is a reply, so a cohort that provokes people scores high on replyPct while producing nothing. A high replyPct next to a high negativePct means the copy is annoying its audience — say that, do not call it engagement. IMPORTANT LIMIT ON ALL FOUR RATES: they count only replies Onsa has SCORED, so an unscored or still-in-window reply is in none of them and list_replies can legitimately show more replies than these rates imply — quote them as "of the replies Onsa scored", and use list_replies when the question is how many people actually answered. A rate is null when its denominator is 0, meaning nothing was sent, so no rate exists; that is different from the COUNTS above, which are genuinely 0 in that case. Two further caveats worth stating when you report these: the *Scheduled counts are everything queued regardless of date, and sentiment is evaluated once per lead ever, not once per reply. A campaign whose invites were never sent reads as all zeros, which means "not tried yet", not "failed". Counts alone cannot tell the user what to DO: follow this with list_next_steps for the ranked to-do list and list_replies for the words.