Publishing an app to the Freshworks Marketplace puts it in front of every Freshworks customer. The review process is rigorous (think App Store, less so iOS strict). Plan for two to three review cycles before approval.
Pre-submission checklist
Before submission, your app must:
- Pass
fdk validatewith zero errors. - Pass
fdk packand produce a valid.zip. - Run on the latest platform version (or declare compatibility).
- Include a complete manifest (
manifest.jsonwith all required fields). - Provide an icon (256x256 PNG, transparent background).
- Provide screenshots (minimum 3, 1920x1080 each).
- Include a
README.mdwith setup instructions. - Include a privacy policy URL.
Skip any of these and the submission bounces immediately.
Manifest details
The manifest declares:
- App ID (unique, your namespace).
- Version (semantic).
- Platform compatibility (Freshdesk, Freshservice, Freshsales, etc.).
- Locations (where the app appears: ticket sidebar, agent settings, etc.).
- OAuth requirements (if app uses external services).
- Webhook endpoints (if app subscribes to events).
- Permissions requested (read tickets, write contacts, etc.).
Request only the permissions you actually use. Reviewers reject apps that ask for write permissions when they only read.
Security review
The review team checks:
- Credentials handling (no plaintext passwords in code, OAuth properly implemented).
- API call patterns (rate limit respect, error handling).
- Data residency (where customer data flows; must align with Freshworks regions).
- Input validation (XSS prevention, SQL injection if your backend exists).
- HTTPS enforcement on all external calls.
If your app sends customer data to a third party, document the data flow in the submission. Reviewers explicitly check for undisclosed data egress.
User documentation
The app’s README and in-marketplace description must explain:
- What the app does (one paragraph).
- How to install (step-by-step).
- How to configure (with screenshots).
- What permissions it needs and why.
- How to uninstall and what data is preserved or deleted.
- Support contact (email, URL).
Apps with vague descriptions get rejected for “user clarity.” Customers must understand what they are installing.
Pricing model
Apps can be free or paid. Paid apps integrate with Freshworks billing; the customer pays through their existing Freshworks invoice. Pricing options:
- Per-account (one fee per Freshworks tenant).
- Per-agent (per active agent in the tenant).
- Tiered (different prices for different feature sets).
Pricing is set during submission. Free trials are supported (default 14 days).
Listing optimization
Marketplace listings rank by relevance and rating. To improve visibility:
- Use specific app name (avoid generic “Salesforce Sync”).
- Tag with relevant categories (limit 3).
- Include search keywords in the description.
- Encourage early users to rate (the marketplace shows star average prominently).
Apps with no ratings under 30 days disappear from default listing. Plan for early customer outreach.
Updates and versioning
Submitted updates go through review again, but typically faster than initial submission. Major version bumps require fuller review; patch updates often pass quickly.
Version pinning: customers can pin to a specific version. Critical bug fixes should be pushed as patch updates with a clear changelog. Customers update on their own schedule.
Post-publish monitoring
After publication, monitor:
- Install count.
- Active install count (installed and used).
- Uninstall reasons (collected via post-uninstall survey).
- Error rates (via your app’s logging).
A high uninstall rate after install signals onboarding problems; iterate quickly.
Maintenance commitments
Freshworks expects published apps to be maintained. Inactive apps (no updates in 12+ months) may be unlisted. Plan for at least quarterly maintenance updates even if functionally nothing changes.
What to do this week
If you have an internal app you have been considering open-sourcing, run fdk validate and review against the checklist. Most internal apps need 1 to 2 days of polish to be marketplace-ready.