Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 3s
109 lines
3.2 KiB
Plaintext
109 lines
3.2 KiB
Plaintext
---
|
|
title: Set Up a Sales Pipeline
|
|
description: Configure your sales pipeline to track opportunities through stages.
|
|
---
|
|
|
|
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
|
|
|
|
A sales pipeline in Twenty is a Kanban view of your Opportunities object, where each column represents a stage in your sales process.
|
|
|
|
## Step 1: Configure Your Stages
|
|
|
|
Stages are defined in the Opportunities object's **Stage** field.
|
|
|
|
1. Go to **Settings → Data Model**
|
|
2. Select **Opportunities**
|
|
3. Find and click the **Stage** field
|
|
4. Add, remove, or rename stages to match your process
|
|
|
|
<VimeoEmbed videoId="927890428" title="Video demonstration" />
|
|
|
|
### Recommended Stages
|
|
|
|
| Stage | Purpose |
|
|
|-------|---------|
|
|
| **New** | Fresh opportunities just identified |
|
|
| **Qualified** | Confirmed as a good fit |
|
|
| **Meeting** | Engaged in discussions |
|
|
| **Proposal** | Proposal sent |
|
|
| **Negotiation** | Working on terms |
|
|
| **Closed Won** | Deal successful |
|
|
| **Closed Lost** | Deal unsuccessful |
|
|
|
|
<Note>
|
|
**5-7 stages is optimal.** Too many stages make the pipeline hard to scan; too few lose visibility into deal progress.
|
|
</Note>
|
|
|
|
## Step 2: Create a Pipeline View
|
|
|
|
1. Go to **Opportunities**
|
|
2. Click the view dropdown → **+ Add view**
|
|
3. Name it "Sales Pipeline"
|
|
4. Click **Create**
|
|
5. Open **Options** and select **Kanban** as the layout
|
|
|
|
The view automatically uses the Stage field for columns.
|
|
|
|
## Step 3: Configure Your View
|
|
|
|
### Show Key Fields
|
|
1. Click **Options → Fields**
|
|
2. Look for fields in the "Hidden Fields" section
|
|
3. Click the **eye icon** to display: Company, Amount, Close Date, Owner
|
|
|
|
### Enable Aggregations
|
|
Show totals at the top of each column:
|
|
1. Click the number displayed next to a Stage name at the top of a column
|
|
2. Select the aggregation type (Count, Sum, Average, etc.)
|
|
3. Choose the field to aggregate (e.g., Amount)
|
|
|
|
**Example:** Show total deal value per stage by aggregating the Amount field with Sum.
|
|
|
|
### Use compact view (optional)
|
|
For a high-level overview with minimal card content:
|
|
1. Click **Options**
|
|
2. Turn on the toggle for **Compact view**
|
|
|
|
## Step 4: Create Personal and Team Views
|
|
|
|
### "My Pipeline"
|
|
- **Filter**: Owner = Me
|
|
- **Visibility**: Unlisted (personal view)
|
|
|
|
### "Team Pipeline"
|
|
- **Filter**: None (show all)
|
|
- **Visibility**: Workspace (shared view)
|
|
|
|
### "Closing This Month"
|
|
- **Type**: Table
|
|
- **Filter**: Close Date = This month, Stage ≠ Closed Won, Stage ≠ Closed Lost
|
|
- **Sort**: Close Date ascending
|
|
|
|
## Working with Opportunities
|
|
|
|
### Creating Opportunities
|
|
- Click **+ New** in the Opportunities view
|
|
- Or click **+** in a specific stage column
|
|
|
|
### Moving Through Stages
|
|
Drag and drop opportunity cards between columns to update their stage.
|
|
|
|
<VimeoEmbed videoId="927888627" title="Video demonstration" />
|
|
|
|
## Best Practices
|
|
|
|
### Pipeline Hygiene
|
|
- Update deals daily as they progress
|
|
- Move or close stale deals promptly
|
|
- Keep close dates realistic
|
|
|
|
### Stage Discipline
|
|
- Define clear criteria for each stage
|
|
- Move deals promptly when criteria are met
|
|
- Don't let deals sit in stages too long
|
|
|
|
## Related
|
|
|
|
- [Kanban Views](/user-guide/views-pipelines/capabilities/kanban-views) — aggregations and compact view
|
|
- [Filters and Sorting](/user-guide/views-pipelines/capabilities/filters-and-sorting) — creating filtered views
|