All Posts

How To Use Clay With Octave: A Guide For GTM Engineers

Read our technical guide for GTM Engineers on integrating Octave with Clay for context-aware outbound automation.

How To Use Clay With Octave: A Guide For GTM Engineers

Published on
February 17, 2026

Overview

If you've built outbound workflows in Clay, you know the pattern: enrich leads, score them with formulas, generate content with prompts, push to your sequencer. It works—until your positioning changes, a new product launches, or someone asks why a lead scored the way it did.

This guide covers how to use Octave as the context layer for your Clay workflows. Instead of embedding your GTM knowledge in prompt chains that you'll need to rewrite next quarter, you'll maintain it in one place and call it at runtime.

What we'll cover:

  • What Clay and Octave each do, and how they complement each other
  • Why separating context from execution matters
  • How Octave's Library, Playbooks, and Agents work
  • Setting up the Octave + Clay integration step by step
  • Runtime context with concrete examples
  • A worked example: qualifying leads before generating sequences

What is Clay?

Clay is an execution engine for GTM Engineers—unmatched at aggregating data, chaining enrichments, and triggering downstream actions. It provides a spreadsheet-like interface where you can build multi-step workflows, pull from enrichment providers, and push output to your sales and marketing tools.

Core Clay Capabilities

  • Data Enrichment: Aggregate data from multiple enrichment providers into unified lead and account records
  • Workflow Automation: Build multi-step workflows using formulas, conditionals, and API integrations
  • AI Integrations: Connect to LLMs and AI services for content generation and classification
  • CRM & Sequencer Sync: Push enriched data and generated content to CRMs and sequencers like Salesforce, HubSpot, Outreach, Salesloft, Instantly, and Smartlead

Clay excels at execution—aggregating signals, chaining enrichments, and orchestrating data flow. But execution needs context, and that context ends up embedded directly in Clay: scoring logic in formulas, ICP definitions in conditionals, messaging assumptions spread across prompt chains. Every time your ICP shifts, a new product launches, or positioning changes, you're rewriting prompts and debugging fragile workflows.

Key Insight

Clay is an execution engine, not a context engine. It handles execution and flow control but doesn't inherently understand your GTM strategy, ICPs, or positioning. That context has to come from somewhere—and historically, it's been embedded directly into Clay tables as prompts and formulas.

What is Octave?

Octave is a GTM context engine—infrastructure that makes your go-to-market motion as programmable and maintainable as a software codebase. It provides a structured, versioned, API-accessible model of your GTM knowledge that downstream tools like Clay can consume at runtime.

Think of Octave as the "GTM repo" your team has been missing. Instead of tribal knowledge scattered across Notion pages, Slack threads, and prompt chains, Octave centralizes your positioning, ICPs, personas, value props, and competitive intelligence into a living, queryable knowledge graph.

Three core concepts:

The Library

The Library is Octave's central source of truth—a structured repository of everything your GTM team needs to communicate your product's value. It contains:

Section Description
Company Description A concise explanation of what your company does, who it's for, and how it competes in the market.
Offerings (Products & Services) The products and services you sell, described in terms of what they are and what customers get from them.
Personas Groups of target buyers you would message in meaningfully different ways. Each persona reflects distinct responsibilities, pain points, objectives, and job titles.
Use Cases The key areas where your offerings deliver value. These capture the core reasons customers buy, not a list of features.
Segments Groups of companies defined by both firmographic and qualitative attributes. Segments capture shared context, behaviors, and why certain companies receive unique value from your product.
Reference Customers Examples of real customers using your offerings successfully.
Competitors The products, services, or approaches buyers commonly compare you against.
Proof Points Qualitative and quantitative evidence that supports your claims, including outcomes, metrics, and credibility signals.

The Library is designed to be refined over time. Business users can update it using natural language, while engineers access the same data via API. Every downstream workflow—agents, playbooks, and integrations—consumes from this single source of truth.

Playbooks

Your Library defines what you sell and who you sell to. Playbooks are how you test different ways to frame it.

Playbooks combine Library elements into testable messaging strategies. They bring together offerings, personas, use cases, and strategic angles into coherent GTM motions you can launch, compare, refine, or abandon.

When creating a Playbook, you:

  1. Select an offering from your Library
  2. Choose a playbook type (sector, function, solution, milestone, competitive, or account-based)
  3. Define the core insight or angle of attack
  4. Select 1–3 relevant personas and use cases

