Skip to main content

Publishing to the Store

Turn your agents into store listings and start earning.

Prerequisites

Before publishing:

  1. Be a vendor: Complete the vendor program application
  2. Have an agent: Build and test your agent thoroughly
  3. Prepare assets: Screenshots, documentation, and description

Creating a Listing

From an Existing Agent

const listing = await client.store.createListing({
// Source agent
agentId: 'agent-123',

// Basic info
name: 'Customer Support Pro',
shortDescription: 'AI-powered customer support that handles 80% of tickets automatically.',
tagline: 'Support that scales with you',

// Classification
category: 'support', // assistant, support, coding, writing, analysis, automation, integration
tags: ['customer-support', 'helpdesk', 'automation', 'chatbot'],

// Pricing
pricing: {
model: 'subscription',
monthlyPrice: 2999, // €29.99/month in cents
yearlyPrice: 29900, // €299/year (2 months free)
currency: 'EUR'
},

// License
license: 'proprietary', // proprietary, mit, apache2, gpl3, custom

// Content
documentation: `
# Customer Support Pro

## Quick Start

1. Install the agent
2. Configure your knowledge base
3. Connect to your helpdesk

## Features

- Automatic ticket classification
- Smart response suggestions
- Escalation rules
- Analytics dashboard

## Configuration

...
`,

// Media
screenshots: [
'https://cdn.example.com/screenshot1.png',
'https://cdn.example.com/screenshot2.png'
],

// Support
supportUrl: 'https://support.example.com',
demoUrl: 'https://demo.example.com'
});

// Status: draft
console.log(listing.id);

From a Template

// Get your publishable templates
const templates = await client.store.vendor.getTemplates();

// Publish template to store
const listing = await client.store.publishTemplate('template-123', {
name: 'Customer Support Pro',
shortDescription: 'AI-powered customer support.',
category: 'support',
tags: ['support', 'helpdesk'],
pricing: {
model: 'free'
}
});

Pricing Models

Free

pricing: {
model: 'free'
}

Best for:

  • Building reputation
  • Open-source tools
  • Community contributions

One-Time Purchase

pricing: {
model: 'one_time',
price: 4999, // €49.99
currency: 'EUR'
}

Best for:

  • Simple tools
  • Utilities
  • No ongoing updates

Pricing range: €10 - €9,999

Subscription

pricing: {
model: 'subscription',
monthlyPrice: 999, // €9.99/month
yearlyPrice: 9900, // €99/year
currency: 'EUR'
}

Best for:

  • Agents requiring updates
  • Support-heavy products
  • Recurring value

Monthly range: €5 - €999 Yearly range: €50 - €9,999

Freemium

pricing: {
model: 'freemium',
currency: 'EUR',
freeTier: {
name: 'Basic',
features: [
'5 conversations/day',
'Email support'
],
limitations: [
'No file uploads',
'No integrations'
]
},
paidTiers: [
{
id: 'pro',
name: 'Pro',
price: 1999, // €19.99
billingPeriod: 'monthly',
features: [
'Unlimited conversations',
'File uploads',
'All integrations',
'Priority support'
]
},
{
id: 'enterprise',
name: 'Enterprise',
price: 9999, // €99.99
billingPeriod: 'monthly',
features: [
'Everything in Pro',
'Custom model',
'Dedicated support',
'SLA guarantee'
]
}
]
}

Best for:

  • Try-before-buy
  • Upselling opportunities
  • Wide audience reach

Listing Content

Writing Effective Descriptions

Short Description (200 chars max)

shortDescription: 'AI-powered customer support that handles 80% of tickets automatically. Reduce response time and improve customer satisfaction.'

Tips:

  • Lead with the main benefit
  • Include a metric if possible
  • Be specific, not generic

Tagline (120 chars max)

tagline: 'Support that scales with you'

Tips:

  • Catchy and memorable
  • Convey value proposition
  • Avoid buzzwords

Full Description

Use markdown for formatting:

# Customer Support Pro

Automate your customer support without losing the human touch.

## Key Features

- **Automatic Classification**: Tickets are instantly categorized
- **Smart Responses**: AI suggests responses based on your knowledge base
- **Seamless Escalation**: Complex issues go to the right human
- **Real-time Analytics**: Track performance metrics

## How It Works

1. Connect your helpdesk (Zendesk, Freshdesk, Intercom)
2. Import your knowledge base
3. Configure response rules
4. Go live

## Results

Companies using Customer Support Pro see:
- 80% reduction in first response time
- 60% of tickets resolved automatically
- 35% improvement in customer satisfaction

## Support

