Octave integration
Octave is a go-to-market (GTM) platform that stores a company's sales strategy as a Library and runs AI agents grounded in it. An agent can read, create, update, delete and AI-generate Library entities (personas, use cases, customer references, products, services, solutions, competitors, alternatives, buying triggers, core features, objections, segments, proof points, playbooks, brand voices, motions and motion playbooks), run saved Octave agents (company enrichment and qualification, content, email sequences, call prep, context), run workflows and skills and poll them, search Library context, apply a brand voice, manage the workspace company profile and read credit usage. Agent runs, skill runs, generation, context search and brand voice application spend Octave credits (amounts are stated per tool where Octave states them; get_credit_usage shows the balance). Not exposed: person-level research and enrichment (resolve email or profile, enrich or qualify a person, prospector), hosted assets and their share links and visitor analytics, conversation events, call transcripts, findings, insights, reports and intel, custom extractors, tags and tag groups, suggestions and revisions, Library locks and downloads, resources (sources), entity webhooks, CRM schema, API key routes, saved-agent configuration, background agent runs (they run any agent type, person enrichment included), motion ICP cells, and the callback-only headless email generation. Authentication is a workspace API key (Settings, API Keys in the Octave app) sent in the api_key header.
Say what should happen.
The workflow builds itself.
What you can do with Octave
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Brand voice, 7 operations
apply_brand_voiceApply brand voicePOSTRewrites the given texts in a brand voice (the default one if none given). Credits per source: NOTE 5, PULSE 10, ECHO 20, HARMONY 30 (modelType).create_brand_voiceCreate brand voicePOSTCreates a brand voice from literal values (title, description, personality, tonality, vocabulary, writing rules, audience). To draft one with AI use generate_brand_voice.generate_brand_voiceGenerate brand voicePOSTGenerates and creates a brand voice with AI from sources (writing samples, URLs). AI generation may spend Octave credits; get_credit_usage shows the balance.get_brand_voiceGet brand voiceGETReads one brand voice from the Octave Library by oId (from list_brand_voices), with all its content fields and linked entities.list_brand_voicesList brand voicesGETLists the workspace's brand voices, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_brand_voice.toggle_default_brand_voiceToggle default brand voicePOSTMakes a brand voice the workspace default, or unsets it if it already is (any other default is unset). Changes which voice agents use by default.update_brand_voiceUpdate brand voicePOSTUpdates a brand voice (oId from list_brand_voices). data replaces the whole stored content and needs every section: read it with get_brand_voice first and send it back with your change.
Agent run, 6 operations
run_call_prep_agentRun call prep agentPOSTRuns a saved Octave agent synchronously (agentOId of a CALL_PREP agent from list_agents) to write call prep (questions, script, objection handling) for a contact. Each run spends credits, the amount set by the agent's configuration and model.run_content_agentRun content agentPOSTRuns a saved Octave agent synchronously (agentOId of a CONTENT agent from list_agents) to write content for a contact; pass agentOId or experimentOId. Each run spends credits, the amount set by the agent's configuration and model.run_context_agentRun context agentPOSTRuns a saved Octave agent synchronously (agentOId of a CONTEXT agent from list_agents) to answer a query from Library context with its saved settings. Each run spends credits, the amount set by the agent's configuration and model.run_enrich_company_agentRun enrich company agentPOSTRuns a saved Octave agent synchronously (agentOId of an ENRICH_COMPANY agent from list_agents) to research a company by domain or name. Each run spends credits, the amount set by the agent's configuration and model.run_qualify_company_agentRun qualify company agentPOSTRuns a saved Octave agent synchronously (agentOId of a QUALIFY_COMPANY agent from list_agents) to judge whether a company fits a product or segment. Each run spends credits, the amount set by the agent's configuration and model.run_sequence_agentRun sequence agentPOSTRuns a saved Octave agent synchronously (agentOId of an EMAIL agent from list_agents) to write an email sequence for a contact; pass agentOId or experimentOId. Each run spends credits, the amount set by the agent's configuration and model.
Alternative, 6 operations
create_alternativeCreate alternativePOSTCreates an alternative (status quo, incumbent or do-it-yourself approach) in the Octave Library from the fields you give. To draft one with AI from sources use generate_alternatives.delete_alternativeDelete alternativeDELETEDeletes an alternative (status quo, incumbent or do-it-yourself approach) (oId from list_alternatives). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_alternativesGenerate alternativesPOSTGenerates alternatives with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_alternativeGet alternativeGETReads one alternative (status quo, incumbent or do-it-yourself approach) from the Octave Library by oId (from list_alternatives), with all its content fields and linked entities.list_alternativesList alternativesGETLists the workspace's alternatives, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_alternative.update_alternativeUpdate alternativePOSTUpdates an existing alternative (status quo, incumbent or do-it-yourself approach) (oId from list_alternatives) with the fields you send.
Buying trigger, 6 operations
create_buying_triggerCreate buying triggerPOSTCreates a buying trigger in the Octave Library from the fields you give. To draft one with AI from sources use generate_buying_triggers.delete_buying_triggerDelete buying triggerDELETEDeletes a buying trigger (oId from list_buying_triggers). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_buying_triggersGenerate buying triggersPOSTGenerates buying triggers with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_buying_triggerGet buying triggerGETReads one buying trigger from the Octave Library by oId (from list_buying_triggers), with all its content fields and linked entities.list_buying_triggersList buying triggersGETLists the workspace's buying triggers, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_buying_trigger.update_buying_triggerUpdate buying triggerPOSTUpdates an existing buying trigger (oId from list_buying_triggers) with the fields you send.
Competitor, 6 operations
create_competitorCreate competitorPOSTCreates a competitor in the Octave Library from the fields you give. To draft one with AI from sources use generate_competitors.delete_competitorDelete competitorDELETEDeletes a competitor (oId from list_competitors). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_competitorsGenerate competitorsPOSTGenerates competitors with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_competitorGet competitorGETReads one competitor from the Octave Library by oId (from list_competitors), with all its content fields and linked entities.list_competitorsList competitorsGETLists the workspace's competitors, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_competitor.update_competitorUpdate competitorPOSTUpdates an existing competitor (oId from list_competitors) with the fields you send.
Core feature, 6 operations
create_core_featureCreate core featurePOSTCreates a core feature under a parent offering (primaryOfferingOId, a product, service or solution oId).delete_core_featureDelete core featureDELETEDeletes a core feature (oId from list_core_features). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_core_featuresGenerate core featuresPOSTGenerates core features with AI from source material, attached to the parent offering primaryOfferingOId (a product, service or solution). AI generation may spend Octave credits; get_credit_usage shows the balance.get_core_featureGet core featureGETReads one core feature from the Octave Library by oId (from list_core_features), with all its content fields and linked entities.list_core_featuresList core featuresGETLists the workspace's core features, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_core_feature.update_core_featureUpdate core featurePOSTUpdates an existing core feature (oId from list_core_features) with the fields you send.
Objection, 6 operations
create_objectionCreate objectionPOSTCreates an objection in the Octave Library from the fields you give. To draft one with AI from sources use generate_objections.delete_objectionDelete objectionDELETEDeletes an objection (oId from list_objections). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_objectionsGenerate objectionsPOSTGenerates objections with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_objectionGet objectionGETReads one objection from the Octave Library by oId (from list_objections), with all its content fields and linked entities.list_objectionsList objectionsGETLists the workspace's objections, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_objection.update_objectionUpdate objectionPOSTUpdates an existing objection (oId from list_objections) with the fields you send.
Persona, 6 operations
create_personaCreate personaPOSTCreates a persona in the Octave Library from the fields you give. To draft one with AI from sources use generate_personas.delete_personaDelete personaDELETEDeletes a persona (oId from list_personas). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_personasGenerate personasPOSTGenerates personas with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_personaGet personaGETReads one persona from the Octave Library by oId (from list_personas), with all its content fields and linked entities.list_personasList personasGETLists the workspace's personas, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_persona.update_personaUpdate personaPOSTUpdates an existing persona (oId from list_personas) with the fields you send.
Product, 6 operations
create_productCreate productPOSTCreates a product in the Octave Library from the fields you give. To draft one with AI from sources use generate_products.delete_productDelete productDELETEDeletes a product (oId from list_products). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_productsGenerate productsPOSTGenerates products with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_productGet productGETReads one product from the Octave Library by oId (from list_products), with all its content fields and linked entities.list_productsList productsGETLists the workspace's products, paged with limit and offset. type=ALL returns products, services and solutions together. Pass an oId to get_product.update_productUpdate productPOSTUpdates an existing product (oId from list_products) with the fields you send.
Proof point, 6 operations
create_proof_pointCreate proof pointPOSTCreates a proof point in the Octave Library from the fields you give. To draft one with AI from sources use generate_proof_points.delete_proof_pointDelete proof pointDELETEDeletes a proof point (oId from list_proof_points). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_proof_pointsGenerate proof pointsPOSTGenerates proof points with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_proof_pointGet proof pointGETReads one proof point from the Octave Library by oId (from list_proof_points), with all its content fields and linked entities.list_proof_pointsList proof pointsGETLists the workspace's proof points, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_proof_point.update_proof_pointUpdate proof pointPOSTUpdates an existing proof point (oId from list_proof_points) with the fields you send.
Reference, 6 operations
create_referenceCreate referencePOSTCreates a customer reference in the Octave Library from the fields you give. To draft one with AI from sources use generate_references.delete_referenceDelete referenceDELETEDeletes a customer reference (oId from list_references). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_referencesGenerate referencesPOSTGenerates customer references with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_referenceGet referenceGETReads one customer reference from the Octave Library by oId (from list_references), with all its content fields and linked entities.list_referencesList referencesGETLists the workspace's customer references, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_reference.update_referenceUpdate referencePOSTUpdates an existing customer reference (oId from list_references) with the fields you send.
Segment, 6 operations
create_segmentCreate segmentPOSTCreates a market segment in the Octave Library from the fields you give. To draft one with AI from sources use generate_segments.delete_segmentDelete segmentDELETEDeletes a market segment (oId from list_segments). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_segmentsGenerate segmentsPOSTGenerates segments with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_segmentGet segmentGETReads one market segment from the Octave Library by oId (from list_segments), with all its content fields and linked entities.list_segmentsList segmentsGETLists the workspace's segments, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_segment.update_segmentUpdate segmentPOSTUpdates an existing market segment (oId from list_segments) with the fields you send.
Service, 6 operations
create_serviceCreate servicePOSTCreates a service in the Octave Library from the fields you give. To draft one with AI from sources use generate_services.delete_serviceDelete servicePOSTDeletes a service (oId from list_services). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_servicesGenerate servicesPOSTGenerates services with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_serviceGet serviceGETReads one service from the Octave Library by oId (from list_services), with all its content fields and linked entities.list_servicesList servicesGETLists the workspace's services, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_service.update_serviceUpdate servicePOSTUpdates an existing service (oId from list_services) with the fields you send.
Motion, 5 operations
create_motionCreate motionPOSTCreates a motion (offering, motion type and target data) with a default playbook. The offering must be motion-eligible, else Octave answers 400 (INELIGIBLE or LIBRARY_ADJUSTMENT_REQUIRED).delete_motionDelete motionDELETEDeletes a motion (oId from list_motions) together with all its ICP cells and learnings. Octave soft-deletes them.get_motionGet motionGETReads one motion from the Octave Library by oId (from list_motions), with all its content fields and linked entities.list_motionsList motionsGETLists the workspace's motions, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_motion.update_motionUpdate motionPOSTUpdates an existing motion (oId from list_motions) with the fields you send.
Motion playbook, 5 operations
create_motion_playbookCreate motion playbookPOSTCreates a playbook for an existing motion: name, motionType, offeringOId, narrativeType, narrativeInput, scope and anchorOverrides are required.delete_motion_playbookDelete motion playbookDELETEDeletes a motion playbook (oId from list_motion_playbooks). Octave soft-deletes it: it is marked deleted, not permanently removed.get_motion_playbookGet motion playbookGETReads one motion playbook from the Octave Library by oId (from list_motion_playbooks), with all its content fields and linked entities.list_motion_playbooksList motion playbooksGETLists the workspace's motion playbooks, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_motion_playbook.update_motion_playbookUpdate motion playbookPOSTChanges the name, active state or narrative sections (motionFraming, keyMessaging, keyPositioning) of a motion playbook (oId from list_motion_playbooks).
Playbook, 5 operations
create_playbookCreate playbookPOSTCreates a playbook (a messaging strategy linking personas, use cases, proof points and an offering). description and keyInsight are required.delete_playbookDelete playbookDELETEDeletes a playbook (oId from list_playbooks). Octave soft-deletes it: it is marked deleted, not permanently removed.get_playbookGet playbookGETReads one playbook from the Octave Library by oId (from list_playbooks), with all its content fields and linked entities.list_playbooksList playbooksGETLists the workspace's playbooks, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_playbook.update_playbookUpdate playbookPOSTChanges the fields you send on a playbook (oId from list_playbooks); omitted fields stay unchanged and the data object is shallow-merged with the stored one.
Solution, 5 operations
create_solutionCreate solutionPOSTCreates a solution from content you already have (solution fields plus the sources it was built from). To draft one with AI use generate_solutions.delete_solutionDelete solutionDELETEDeletes a solution (oId from list_solutions). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_solutionsGenerate solutionsPOSTDrafts solution content with AI from sources, a name, optional Library links and instructions; save=true also stores it. AI generation may spend Octave credits; get_credit_usage shows the balance.get_solutionGet solutionGETReads one solution from the Octave Library by oId (from list_solutions), with all its content fields and linked entities.list_solutionsList solutionsGETLists the workspace's solutions, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_solution.
Use case, 5 operations
create_use_caseCreate use casePOSTCreates a use case in the Octave Library from the fields you give. To draft one with AI from sources use generate_use_cases.delete_use_caseDelete use caseDELETEDeletes a use case (oId from list_use_cases). Octave soft-deletes it: it is marked deleted, not permanently removed.generate_use_casesGenerate use casesPOSTGenerates use cases with AI from source material (text, URLs or Octave resources). AI generation may spend Octave credits; get_credit_usage shows the balance.get_use_caseGet use caseGETReads one use case from the Octave Library by oId (from list_use_cases), with all its content fields and linked entities.list_use_casesList use casesGETLists the workspace's use cases, filtered and paged with limit and offset (hasNext says more remain). Pass an item's oId to get_use_case.
Skill, 3 operations
find_skillFind skillPOSTFinds the skills that best fit a task in words, ranked with reasoning and confidence (no bodies; read one with get_skill). Zero results means no skill fits.get_skillGet skillGETReads one skill by oId or exact name (from list_skills or find_skill), with its SKILL.md body and file listing.list_skillsList skillsGETLists the workspace's skills (agent instruction documents) with names and descriptions, filterable by text and status. Pass a skill's oId or name to get_skill.
Skill run, 3 operations
cancel_runCancel runPOSTCancels a skill run (oId from start_skill_run): items not started never start and cost nothing. The run reads cancelling true until it ends cancelled.get_runGet runGETReads a skill run started by start_skill_run: status (queued, running, succeeded, partial, failed, cancelled), credits and a page of items with outputs. Poll every 10 to 30 s.start_skill_runStart skill runPOSTRuns a skill (key) on a request in words, once or once per items line (at most 200). Costs 100 credits (standard) or 200 (high) per published document plus research tools. Poll get_run.
Agent, 2 operations
get_agentGet agentGETReads one saved agent by oId (from list_agents), with its type and configuration.list_agentsList agentsGETLists the saved agents of the workspace (oId, type, name, description), filterable by type. Pass an oId as agentOId to the run tools.
Workflow run, 2 operations
get_workflow_run_statusGet workflow run statusGETReads a workflow run started by run_workflow: status PENDING, RUNNING, PAUSED, COMPLETED, FAILED or CANCELLED, with counts and times. It does not return the output rows.run_workflowRun workflowPOSTStarts an Octave workflow (a chain of agents) in the background. Returns jobOId: poll get_workflow_run_status every 5 to 10 s. Each agent step spends credits.
Workspace company, 2 operations
generate_workspace_companyGenerate workspace companyPOSTRegenerates the workspace company profile with AI from a domain (scraped) and/or sources, and saves it over the current one (or creates it). domain or sources is required. AI generation may spend Octave credits; get_credit_usage shows the balance.get_workspace_companyGet workspace companyGETReads the workspace company profile (your own company: what you do, positioning, who you help). There is exactly one per workspace.
Agent type, 1 operation
list_agent_typesList agent typesGETLists the agent types Octave offers, with their metadata.
Context, 1 operation
search_contextSearch contextPOSTSearches Library entities, sources, tracked docs and external research for a query, with an optional written answer and citations. Spends credits (402 when exhausted; 429 means wait Retry-After).
Credit usage, 1 operation
get_credit_usageGet credit usageGETReads the subscription's credit usage for the current period: included, additional, used, remaining, exhausted, next reset and overage. Free to call, 30 requests per minute.
Language, 1 operation
list_languagesList languagesGETLists the languages Octave agents can write in.
Showing the first 120 of 123 endpoints. The rest are in the product, searchable from the workflow builder and from chat.
Use Octave from Claude Code, Cursor or Codex
Connect Octave in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Octave operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Octave
- Create your workspace
Sign up free. Nothing to install.
- Connect Octave once
Add your Octave connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Octave integration FAQ
What can you do with the Octave integration?
LiveContext exposes 123 operations on Octave, covering brand voice, agent run, alternative and buying trigger.