Octave generates persona-specific value prop hypotheses, strategic messaging, and qualification logic for each playbook. You can refine messaging as you learn what resonates, and changes propagate instantly across all agents using that Playbook.

Playbooks are meant to be living experiments: you evolve them or abandon them based on what works in market. Playbooks feed into agents as strategic positioning context, shaping how messages get generated based on the type, personas, and use cases you've defined.

Agents

Agents are the execution layer—they consume Library and Playbook context to perform specific tasks at runtime. Each agent type does something different:

Agent What It Does Output
Sequence Generates email sequences (cold, warm, inbound, custom) Subject lines + body copy for each step
Qualify Scores a person or company against your offerings, segments, playbooks, and personas Overall fit score and rationale, sub-scores for product fit, segment fit, playbook fit, and persona fit (for person qualification), answers and rationale for each qualifying question
Enrich Researches a person or company and evaluates fit against your Library For companies: summary, characteristics, operating environment, product fit confidence. For people: all company data plus role, expertise, career arc, persona fit, value prop resonance
Call Prep Generates sales call materials after a meeting is booked Discovery questions, call script, objection handling, person brief, company brief, relevant case studies
Content Generates any type of GTM content at scale LinkedIn messages, SMS, talking points, one-pagers, webpage content, or custom formats you define
Prospector Finds contacts at companies to use as leads Contact list with matched personas

Agents can auto-select the best Playbook based on lead data, or you can specify one. You configure agents in Octave, test them in the playground, then call them from Clay via API.

Why Use Octave with Clay?

The Problem: Context Embedded in Execution

When you build outbound workflows in Clay without a context layer, your GTM knowledge ends up embedded directly in the table:

  • Scoring logic in formulas: ICP definitions become complex conditionals that are hard to understand or modify
  • Messaging in prompt chains: Positioning, value props, and competitive context get copy-pasted into HTTP requests
  • Tribal knowledge in column names: The "why" behind each enrichment step lives in someone's head

The result is what GTM Engineers sometimes call the "prompt swamp"—a fragile system where:

  • Every ICP shift requires rewriting prompts across multiple tables
  • New products or personas mean duplicating and modifying entire workflows
  • No one knows what the last person tried or why
  • Most engineering time goes to maintenance instead of building

Without Octave: Context is scattered

Clay Table 1
ICP Logic + Prompts
Clay Table 2
Different Prompts
Clay Table 3
More Prompts

Each table maintains its own version of positioning, ICP definitions, and messaging

The Solution: Separation of Context and Execution

Octave provides the context infrastructure that Clay has been missing. Instead of embedding your GTM knowledge in tables, you codify it once in Octave and consume it everywhere.

With Octave: Single source of truth

Octave
Library + Playbooks
Clay Tables
Pure Execution

Clay handles data flow and orchestration; Octave provides all GTM context via API

This separation delivers concrete benefits:

Before (Clay Only) After (Octave + Clay)
Multiple columns of prompt logic per table Single API call returns contextualized output
Rewrite prompts when ICP shifts Update Library once; all workflows reflect changes
Black-box scoring in formulas Human-readable qualifiers with exposed reasoning
Generic AI outputs that need editing Brand-aligned content grounded in your positioning
New segments = rebuild from scratch New segments = toggle qualifiers and playbooks
Knowledge walks out with team members Context is codified as infrastructure
Bottom Line

Clay handles execution and flow control. Octave provides the strategic context. Together, they create workflows that are declarative instead of procedural, resilient instead of fragile.

What You Can Build

Common patterns when combining Octave with Clay:

Qualify then Route

Run Qualify on inbound leads. Use the score to route high-fit to AEs, medium-fit to nurture, low-fit to disqualify.

Qualify then Prospect then Sequence

Qualify companies first, then use the Prospector agent to find leads at qualified accounts, then generate personalized sequences for each contact.

Qualify then Enrich then Sequence

Qualify first, then only run Enrich and Sequence on leads above your threshold. Saves credits, improves output quality.

Meeting Booked then Call Prep + Landing Page

Webhook triggers Clay when a meeting is booked. Call Prep agent generates materials, Content agent creates personalized landing page copy, Clay pushes both to CRM.

Competitive Sequences

