Docs

Deals and pipeline

Two screens use the word pipeline. They are different objects.

ScreenRouteWhat it shows
Deals/salesDeal records, as a board by stage or as a table
Pipeline/pipelineCampaign members, CRM prospects, and intake

Campaigns (/campaigns) are the motions those members belong to. Products (/products) are the catalog you can hang on a deal or a campaign.

Deals

The board columns are the stage check constraint, in order:

  1. Lead
  2. Qualification
  3. Discovery
  4. Value Proposition
  5. Proposal
  6. Negotiate
  7. Contract
  8. Closed Won
  9. Closed Lost

Stage values are Title Case. A deal also has status: open, won, lost, or stalled. closed becomes true for Closed Won and Closed Lost.

You can filter by domain, campaign, and account, hide closed deals, and hide deals whose campaign is excluded from the board. New deal creates a record. Dragging a card changes its stage. The drawer edits the rest.

Forecast fields:

FieldValues
forecast_categorypipeline, best_case, most_likely, commit
forecast_percentage0–100

Narrative fields on the deal are deal_summary, deal_details, product_offering, strategic_questions, and next_steps. scorecard is a JSON object. Agents write that pack with deal_scorecard_set (scope deals:write). People edit the same fields in the drawer.

Line items are deal_line_item_set / deal_line_items_list, and in the app under the deal's line-item routes. Each line has a product, name, quantity, and unit amount.

Creating or renaming a product files a human-only approval (product_create, product_rename). Updating other product fields can go through product_upsert.

Proposals from activity

Ingest can store a proposed deal name on an activity without creating the deal. deal_proposals lists those names. deal_proposal_resolve approves or dismisses one. Approving is what creates the deal path. The agent does not insert the deal row on its own.

Campaign pipeline

/pipeline has three tabs:

  • Members — contacts or accounts on a campaign, with a member status.
  • Prospects — CRM leads in the campaign motion.
  • Intake — read-only queue of inbound intake. There is no New button on this tab.

campaign_member_add adds a contact or an account. campaign_member_update changes member status and merges SDR metadata. It does not replace the metadata object blindly.

Campaign campaign_type is outbound_marketing or internal_initiative. Status is draft, active, paused, completed, or archived. A campaign can be linked to products and to ICP profiles. ICP definitions are on Marketing → ICP.

Accounts behind the deal

Deal cards can name account_id plus end_customer_account_id, bill_to_account_id, and referring_partner_account_id. Send an id or a slug. The allowed deal fields are listed in Entity fields.