Skip Navigation
Show nav
Heroku Dev Center Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
Heroku Dev Center Dev Center
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • 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 in or Sign up
View categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
    • Buildpacks
  • Developer Tools
    • AI Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Troubleshooting Node.js Apps
      • Working with Node.js
      • Node.js Behavior in Heroku
    • Ruby
      • Rails Support
        • Working with Rails
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Heroku Postgres Advanced (Limited GA)
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Inference Essentials
    • Inference API
    • Inference Quick Start Guides
    • AI Models
    • Tool Use
    • AI Integrations
    • Vector Database
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
  • 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
    • Heroku AppLink
      • Heroku AppLink Reference
      • Working with Heroku AppLink
      • Getting Started with Heroku AppLink
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Other Salesforce Integrations
  • Integrating with Salesforce
  • Heroku Connect (Salesforce sync)
  • Heroku Connect Administration
  • Heroku Connect for Independent Software Vendors (ISV)

Heroku Connect for Independent Software Vendors (ISV)

Table of Contents [expand]

  • Use Case
  • Prerequisites
  • Install the Partner Plugin
  • Create a Partner Integration Record
  • Provision an ISV Heroku Connect Add-on
  • Enroll Existing Heroku Connect Add-ons
  • Authorize Access to Integration
  • Deactivate Partner Integration

Last updated June 11, 2026

Independent Software Vendors (ISV) can provision, configure, and manage Heroku Connect instances on the behalf of their end customers via API with the heroku partner CLI plugin. This article describes how to configure and manage Heroku Connect for ISVs.

Use Case

ISVs can manage Heroku Connect on behalf of their customers so that ISV users don’t purchase or manage Heroku Connect themselves. This feature creates a one-to-many model where the ISV can onboard many customers to their Heroku Connect integration.

Using an OAuth-based authentication, ISVs can connect a customer’s Salesforce org directly to a schema in the ISV’s own Heroku Postgres database. This connection creates a secure data bridge where the ISV maintains full ownership of the infrastructure, and the customer authorizes the data sync through a branded, SOC2-compliant interface.

Prerequisites

Before using this feature, ISVs must:

  • Have a verified Heroku Account
  • Have a Heroku Team or Enterprise Team
  • Install the Heroku Connect CLI plugin
  • Install the Heroku API CLI plugin
  • Enable the feature by opening a support ticket

Install the Partner Plugin

You must be on Heroku CLI v11 or later to install and use the heroku partner plugin. Update the CLI version with heroku update.

To install the Heroku Connect Partner CLI plugin:

$ heroku plugins:install @heroku-cli/plugin-partner

If you can’t install the plugin, try running heroku plugins:install @heroku-cli/plugin-partner --min-release-age=0. If the issue still persists, open a ticket with Heroku Support.

Create a Partner Integration Record

To create an integration record of the ISV or partner in Heroku Connect, run the heroku partner:connect:create command and provide a value for <ISV_SLUG>. You’ll use the <ISV_SLUG> later when creating Heroku Connect add-ons tied to your ISV:

$  heroku partner:connect:create <ISV_SLUG> \
--team <ISV_heroku_team_name> \
--isv-name "<ISV_Name>" \
--description "<short_description_of_the_partner_integration>" \
--contact-email "<partner_contact_email>" \
--docs-url "<https://link.to.partner.docs>" \
--logo-file "<path_to_logo_on_file_system>"
✓ Partner integration created

Slug:                <ISV_SLUG>
Partner Integration: <ISV_Name>
Team:                <ISV_heroku_team_name>
Description:         <short_description_of_the_partner_integration>
Documentation URL:   <https://link.to.partner.docs>
Contact Email:       <partner_contact_email>
Logo URL:            <path_to_logo_on_file_system>
Status:              active
Created At:          2026-04-08T14:30:16.012544Z

Valid logo image files are:

  • A jpeg/jpg, png, svg, or webP file type.
  • A minimum width and height of 100 pixels.
  • A maximum width and height of 1000 pixels.
  • A maximum file size of 5 MB.

Update a Partner Integration Configuration

You can update the following pieces of your Heroku Connect partner integration record:

  • The description of your partner integration
  • The URL to your documentation
  • The email of your point of contact
  • The logo of your partner integration
$ heroku partner:connect:update <ISV_SLUG> \
--description "<short_description_of_the_partner_integration>" \
--docs-url "<https://link.to.partner.docs>" \
--contact-email "<partner_contact_email>"
--logo-file "<path_to_logo_on_file_system>"
✓ Partner integration updated

