Back to The Times of Claw

How to Build a Marketplace CRM in DenchClaw

Learn how to build a two-sided marketplace CRM in DenchClaw to manage buyers, sellers, transactions, and relationship pipelines in one local-first system.

Mark Rachapoom
Mark Rachapoom
·8 min read
How to Build a Marketplace CRM in DenchClaw

How to Build a Marketplace CRM in DenchClaw

Marketplaces have a relationship problem that standard CRMs don't solve. You have two sides — buyers and sellers (or service providers and clients, or creators and consumers) — and the CRM needs to track both, plus the transactions connecting them. Most CRM tools are built for one-sided funnels. You end up hacking a sales pipeline to handle something fundamentally different.

DenchClaw's flexible object system lets you model a two-sided marketplace properly. You define the objects, the fields, and the relations yourself — and the AI agent manages the data across all sides with natural language.

The Two-Sided Marketplace Data Model#

A marketplace CRM needs at minimum:

  • Buyers — the demand side (customers, clients, subscribers)
  • Sellers (or Providers) — the supply side (vendors, contractors, creators, service providers)
  • Listings — what sellers offer
  • Transactions — completed deals between buyers and sellers
  • Pipeline — deals in progress (buyer interested, pending match, proposal sent)

Beyond these core objects, you may also need: categories, reviews, payouts, disputes, campaigns.

Step 1: Create the Core Objects#

Tell the agent:

"Create these marketplace objects: buyers (demand side), sellers (supply side), listings (what sellers offer), transactions (completed deals), and pipeline_items (deals in progress)"

Buyers Object#

name: buyers
icon: users
fields:
  - name: Full Name
    type: text
  - name: Email
    type: email
  - name: Company
    type: text
  - name: Category Interest
    type: tags
  - name: Budget Range
    type: enum
    options: ["<$1k", "$1k-$5k", "$5k-$25k", "$25k-$100k", ">$100k"]
  - name: Buyer Status
    type: enum
    options: [Prospect, Active, VIP, Inactive, Churned]
  - name: Total Spent
    type: number
  - name: Transactions Count
    type: number
  - name: Last Transaction Date
    type: date
  - name: Acquisition Source
    type: text

Sellers Object#

name: sellers
icon: store
fields:
  - name: Business Name
    type: text
  - name: Contact Name
    type: text
  - name: Email
    type: email
  - name: Category
    type: tags
  - name: Seller Status
    type: enum
    options: [Applied, Onboarding, Active, Suspended, Churned]
  - name: Rating
    type: number
  - name: Total Transactions
    type: number
  - name: GMV Generated
    type: number  # Gross merchandise value
  - name: Commission Rate
    type: number
  - name: Onboarding Date
    type: date
  - name: Last Active Date
    type: date

Transactions Object#

name: transactions
icon: receipt
default_view: table
fields:
  - name: Transaction ID
    type: text
  - name: Buyer
    type: relation
    related_object: buyers
  - name: Seller
    type: relation
    related_object: sellers
  - name: Listing
    type: relation
    related_object: listings
  - name: Amount
    type: number
  - name: Marketplace Fee
    type: number
  - name: Seller Payout
    type: number
  - name: Status
    type: enum
    options: [Pending, Completed, Disputed, Refunded, Cancelled]
  - name: Transaction Date
    type: date
  - name: Category
    type: text

Step 2: Build the Seller Onboarding Pipeline#

Sellers are the supply side — and keeping the supply healthy is critical for marketplace liquidity. Create a pipeline for seller acquisition:

name: seller_pipeline
icon: package
default_view: kanban
view_settings:
  kanbanField: Seller Status
 
fields:
  - name: Business Name
    type: text
  - name: Contact
    type: relation
    related_object: sellers
  - name: Stage
    type: enum
    options: [Applied, Reviewing, Approved, Onboarding, Active, Rejected]
  - name: Application Date
    type: date
  - name: Category
    type: text
  - name: Estimated GMV Potential
    type: number
  - name: Onboarding Owner
    type: text

The kanban view shows your seller pipeline at a glance: Applied → Reviewing → Approved → Onboarding → Active.

Step 3: Build the Buyer Acquisition Pipeline#

The demand side also needs a pipeline — especially if buyers require onboarding, contracts, or qualification:

- name: Buyer Pipeline
  default_view: kanban
  view_settings:
    kanbanField: Buyer Status

For high-touch marketplaces (B2B, services, enterprise), track each potential buyer through: Prospect → Qualified → Demo Scheduled → Proposal Sent → Active.

Step 4: Match Tracking#

One of the unique workflow challenges in marketplaces is match facilitation — pairing buyers with the right sellers. Add a matches or pipeline_items object:

name: pipeline_items
icon: link
fields:
  - name: Buyer
    type: relation
    related_object: buyers
  - name: Seller
    type: relation
    related_object: sellers
  - name: Stage
    type: enum
    options: [Interest, Intro Sent, Meeting Scheduled, Proposal, Negotiating, Closed Won, Closed Lost]
  - name: Estimated Value
    type: number
  - name: Category
    type: text
  - name: Created Date
    type: date
  - name: Expected Close
    type: date
  - name: Match Score
    type: number
  - name: Notes
    type: richtext

This is your deal pipeline for the marketplace — each item represents a potential transaction being facilitated.

Step 5: GMV and Revenue Analytics#

The key marketplace metric is GMV (Gross Merchandise Value). Build a dashboard:

"Build a Dench App showing: total GMV this month vs last month, active buyers vs sellers ratio, top 10 sellers by GMV, transaction volume by category (bar chart), and marketplace take rate trend"

-- GMV by month
SELECT 
  DATE_TRUNC('month', ef_date.value::date) as month,
  SUM(ef_amount.value::decimal) as gmv,
  SUM(ef_fee.value::decimal) as revenue
FROM entries e
JOIN entry_fields ef_date ON e.id = ef_date.entry_id
JOIN fields f_date ON ef_date.field_id = f_date.id AND f_date.name = 'Transaction Date'
JOIN entry_fields ef_amount ON e.id = ef_amount.entry_id
JOIN fields f_amount ON ef_amount.field_id = f_amount.id AND f_amount.name = 'Amount'
JOIN entry_fields ef_fee ON e.id = ef_fee.entry_id
JOIN fields f_fee ON ef_fee.field_id = f_fee.id AND f_fee.name = 'Marketplace Fee'
WHERE e.object_id = (SELECT id FROM objects WHERE name = 'transactions')
GROUP BY month
ORDER BY month;

Step 6: Supply and Demand Health Views#

Build views that surface supply-demand imbalances:

Undersupplied Categories#

Ask the agent: "Show me categories where buyer interest (tag count in buyers) exceeds active seller count by more than 3x"

Inactive Sellers (Supply Erosion Risk)#

- name: Inactive Sellers
  filters:
    - field: Last Active Date
      operator: less_than_days_ago
      value: 30
    - field: Seller Status
      operator: equals
      value: Active
  sort:
    - field: GMV Generated
      direction: desc

High-GMV sellers going inactive is a critical signal — reach out before they leave entirely.

VIP Buyers (Retention Priority)#

- name: VIP Buyers
  filters:
    - field: Total Spent
      operator: greater_than
      value: 10000
    - field: Buyer Status
      operator: not_equals
      value: Inactive
  sort:
    - field: Total Spent
      direction: desc

Step 7: Automate Marketplace Alerts#

"Every morning, message me on Telegram:

  • New seller applications received in the last 24 hours
  • Buyers who completed their first transaction (within the last 24 hours) — these need a welcome check-in
  • Sellers who went inactive (no transaction in 30 days) — flag if their GMV was >$1k historically
  • Any disputes opened in the last 48 hours"

The agent becomes your marketplace operations radar.

Marketplace-Specific CRM Tips#

Track relationship age: Long-term sellers and buyers have higher LTV and lower churn. Add "First Transaction Date" to both objects and segment by cohort.

Commission rate management: If sellers have individual rates (negotiated deals), the Commission Rate field on sellers + the Marketplace Fee on transactions lets you track take rate by seller.

Two-sided NPS: Send NPS surveys to both buyers and sellers periodically. Store results in their objects. Buyer NPS and seller NPS tell very different stories about marketplace health.

Dispute tracking: Create a disputes object linked to transactions. Track resolution time and outcomes. High dispute rates on specific sellers are an early warning for supply quality problems.

Frequently Asked Questions#

Can DenchClaw handle both B2C and B2B marketplace models?#

Yes. The object system is flexible — a B2C marketplace might have individual buyers (person object) and small businesses as sellers, while a B2B marketplace might have enterprise buyers (company object) and vetted vendors. Model it the way your business works.

How do I handle multiple listings per seller?#

The listings object is linked to sellers via a relation field. One seller can have many listings. When tracking a transaction, link it to both the seller and the specific listing used.

Can I track payouts to sellers in DenchClaw?#

Add a payouts object with fields for payout amount, date, status, and a relation to sellers. When a batch of transactions is finalized, create a payout record and update seller balances. For actual payment processing, you'd use Stripe Connect — DenchClaw tracks the relationships and history.

How do I handle categories with very different transaction sizes?#

Use the Category tag on transactions and create separate views/analytics per category. A services marketplace might have $500 micro-transactions and $50,000 enterprise contracts in the same system — segmenting by category keeps the analytics meaningful.

What's the best view type for a marketplace dashboard?#

The combination that works best: kanban for pipeline stages, table for transaction history with sorting/filtering, and a custom Dench App dashboard for GMV metrics and supply-demand health visualization.

Ready to try DenchClaw? Install in one command: npx denchclaw. Full setup guide →

Mark Rachapoom

Written by

Mark Rachapoom

Building the future of AI CRM software.

Continue reading

DENCH

© 2026 DenchHQ · San Francisco, CA