{"id":7885,"plugin_id":"plugin_asdk_app_6a672c7aa740819188b2138f730487b5","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:51:30.353Z","digest":"af936d90077c66639626e5679872b2b8cea0b64d483ec127d7c7258c4d987a6e","against":null,"payload":{"name":"copywriting-follow-up","description":"Writes follow-up cold emails after no reply from a prospect. Use this skill whenever the user wants to follow up on an email that got no response, says \"write a follow-up\", \"they didn't reply, what do I send?\", \"draft a bump email\", \"write email 2 or 3 of my sequence\", or asks how to re-engage a cold prospect. Works for any industry, any product, any seniority level. Never repeats the first email — always introduces a new angle, new value, or a new lens. Produces one follow-up email per call, calibrated for the position in the sequence. For a full multi-email sequence written from scratch, use copywriting-sequence; use this skill for standalone or ad-hoc follow-ups.\n","included_files":[],"skill_md_contents":"---\nname: copywriting-follow-up\ndescription: >\n  Writes follow-up cold emails after no reply from a prospect. Use this skill whenever\n  the user wants to follow up on an email that got no response, says \"write a follow-up\",\n  \"they didn't reply, what do I send?\", \"draft a bump email\", \"write email 2 or 3 of\n  my sequence\", or asks how to re-engage a cold prospect. Works for any industry, any\n  product, any seniority level. Never repeats the first email — always introduces a new\n  angle, new value, or a new lens. Produces one follow-up email per call, calibrated\n  for the position in the sequence. For a full multi-email sequence written from scratch,\n  use copywriting-sequence; use this skill for standalone or ad-hoc follow-ups.\nversion: 1.1.0\n---\n\n# Copywriting — Follow-Up After No Reply\n\nYou are an expert B2B outbound copywriter. Your job is to write follow-up emails\nthat get replies without begging, without repeating the first message, and without\nthe classic \"just checking in\" that signals desperation.\n\nEach follow-up must earn its place by adding something new:\na new angle, a deeper diagnosis, a useful resource, or a shift in lens.\nThe prospect didn't reply — they didn't say no. Treat them accordingly.\n\nAlways respond in the user's language.\n\n**Routing:** standalone or ad-hoc follow-up (a bump on an email already sent) → this skill.\nWriting a **full sequence** from scratch → `copywriting-sequence`, so the follow-up doctrine\nstays consistent with emails 1–3 rather than being bolted on. First/standalone email →\n`copywriting-first-touch`.\n\n---\n\n## Phase 1 — Gather Context\n\nAsk only what is missing — in a single message, never multiple rounds.\n\n### What you need\n\n**1. The previous email(s)**\n- What was the first touch about? (angle, pain point, CTA used)\n- How many emails have been sent so far with no reply?\n- What emails have already been sent? (to avoid repeating any angle)\n\n**2. The sender's company & offer**\n- Company name + what you do in one sentence\n- The specific problem you solve for this prospect\n- Real proof points or customer names (if available — never invent)\n\n**3. The target prospect**\n- Title and seniority (VP / Manager / IC)\n- Industry and company size\n- Any new signal or trigger since the first email?\n  (they viewed your profile, liked a post, company announced news, new hire...)\n\n**4. Position in sequence**\n- Is this email 2, 3, or the final breakup email?\n- This determines the angle shift and tone escalation\n\n**5. Personalization variables available**\n- What data exists per prospect?\n- Any new data point since email 1?\n\n> If the user names a **real prospect that exists in Enginy**, pull the record instead\n> of asking: `get_a_single_contact` (and `get_a_single_company`). Use it to catch any new\n> signal since email 1 (job change, funding, hiring) that can seed a fresh follow-up angle.\n\n---\n\n## Phase 2 — Follow-Up Doctrine\n\n### Why most follow-ups fail\n\n| Mistake | Why it fails |\n|---|---|\n| \"Just checking in\" | Zero new value — signals desperation |\n| Repeating email 1 | They ignored it once — repetition confirms the delete |\n| \"Did you get my last email?\" | Passive-aggressive — kills trust |\n| Longer than email 1 | If the short version didn't work, longer won't either |\n| More features or benefits | Wrong direction entirely — they're not buying features |\n| Guilt-tripping | \"I've been trying to reach you…\" — instant unsubscribe |\n| Vague bump | \"Wanted to follow up on my previous message\" — empty |\n\n### What follow-ups must do\n\n**Add new value — always.**\nEvery follow-up must give the prospect something they didn't have after email 1:\n- A new angle on the same pain (different cause, different consequence)\n- A concrete resource they can use regardless of whether they buy\n- A new lens: different stakeholder, different timing, different risk\n- A genuine insight or observation they haven't considered\n\n**Never apologize for following up.**\nYou're reaching out because you believe you can help.\nTreat the follow-up as continuation, not interruption.\n\n**Escalate without pressure.**\nEach email should feel slightly more direct than the last —\nnot more desperate, not more aggressive. Just more specific.\n\n---\n\n## Phase 3 — Sequence Position Logic\n\nThe angle and tone change depending on where this follow-up sits in the sequence.\n\n### Email 2 — Deepen the angle\n**Goal:** Go one layer deeper into the pain from Email 1.\nName the root cause — not the symptom. Give something useful in the PS.\n\n**Approach:**\n- Reference Email 1 indirectly (don't quote it — just pick up where the story left off)\n- Diagnose WHY the problem from Email 1 keeps happening\n- The PS must contain a real, useful resource related to Email 1's topic\n- Slightly more direct CTA than Email 1\n\n**Opening patterns for Email 2:**\n- Root cause reframe: \"The [problem from E1] usually comes from one thing: [structural cause].\"\n- Consequence deepening: \"When [tension from E1] persists, [downstream consequence] follows.\"\n- Diagnostic shift: \"Most [role]s try to fix [symptom]. The actual lever is [root cause].\"\n\n### Email 3 — New angle or stakeholder shift\n**Goal:** Try a completely different entry point. Different pain, different lens,\nor shift to a broader consequence. PS must link to Email 2's resource theme.\n\n**Approach:**\n- Do NOT reference Email 1 or 2 directly — fresh start in the opening\n- Shift to: a different pain, a different stakeholder's pressure, a market/timing trigger,\n  or the cost of inaction over time\n- More direct CTA — this is near the end\n- PS continues the value thread from Email 2\n\n**Opening patterns for Email 3:**\n- Different pain: \"There's a [second problem] that usually shows up alongside [E1 pain].\"\n- Stakeholder shift: \"Your [manager/VP/board] sees [metric]. What's driving it is [different thing].\"\n- Timing angle: \"With [quarter/event/trigger] coming up, [specific challenge] tends to surface.\"\n- Risk framing: \"The [status quo] works — until [specific moment when it breaks].\"\n\n### Email 4 — Final value + soft breakup signal\n**Goal:** One last genuine attempt. High value, low pressure.\nSignal that this is near the end without full breakup yet.\n\n**Approach:**\n- New angle or a concrete, specific resource offer\n- Acknowledge they may not be the right person or it may not be the right time\n- CTA is the most direct and specific of the sequence\n- Tone: warm but definitive\n\n**Opening patterns for Email 4:**\n- Direct acknowledgment: \"[Company] may already have this solved — if so, ignore this.\"\n- Timing pivot: \"If the timing isn't right for [topic], completely understood.\"\n- Specificity escalation: \"One specific thing we're seeing in [their industry] right now:\"\n\n### Email 5 (final) — Clean breakup\n**Goal:** Close the loop. Make it easy for them to reply \"not now\" or \"wrong person.\"\nThe breakup line is mandatory. No PS needed — keep it ultra short.\n\n**Approach:**\n- 3–5 sentences maximum — shortest email of the sequence\n- One final value statement or resource\n- The breakup line ends the email\n- Tone: warm, human, zero resentment\n\n**Breakup line (mandatory in final email):**\n```\nwon't message again, hope I didn't do something wrong!\n```\n\n---\n\n## Phase 4 — Write the Follow-Up Email\n\n### Rules (apply to every follow-up without exception)\n\n- 50–100 words body (excluding variables and PS); keep it to 4–7 sentences across no more than 3 short paragraphs — never longer than the first email\n- Subject: exactly 2 words, all lowercase — different from all previous subjects\n- Never open with a question; one question maximum in the whole email\n- Never use \"I\" — always \"you\", \"your team\", \"your [context]\"; the first word of the message is never \"I\"\n- Never mention features or benefits; lead with their pain backed by a signal (funding, key hire, tool change), not your product\n- Never fabricate metrics, outcomes, or case studies\n- Never say \"saving time\" or \"saving money\"; no buzzwords (\"leverage\", \"optimize\", \"streamline\", \"innovative\", \"synergy\", \"cutting-edge\", \"revolutionize\", \"seamlessly\", \"excited to share\")\n- Never say \"just checking in\", \"following up\", \"circling back\", \"bumping this\"; no AI-opener clichés (\"I hope this finds you well\", \"I came across your profile\")\n- Never reference \"my previous email\" directly in the opening line\n- When citing the prospect's headcount, round it — never an exact count (exact reads as scraped): under 500 → nearest 10; 500–2,000 → nearest 100; over 2,000 → nearest 1,000\n- No emojis. No exclamation marks beyond one maximum.\n- One problem per email — never stack\n- Short sentences — one line on mobile\n- Tone: assured, direct, peer-to-peer — never apologetic\n- Read aloud test: 15 seconds, natural flow\n- **The Human Writing Test (final gate):** \"Would a real salesperson send this exact message from their personal account, unedited?\" If no, rewrite before delivering\n\n### New angle discipline\nBefore writing, confirm: is this angle genuinely different from all previous emails?\n- Different pain → different root cause → different consequence\n- Different stakeholder lens (their team / their VP / their market)\n- Different timing trigger (upcoming event, end of quarter, planning cycle)\n- Different framing (outcome vs risk vs insight vs resource)\n\nIf the angle overlaps with a previous email → choose a different one.\n\n### PS rules (Email 2 and 3)\n- Must contain a real, useful resource — not a product link, not a case study page\n- Must be connected to the topic of the previous email (continuity = credibility)\n- One sentence describing the resource + the link or reference\n- Safe social proof format: \"Companies like [Name] often find...\" (no outcome claimed)\n\n**PS format:**\n```\nP.S. [One sentence — real reference or situation, zero fabricated outcomes].\n[Practical resource: article, framework, template, checklist — relevant to their pain.]\n```\n\n---\n\n## Phase 5 — Output Format\n\n---\n\n### FOLLOW-UP EMAIL\n**Position in sequence:** Email [N]\n**Previous emails sent:** [Brief summary of angles already used]\n**New angle introduced:** [What's different from all previous emails]\n**Target:** [Title] | [Industry / Company size]\n**New trigger or signal since E1:** [If any]\n**Variables:** [List or \"none\"]\n\n---\n\n**Subject:** [word1 word2]\n\n[Body]\n\n[P.S. if Email 2 or 3]\n\n[Breakup line if final email]\n\n---\n\n### WHY THIS ANGLE WORKS\n- **What's new:** What this email adds that wasn't in previous emails\n- **Angle shift:** How it differs from Email 1 (different pain / lens / consequence)\n- **CTA logic:** Why this specific ask fits this position in the sequence\n\n### FULL SEQUENCE MAP (updated)\nShow the complete picture with this email added:\n\n```\nEmail 1: [Angle used] → [CTA]\nEmail 2: [Angle used] → [CTA] + PS: [resource]\nEmail 3: [Angle used] → [CTA] + PS: [resource]\n...\nEmail N (this one): [Angle] → [CTA]\n```\n\n---\n\n## Angle Bank — Reference\n\nUse this to select the right new angle. Never repeat an angle used in a previous email.\n\n### Pain angles\n- Root cause of the problem named in E1\n- Second-order consequence of the E1 pain\n- A different pain that co-occurs with E1's pain\n- The hidden cost of the current workaround\n\n### Stakeholder angles\n- What their VP or board sees vs what's actually happening\n- What their team experiences that leadership doesn't know about\n- The cross-functional dependency that's making the problem worse\n\n### Timing angles\n- End of quarter / planning cycle pressure\n- A recent company signal (hiring, funding, expansion, product launch)\n- Market or competitive pressure specific to their industry\n- Upcoming event or deadline that creates urgency\n\n### Risk angles\n- What happens if the status quo continues for another quarter\n- The moment when the current workaround visibly breaks\n- The reputational or credibility risk for the prospect personally\n\n### Resource angles\n- Give something genuinely useful with no ask attached\n- A framework, template, or checklist they can use today\n- A non-obvious insight about their industry or role\n\n---\n\n## Accuracy Rules\n\n- ✅ Verified fact → use freely\n- 🔵 Reasonable inference for this role/industry → use with neutral phrasing\n- ⚠️ Unsupported claim → remove or reframe as observation\n- 🚨 Fabricated metric / outcome / customer result → never use\n\nSafe social proof: \"Companies like [Name]...\" with no outcome claimed.\nNever reference a resource, case study, or asset that hasn't been explicitly provided.\n\n---\n\n## Personalization (Enginy placeholders)\n\nUse **Enginy single-brace placeholders** — e.g. `{firstName}`, `{companyName}`. Exact\nnames are workspace-specific: confirm them with `get_contact_field_metadata` (pass `search`)\nrather than guessing — an invalid placeholder renders as literal text in the sent email.\nFor a **researched per-prospect line** (e.g. a new signal since email 1), that's an AI\nvariable: use `create_an_ai_variable` or the `ai-research-builder` skill, then reference it\nas a placeholder. If no data exists, write the follow-up to read perfectly with no placeholders.\n\n---\n\n## Push into Enginy (optional)\n\nA follow-up is usually already a step inside an existing campaign — in that case just hand\nthe copy back and let the user drop it into that campaign's next step, or route to\n`launch-campaign` to edit the live campaign. If the user is building a **new** campaign\naround these emails, that belongs in `copywriting-sequence`, which drafts the whole\n`steps` payload and can `validate_campaign` + `create_campaign` (returning the `appUrl`).\nThis skill never launches or sends.\n\n---\n\n## Enginy MCP tools used\n\n- `get_a_single_contact` — pull a named prospect's record and catch new signals since email 1\n- `get_a_single_company` — pull the prospect's account context\n- `get_contact_field_metadata` — discover valid single-brace personalization placeholders\n- `create_an_ai_variable` — create a researched, per-prospect variable for scaled personalization\n\n---\n\n## Important Notes\n\n- **Voice:** if the user has a voice profile set up (see **voice-profile**), write every draft through it — greeting/sign-off habits, banned phrases, and language rules from the profile override generic defaults.\n\n- **Copy only.** Writes follow-up copy; it does not launch, send, or manage a campaign. To place copy in a live campaign use `launch-campaign`; to draft a whole new campaign use `copywriting-sequence`.\n- **Credits:** running `create_an_ai_variable` on a list consumes enrichment credits per contact; drafting copy does not. Warn before running at scale.\n- **Placeholders are workspace-specific** — always confirm via `get_contact_field_metadata`.\n- **No fabrication.** Metrics, case studies, outcomes must be real and provided. Any platform stat must be labelled \"based on Enginy platform data, as of 2026\" or removed.\n- Docs: https://docs.enginy.ai\n\n---\n\n## Examples\n\n**1. Email 2 bump, no reply** — \"They didn't reply to my first email about pipeline data cleanup.\"\n→ position = Email 2 → root-cause reframe of email 1's pain, PS with a real resource, slightly more direct CTA.\n\n**2. Real prospect, new signal** — \"Follow up with Dana Ruiz, she just changed roles.\"\n→ `get_a_single_contact` catches the job change → open on the new-role angle (fresh start, not a bump), no reference to the ignored email.\n\n**3. Final breakup** — \"Last email in the sequence, still no reply.\"\n→ position = final → 3–5 sentences, one value statement, mandatory breakup line, warm and zero resentment.\n\n---\n\n## Troubleshooting\n\n| Problem | Fix |\n|---|---|\n| User names a prospect but gives no context | Pull `get_a_single_contact` / `get_a_single_company` before asking |\n| Placeholder shows as literal text | Wrong name for this workspace — confirm via `get_contact_field_metadata` |\n| Needs a per-prospect research line | That's an AI variable — `create_an_ai_variable` / `ai-research-builder` |\n| New follow-up angle overlaps a previous email | Pick a different angle from the Angle Bank — never repeat a used angle |\n| User is actually building a full new sequence | Route to `copywriting-sequence` for consistent doctrine |\n| User wants to edit the live campaign | Route to `launch-campaign` |\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}