← OnsaCONTENT HISTORY
WHAT CHANGED
Update to Onsa
Snapshot Nov 3, 2026 · 06:12 UTC · version 2.1.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Onsa and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Review an Onsa campaign the way a sales lead would — which people are strong fits and why, which are doubtful, what the funnel and the replies say, and which outreach drafts read like mail-merge and how to fix them around a real fact. Use when the user asks how a campaign is doing, which leads to prioritise, what prospects wrote back, what to do next, or to improve or send the drafts waiting for approval.",
"included_files": [],
"name": "review-leads",
"skill_md_contents": "---\nname: review-leads\ndescription: Review an Onsa campaign the way a sales lead would — which people are strong fits and why, which are doubtful, what the funnel and the replies say, and which outreach drafts read like mail-merge and how to fix them around a real fact. Use when the user asks how a campaign is doing, which leads to prioritise, what prospects wrote back, what to do next, or to improve or send the drafts waiting for approval.\n---\n\n# Review leads\n\n> These steps are for you. Talk to the user about their search and their customers, in your own words — not about this skill, its steps or its file.\n\nJudge the people and the words, from what Onsa returned — never from what a lead \"probably\" is.\n\n## Step 1 · Pick the campaign\n\n`list_campaigns` if the user did not name one, or named it only by title — the other tools take\nits `id`. It lists the newest campaigns first; when the user asks for \"the biggest\", compare the\nlead counts it returned and say if it returned fewer campaigns than `total`. For \"what should I do\nnext\", `list_next_steps` with the campaign's id gives a ranked to-do list; start there.\n\n## Step 2 · The people\n\n`get_campaign_leads` for the campaign. Group by `score`:\n\n- **5–4** — strong: say what in the `scoreExplanation` makes them strong.\n- **3** — possible: say what is missing.\n- **2–1** — weak: say why, and whether the campaign should look elsewhere next time (a steer for\n `continue_campaign`, which changes future searching and removes nobody).\n- **no score** — not scored yet; list them without a verdict.\n\nWhere the explanation calls something approximated or unverified, keep that caveat. For the two or\nthree leads that matter most, `get_lead_memo` holds Onsa's research on that person when one exists;\n`memo: null` is common and just means none was written.\n\n## Step 3 · The funnel and the replies\n\n`get_campaign_stats` for the counts. Compare campaigns on positive replies relative to leads\nmessaged — `positivePct` — never on the raw reply rate, because a rejection is also a reply. Replies\nOnsa has not scored for sentiment are not in the sentiment counts; say so when the counts look\nsmall. `list_replies` returns what people actually wrote; quote it rather than summarising it when\nthe user asks what happened.\n\n## Step 4 · The drafts\n\n`list_pending_outreach` shows drafts waiting for approval. An empty list means the campaign has no\ndrafts yet: outreach is set up in the Onsa web app, at the campaign's `campaignUrl`, and Onsa writes\nthe drafts from there. For a draft that reads like mail-merge:\n\n1. Read that person's memo (`get_lead_memo`).\n2. Rewrite the draft around **one** specific, checkable fact from it, with `rewrite_outreach`.\n3. Show the user the new text.\n\nNo memo → say so, and keep the message honest rather than inventing a hook. Never state a fact\nabout a person that Onsa did not return.\n\n## Sending\n\nThe rewritten draft stays pending. Send only when the user asks to send a specific message:\n\n1. Show that one draft as stored and the recipient's name, and get an explicit yes for it.\n2. Call `send_outreach` with that lead's `leadId` (from `list_pending_outreach`), the draft text\n exactly as stored as `confirmText`, and the recipient's name as `confirmName`.\n3. The host then shows the user a confirmation form for that exact message; the same call completes\n when they approve it there. A \"yes\" typed in the chat is not that confirmation — do not call\n `send_outreach` again to stand in for it.\n4. Where the host cannot show the form, the answer is `NOT SENT` with a link: give the user the\n link to approve the message in the Onsa app.\n\nOne message, one confirmation — never send a batch, never compose a message to someone who is not\na lead in a campaign, and never retry a send the user declined. A successful call means\n**queued**, not delivered: Onsa sends on its own schedule within daily limits. `NOT SENT` because\nno LinkedIn account is connected → the user connects it once in the Onsa web app, at the\n`campaignUrl`.\n"
}SHA-256 of public snapshot: 8ea53d57221e51ae90076875f50a5cbeb73345afaf84326abb873de3106fc7cb