---
title: "AppLink Fundamentals III: Building with AppLink – Development Flow and Language Choices"
description: "AppLink Fundamentals III describes how to build Salesforce extensions on Heroku, covering local testing, OpenAPI contract management, deployment workflows, and programming-language selection. For applications that receive Salesforce requests, the supplied invoke.sh script simulates production headers using Salesforce CLI data, can activate session-based permission sets, and accepts JSON payloads for testing; Pattern 1 applications that call Salesforce APIs do not require this special setup. The OpenAPI specification serves as the shared contract for endpoints and Salesforce consumers, with publish-time validation intended to catch misalignment. AppLink also supports Agentforce actions through x-sfdc agent extensions, enabling topics, publishing, input and display settings, privacy controls, and outputs such as generated PDFs in the automotive finance example. The comparison positions Apex for transaction-critical record updates and AppLink languages such as Node.js, Python, and Java for external integrations, intensive computation, elastic scaling, and reuse of existing code."
---

# AppLink Fundamentals III: Building with AppLink – Development Flow and Language Choices

[Heroku](https://yomu.fyi/company/heroku) · Ken W. Alger · Jul 31, 2025

**Type:** Tutorial

## Summary

AppLink Fundamentals III describes how to build Salesforce extensions on Heroku, covering local testing, OpenAPI contract management, deployment workflows, and programming-language selection. For applications that receive Salesforce requests, the supplied invoke.sh script simulates production headers using Salesforce CLI data, can activate session-based permission sets, and accepts JSON payloads for testing; Pattern 1 applications that call Salesforce APIs do not require this special setup. The OpenAPI specification serves as the shared contract for endpoints and Salesforce consumers, with publish-time validation intended to catch misalignment. AppLink also supports Agentforce actions through x-sfdc agent extensions, enabling topics, publishing, input and display settings, privacy controls, and outputs such as generated PDFs in the automotive finance example. The comparison positions Apex for transaction-critical record updates and AppLink languages such as Node.js, Python, and Java for external integrations, intensive computation, elastic scaling, and reuse of existing code.

## Context

The development workflow is intended to support rapid iteration across Salesforce environments and reliable deployments. The language comparison addresses differing requirements, team expertise, and operational constraints when extending Salesforce functionality.

## Approach / What changed

AppLink uses local request simulation with invoke.sh, OpenAPI as the shared service contract, Agentforce-specific x-sfdc extensions, scratch-org and CI/CD workflows, and Heroku-hosted code in languages such as Node.js, Python, and Java.

## Takeaways

- invoke.sh uses Salesforce CLI org details to construct the x-client-context header, supports session-based permission set activation, and accepts JSON payloads for local request testing.
- Agentforce OpenAPI extensions can define topics, publish endpoints as agent actions, control user input and displayed responses, and mark operations as handling PII.
- Apex supports transaction-critical record updates, while Heroku-hosted languages can support external integrations, intensive computation, elastic scaling, and reuse of existing code.

**Tags:** [Agentforce](https://yomu.fyi/topic/agentforce), [Heroku](https://yomu.fyi/topic/heroku), [OpenAPI](https://yomu.fyi/topic/openapi), [Salesforce](https://yomu.fyi/topic/salesforce)

- Source: [Heroku](https://www.heroku.com/blog/applink-fundamentals-development-flow-language-choices)
- Source URL: https://www.heroku.com/blog/applink-fundamentals-development-flow-language-choices
- Ingested by Yomu: 2026-09-10T04:04:25.611Z

[Read original post](https://www.heroku.com/blog/applink-fundamentals-development-flow-language-choices)
