> ## Documentation Index
> Fetch the complete documentation index at: https://docs.supersonic.cv/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a fundraising CRM

> Set up a fundraising tracker with investor profiles, a pipeline with stages, and deal tracking.

This walkthrough builds a complete fundraising tracker: an Investors object type with relevant fields, a pipeline with fundraising stages, sample investor records, and pipeline analytics. You can follow this end-to-end in about five minutes.

<Steps>
  <Step title="Create the Investors object type">
    ```bash theme={null}
    npx supersonic-cli objects create \
      --name "Investors" \
      --slug "investors" \
      --fields '[
        {"name": "Name", "field_type": "text", "required": true},
        {"name": "Fund", "field_type": "text"},
        {"name": "Check Size", "field_type": "number"},
        {"name": "Thesis", "field_type": "text"},
        {"name": "Contact Email", "field_type": "text"},
        {"name": "Partner", "field_type": "text"},
        {"name": "Notes", "field_type": "text"}
      ]'
    ```

    This gives you fields for everything you'd track per investor: fund name, typical check size, thesis fit, and the partner you're talking to.
  </Step>

  <Step title="Create the fundraise pipeline">
    ```bash theme={null}
    npx supersonic-cli lists create \
      --name "Series A Fundraise" \
      --object-type-slug "investors" \
      --fields '[
        {"name": "Stage", "field_type": "select", "options": ["Inbound", "First Meeting", "Due Diligence", "Term Sheet", "Closed"]}
      ]'
    ```

    Save the `list_id` from the output.
  </Step>

  <Step title="Add investors">
    ```bash theme={null}
    npx supersonic-cli records create \
      --object-type-slug "investors" \
      --data '{
        "Name": "Sequoia Capital",
        "Fund": "Sequoia Growth Fund IV",
        "Check Size": 15000000,
        "Partner": "Pat Grady",
        "Contact Email": "pat@sequoiacap.com",
        "Thesis": "Enterprise SaaS"
      }'
    ```

    ```bash theme={null}
    npx supersonic-cli records create \
      --object-type-slug "investors" \
      --data '{
        "Name": "Andreessen Horowitz",
        "Fund": "a16z Growth",
        "Check Size": 25000000,
        "Partner": "Martin Casado",
        "Contact Email": "martin@a16z.com",
        "Thesis": "Infrastructure, dev tools"
      }'
    ```

    ```bash theme={null}
    npx supersonic-cli records create \
      --object-type-slug "investors" \
      --data '{
        "Name": "Founders Fund",
        "Fund": "FF VII",
        "Check Size": 10000000,
        "Partner": "Keith Rabois",
        "Contact Email": "keith@foundersfund.com",
        "Thesis": "Contrarian bets"
      }'
    ```

    ```bash theme={null}
    npx supersonic-cli records create \
      --object-type-slug "investors" \
      --data '{
        "Name": "Y Combinator Continuity",
        "Fund": "YC Continuity Fund III",
        "Check Size": 5000000,
        "Partner": "Ali Rowghani",
        "Contact Email": "ali@ycombinator.com",
        "Thesis": "YC alumni growth rounds"
      }'
    ```

    Note the record IDs from each response.
  </Step>

  <Step title="Place investors in the pipeline">
    Put each investor at their current stage:

    ```bash theme={null}
    npx supersonic-cli lists add-entry \
      --list-id "LIST_ID" \
      --record-id "SEQUOIA_RECORD_ID" \
      --data '{"Stage": "Due Diligence"}'

    npx supersonic-cli lists add-entry \
      --list-id "LIST_ID" \
      --record-id "A16Z_RECORD_ID" \
      --data '{"Stage": "First Meeting"}'

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

    npx supersonic-cli lists add-entry \
      --list-id "LIST_ID" \
      --record-id "YC_RECORD_ID" \
      --data '{"Stage": "Term Sheet"}'
    ```
  </Step>

  <Step title="Move an investor forward">
    When Sequoia sends a term sheet:

    ```bash theme={null}
    npx supersonic-cli lists update-entry \
      --list-id "LIST_ID" \
      --entry-id "SEQUOIA_ENTRY_ID" \
      --data '{"Stage": "Term Sheet"}'
    ```
  </Step>

  <Step title="Check pipeline status">
    Get a summary of where all conversations stand:

    ```bash theme={null}
    npx supersonic-cli analytics pipeline --list-id "LIST_ID"
    ```

    Returns counts and aggregate check sizes per stage. Useful for board updates.
  </Step>

  <Step title="Add notes to a record">
    After a meeting, update the investor record with notes:

    ```bash theme={null}
    npx supersonic-cli records update \
      --object-type-slug "investors" \
      --record-id "SEQUOIA_RECORD_ID" \
      --data '{"Notes": "Met 3/20. Interested in ARR trajectory. Want to see Q2 numbers. Follow up April 5."}'
    ```
  </Step>
</Steps>

## REST API equivalents

Every CLI command maps to a single API call. Here's the pattern:

```bash theme={null}
curl -X POST https://mcp.supersonic.cv/api/developers/mcp/call/ \
  -H "Authorization: Bearer supersonic_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "records.create",
    "params": {
      "object_type_slug": "investors",
      "data": {
        "Name": "Sequoia Capital",
        "Fund": "Sequoia Growth Fund IV",
        "Check Size": 15000000,
        "Partner": "Pat Grady",
        "Contact Email": "pat@sequoiacap.com",
        "Thesis": "Enterprise SaaS"
      }
    }
  }'
```

Same structure for every tool: `{"tool": "tool.name", "params": {...}}`.

<Tip>
  You can add fields to an existing object type at any time without losing data. If you later want to track "Warm Intro Source", just add the field:

  ```bash theme={null}
  npx supersonic-cli objects add-field \
    --object-type-slug "investors" \
    --name "Warm Intro" \
    --field-type "text"
  ```
</Tip>
