Skip to content
Marketing
Skill

/lynqu-sales-followup

Draft and send on-brand sales follow-up emails to Lynqu leads from your follow-up templates, logged to the lead timeline. Requires the Lynqu MCP server connected.

From plugin
lynqu-ai-toolkit
617 skills

Claude Code

$ npx -y skills add Gravisun/lynqu-ai-toolkit --skill lynqu-sales-followup --agent claude-code

SKILL.md

lynqu-sales-followup.SKILL.md
name: lynqu-sales-followup
description: Draft and send on-brand sales follow-up emails to Lynqu leads from your follow-up templates, logged to the lead timeline. Requires the Lynqu MCP server connected.

Lynqu Follow-Up

You handle everything **after** the first conversation: the post-meeting recap, the deal that went quiet, the proposal nobody has opened, the long nurture until timing arrives. This is not cold outreach. There is history, and using it is the entire job.

Rule that governs the skill: **every follow-up must add something new**. A message whose content is "just checking in" teaches the recipient that your emails are safe to ignore, and that lesson is permanent.

Invocation

/lynqu followup <lead | company | segment | "everyone who went quiet after a demo">

Step 1: Reconstruct the relationship

Never ask the user for what Lynqu already knows.

  • **`get-lead`**: stage, score, temperature, value, owner, and the activity

timeline. **The timeline is your material**: opens, clicks, document views, stage history

  • The lead's **notes**, returned with `get-lead`: what was actually said, in

the rep's own words

  • **`list-lead-contact-points`**: what was promised and by whom. An open task

saying *"send the pricing breakdown"* from three weeks ago **is** the follow-up; don't write a nurture email around a promise you're still not keeping

  • **`list-lead-documents`**: what was shared, and **whether it was opened**. A

proposal opened five times by two different people is a completely different email from one never opened at all

  • **`list-quotes`** / **`list-opportunities`**: a live quote changes the message

and its urgency

  • **`get-booking`** / **`list-card-bookings`**: was there a meeting? When?

Did they show?

  • **`list-outbox`** with the `lead_id`: every email that actually went to this

person, from anyone on the team or an AI employee, with delivery status, opens and clicks, and any reply that came back (`source: reply`). A reply changes the job: they answered, so the next message is an answer, not a follow-up. The reply itself was forwarded to the person the email went out as; ask them what it said rather than guessing

  • **`list-segments`** when the ask names a market or a cohort ("our DACH

leads", "everyone from the Berlin show"): a saved segment is the filter, and `list-leads` with its `segment_id` is the cohort

Step 2: Classify the situation

The scenario determines cadence, length and ask. Get this wrong and everything downstream is off.

| Scenario | Signal | Cadence | The job | |----------|--------|---------|---------| | **Post-meeting** | Meeting in the last 48h | Same day, then +3, +7 | Recap, confirm next step, deliver what you promised | | **Post-proposal** | Quote or document sent | +2, +5, +10 | Make it easy to say yes *or* no | | **Went quiet** | No reply in 10+ days after engagement | +7, +14, then stop | New value, then a clean exit | | **No-show** | Booking marked no-show | Same day, +2 | Zero guilt. One line, one link, move on | | **Long nurture** | Right fit, wrong timing | Monthly at most | Be useful, ask for nothing | | **Re-engage** | Dormant 60+ days | One message | New reason to talk, or close it | | **Replied** | A reply in `list-outbox` since the last send | Answer in their thread | Respond to what they said; no template on top of it |

Two behaviours worth naming: a document opened repeatedly by **someone new** means the deal moved to a wider audience. Write to that, it's the best signal you'll get. And zero opens on a proposal usually means the wrong person received it, not that they said no.

Step 3: Write it

Reference something **specific and true** from the history in the first two lines. Not "following up on our conversation". The actual thing: the constraint they named, the number they quoted, the deadline they mentioned.

Then: one new piece of value, one clear next step, and a length that respects them. Post-meeting recaps run 60 to 90 words; a nurture touch runs 30 to 50. Shorter wins. The test is in the Voice section below.

The exit email matters more than people think. *"I'll stop here, if the badge backlog comes up again after the spring shows, I'm easy to find"* preserves the relationship, and it converts surprisingly often precisely because it isn't asking.

If the promise from Step 1 is still open, the follow-up **is** keeping it. Send the thing, then talk.

Step 4: Send and log

Show the draft. Get an explicit yes **for this send**. Then:

1. **`list-followup-templates`**: reuse the org's tuned templates. They carry the branding, the sender identity and the compliance footer. The list holds three kinds: **team** templates, the user's own **personal** templates, and **proposals** an AI employee drafted. Only the first two can be sent; a proposal is a draft a manager adopts in the app, never something to send 2. **Pick with evidence, not taste.** **`get-followup-performance`** (group `template`; scope `me`, or `team` for a manager) ranks templates by reply rate. Three rules for reading it: a row with fewer than 20 delivered emails is not ranked, so don't call it a winner; when `replies_tracked` is false, replies are not being collected and every reply rate reads 0 without meaning nobody answered, so compare on clicks and meetings booked and say so; and open rate is empty when the org doesn't track opens 3. **`send-followup-now`**: only on explicit approval, never implied by earlier plan approval or by "looks good" on a draft. It sends exactly the template you name. It answers "queued", and the server can still cancel it at dispatch: the person opted out or replied recently, a meeting is already booked, the lead is closed, or its follow-ups are paused. Check **`list-outbox`** for the lead afterwards and report what actually went out 4. **`update-lead-contact-point`**: close the task this send satisfies 5. **`add-lead-contact-point`**:

Read more
@gravisun
Ships withlynqu-ai-toolkit

Operate your entire lead motion (research → capture → manage → follow up → measure) straight from Claude, ChatGPT, Codex or Cursor. Open-source Claude Skills + MCP for AI lead capture, lead research, sales follow-up, and pipeline management. Powered by Lynqu.

Stars on GitHub

Momentum

stars in total
6
Star history of Gravisun/lynqu-ai-toolkit on GitHub, a chart by star-history.com

Other skills on lynqu-ai-toolkit.

lynqu-contacts

lynqu-contacts

Map the buying committee on an account (economic buyer, champion, blocker) and write it into Lynqu as contacts and participants.…

lynqu-deal-desk

lynqu-deal-desk

Price a Lynqu deal and draft the quote. Browse the price book, put priced lines on a deal, then produce a draft quote for a human…

lynqu-icp

lynqu-icp

Build an Ideal Customer Profile from your own won and lost leads in Lynqu, then encode it as lead scoring rules so every future…

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag2w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about lynqu-sales-followup.

Which coding agents can use lynqu-sales-followup?
lynqu-sales-followup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.