Skip to main content
This walkthrough creates a Deals object type, sets up a pipeline with stages, adds deals, and queries the board. Everything here works against a live workspace.
1

Create the Deals object type

Define the object type with the fields you need: deal name, value, and company.
npx supersonic-cli objects create \
  --name "Deals" \
  --slug "deals" \
  --fields '[
    {"name": "Deal Name", "field_type": "text", "required": true},
    {"name": "Value", "field_type": "number"},
    {"name": "Company", "field_type": "text"}
  ]'
The response includes the object type ID and slug. You’ll use "deals" as the object_type_slug in subsequent calls.
2

Create the pipeline list

A pipeline in Supersonic is a list with a stage field. Create it with the stages you want.
npx supersonic-cli lists create \
  --name "Sales Pipeline" \
  --object-type-slug "deals" \
  --fields '[
    {"name": "Stage", "field_type": "select", "options": ["Lead", "Qualified", "Proposal", "Closed Won", "Closed Lost"]}
  ]'
Save the list_id from the response. You’ll need it to add entries.
3

Create some deals

Add a few deal records to the Deals object type.
npx supersonic-cli records create \
  --object-type-slug "deals" \
  --data '{"Deal Name": "Acme Corp renewal", "Value": 48000, "Company": "Acme Corp"}'

npx supersonic-cli records create \
  --object-type-slug "deals" \
  --data '{"Deal Name": "Globex expansion", "Value": 120000, "Company": "Globex Inc"}'

npx supersonic-cli records create \
  --object-type-slug "deals" \
  --data '{"Deal Name": "Initech pilot", "Value": 15000, "Company": "Initech"}'
Each call returns the record with its id. Note those IDs for the next step.
4

Add deals to the pipeline

Place each deal into the pipeline at a specific stage.
npx supersonic-cli lists add-entry \
  --list-id "LIST_ID" \
  --record-id "RECORD_ID_1" \
  --data '{"Stage": "Lead"}'

npx supersonic-cli lists add-entry \
  --list-id "LIST_ID" \
  --record-id "RECORD_ID_2" \
  --data '{"Stage": "Proposal"}'

npx supersonic-cli lists add-entry \
  --list-id "LIST_ID" \
  --record-id "RECORD_ID_3" \
  --data '{"Stage": "Qualified"}'
Replace LIST_ID and RECORD_ID_* with the actual IDs from previous steps.
5

View the pipeline

Fetch all entries grouped by stage.
npx supersonic-cli lists entries --list-id "LIST_ID"
The response returns every entry with its record data and stage value. In the Supersonic UI, this renders as a Kanban board.
6

Move a deal to a new stage

When a deal progresses, update its entry.
npx supersonic-cli lists update-entry \
  --list-id "LIST_ID" \
  --entry-id "ENTRY_ID" \
  --data '{"Stage": "Closed Won"}'
7

Get pipeline analytics

Pull aggregate numbers: deal count and total value per stage.
npx supersonic-cli analytics pipeline --list-id "LIST_ID"
Returns stage-by-stage breakdown with counts and summed values.
Rate limit is 1,000 API calls per minute. For bulk operations, see Import contacts from CSV.