Generate Messaging | Cowork / Claude Code
Using Octave in Claude
Workflow
Generate
Messaging
Surface
Claude Chat (MCP)
Cowork
Claude Code
Difficulty
Easy
Medium
Hard
Audience
Sales Reps, SDRs, and AEs doing outbound
What it does
Build a skill that feeds persona context and internal data into Octave saved agents to generate personalized outreach
Scenario
You've got your account brief and a qualified stakeholder map. Now you need to actually write the messages. Each person matches a different persona, cares about different things, and might already have a relationship with your team. You don't want to write from scratch every time -but you also don't want generic templates that ignore everything you just learned.
How It Works
You create a skill that orchestrates the message generation. The skill takes the persona match and account context from previous workflows, pulls runtime context from your internal data MCPs (recent calls, product usage, campaign engagement), and feeds it all into your Octave saved agents to generate messaging that's personalized to each person and grounded in your playbook.
Persona Match
From stakeholder map
Runtime Context
CRM, product data, calls - via MCP
Octave Agent
Playbook + messaging library
Message
Personalized, ready to send
The Old Way
❌ Template Blasting
Same email template for everyone, maybe with a first name swap -no persona awareness, no account context, no relevance
❌ Starting from Scratch
You know the account and the person, but still spend 15 minutes per message trying to write something that sounds researched
❌ Context Left Behind
All the research you just did -calls, product usage, persona match -sits in a different tab while you write in another
❌ Inconsistent Voice
Every rep writes differently, no shared playbook, no way to know what messaging is actually working across the team
⏱️ 10–15 minutes per message
The New Way
Persona-Driven
Messaging tailored to each person's persona -what they care about, how they make decisions, what language resonates
Context-Fueled
Recent calls, product signals, and campaign engagement automatically injected as runtime context for the agent
Research Carried Forward
The account brief and stakeholder map flow directly into message generation -nothing gets lost between steps
Playbook-Consistent
Your Octave saved agents enforce your playbook, voice, and messaging framework every time -across every rep
⏱️ 1–2 minutes per message
What You Get
Personalized Messages
Outreach for each stakeholder, tailored to their persona and grounded in your account research -not a mail merge
Runtime Context
Messages reference real signals -recent calls, product usage, content engagement -not just firmographic data
Playbook Alignment
Every message follows your playbook and brand voice via Octave saved agents -consistent quality across the team
Step by Step
1
Connect your MCPs
Your skill needs the Octave MCP (for saved agents and messaging generation) plus your internal data MCPs for runtime personalization.
MCPs your skill needs: 1. Octave MCP → run_agent, generate_content, list_agents 2. CRM MCP (e.g. Salesforce) → query contacts, activities, emails 3. Call Recording MCP (e.g. Gong) → search calls by person 4. Product Data MCP (e.g. BigQuery) → query usage by domain
You set up MCPs once. The skill references them every time it runs. Start with Octave + CRM, add more as you go.
2
Build the skill: define your inputs
Your skill takes a person (or a full stakeholder map from the previous workflow), a saved agent name, and optionally the account brief context.
Skill inputs: - person (required): { name, title, company, linkedInUrl } OR stakeholderMap: full output from Find + Qualify skill - agentName (required): "enterprise outbound" - accountBrief (optional): context from Account Research skill - messageType (optional): "cold email" | "LinkedIn" | "follow-up"
3
Build the skill: runtime context gathering
Before generating, the skill calls your internal MCPs to get the freshest signals for each person. This is the personalization fuel that makes messages specific, not generic.
For each person, gather runtime context: 1. CRM MCP → search activities by contact email Returns: recent emails, last touch date, open tasks 2. Call Recording MCP → search calls by person or account Returns: recent call summaries, topics discussed 3. Product Data MCP → query usage by account domain Returns: usage spikes, feature adoption, milestones
4
Build the skill: Octave agent call
The skill assembles the persona match, account context, and runtime signals into a prompt, then calls your Octave saved agent to generate the message. The agent enforces your playbook, voice, and framework.
Message generation call: 1. Assemble context payload: - persona match + qualification rationale - account brief (segment, playbook, competitive landscape) - runtime context (CRM, calls, product signals) 2. run_agent({ agentName, context, messageType }) → Octave MCP Returns: personalized message, subject line, key angles used
Saved agents enforce your playbook and voice. You can also use generate_content for more flexibility, or write with Claude using the Octave context as fuel.
5
Build the skill: output format
The skill outputs each message with the context that went into it, so you can review and understand why each angle was chosen.
Output per person: - Name, Title, Persona Match - Message: subject line + body - Key Angles: which value props and signals were used - Runtime Context Used: what CRM/call/product data informed it - Agent Used: which saved agent generated it - Suggested Follow-up: next touch timing and angle
6
Run the skill
Give it a person (or your full stakeholder map) and an agent name. The skill gathers runtime context, calls the Octave agent, and returns personalized messages for each person.
Generate cold emails for everyone on my stakeholder map using the "enterprise outbound" saved agent. Use the account brief, each person's persona match, and pull fresh CRM + call + product context for each.
7
Review, refine, send
Review the generated messages. Ask for adjustments: "lead with the product usage signal" or "reference last month's call." Once finalized, copy into your outreach tool. You went from account to personalized multi-threaded outreach in minutes.
Make the VP Engineering email shorter and lead with the product usage spike. Also reference the call their Director of Platform had with our team last month.