- Documentation: [docs.example.com](https://docs.example.com)
- Email: support@example.com
- Response time: < 24 hours

Screenshots

Include 2-6 screenshots showing:

  1. Main interface
  2. Key features in action
  3. Configuration screens
  4. Results/analytics

Specifications:

  • Format: PNG or JPG
  • Size: 1200x800 recommended
  • Max file size: 2MB each
screenshots: [
'https://cdn.example.com/main-interface.png',
'https://cdn.example.com/ticket-classification.png',
'https://cdn.example.com/analytics-dashboard.png',
'https://cdn.example.com/configuration.png'
]

Documentation

Comprehensive documentation increases sales:

# Getting Started

## Prerequisites

- Deeployd Pro plan or higher
- Zendesk, Freshdesk, or Intercom account

## Installation

1. Click "Install" on the store listing
2. Authorize the integration
3. Select your helpdesk

## Configuration

### Knowledge Base

Upload your FAQ articles:

\`\`\`typescript
// Example configuration
{
knowledgeBase: {
source: 'zendesk',
articlesFolder: '/faq'
}
}
\`\`\`

### Response Rules

Configure automatic responses:

...

## Troubleshooting

### Common Issues

**Agent not responding**
- Check integration status
- Verify API keys

**Slow responses**
- Review knowledge base size
- Check rate limits

Submitting for Review

Update Listing

Before submitting, ensure all fields are complete:

await client.store.updateListing('listing-123', {
// Add any missing info
documentation: updatedDocs,
screenshots: additionalScreenshots
});

Submit

const result = await client.store.submitForReview('listing-123');

console.log({
status: result.status, // pending_review
submittedAt: result.submittedAt
});

Review Process

AI-Powered Quality Check

Your listing is automatically scanned for:

Safety Analysis

  • Jailbreak detection
  • Prompt injection risks
  • Harmful instructions
  • Malicious patterns

Tool Permission Analysis

  • Dangerous tool combinations
  • Data exfiltration risks
  • Excessive permissions

Content Quality

  • Description completeness (0-100 score)
  • Documentation quality (0-100 score)
  • Screenshot validation
  • Spam detection
  • Duplicate detection

Pricing Validation

  • Within allowed ranges
  • Consistent with similar products
  • No predatory pricing

Scoring

ScoreOutcome
85+Auto-approved
60-84Human review required
30-59Changes requested
Below 30Auto-rejected

Human Review

If required, a human reviewer evaluates:

  • Does it work as described?
  • Is it useful to customers?
  • Is it unique in the store?
  • Is it professionally presented?
  • Is it enterprise-ready?

Review Status

const listing = await client.store.get('listing-123');

console.log({
status: listing.status,
// draft, pending_review, published, rejected, archived

// If rejected
rejectionReason: listing.rejectionReason
});

View Review Details

const review = await client.store.getReview('listing-123');

console.log({
// AI Review
aiScore: review.aiReview?.overallScore,
safetyScore: review.aiReview?.safety.score,
contentScore: review.aiReview?.contentQuality.score,
flags: review.aiReview?.flags,
suggestions: review.aiReview?.suggestions,

// Human Review (if applicable)
humanReview: review.humanReview,

// Final Decision
decision: review.finalDecision,
reason: review.decisionReason
});

Managing Published Listings

Update Listing

await client.store.updateListing('listing-123', {
shortDescription: 'Updated description',
documentation: 'Updated docs',
screenshots: ['new-screenshot.png']
});

Release New Version

await client.store.createVersion('listing-123', {
version: '1.1.0',
changelog: `
## Version 1.1.0

### New Features
- Added Freshdesk integration
- Multi-language support

### Bug Fixes
- Fixed response delay issue
- Improved ticket classification
`
});

View Listing Analytics

const analytics = await client.store.getListingAnalytics('listing-123');

console.log({
views: analytics.views,
installs: analytics.installs,
purchases: analytics.purchases,
revenue: analytics.revenue,
rating: analytics.rating,
reviews: analytics.reviewCount,
conversionRate: `${(analytics.installs / analytics.views * 100).toFixed(1)}%`
});

Respond to Reviews

// Get reviews
const reviews = await client.store.getReviews('listing-123');

// Respond to a review
await client.store.respondToReview('review-123', {
content: 'Thank you for your feedback! We\'ve addressed this in version 1.1.0.'
});

Archive Listing

// Remove from store but keep data
await client.store.archiveListing('listing-123');

// Existing customers keep access
// No new purchases allowed

Best Practices

Before Publishing

  1. Test thoroughly: Use your agent extensively before publishing
  2. Write comprehensive docs: Answer common questions proactively
  3. Prepare support: Set up processes to handle customer questions
  4. Price research: Check similar products in the store

After Publishing

  1. Monitor reviews: Respond promptly and professionally
  2. Update regularly: Fix bugs and add features
  3. Track analytics: Understand what drives conversions
  4. Support customers: Good support leads to good reviews

Pricing Strategy

StrategyWhen to Use
FreeBuilding reputation, open source
Low priceHigh volume, simple tools
PremiumUnique value, enterprise features
FreemiumConverting free users to paid

Common Mistakes

  1. Vague descriptions: Be specific about what the agent does
  2. No screenshots: Visual proof increases trust
  3. Missing docs: Customers need to know how to use it
  4. Overpricing: Research market rates first
  5. Ignoring reviews: Respond to all feedback

Next: Explore SDK & CLI for programmatic access to all features.