Insites Pipelines module. Use for managing sales pipelines, pipeline stages, opportunities, and related contacts. Trigger on any mention of pipelines, sales pipeline, opportunities, deals, or pipeline stages in Insites.
The Pipelines module manages sales pipelines, stages within those pipelines, and the opportunities (deals) that move through them.
Requires: INSITES_INSTANCE_URL and INSITES_API_KEY. Use the combinate skill to resolve these for Combinate projects.
Base path: $INSITES_INSTANCE_URL/pipeline/api/v2/
Auth: See .claude/skills/insites/SKILL.md for the base request pattern and .env setup.
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipelines?page=1&size=25" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for p in data.get('results', []):
print(f\"[{p.get('id','')}] [{p.get('uuid','')}] {p.get('name', '')}\")
"
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipelines/PIPELINE_UUID"
source .env && curl -s -X POST \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "PIPELINE NAME"}' \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipelines"
source .env && curl -s -X PATCH \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "UPDATED NAME"}' \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipelines/PIPELINE_UUID"
source .env && curl -s -X DELETE \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipelines/PIPELINE_UUID"
Stages are the columns within a pipeline (e.g. Lead, Qualified, Proposal, Closed).
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipeline-stages?pipeline_uuid=PIPELINE_UUID" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for s in data.get('results', []):
print(f\"[{s.get('id','')}] [{s.get('uuid','')}] {s.get('name', '')} Position: {s.get('position', '')}\")
"
source .env && curl -s -X POST \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "STAGE NAME",
"pipeline_uuid": "PIPELINE_UUID"
}' \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipeline-stages"
source .env && curl -s -X PATCH \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "UPDATED STAGE NAME"}' \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipeline-stages/STAGE_UUID"
source .env && curl -s -X DELETE \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/pipeline/api/v2/pipeline-stages/STAGE_UUID"
Opportunities represent individual deals or leads within a pipeline stage.
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/pipeline/api/v2/opportunities?page=1&size=25" | python3 -c "
import sys, json
data = json.load(sys.stdin)
print(f\"Total: {data.get('total_entries', '?')} opportunities\")
for o in data.get('results', []):
stage = (o.get('stage') or {}).get('name', '')
pipeline = (o.get('pipeline') or {}).get('name', '')
value = o.get('value', '')
print(f\"[{o.get('id','')}] [{o.get('uuid','')}] {o.get('name', '')} Pipeline: {pipeline} Stage: {stage} Value: {value}\")
"
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/pipeline/api/v2/opportunities/OPPORTUNITY_UUID"
source .env && curl -s -X POST \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "OPPORTUNITY NAME",
"pipeline_uuid": "PIPELINE_UUID",
"stage_uuid": "STAGE_UUID",
"value": 10000,
"close_date": "YYYY-MM-DD"
}' \
"$INSITES_INSTANCE_URL/pipeline/api/v2/opportunities" | python3 -c "
import sys, json
o = json.load(sys.stdin)
if 'errors' in o:
print('ERROR:', o['errors'])