Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Working with Bundler
      • Rails Support
    • Python
      • Background Jobs in Python
      • Working with Django
    • Java
      • Working with Maven
      • Java Database Operations
      • Working with the Play Framework
      • Working with Spring Boot
      • Java Advanced Topics
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Single Sign-on (SSO)
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Extending Heroku
  • Building Add-ons
  • Bringing an Add-on to Market

Bringing an Add-on to Market

English — 日本語に切り替える

Last updated February 23, 2022

Table of Contents

  • Add-on release stages
  • Add-on plans and pricing
  • Modifying add-on plans
  • Shutting down an add-on

This article describes the steps involved in releasing an add-on on the Heroku Elements Marketplace. For more information on add-on development, see Building an Add-on.

For more information on the benefits of becoming an add-on partner, see the Heroku Ecosystem Partner Program page.

Most change requests are processed within a few business days. If your changes require specific or coordinated timing, please contact ecosystem-partners@heroku.com to discuss.

Add-on release stages

Every add-on progresses through three release stages: alpha, beta, and general availability (GA). As your add-on meets the requirements for each stage and advances, it becomes visible to a wider audience. Upon reaching GA, it can offer paid plans to Heroku customers.

Release stage Can offer paid plans Visible in Elements Marketplace Requires partner support
Alpha No No No
Beta No Yes Yes
General Availability Yes Yes Yes

Alpha stage

All add-ons start in alpha. While in this stage, add-ons are still in initial development, and they have no feature or support requirements. They do not appear in the Elements Marketplace or in search results.

An alpha add-on is accessible only to its developers and to individuals that are explicitly granted access. These individuals might include internal testers or early adopters that you’ve invited in order to gather user feedback. Alpha users test your add-on by installing the free “Test” add-on plan, which is the only plan allowed during this stage.

It’s common for add-on partners to create a -staging version of their add-on that stays permanently in alpha. This allows you to test new features “full stack”, and point this -staging add-on to staging versions of your integration infrastructure. You might want to do this as you’re building a new add-on too, to give you a safe place to test as you reach integration milestones.

Advancing to beta

Before your alpha add-on can proceed to beta, you need to complete the following set of tasks, mostly in the Heroku Partner Portal:

  • A minimum of 15 unique app owners have installed and tested your add-on. You can obtain your add-on’s current user count in the Partner Portal.
  • Create documentation for the add-on and submit it for approval by Heroku Dev Center team
  • Provide your company’s details, including business, engineering, and contact information
  • Provide a name and product icons for the add-on
  • Prepare screenshots for the add-on’s marketplace listing
  • Describe the add-on’s benefits (see below)
  • Describe the add-on’s features (see below)

The test user requirement is intended to prove you can operate a service that others will try, solicit feedback from potential customers, and determine if any unexpected integration issues may arise. Ideally, this process proves the viability of the add-on and business model within your own company and prepares you for dealing with supporting customers in the future.

After completing these tasks, complete the add-on state progression intake form and submit it for review.

Your Dev Center documentation does not need to be approved prior to submitting the add-on state progression intake form.

Add-on benefits

On the Benefits page of the Partner Portal, describe in moderate detail what your add-on provides to Heroku customers. This content appears as prominent paragraphs on your add-on’s marketplace page.

You can use Maruku flavored markdown to add rich text to your benefits content.

For example, the Heroku Postgres add-on specifies two benefits: “Connect, Use, and Develop” and “Scale and Grow”:

add-on benefits

Add-on features

You specify your add-on’s features on the Features page of the Partner Portal. This feature list should at least include every aspect of your add-on that might differ across different plans. For example, Heroku Postgres lists items such as “RAM”, “Row Limit”, and “Connection Limit”, all of which differ across plans:

add-on plans and features

Beta stage

When an add-on reaches the beta stage, it is listed publicly in the Heroku Elements Marketplace (with a “BETA” label), and all Heroku customers can provision it.

Your add-on publishes to the marketplace immediately upon progressing to beta. You can locate it at https://elements.heroku.com/<your add-on slug>. The marketplace search index reindexes daily, so it can take up to 24 hours before it returns your add-on in search results.

Like alpha add-ons, beta add-ons have a single, free plan called “Test.” The beta stage provides the opportunity for you to gather insights and feedback from a larger collection of customers. Use this information to make any improvements or changes to your add-on before submitting it for advancement to GA.

Unlike alpha add-ons, beta add-ons must provide timely support. Beta add-on partners gain access to the Heroku support dashboard and must address customer support tickets that are assigned to the partner.

Partners are expected to acknowledge and respond to all Heroku customer tickets within 48 hours. Note that all issues are not expected to be resolved within this timeframe; technical issues can of course sometimes take significantly longer to address.

See Add-on Support for more information on support requirements.

Advancing to GA

Before your beta add-on can proceed to GA, you need to complete the following set of tasks:

  • A minimum of 100 unique app owners have installed and tested your add-on. You can obtain your add-on’s current install count with the Add-on App Info API, or by counting the number of unique app owners for all active resource records you have. You can obtain the app owner email for each resource using the App List endpoint, authenticating with the access token for each resource.
  • Ensure that your add-on is backed by production-ready infrastructure that can support thousands of paid customers.
  • Specify the details of free and paid plans for your add-on in the Partner Portal.

Additionally, we will need to set up your supplier records to issue monthly payments when customers purchase your service. Please be prepared to submit the following information:

  • The legal entity name of your business
  • A primary contact name and related information (email and phone number)

