All docs
Start here
API basics
Agent setups
Resources
- Contacts
- Companies
- Lists
- Deals
- Tasks
- Notes
- Fields
- Quotes
- Stage Checklist Pipelines
- Sequences
- Sequence Lifecycle
- Inbox
- Meetings
- Appointments Management
- Voice & Dialer
- Skills (LLM + API)
- Workflows
- GTM Campaigns
- GTM Context
- GTM Knowledge Base
- Launch Helpers
- Landing Pages
- Intent & Signals
- Search
- Enrichment
- Assert / Upsert
- Agency Keys & Cross-Org Targeting
- CRM Syncs
- Audience Syncs
- Destinations
- Snippet
- Functions
Data pipeline
Webhooks
What's new
Stage Checklist Pipelines
REST reference for graph8 Stage Checklist v2 pipelines — multi-stage workflows with evidence requirements and channel scripts
A Stage Checklist pipeline is a multi-stage workflow with per-stage evidence requirements (e.g. “budget confirmed”, “decision-maker identified”) and channel scripts (call, email, LinkedIn) tied to each stage. Distinct from deal pipelines, which are the simple stage-list deals progress through.
30-second start
List your Stage Checklist pipelines:
cURL
curl 'https://be.graph8.com/api/v1/pipelines' \
-H "Authorization: Bearer $G8_API_KEY" TypeScript
import { g8 } from '@graph8/sdk';
g8.init({ apiKey: process.env.G8_API_KEY! });
const { data } = await g8.pipelines.list();
console.log(data); // → StagePipeline[] with stages + evidence + channel scripts CLI
g8 list-stage-pipelines MCP
Ask your agent: “List my stage-checklist pipelines” → tool: g8_list_pipelines.
Quick reference
| Endpoint | Method | Purpose |
|---|---|---|
/pipelines | GET | List pipelines |
/pipelines | POST | Create |
/pipelines/{id} | GET | Get a pipeline with all stages |
/pipelines/{id} | PUT | Update metadata (name, target) |
/pipelines/{id} | DELETE | Delete (no deals must reference) |
/pipelines/evidence-library | GET | Canonical 8-key evidence library |
/pipelines/{id}/stages | POST | Add a stage |
/pipelines/{id}/stages/{stage_id} | PUT | Update a stage |
/pipelines/{id}/stages/{stage_id} | DELETE | Delete a stage |
/pipelines/{id}/stages/reorder | PUT | Reorder stages |
/pipelines/suggest | POST | AI-suggested pipeline from org context |
/pipelines/from-suggestion | POST | Promote a suggestion into a real pipeline |
Pipeline shape
{
id: "pip_xyz",
name: "Enterprise Outbound",
target: "Land 5 new logos in Q3",
is_default: false,
stages: [
{
id: "stg_discovery",
name: "Discovery",
position: 0,
required_elements: ["budget_confirmed", "timeline_known"],
recommended_elements: ["competitor_landscape"],
channel_scripts: {
email: "Hi {{first_name}}...",
call: "Hello, calling about..."
},
color: "#00CAEB",
stage_type: "qualification"
},
{ id: "stg_demo", name: "Demo", position: 1, ... }
]
}
Evidence library
The canonical 8 evidence keys (returned by GET /pipelines/evidence-library) cover the typical qualification criteria:
| Key | Label |
|---|---|
budget_confirmed | Budget confirmed |
timeline_known | Decision timeline known |
decision_maker_identified | Decision maker identified |
pain_point_validated | Pain point validated |
competitor_landscape | Competitor landscape understood |
success_criteria_agreed | Success criteria agreed |
legal_review_started | Legal review started |
commercial_terms_aligned | Commercial terms aligned |
Use these in required_elements / recommended_elements on each stage.
Create
# Default templated stages
POST /api/v1/pipelines
{ "name": "Enterprise Outbound", "target": "Land 5 new logos in Q3" }
# Or blank
POST /api/v1/pipelines
{ "name": "Custom flow", "blank": true }
Update
PUT /api/v1/pipelines/{pipeline_id}
{ "name": "Renamed", "target": "Updated target" }
Stages
POST /api/v1/pipelines/{pipeline_id}/stages
{
"name": "Discovery",
"position": 0,
"required_elements": ["budget_confirmed"],
"channel_scripts": { "email": "Hi {{first_name}}..." }
}
PUT /api/v1/pipelines/{pipeline_id}/stages/{stage_id}
{ "color": "#00CAEB", "recommended_elements": ["competitor_landscape"] }
DELETE /api/v1/pipelines/{pipeline_id}/stages/{stage_id}
PUT /api/v1/pipelines/{pipeline_id}/stages/reorder
{ "stage_ids": ["stg_qual", "stg_demo", "stg_negotiation", "stg_close"] }
AI suggestion
POST /api/v1/pipelines/suggest
# Returns: { data: { suggestion_id, name, target, stages: [...], rationale } }
POST /api/v1/pipelines/from-suggestion
{ "suggestion_id": "sug_abc123", "name": "PLG Path" }
The suggestion engine reads the org’s Studio context (brand brief, ICPs, personas, messaging house — see Studio Context) and proposes a pipeline tailored to the org’s GTM motion. Apply via from-suggestion, optionally overriding the name / target.
Credit costs
All endpoints are free. AI suggestion runs an LLM internally — that consumes credits implicitly (~50-100 per suggestion, depending on context size).
Errors
| Status | Cause | Fix |
|---|---|---|
401 | Missing or invalid Authorization: Bearer header | Get a key |
402 | Out of credits (waterfall enrichment, AI generation, voice minutes) | Top up in Settings → Billing, or switch to Platform |
404 | Resource ID doesn’t exist | List first to verify the ID |
422 | Validation error in request body | Inspect error.message + error.field in the response |
429 | Rate limit (50 rps per org) | Backoff per Retry-After header. See Rate Limits |
5xx | graph8 error | Retry with exponential backoff (5s → 30s → 120s) |
The full error envelope shape: { "error": { "code": "...", "message": "...", "field": "...", "request_id": "..." } }. Include the request_id in any support ticket. See Errors for the canonical reference.
See also
- SDK pipelines methods
- CLI stage-pipeline commands
- MCP pipeline tools
- Deals — for deal pipelines (different surface)