Create a competitive Playbook in Octave. When you know a lead uses a competitor, route them to sequences that emphasize your differentiation.

PLG to Sales Handoff

When a user triggers key in-app activity (feature adoption, usage threshold, pricing page visit), Octave qualifies and enriches them. High-fit users get a personalized draft email generated based on their product behavior. Sales reviews, edits, and sends.

Prerequisites

Before connecting Octave to Clay, you'll need the following set up in Octave:

1

A Populated Library

Your Octave Library should contain at minimum:

  • Company description and market overview
  • At least one Offering with differentiated value and qualifying questions
  • At least one Persona with responsibilities, pain points, and objectives

For best results, also add: Use Cases, Segments, Reference Customers, and Competitors.

2

At Least One Playbook (for Sequence/Content Agents)

If you're using Sequence Agents or Content Agents, create a Playbook that combines your Offering with relevant Personas and Use Cases. Qualification and Enrichment agents can run against the Library directly.

3

A Configured Agent

Build and configure the agent type you want to use. Test it in Octave's playground before connecting to Clay to validate output quality.

4

API Key

Retrieve your API key from Octave—you can find it within any Agent by clicking the "Use in Clay" button in the top-right of the screen.

What You Need in Clay

  • A Clay workspace with access to enrichment features
  • A lead table with the data fields required by your agent (varies by agent type)
  • Downstream integrations configured for wherever you want to push output (CRM, sequencer, etc.)

Integration Setup

Once you've created and configured your agents in Octave, connecting them to Clay gives you full programmatic access to run agents at scale across your lead lists.

Step 1: Connect Your Octave Account to Clay

You only need to wire the account once. After that, all Octave enrichment types in Clay will use it.

1

Start the Connection

In Clay: Add Column → Add Enrichment → search "Octave" → choose any Octave enrichment to initialize the connection

2

Add Your Octave Account

In the Account section: click Add Account → give it a name (e.g., "Octave Production") → paste your Octave API key

Find your API key: In Octave, open any agent → click "Use in Clay" button (top-right)

3

Test and Save

Click Test account to verify the connection, then click Save

4

Verify Connection

Under Setup inputsAgent or Experiment dropdown → confirm your Octave agents appear in the list

From now on, you can pick any Octave enrichment type in Clay and your agents will be available in the dropdowns.

Step 2: Select and Configure Your Agent

1

Choose the Agent Type

In the Octave enrichment column, select the appropriate enrichment type based on your use case:

  • Sequence generation: Use the Sequence Agent enrichment
  • Lead/company qualification: Use the Qualify enrichment
  • Lead/company enrichment: Use the Enrich enrichment
  • GTM content: Use the Content Agent enrichment
2

Select Your Specific Agent

Under Agent or Experiment, select the specific agent you created in Octave. This determines which Library context, Playbook, and configuration settings will be used.

Using Different Agents

To use different agents within Clay, simply swap the agent selection in the column. Each column can use a different agent, allowing you to chain Qualify → Enrich → Sequence in a single table.

Step 3: Map Data Fields

Select your agent in the dropdown, then map Clay columns to the required inputs:

Agent Type Required Inputs
Sequence Company Name, First Name, Job Title, Company Domain, LinkedIn Profile
Qualify (Person) Job Title, Company Domain, Company Name, First Name, LinkedIn Profile
Qualify (Company) Company Domain, Company Name
Enrich (Person) Title, Company Domain, Company Name, First Name, LinkedIn Profile
Enrich (Company) Company Domain, Company Name
Call Prep Mapped to an offering and playbook; contact and company information
Content Person research, company research, and public URLs provided at runtime
Prospector Company Domain (+ optional: title filters, location, follower min)

Step 4: Add Runtime Context

Runtime context passes lead-specific data that varies per row. This is where you provide information that the agent can't get from web research—data you've already enriched in Clay or signals specific to that lead.

When to Use Runtime Context

  • You have enrichment data (employee count, tech stack, funding stage) that helps qualification accuracy
  • You have intent signals (website visits, event attendance, content downloads) that should influence messaging
  • You want to pass specific instructions for certain leads

Concrete Examples

