Search overlay panel for performing site-wide searches
Salesforce (Heroku) Named a Leader. Learn More!

Heroku AppLink: Extend Salesforce with Any Programming Language

The Salesforce platform offers a powerful array of tools for customization and building customer-centric experiences, from no-code automation with Flow, Prompt Builder, and Agent Builder, to robust Apex and Lightning Web Components. The art lies in choosing the right blend of these tools to achieve agility, optimize skill sets, and quickly adapt to business demands. Today, we’re introducing a new ingredient to this powerful mix: Heroku + AppLink.

Diagram showing Salesforce development tools from no-code options (Objects, Flow Builder, Agent Builder) to code options (Lightning Web Components, Apex, Heroku + AppLink) on a continuum.

New to Heroku? Watch this brief introduction video to get familiar with the platform before diving into AppLink.

With the general availability of Heroku AppLink directly on the Salesforce Setup menu, Heroku is significantly expanding the programming language options available to Salesforce developers. AppLink empowers you to securely deploy code written in virtually any language directly to the Salesforce platform, enabling enhanced growth and capabilities for existing workloads. Heroku applications can be seamlessly attached to multiple Salesforce orgs, allowing your customizations and automations to leverage Heroku’s renowned scaling capabilities. This groundbreaking integration makes it possible to build nearly anything on the Salesforce platform without the need to store or move data off-platform for complex processing. With AppLink, you get the same trust commitment as every other Salesforce product, as AppLink handles all the security and integration for you!

Use AppLink with the language of your choice

If you’re a Salesforce architect or developer familiar with Node.js (the same runtime used by Lightning Web Components) or Python, this blog is for you. This initial release of AppLink provides SDK support for Node.js and Python, with a primary focus on Node.js examples and patterns. We’ve also included Java samples that demonstrate how to use AppLink in languages that don’t currently have a dedicated SDK, by working directly with AppLink’s APIs. Importantly, AppLink’s APIs are designed to work with virtually any programming language, giving you the freedom to use the tools and frameworks you’re already productive with.

In this series, we’ll embark on a journey to explore the key components of AppLink, discover how to extend Salesforce Flows, Apex, and Agentforce with external logic, and understand how AppLink helps build solutions with customer data security as a top priority, with user mode enabled by default. We’ll also delve into various usage patterns, the development flow, and crucial considerations for when to leverage AppLink versus traditional Apex development.

Exploring Heroku AppLink features

AppLink functions as a standard Heroku add-on. However, unlike add-ons from ecosystem partners, AppLink is owned and managed directly by Heroku engineers as an extension to the Heroku platform itself. As an add-on, you can expect a familiar UI, normal provisioning processes, and the ability to share the add-on across multiple Heroku applications and services. AppLink is available to all Salesforce orgs and can be easily found under the Setup menu. The add-on itself is free; you only pay for the Heroku compute and any desired data resources through normal Heroku billing. Click here to learn more about Heroku Add-ons.

AppLink is comprised of several key components that work in concert to create a fully managed bridge between your Heroku application and other Salesforce products. Understanding this architecture is crucial for successful implementation, as each component plays a specific role in enabling secure, authenticated communication between your custom code and the Salesforce platform.

The diagram below illustrates the complete AppLink ecosystem, showcasing how requests flow between Salesforce orgs and your Heroku applications, the vital role of the AppLink add-on in managing connections and authentication, and how various AppLink components coordinate to provide seamless integration. Whether you’re building applications that call Salesforce APIs or services that extend Salesforce functionality, this architecture forms the foundation for all integration scenarios.

diagram illustrating the complete AppLink ecosystem

Each component within AppLink serves a distinct purpose in creating the integrated experience. The table below provides a detailed overview of the role and capabilities of each AppLink component, demonstrating how they work together to provide comprehensive Salesforce-Heroku connectivity.

Component Role
Add-on Acts as the foundational connectivity layer (heroku addons:create heroku-applink), providing automatic provisioning between Heroku and Salesforce, security token management, and service discovery for making Heroku apps discoverable within Salesforce and the API Catalog. Works in conjunction with the Buildpack when building AppLink solutions that extend Salesforce as described later in this blog. Exposes environment variables: HEROKU_APPLINK_API_URL and HEROKU_APPLINK_TOKEN for authentication and API access.
Buildpack Functions as the security and authentication layer (heroku buildpacks:add --index=1 heroku/heroku-applink-service-mesh) that injects the service mesh into Heroku applications designed to be invoked by Salesforce. The service mesh acts as a request interceptor that handles authentication, blocks external access to ensure only Salesforce can invoke the application, and routes authenticated requests to your application code. Required for applications that extend Salesforce functionality through Flow, Apex, or Agentforce integration patterns.
Dashboard Functions as the centralized monitoring interface accessible via heroku addons:open heroku-applink with three main tabs: Connections (lists Salesforce and Data Cloud org connections with status), Authorizations (shows run-as-user authorizations with developer names and connected orgs), and Publications (displays published apps across orgs with connection status). Provides comprehensive visibility into your Heroku-Salesforce integrations.
CLI Serves as the command-line interface for deployment commands, connecting and publishing apps to Salesforce orgs, local development tools, permission management, and multi-environment support. The salesforce:authorizations commands enable existing Heroku applications to access Salesforce data (run-as-user mode), while salesforce:connect commands are used for User Mode. Publishing commands allow Heroku code to be invoked via Flow, Apex, or Agentforce.
API Serves as the programmatic gateway providing unified access to Salesforce and Data Cloud data with automatic authentication, authorization, and connection pooling. Used by the CLI and SDK, and can be used directly by developers’ own code for custom integrations.
SDK Acts as the developer toolkit that simplifies AppLink integration by providing request processing capabilities, automatic authentication handling, and unified data access methods. The SDK parses incoming requests from Salesforce (Flows, Apex, Agentforce), including decoding the x-client-context HTTP header which contains base64 encoded JSON with user context and authentication details, routes them to appropriate business logic, and transforms responses back to Salesforce-compatible formats. Key features include connection management, transaction support, and structured error handling. Currently available for Node.js and Python, while other languages are fully supported but must use the AppLink API directly instead of the SDK.
OpenAPI Integration Functions as the service discovery and registration mechanism using OpenAPI Specification files (YAML or JSON format) for endpoint discovery, automatic service registration in Salesforce Setup menu and API Catalog, and External Service generation for admins. Uses x-sfdc extensions to map Permission Set names for elevated permissions beyond the user’s access level, and to automatically create Agentforce Custom Actions. Currently supports OpenAPI 3.0 at time of writing – check Salesforce External Services documentation for the latest supported version. These features will be discussed further later.
Salesforce API Integration Provides the data access layer where the AppLink SDK includes helpers for SOQL Query Engine, DML Operations, Data Cloud Integration, and Bulk API Support, but developers can still directly access these APIs or use existing Salesforce API libraries they prefer.

Together, these components offer a comprehensive and cohesive ecosystem that simplifies the complex task of integrating Heroku applications with Salesforce. By providing dedicated tools for everything from secure connectivity and automatic authentication to streamlined deployment, monitoring, and service discovery, AppLink reduces development overhead and accelerates time to market. This holistic approach ensures that developers can focus on building powerful business logic, knowing that the underlying infrastructure for secure and scalable Salesforce extension is fully managed and integrated.

Stay tuned: from foundation to practical application

This blog post has provided a foundational understanding of AppLink – what it is, why it’s a critical new tool for Salesforce developers, and its core components.

In our three part series, AppLink Fundamentals, we’ll dive into the practical application of AppLink by exploring its key integration patterns, showing you how to connect your Heroku applications to Salesforce for various use cases. Subsequent posts in this series will delve into advanced integrations with Data Cloud, Flow, Apex, and Agentforce, followed by a look at the development workflow, language choices, and best practices for building robust solutions with AppLink. Stay tuned to unlock the full potential of extending Salesforce with the power of Heroku.

Additional AppLink resources