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
    • Buildpacks
    • Platform Principles
  • Developer 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
      • Node.js Behavior in Heroku
      • Troubleshooting Node.js Apps
      • Working with Node.js
    • Ruby
      • Rails Support
      • 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
      • Working with PHP
      • PHP Behavior in Heroku
    • 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
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Vector Database
    • Model Context Protocol
    • Working with AI
    • Heroku Inference
      • Inference Essentials
      • AI Models
      • Inference API
      • Heroku Inference Quick Start Guides
  • 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
      • Getting Started with Heroku AppLink
      • Working wtih Heroku AppLink
      • Heroku AppLink Reference
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Other Salesforce Integrations
  • Integrating with Salesforce
  • Heroku AppLink
  • Heroku AppLink

Heroku AppLink

Last updated July 14, 2025

Table of Contents

  • Use Cases
  • Setting Up Heroku AppLink
  • Provisioning the Add-on
  • User Permissions
  • Connections on Your App
  • Authorizations on Your App
  • Publish Your App
  • Invoke Your Published Apps
  • Heroku AppLink Dashboard
  • Logging
  • Security
  • Considerations and Limitations
  • Support
  • Additional Reading

Heroku AppLink (formerly Heroku Integration) is an add-on that exposes Heroku apps as API services in Salesforce. Heroku developers can build APIs on Heroku that Salesforce admins and developers can use to execute actions in Salesforce Flow, Apex, Data Cloud, and Agentforce. The add-on supports multiple user interaction modes, and enforces Salesforce user permissions and rules when interacting with your data and using Heroku SDKs.

Heroku AppLink provides:

  • Integration between Heroku, Salesforce, Data Cloud, and Agentforce: Connect and publish your Heroku apps to interact with Salesforce, Data Cloud, and Agentforce in an easy and secure way.
  • Action creation: Generate external service actions and Agentforce agent actions automatically from your app’s APIs and invoke them in Salesforce.
  • Flows and Apex-based invocation: Use Salesforce Flow and Apex to call your published Heroku apps synchronously or asynchronously.
  • Managed security: Choose between three user interaction modes for your apps to set the permissions of the user within Salesforce when executing operations with Salesforce data.
  • SDK APIs: Use our SDK APIs in your Heroku apps to perform Data Manipulation Language (DML) operations on Applink-enabled Salesforce and Data Cloud orgs.

If you’re new to Heroku, sign up for an account, and see these resources to learn more about Heroku:

  • How Heroku Works
  • Develop Apps with Heroku Trail
  • Getting Started on Heroku

Use Cases

Here’s a few examples of what you can do with Heroku AppLink:

  • Generate PDFs: Deploy a Puppeteer-based microservice on Heroku that generates PDFs from Salesforce. You can also maintain user context when querying Salesforce data.
  • Perform bulk jobs: Perform data transformations by passing Salesforce data to Heroku’s compute services, such as adding complex calculations or making API calls to get more data. The results are persisted back to Salesforce or to Data Lake Objects (DLOs) in Data Cloud.
  • Deploy custom Agentforce actions: Develop a custom action on Heroku written in the language of your choice for your Agentforce agent. Use custom actions to interpret natural language requests from users and perform dynamic calculations on the data.
  • Expose custom MCP servers: Build and deploy a custom MCP server in Heroku and expose the MCP server in Salesforce.

Setting Up Heroku AppLink

You can only use Heroku AppLink with Salesforce editions that have API access. Some Salesforce editions don’t have API access by default and aren’t compatible with Heroku AppLink.

 

Heroku AppLink is a separate add-on from the pilot Heroku Integration add-on. If you participated in the pilot, you must provision the Heroku AppLink add-on and republish your Heroku app.

Heroku AppLink consists of several components, such as the CLI plugin, the API, and service mesh. There are different ways to start using Heroku AppLink, such as through the SDKs, reference apps, and getting started guides.

Heroku AppLink CLI Plugin

The Heroku AppLink CLI plugin allows you to set up and manage the Heroku AppLink add-on through the command line interface. Before connecting your Heroku apps to your Salesforce orgs, you must install the plugin. See Heroku AppLink CLI Plugin for more information.

Heroku AppLink API

The Heroku AppLink API allows you to set up and manage relationships between Salesforce and Data Cloud orgs and AppLink-enabled apps. See Heroku AppLink API for more information.

Heroku AppLink Service Mesh Buildpack

The Heroku Buildpack for Heroku AppLink Service Mesh installs the Heroku AppLink Service Mesh to handle the authentication and authorization for your app. The service mesh is a proxy in front of your app that intercepts incoming requests for validation and capabilities. The buildpack:

  • Starts your app.
  • Verifies inbound requests to your app only from known clients. Only published apps from connected orgs can invoke the app.
  • Provides scoped tokens for your app. Authorization tokens ensure that DMLs performed using the SDK adhere to the permissions defined in Salesforce. Admins and developers can add defined permission sets to determine what data the app has access to.

Heroku AppLink SDKs and Reference Apps

Use the Salesforce SDKs to develop Heroku AppLink managed apps that interact with Salesforce and Data Cloud orgs. The Heroku AppLink reference apps speed up development by generating sample code that uses our SDKs to call your APIs.

SDK Reference App
Node.js AppLink SDK for Salesforce Heroku AppLink Node.js Reference App
Python AppLink SDK for Salesforce Heroku AppLink Python Reference App

Getting Started Guides

See our getting started guides to learn how to use Heroku AppLink with different use cases.

  • Getting Started with Heroku AppLink and Salesforce
  • Getting Started with Heroku AppLink and Data Cloud
  • Getting Started with Heroku AppLink and Agentforce

Provisioning the Add-on

You can provision an AppLink add-on on one app and share it across multiple apps. For more information about how to provision Heroku AppLink, see Working with Heroku AppLink.

User Permissions

There are required user permissions you must assign in Heroku or in Salesforce to perform operations with Heroku AppLink. See Working with Heroku AppLink for the required permissions.

Connections on Your App

You can’t use connections in your app’s code to query data. Instead, you must create an authorization.

When you create a connection, Heroku AppLink establishes a trusted connection between the Salesforce or Data Cloud org and AppLink add-on instance. Connecting to Salesforce lets you publish your apps as external services and generate API actions in Salesforce. Connecting to a Data Cloud org creates a Data Cloud access token to make calls to the Data Cloud API.

You must create a connection for every org that interacts with your AppLink-enabled app. You can connect your app to Salesforce and Data Cloud orgs in production, sandbox, and scratch org environments. You can also connect multiple orgs to one app. As a best practice, we recommend not mixing environment types. For example, connect your sandbox orgs to staging apps and connect your production orgs to production apps. If you attach your AppLink add-on to multiple apps, you can share connections across your apps.

For more information about how to create, view, and remove connections, see Working with Heroku AppLink.

Authorizations on Your App

You can’t use authorizations to publish apps to Salesforce. Instead, you must create a connection.

When you create an authorization, Heroku AppLink stores the security token of the user you log in as when connecting to a Salesforce or Data Cloud org. Use authorizations in your app’s code to invoke Salesforce APIs and perform DML operations in Salesforce and Data Cloud as the specific authorized user, such as an API user.

You can authorize users in production, sandbox, and scratch org environments. You can also authorize users in multiple orgs to one app. If you attach your AppLink add-on to multiple apps, you can share authorizations across your apps.

For more information about how to create, view, use, and remove authorizations, see Working with Heroku AppLink.

Publish Your App

When you publish your Heroku app to Salesforce, AppLink creates an external service, adds your app’s APIs to API Catalog, and generates agent actions in Agentforce. You can then use these actions to invoke the app with Salesforce Flow, Apex, Data Cloud, and Agentforce. Only connected Salesforce and Data Cloud orgs can invoke your published apps.

For more information about how to publish your apps, see Working with Heroku AppLink.

Configuring OpenAPI Specification

You can configure the OpenAPI spec file to enable specific actions, such as Agentforce actions, and define permission sets for your invoking user. Heroku supports OpenAPI 3.0. See Configuring OpenAPI Specification for Heroku AppLink for more information.

Invoke Your Published Apps

After publishing your app, you can invoke your app’s actions in Salesforce with:

  • Apex
  • Salesforce Flow
  • Data Action Targets
  • Agentforce

For more information about how to invoke your app, see Invoking Your Heroku AppLink Apps.

Heroku AppLink Dashboard

Heroku AppLink has its own dashboard to view connections, authorizations, and app publications. See Heroku AppLink Dashboard for more information.

Logging

You can view AppLink logs with Heroku’s standard tail logs with the heroku logs command. See Heroku AppLink Logging and Common Errors for more information and common AppLink errors.

Security

While Heroku AppLink is supported in all Common Runtime and Private Space regions, the AppLink service currently runs in the virginia region. CLI and app invocation latency is based on the app’s region distance from virginia.

Heroku AppLink authenticates and authorizes requests between your application and Salesforce with a service mesh. The service mesh is a proxy in front of your app that intercepts incoming requests for validation and capabilities.

User Modes

There are three user mode options that apply the permissions and roles defined in your Salesforce org when using our SDK: user, user-plus, and authorized-user. You can manage what Salesforce data your Heroku apps can access depending on the user mode. See Heroku AppLink User Mode Options for more information.

Considerations and Limitations

See Heroku AppLink Limits for a list of limits and details.

Support

Submit all Heroku AppLink support and runtime issues via one of the Heroku Support channels.

Additional Reading

  • Heroku AppLink category
  • Heroku AppLink Integration Patterns
  • Getting Started with Heroku Events (Pilot)

Keep reading

  • Heroku AppLink

Feedback

Log in to submit feedback.

Heroku AppLink Dashboard Heroku AppLink Dashboard

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
  • © 2025 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