Slug:                <ISV_SLUG>
Partner Integration: <ISV_Name>
Description:         <short_description_of_the_partner_integration>
Documentation URL:   <https://link.to.partner.docs>
Contact Email:       <partner_contact_email>
Logo URL:            <path_to_logo_on_file_system>
Status:              active
Updated At:          2026-04-08T14:36:19.332386Z

View Partner Integration Info

To get the details of your Heroku Connect partner integration record:

$ heroku partner:connect:info <ISV_SLUG>
Slug:                <ISV_SLUG>
Partner Integration: <ISV_Name>
Contact Email:       <partner_contact_email>
Team:                <ISV_heroku_team_name>
Description:         <short_description_of_the_partner_integration>
Documentation URL:   <https://link.to.partner.docs>
Logo URL:            <path_to_logo_on_file_system>
Status:              active
Created At:          2026-04-08T14:30:16.012544Z
Updated At:          2026-04-08T14:36:19.332386Z

Provision an ISV Heroku Connect Add-on

After creating your partner integration record in Heroku Connect, you can provision Heroku Connect for your customers by providing the ISV_SLUG you set when creating the ISV record.

For example, to provision an add-on from the CLI:

$ heroku addons:create -a APP_NAME herokuconnect:enterprise -- --isv <ISV_SLUG>

See our quick start guides for configuring your Heroku Connect add-on to use your Heroku Postgres database from the dashboard, CLI, or API.

Enroll Existing Heroku Connect Add-ons

You can also enroll existing Heroku Connect add-ons to your partner integration record:

$ heroku partner:connect:enroll <ISV_SLUG> --addon <addon-id>

Authorize Access to Integration

ISV customers must authorize the Heroku Connect partner integration to access their Salesforce data. Follow these steps to authorize or reauthorize access for the integration.

1. Provide Customer’s Integration User Details

You need your customer’s Salesforce organization ID and Salesforce username for the authorization API request. We recommend providing the dedicated integration user’s org ID and username for the request. These authorization details confirm that the user who completes the OAuth step is the intended user for the integration.

2. Retrieve the Authorization URL

Use the Heroku API plugin installed from the Prerequisites section to make an API call to retrieve the authorization URL. In the API call, provide your customer’s dedicated integration user’s Salesforce org ID and username:

$ heroku api POST /partner/connect/<isv-slug>/addon/<addon-id>/authorize \
--body '{"sf_org_id": "<org-id>", "sf_username": "<username>", "environment": "<environment>"}' \
-v 3.partner

The API parameters include:

  • sf_username: the Salesforce username that performs the authorization
  • sf_org_id: the Salesforce organization ID that the authorizing user belongs to
  • environment: (optional) the Salesforce organization environment, either production, sandbox. The default is sandbox.
  • domain: (optional) the custom login domain if the environment is custom
  • api_version: (optional) the Salesforce API version for connection, for example 66.0. The default is the latest supported version.

3. Authorize User

After retrieving the authorization URL, your customer can visit the URL and see a landing page that displays the ISV’s logo and a button to authorize the ISV to access their Salesforce data. Clicking the Authorize button redirects the customer to a Salesforce page to complete the OAuth login step.

4. Verify Authorization

To verify that your customer has completed the OAuth step for using the ISV Heroku Connect add-on, run the heroku connect:state command:

$ heroku connect:state

You can also verify the authorization with the Connection Details endpoint of the Heroku Connect API. The endpoint shows:

  • auth_updated: the timestamp when the connection was last authorized
  • organization_id: the Salesforce organization ID
  • state: the state of the connection. For example, NEED_AUTHENTICATION shows when your customer hasn’t authorized the connection yet, or UNAUTHORIZED shows if Salesforce is no longer authorized.
  • sf_info.username: the Salesforce username who authorized the connection

Deactivate Partner Integration

After deactivating your Heroku Connect partner integration record, you can no longer associate new Heroku Connect add-ons to the partner integration. Deactivating also destroys existing Heroku Connect add-ons associated with the partner integration. You can’t undo this action.

To deactivate your partner integration for Heroku Connect:

$ heroku partner:connect:deactivate <ISV_SLUG> --team <ISV_heroku_team_name>
 ›   Warning: This will deactivate the partner integration <ISV_SLUG> and destroy all associated Heroku Connect add-ons.

✔ To proceed, type <ISV_SLUG> or re-run this command with --confirm <ISV_SLUG> <ISV_SLUG>
Deactivating integration <ISV_SLUG>...
✓ Partner integration deactivated
Integration: <ISV_SLUG>
Status:      inactive

Feedback

Log in to submit feedback.

Information & Support

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

Language Reference

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

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2026 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices