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.
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: textSellers 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: dateTransactions 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: textStep 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: textThe 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 StatusFor 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: richtextThis 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: descHigh-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: descStep 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 →