Use Case Clay Column How Agent Uses It
Accurate headcount scoring employee_count from an enrichment provider Qualification agent uses exact number instead of inferring from company description
Tech stack relevance technologies_used with tools like "Salesforce, HubSpot, Outreach" Sequence agent references their existing stack when positioning your product
Recent funding context last_funding_round with "Series B, $40M, Jan 2026" Agent tailors messaging around growth stage and available resources
Website behavior pages_visited with "pricing, enterprise, case-studies" Sequence agent references their demonstrated interest areas
Event attendance attended_event with "SaaStr 2026" Agent opens with event reference as a warm hook
Open roles signal hiring_for with "3 SDR positions, 2 RevOps" Qualification agent infers growth trajectory; Sequence agent addresses scaling challenges

How to Configure

In the Octave enrichment configuration, you'll see fields for runtime context. Link your Clay columns to these fields. You can also add runtime instructions—specific directions for how the agent should use the context.

Agent-Level vs Runtime Context

Agent-level context (configured in Octave): Static information that applies to all leads—your company positioning, product details, brand voice guidelines.

Runtime context (passed from Clay): Variable information that differs per lead—their employee count, their tech stack, their recent funding, their website behavior.

Step 5: Test and Run

1

Test on a Single Row

Run the enrichment on one row to verify the integration is working. Check that output appears and matches what you expect from the agent.

2

Inspect the Response

Click into the cell to see the full response. Confirm all expected fields are returned (emails, scores, enrichment data, etc.).

3

Add Output Columns

Use "Add as column" to expose specific fields from the response (e.g., Email 1, Subject 1, Qualification Score) for downstream use.

4

Run on Small Batch

Run on 10-20 leads to validate quality consistency before scaling to your full list.

5

Set Up Conditional Execution

For efficiency, configure downstream agents to only run on leads that meet your criteria. For example: only run Sequence Agent on companies with qualification scores above 7.

Worked Example: Qualify then Sequence Chain

This example builds a workflow that qualifies companies, then generates sequences only for high-fit prospects.

Setup in Octave

  1. Ensure your Library has at least one Offering with qualifying questions defined
  2. Create a Playbook for your outbound motion
  3. Build a Qualify agent linked to your Offering
  4. Build a Sequence agent linked to your Playbook
  5. Test both in the playground

Setup in Clay

Column 1: Qualify Company

  1. Add Enrichment → Octave → Qualify
  2. Select your Qualify agent
  3. Map: Company Domain, Company Name
  4. (Optional) Add runtime context: pass employee count from an enrichment column if you have quantitative qualifying questions
  5. Run on a test row, inspect the response
  6. Add as column: overall_score (or whatever field contains the score)

Column 2: Sequence Agent (Conditional)

  1. Add Enrichment → Octave → Sequence
  2. Select your Sequence agent
  3. Map: Company Name, First Name, Job Title, Company Domain, LinkedIn Profile
  4. Set condition: Only run if overall_score >= 7 (scores are out of 10)
  5. (Optional) Add runtime context: pass tech stack, recent funding, or website behavior to personalize messaging
  6. Run on test rows, verify sequences generate only for qualified leads
  7. Add as columns: Email 1, Subject 1, Email 2, Subject 2, etc.

Downstream

Push Email 1, Subject 1, etc. to your sequencer (Outreach, Salesloft, Instantly, etc.) using Clay's native integrations.

Credit Optimization

By qualifying first and running sequences conditionally, you only spend Sequence agent credits on leads worth pursuing. Same pattern works for Enrich then Content chains.

Troubleshooting

Problem Check This
Agents don't appear in dropdown API key may be incorrect. Re-paste from Octave's "Use in Clay" button. Verify the account is saved and selected.
Empty or error response Check required fields are mapped and not empty. LinkedIn profile is often required for person agents.
Qualification scores seem wrong Examine the answers to the qualification questions in the data payload. You can adjust the questions and their relative weighting in Octave.
Sequences don't match brand voice Add example emails in your agent config in Octave, refine your Playbook messaging, use the metaprompter to adjust tone, or add a Brand Voice in the styles section and connect it to your agent.
Reference customer not included Ensure "include reference" is enabled in Playbook. Add runtime instruction like "include reference customer closest to the company" or use custom instructions in the per-step instructions section.
Works in playground, fails in Clay Compare inputs. Playground may have different data than Clay is passing. Check field mapping matches what the agent expects.
Slow response times Higher-credit models use more sophisticated reasoning and take longer. For high-volume workflows, consider using lower-credit models.