Heroku uses these details to initiate the setup process with the Salesforce Vendor Management team. You communicate directly with this team to provide other required information for your company (business details, a W9 form, banking information, and so on).

When your beta add-on meets all requirements for advancement to GA, submit the add-on state progression intake form.

General Availability stage (GA)

When your add-on reaches GA, the “BETA” tag is removed from its marketplace listing, and you can can offer multiple free and paid plans to Heroku customers. The original free “Test” plan that was available in alpha and beta stages will be disabled, so no new instances of it can be provisioned.

After reaching GA, be sure to continue gathering product feedback and improving your service to meet your customers’ needs and drive additional adoption.

Add-on plans and pricing

Add-ons must define one or more associated plans before advancing from beta to GA. Each plan can specify a different price (including free), along with a different set of available features and usage thresholds.

Add-ons are priced in monthly, flat-rate tiers. Heroku bills customers by the calendar month, and add-on billing is pro-rated according to the amount of time a particular plan was active during the month.

Heroku does not currently support usage-based billing. Enforcement of any plan-specified usage thresholds is the responsibility of the partner.

Commonly, add-ons with usage thresholds respond with a 402 HTTP status code when a customer attempts to take an action that would exceed their current plan’s associated threshold.

Modifying add-on plans

At some point after your add-on reaches GA, you might want to modify your available plans to better serve your customers’ needs. Any such modifications must be approved by Heroku before they are widely available.

Adding plans

You can create new add-on plans in the Partner Portal. Once a new plan is created, the plan appears with the default availability setting of “Invite Only.”

Screenshot of details for a plan created in the Partner Portal

Plan availability

You can decide which users can access this plan and whether it appears in the Elements marketplace. There are three “availability” states:

  1. Invite Only. You can make the plan available only to specific users and hidden from the marketplace. No additional steps from Heroku is needed. You will administer these plans to specific users with “Plan Passes” by adding the users’ email addresses associated with their Heroku account in the partner portal.
  2. All Users (hidden). You can make the plan available to all users and hidden from the marketplace. Heroku will need to make the change for you.
  3. All Users. You can make the plan available to all users and visible in the marketplace. Heroku will need to make the change for you.

For a step-by-step guide on hidden plans and add-on plan summary, take a look at these slides: How to Create “Custom” Heroku Add-on Plans

To change plan availability, complete the add-on plan change request intake form.

Disabling plans

Plan removals must also be processed and approved by Heroku. After a plan is disabled, customers can no longer provision it. However, customers that already have the disabled plan can remain on that plan until they change it themselves or remove the add-on altogether.

To disable a plan, complete the add-on plan change request intake form.

Changing plan prices

Plan prices can be edited directly in the Partner Portal for add-ons in alpha or beta, as these plans cannot charge.

To request a price change to a plan for a GA add-on, submit your request in the Plans section of the partner portal.

You cannot change free ($0.00) plans into paid plans.

Step-by-step Instructions

  1. Navigate to “Plans” in the partner portal.
  2. Select the desired add-on plan by clicking the double chevron control and choosing Edit Plan Details.
  3. If the plan is for an alpha or beta add-on, you can edit the price directly.
  4. If the plan is for a GA add-on:
    1. Click Request Price Change button to enter new price.
    2. Enter new price desired for this plan.
    3. Click Request Price Change.

Price change behavior

If approved, the price change behavior differs depending on when you submit the request and the type of request you make. If you submit a request before the 20th of the month:

Price increase requests for new customers
  • The price change will take effect on the first of the following month.
Price increase requests for new and existing customers
  • The price change will take effect:
    • For new customers, on the first of the following month.
    • For existing customers, on the first of the month following the next month.
Price decrease requests
  • The price change will take effect on the first of the following month for both new and existing customers.

If you submit a request on or after the 20th of the month, all new price effective dates will shift one month later.

Price change behavior examples
Price change Date request submitted Applies to new customers Applies to existing customers Date new price takes effect for new customers Date new price takes effect for existing customers
Increase 11/13/2020 Yes No 12/1/2020 N/A
Increase 11/21/2020 Yes No 1/1/2021 N/A
Increase 11/13/2020 Yes Yes 12/1/2020 1/1/2021
Increase 11/21/2020 Yes Yes 1/1/2021 2/1/2021
Decrease 11/13/2020 Yes Yes 12/1/2020 12/1/2020
Decrease 11/21/2020 Yes Yes 1/1/2021 1/1/2021

Shutting down an add-on

In the event that you wish to discontinue support for an add-on, please complete the add-on shutdown intake form to begin the shutdown process. Shutdowns are subject to Salesforce approval based on the salesforce.com License and Distribution Agreement for the Heroku Elements Marketplace between you and Salesforce.

Below are the high-level steps of the add-on shutdown process for your reference:

  1. Add-on partner submits the add-on shutdown intake form.
  2. Heroku requests add-on partner to fill out an add-on shutdown FAQ (as needed).
  3. Heroku schedules a call with the add-on partner to review FAQ and discuss shutdown details (as needed).
  4. Heroku sends a minimum of three email communications to customers regarding the shutdown, with the first being sent 60 days prior to the desired shutdown date for GA add-ons; a minimum of 2 email communications and 30 days prior for beta add-ons.
  5. Heroku removes all installations of the add-on from all Heroku apps.

Keep reading

  • Building Add-ons

Feedback

Log in to submit feedback.

What Is an Add-on? Building an Add-on

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies
  • Cookie Preferences