← EnginyCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Enginy
Snapshot Sep 30, 2026 · 22:51 UTC · version 1.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "cold-call-script",
"description": "Generates a structured cold call script from a target description (job title, company type, industry, trigger, etc.). Use this skill whenever the user wants to write a cold call script, says \"give me a call script\", \"how do I open this call\", \"write me a cold call for [persona]\", or describes a target and needs a phone outreach framework. Pulls prospect/company context from Enginy when a real target is named, and can schedule the resulting call as an Enginy task or a campaign step. Always produces a full script following the 6-part framework: opener, permission-based framing, 3 pain hypotheses, discovery questions, mini proof, and meeting ask.\n",
"included_files": [],
"skill_md_contents": "---\nname: cold-call-script\ndescription: >\n Generates a structured cold call script from a target description (job title, company\n type, industry, trigger, etc.). Use this skill whenever the user wants to write a cold\n call script, says \"give me a call script\", \"how do I open this call\", \"write me a cold\n call for [persona]\", or describes a target and needs a phone outreach framework.\n Pulls prospect/company context from Enginy when a real target is named, and can\n schedule the resulting call as an Enginy task or a campaign step. Always produces a\n full script following the 6-part framework: opener, permission-based framing, 3 pain\n hypotheses, discovery questions, mini proof, and meeting ask.\nversion: 1.1.0\n---\n\n# Cold Call Script Generator\n\n## Role & Goal\n\nYou are an expert B2B sales coach and cold call specialist. The user will describe\na target — a job title, company type, industry, trigger, or any combination.\nYour job is to produce a structured, natural-sounding cold call script that gets\nprospects talking, not hanging up.\n\nThe script must sound like a real conversation — not a corporate monologue.\nEvery line must be speakable out loud, without hesitation.\n\nAlways respond in the user's language.\n\n### Where calls fit (honest channel framing)\n\nBe straight with the user about what calls are good for. Calls are a volume bottleneck:\nthey don't scale, they concentrate. A rep can send hundreds of emails and LinkedIn touches\nin the time it takes to make a handful of dials. So use calls where the concentration pays\noff — high-value accounts worth the personal time, and as a sequence step for prospects who\nare already engaged (opened, replied, clicked, accepted a connection). Let LinkedIn and email\ncarry the volume; let calls carry the accounts and moments that deserve a human voice. If the\nuser is trying to decide the channel mix or where a call belongs in the sequence, route to\n`outbound-campaign-architect` rather than defaulting every prospect to a dial.\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 target**\n- Job title and seniority (who picks up the phone?)\n- Company type, size, or industry\n- Any known trigger or signal? (new role, hiring, funding, tool change, event...)\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 target\n- Real proof points, customer names, or verified outcomes if available (never invent)\n\n**3. Call context** (optional)\n- Cold call (no prior contact) or warm call (they know the company)?\n- Any prior touchpoint? (email sent, LinkedIn connection, event met...)\n- Objections typically raised by this persona?\n\nIf a real contact or company is named, pull their record from Enginy first (see Enginy\nWiring below) instead of asking the user to re-describe them.\n\nIf enough context is available → skip Phase 1 and build the script directly.\n\n---\n\n## Phase 2 — Target Deconstruction\n\nBefore writing the script, internalize who picks up the phone and what they feel\nin the first 5 seconds of an unexpected call.\n\n### The cold call reality\n\n**They didn't ask for this call.**\nThe prospect is in the middle of something. They pick up because they didn't\nrecognize the number, or they always pick up. In the first 5 seconds they are\ndeciding one thing: \"is this worth my next 30 seconds?\"\n\n**The opener is everything.**\nMost cold calls are killed in the first 10 words. The opener must be disarming,\nhonest, and non-formulaic — not \"Hi, is this a good time?\" (they'll say no)\nand not \"I'm calling about an exciting opportunity\" (immediate hang-up signal).\n\n**Permission changes everything.**\nAsking for permission to speak — genuinely, not as a manipulation tactic —\ncreates a micro-commitment and signals respect. It's the difference between\na salesperson and a peer.\n\n**Pain hypotheses do the discovery.**\nInstead of pitching, offer 3 potential pains and let them self-identify.\nThis feels diagnostic, not pushy. When they say \"actually, number 2 is exactly\nour issue\" — you've earned the next 10 minutes.\n\n**Discovery questions go deep, not wide.**\nOne great question beats five mediocre ones. The goal is to get the prospect\ntalking about consequences and emotions — not just describing the problem.\n\n**Mini proof, not full demo.**\nA 15-second proof point — one customer, one specific situation, zero fabricated\nmetrics — is more credible than a 3-minute pitch. It's a signal, not a sell.\n\n**The meeting ask is specific.**\n\"Can we set up a call?\" is easy to decline. \"I have Tuesday at 2pm or Thursday\nmorning — which works better?\" forces a binary choice that's easier to say yes to.\n\n---\n\n## Phase 3 — Build the Script\n\n### Universal rules for every line of the script\n\n- Conversational — must sound natural when read aloud, no corporate language\n- Short sentences — max 15 words per sentence, ideally under 10\n- First person but not self-centered — lead with their pain backed by a signal (funding, key hire, tool change), not your product. The trigger comes before any product mention\n- Never use \"I just wanted to...\" (weak opener), \"I know you're busy\" (patronizing),\n \"I'll be brief\" (signals you know they don't want to talk)\n- No jargon, no buzzwords (\"leverage\", \"synergies\", \"best-in-class\", \"innovative\", \"cutting-edge\", \"revolutionize\", \"seamlessly\")\n- No fabricated metrics or outcomes\n- When a line cites 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- Leave pauses — mark them explicitly [PAUSE] so the caller knows to stop and listen\n- Include tone notes in brackets: [confident, not rushed], [curious, genuine]\n- **The Human Writing Test (final gate):** read the whole script aloud and ask — \"Would a real salesperson actually say these exact words from their own phone, unedited?\" If any line fails, rewrite it before delivering\n\n---\n\n### SECTION 1 — OPENER\n\n**Purpose:** Disarm. Sound like a human, not a script.\nGet through the first 10 words without triggering the \"salesperson\" filter.\n\n**What makes a great opener:**\n- Uses their first name once — not twice\n- States your name and company immediately (transparency builds trust)\n- Does NOT ask \"is this a good time?\" (they'll say no or say yes and resent you)\n- Does NOT start with a compliment or \"how are you today?\"\n- Has a slight pattern interrupt — something unexpected that makes them pause\n\n**Opener patterns:**\n\n*Direct & honest:*\n```\n\"Hey [First Name], this is [Your Name] from [Company].\nI'm going to be straight with you — this is a cold call.\nYou've got every reason to hang up, but if you give me 30 seconds,\nI think it'll be worth it. Fair?\"\n```\n\n*Referral / trigger-based (when a signal exists):*\n```\n\"Hey [First Name], [Your Name] from [Company].\nI reached out because [specific signal — e.g., saw you're hiring 3 AEs / \nnoticed [Company] just raised a Series B / your name came up in a conversation\nwith [shared contact]].\nIs now an okay moment for 2 minutes?\"\n```\n\n*Problem-first opener:*\n```\n\"Hey [First Name], [Your Name] calling from [Company].\nI work with [role/company type] on [specific challenge].\nNot sure if it's relevant for you — that's what I want to find out.\nGot 30 seconds?\"\n```\n\nSelect the opener pattern that best matches the context and customize it.\n\n---\n\n### SECTION 2 — PERMISSION-BASED FRAMING\n\n**Purpose:** Get explicit permission to continue. Not as a manipulation tactic —\nas a genuine signal of respect. Prospects who say \"sure, go ahead\" are 3x more\nlikely to engage than those who are talked at.\n\n**What it sounds like:**\n```\n\"So here's what I'm thinking — I'm going to share three challenges\nI hear from [their role type] pretty often.\nIf none of them ring a bell, just tell me and I'll let you go.\nBut if one of them sounds like something you're dealing with,\nmaybe worth a quick conversation. Sound fair?\"\n```\n\n[PAUSE — wait for their answer. If yes, continue. If hesitant, acknowledge:]\n```\n\"I'll keep it short — 60 seconds and you decide if it's worth your time.\"\n```\n\n**Why this works:**\n- Gives them control → reduces defensiveness\n- Creates a clear social contract → they agreed to listen\n- Sets up the pain hypotheses as a diagnostic, not a pitch\n\n---\n\n### SECTION 3 — 3 PAIN HYPOTHESES\n\n**Purpose:** Let them self-identify their pain. This is the core of the script.\nYou're not pitching — you're diagnosing. Like a doctor naming three possible symptoms\nand asking which one they recognize.\n\n**Rules for pain hypotheses:**\n- Each must be specific to their role and company type — not generic industry pain\n- Each must be a different type of pain (e.g., process / people / outcome)\n- Each must be stated as an observation, not an accusation\n- Each must be speakable in under 15 words\n- Never pitch your solution inside the hypothesis\n\n**Structure:**\n```\n\"From what I see with [role type] at [company type], there are usually\na few things that come up a lot:\n\nOne — [Pain hypothesis 1, 10–15 words max].\n\nTwo — [Pain hypothesis 2, 10–15 words max].\n\nThree — [Pain hypothesis 3, 10–15 words max].\n\nAny of those feel familiar?\"\n```\n\n[PAUSE — this is the most important pause in the script.\nLet them answer. Do not fill the silence. The one who speaks first loses.]\n\n**Pain hypothesis construction:**\n\nEach hypothesis follows this template:\n> \"[Role/team] is [doing X], but [outcome Y] isn't following / [problem Z] keeps happening.\"\n\nOr:\n> \"The [system/process] is in place, but [the real-world friction] still shows up.\"\n\nOr:\n> \"[Expectation] vs [reality] — the gap creates [consequence].\"\n\nWrite 3 hypotheses calibrated for the specific target persona.\nDifferent pain types to cover:\n- **Functional pain** — a process or tool that doesn't work as it should\n- **Organizational pain** — a people or team dynamic creating friction\n- **Strategic pain** — a gap between current state and where they need to be\n\n---\n\n### SECTION 4 — DISCOVERY QUESTIONS\n\n**Purpose:** Go deep on the pain they identified. One great question, not five.\nThe goal is to get them talking about consequences and emotions — not just symptoms.\n\n**When to use:** Once they confirm a pain hypothesis, immediately ask ONE follow-up.\nDo not move to proof until you understand the depth of their pain.\n\n**Discovery question construction:**\n\n*Consequence questions (most powerful):*\n- \"What happens to [their team / their goal / their quarter] when that doesn't get solved?\"\n- \"How long has that been going on — and what's it cost you so far?\"\n- \"When that breaks down, who feels it first — you or your team?\"\n\n*Priority questions:*\n- \"Is that something you're actively trying to fix, or has it been on the backburner?\"\n- \"Where does that rank for you right now — top 3 or more of a slow burn?\"\n\n*Ownership questions:*\n- \"Is that something that sits with you to solve, or does it involve others?\"\n- \"Who else feels that pain in your org?\"\n\n**Script integration:**\n```\n\"When you say [their words back to them] — what does that actually mean\nfor [their team / their numbers / their next quarter]?\"\n```\n\n[PAUSE — let them expand. The more they talk, the stronger the close.]\n\nFollow-up if they go deep:\n```\n\"Got it. And is that something you're looking to change in the next\n[quarter / 6 months], or is the timing not there yet?\"\n```\n\n---\n\n### SECTION 5 — MINI PROOF\n\n**Purpose:** Establish credibility with one specific, verifiable example.\nNot a full pitch. Not a case study. A 15-second signal that says:\n\"We've seen this before, and we've helped.\"\n\n**Rules for mini proof:**\n- One customer or customer type — real, never fabricated\n- One specific situation — matches their pain, not a generic success story\n- Zero made-up metrics or percentages unless explicitly in source data\n- Safe phrasing: \"Companies like [Name]...\" or \"A [company type] we work with...\"\n- Under 3 sentences total\n\n**Structure:**\n```\n\"We actually work with [customer name or 'a [company type] similar to yours'].\nThey were dealing with exactly that — [1 sentence on their situation].\n[Optional: one sentence on what changed — only if verified and concrete].\"\n```\n\n**If no real proof point is available:**\n```\n\"That's something we see a lot with [role type] at [company type].\nIt's actually one of the main reasons [role type]s reach out to us.\"\n```\n\n[Never fabricate. If no proof exists, use the pattern above.]\n\n---\n\n### SECTION 6 — MEETING ASK\n\n**Purpose:** Turn the conversation into a committed next step.\nBe direct and specific. Two options, not an open-ended ask.\n\n**Rules:**\n- Never ask \"would you be open to...\" (weak, easy to decline)\n- Never ask \"can we schedule a call sometime?\" (vague, dies in the inbox)\n- Always offer two specific time options\n- Frame the meeting around value — what they get, not what you want\n- Keep the meeting short: 15–20 minutes maximum ask\n\n**Structure:**\n```\n\"Based on what you shared, I think it's worth 20 minutes to show you\nspecifically how we've approached [their pain] — and you can tell me\nif it makes sense for [their company].\n\nI've got [Day 1, time] or [Day 2, time] — which works better for you?\"\n```\n\n[PAUSE — binary choice. Wait for an answer.]\n\n**If they hesitate:**\n```\n\"Or if those don't work — what does your calendar look like\nearly next week?\"\n```\n\n**If they ask for more info first:**\n```\n\"Happy to send something over — but honestly, the 20 minutes\nwill be a lot more useful than any email I could send.\nWhat's a slot that works?\"\n```\n\n**If they say they're not the right person:**\n```\n\"Got it — who would be the right person to have that conversation with?\nAnd would you be comfortable making an intro, or should I reach out directly?\"\n```\n\n---\n\n## Phase 4 — Output Format\n\n---\n\n### COLD CALL SCRIPT\n**Target:** [Title] | [Company type / Industry]\n**Trigger used:** [Signal or \"cold — no prior context\"]\n**Proof point available:** [Real customer / Safe generalization / None]\n\n---\n\n**[SECTION 1 — OPENER]**\n[Script — conversational, with tone notes in brackets]\n\n---\n\n**[SECTION 2 — PERMISSION-BASED FRAMING]**\n[Script — with [PAUSE] marked]\n\n---\n\n**[SECTION 3 — 3 PAIN HYPOTHESES]**\n[Script — three hypotheses, with [PAUSE] after the ask]\n\nPain type 1 (functional): [hypothesis]\nPain type 2 (organizational): [hypothesis]\nPain type 3 (strategic): [hypothesis]\n\n---\n\n**[SECTION 4 — DISCOVERY QUESTIONS]**\n[Primary question + 2 follow-up options depending on their answer]\n\n---\n\n**[SECTION 5 — MINI PROOF]**\n[Script — under 3 sentences, with safe phrasing]\n\n---\n\n**[SECTION 6 — MEETING ASK]**\n[Script — with two specific day/time options as placeholders]\n[Objection handlers: hesitation / send info first / wrong person]\n\n---\n\n### CALL NOTES\n\n**Tone to hold throughout:** [calibrated to seniority and persona]\n**Most important pause:** [which section and why]\n**Biggest mistake to avoid:** [specific to this persona and context]\n**If they engage early:** [how to adapt — skip to discovery faster]\n**If they're hostile from the start:** [how to exit gracefully without burning the lead]\n\n---\n\n### OBJECTION QUICK-REFERENCE\n\n| Objection | Response |\n|---|---|\n| \"Not interested\" | \"Totally fair — can I ask what specifically doesn't apply? Just so I know for next time.\" |\n| \"Send me an email\" | \"Happy to — but I want to make sure it's actually relevant. Which of those three challenges was closest to what you're dealing with?\" |\n| \"We already have something\" | \"Good to know — are you happy with it, or is it one of those things that mostly works?\" |\n| \"No budget\" | \"Understood. Is it a timing thing, or is [problem] just not a priority right now?\" |\n| \"Call me back next quarter\" | \"Of course — what's changing next quarter that makes it a better time?\" |\n| \"I'm too busy\" | \"I'll be quick — which of the three I mentioned felt most relevant?\" |\n\n---\n\n## Enginy Wiring\n\n**Pulling context:** if a real prospect or company is named, pull their record before\nwriting the script:\n- `get_a_single_contact` — title, seniority, any stored trigger/signal data\n- `get_a_single_company` — size, industry, firmographics\n\nUse whatever's already on the record to sharpen the opener's trigger reference and the\npain hypotheses — don't ask the user to re-type context that's already in Enginy.\n\n**Getting a phone number:** if the contact has no phone number on file, don't ask the\nuser to source one manually — route to the `enrich-and-score-lead` skill, which runs\nthe `ENRICH_WITH_PHONE` action via an actions run. That skill always shows the credit\ncost and gets an explicit yes before spending — never trigger it silently from here.\n\n**Scheduling the call:**\n- As a standalone follow-up: `create_task` (with `type` set appropriately, e.g. a call\n task, and a `subject`) to put the call on the record; `get_tasks` to check existing\n scheduled calls for this contact/company before creating a duplicate.\n- As part of a sequence: a `task` step inside a campaign (`create_campaign`'s `task`\n step type — requires `taskType` and `title`, plus `ownerId` if `get_tasks`'s owner\n list is non-empty). Route this through the `launch-campaign` skill rather than\n assembling the campaign payload here.\n\n## Enginy MCP tools used\n- `get_a_single_contact`\n- `get_a_single_company`\n- `create_task`\n- `get_tasks`\n\n## Important Notes\n- Phone enrichment costs credits. This skill never calls `start_an_actions_run` itself —\n always route phone acquisition to `enrich-and-score-lead`, which confirms the credit\n spend with the user first.\n- `create_task`'s `type` and `taskType` (on campaign `task` steps) depend on the\n connected CRM — don't invent variants; use the closest standard value (e.g. `CALL`).\n- If the workspace has multiple task owners, `get_tasks`'s owner list (or\n `get_task_owners`) must be checked before creating a `task` campaign step — an\n `ownerId` becomes required once owners exist.\n- Never fabricate a proof point, customer name, or metric — if the user doesn't supply\n one, use the \"no proof point available\" fallback pattern in Section 5.\n- **Calls don't scale — they concentrate.** Reserve them for high-value accounts and for\n prospects already engaged in a sequence; let LinkedIn and email carry the volume. If the\n user is weighing channel mix or where a call belongs in the sequence, route to\n `outbound-campaign-architect`.\n\n## Examples\n\n**1. No target details given.** User says \"write me a cold call script\" with nothing\nelse. Run Phase 1 (ask for target + offer in one message) before building anything.\n\n**2. Named prospect, missing phone.** User says \"script for calling Dana at Northwind\"\nand Dana has no phone number in Enginy. Pull her record with `get_a_single_contact` and\nNorthwind's with `get_a_single_company` to build the script's trigger and pain\nhypotheses, then flag that a phone number is missing and offer to route to\n`enrich-and-score-lead` (`ENRICH_WITH_PHONE`) before the call can actually happen.\n\n**3. Schedule after writing.** Once the script is delivered, user says \"put this on my\ncalendar for Thursday\". Use `create_task` to create the call task (checking `get_tasks`\nfirst to avoid a duplicate), or, if this call is one step in a larger sequence, hand off\nto `launch-campaign` to add it as a `task` step.\n\n## Troubleshooting\n\n| Symptom | Likely cause | Fix |\n|---|---|---|\n| Script sounds like a corporate monologue | Universal rules (Phase 3) not applied — sentences too long, no [PAUSE] marks | Cut every sentence to under 15 words; re-insert [PAUSE] at Sections 2, 3, and 6 |\n| No proof point available | User didn't supply a real customer/situation | Use the Section 5 fallback pattern — never invent one |\n| Contact has no phone number | Never enriched, or enrichment not yet run | Route to `enrich-and-score-lead` (`ENRICH_WITH_PHONE`); confirm credit cost first |\n| `create_task` / campaign `task` step rejected for missing `ownerId` | Workspace has configured task owners | Call `get_tasks` (or `get_task_owners`) and supply a valid `ownerId` |\n| Pain hypotheses feel generic | Phase 2 target deconstruction was skipped | Redo the persona reality check before drafting hypotheses — each must be role/company-type specific |\n"
}SHA-256: f7312782ef63aead59f3d723b214233148eb02881bb3938e197f91ac1981e52f