For persistent issues: test the same inputs in Octave's playground to isolate whether the problem is in Octave or Clay. When contacting support, include your Agent ID and sample request/response.

Best Practices

Library & Playbook Hygiene

  • Invest time upfront in your Library. The quality of agent outputs directly correlates with the specificity and accuracy of your Library content. Generic inputs produce generic outputs.
  • Keep Personas distinct. Only create a new Persona if you would message them in a meaningfully different way. Over-segmentation dilutes messaging focus.
  • Limit Use Cases per Playbook. Select 1–3 use cases to keep the core message focused. Trying to cover everything results in covering nothing well.
  • Write qualifying questions carefully. Avoid highly specific quantitative questions (e.g., "Is employee count > 100?") unless you can provide that data as runtime context. The agent will infer answers it can't find, which may be directionally correct but not precise.

Clay Workflow Design

  • Chain agents efficiently. Run qualification first, then only run enrichment and content generation on qualified leads. This optimizes both credit usage and processing time.
  • Use conditional execution. Set runtime conditions in Clay to control which leads trigger which agents based on scores, firmographics, or prior workflow steps.
  • Parse JSON responses properly. Octave returns structured JSON—use Clay's JSON parsing to extract specific fields into separate columns for downstream use.
  • Handle edge cases. Build in logic for when agents return warnings or partial data. Not every lead will have complete information.

Runtime Context Strategy

  • Don't over-contextualize. Passing too much runtime context can overwhelm the agent. Focus on signals that meaningfully impact qualification or messaging.
  • Use runtime instructions sparingly. Runtime instructions can override agent behavior for specific leads, but should be the exception not the rule. If you find yourself needing the same instruction repeatedly, update the agent configuration instead.
  • Validate context data quality. Garbage in, garbage out. If your enrichment columns have inconsistent or missing data, the agent will produce inconsistent results.

Iteration & Optimization

  • Start narrow, then expand. Begin with one agent type on one segment. Validate quality before scaling to additional agents and segments.
  • Use Octave's playground. Agents can be tested in a "playground" environment before being run at scale via API. The metaprompter in Content Agents lets you iteratively improve outputs by providing simple follow-up instructions.
  • Close the feedback loop. Track which outputs perform and feed insights back into your Library and Playbook refinement. Playbooks are meant to be living experiments—evolve them based on what works in market.

FAQ

What's the minimum Library setup needed?

For Qualify agents: at least one Offering with qualifying questions. For Sequence agents: an Offering, at least one Persona, and a Playbook combining them. More Library content = better output.

How does Octave pick which Playbook to use?

If you set agent to "best match," it evaluates job title and company signals against your Playbooks. Response includes which Playbook was selected and why. Or specify a Playbook explicitly in agent config.

What are the model options?

Octave offers multiple model tiers. Lower-credit models are faster and cheaper but handle less context. Higher-credit models route tasks to more sophisticated models that handle more context and produce higher quality output. Pick based on the complexity of your use case and how much context you need the agent to process.

How do credits work?

The Octave platform uses Octave credits. Different models consume different amounts of credits. Prospector only charges for prospects found. Optimize by qualifying first and running other agents conditionally.

Can I use Octave with other tools besides Clay?

Yes. Same API works with Cargo, AirOps, n8n, Make, or any tool that can make HTTP requests.

What if I update my Library—do I need to update Clay?

No. Clay calls agents via API, agents pull from Library at runtime. Update Library in Octave, next Clay run uses the new context automatically.

How do I force a specific reference customer or proof point?

Octave auto-selects based on prospect's company. To force one, add a runtime instruction like "include reference customer X" or "always include proof point about Y." You can also force it using custom instructions in the per-step instructions section in the agent configuration.

What if Octave can't find information about a lead?

For Content Agents, there's a "Best Effort" setting—if the agent cannot find information about the person, it will fall back to using company information. For qualification agents, if specific data isn't found, it will infer an answer. Pass data you've already enriched as runtime context for more accuracy.

How do I update my ICP criteria without breaking Clay workflows?

This is the core benefit of the Octave + Clay separation. Update your qualifying questions, Personas, or Segments directly in Octave's Library. Clay workflows consume from the Library via API, so they automatically reflect the changes on the next run. No need to edit Clay tables, rewrite prompts, or update formulas.

FAQ

Frequently Asked Questions

Still have questions? Get connected to our support team.