Heroku AppLink と Data Cloud スターターガイド
はじめに
Heroku AppLink は、パイロット版の Heroku Integration アドオンとは別のアドオンです。パイロットに参加した場合は、Heroku AppLink アドオンをプロビジョニングし、Heroku アプリを再公開する必要があります。
Heroku AppLink (旧称 Heroku Integration) は、Heroku アプリを Salesforce の API サービスとして公開します。このガイドは、Heroku CLI および Heroku AppLink CLI プラグインを使用して Heroku AppLink アドオンを設定するのに役立ちます。Heroku AppLink を活用してできることについては、「ユースケース」セクションを参照してください。
このガイドでは、Heroku アプリを作成して公開し、Salesforce の外部サービスを使用して Data Cloud でアクションを実行します。
このガイドでは、以下を準備していることを前提としています。
- 確認済みの Heroku アカウント
- Enterprise 以外のユーザーは Eco dynos プランのサブスクリプション、Heroku Enterprise ユーザーの場合は Basic dynos
- 選択した言語に基づくすべての依存関係
- Salesforce 開発者組織、Salesforce Sandbox 組織、またはスクラッチ組織
- Salesforce 組織で Data Cloud が有効になっている
- (任意) Salesforce CLI をインストールして Salesforce 組織で動作するようにしている
スクラッチ組織を使用する場合は、スクラッチ組織定義ファイル内の CustomerDataPlatform 機能を有効にする必要があります。
{
"orgName": "ABC",
"edition": "Enterprise",
"features": ["CustomerDataPlatform"]
}
Heroku AppLink プラグインをインストールする
Heroku AppLink CLI プラグインを追加する前に、Heroku CLI がインストールされている必要があります。手順については、「Heroku CLI」を参照してください。
プラグインをインストールするには、次の CLI コマンドを実行します。
$ heroku plugins:install @heroku-cli/plugin-applink
次のコマンドでプラグイン情報を表示できます。
$ heroku plugins:inspect @heroku-cli/plugin-applink
└─ @heroku-cli/plugin-applink
...
├─ commands
│ ├─ applink:authorizations
│ ├─ applink:authorizations:info
│ ├─ applink:connections
│ ├─ applink:connections:info
│ ├─ datacloud:connect
│ ├─ datacloud:data-action-target:create
│ ├─ datacloud:disconnect
│ ├─ salesforce:authorizations:add
│ ├─ salesforce:authorizations:remove
│ ├─ salesforce:connect
│ ├─ salesforce:connect:jwt
│ ├─ salesforce:disconnect
│ ├─ salesforce:publications
│ └─ salesforce:publish
...
アプリを準備する
ローカルのコマンドシェルまたはターミナルで次のコマンドを実行して、サンプルアプリのローカルコピーを作成します。
$ git clone https://github.com/heroku-reference-apps/applink-getting-started-nodejs
$ cd applink-getting-started-nodejs
この Git リポジトリには、Fastify Web フレームワークとSalesforce 用の Node.js AppLink SDK を使用したサンプル Node.js アプリが含まれています。サンプルアプリの構造は次のとおりです。
api-spec.yaml: (必須) このサンプル API 仕様ファイルを使用すると、Salesforce に外部サービスとしてアプリを公開できます。OpenAPI 3.0 をサポートしています。詳細は、「外部サービス」と OpenAPI を参照してください。index.ts: このファイルは API 実装を提供します。heroku-applink.js: このプラグインは受信したリクエストを拡充して、リクエストに関するコンテキストを設定する Salesforce プリハンドラーです。このファイルは Salesforce SDK にユーザーと組織のコンテキストを提供し、非同期リクエストの処理に役立ちます。package.json: このファイルには、プラグインがサポートする Salesforce 用の Node.js AppLink SDK の依存関係が含まれています。SDK を使用すると、Salesforce および Data Cloud で DML 操作を簡単に実行できます。Procfile: 起動時にアプリによって実行される内容を定義する Heroku Procfile。Procfile ではheroku-applink-service-mesh がアプリを起動します。bin/invoke.sh: このファイルはローカルで実行中のアプリの API を呼び出します。引数を渡してターゲット組織と設定の動作を指定します。
このチュートリアルでは、サンプルアプリに含まれる次の API 操作を使用します。
HandleDataCloudDataChangeEvent (/handleDataCloudDataChangeEvent): Data Cloud にイベントデータを生成し、イベントの受信時に Data Cloud にクエリを実行する非同期のPOST 呼び出し。
アプリを作成する
dyno を使用してこのチュートリアルを完了した場合、使用量としてカウントされます。このチュートリアルを完了するには、低価格プランのご利用をお勧めします。資格のある学生の皆様は、Heroku for GitHub Students プログラムを通じてプラットフォームクレジットを申請できます。
Heroku でソースコードを受け取る準備をするには、アプリを作成します。
$ heroku create
Creating app... done, ⬢ applink-dc-app
http://applink-app.herokuapp.com/ | https://git.heroku.com/applink-app.git
名前を指定しない場合は、Heroku によってアプリの名前がランダムに生成されます。このガイドでのアプリの名前は applink-dc-app です。
Heroku AppLink buildpack をインストールする
Heroku AppLink Service Mesh 用の Heroku buildpack では、アプリの認証と承認を処理するための Heroku AppLink Service Mesh がインストールされます。サービスメッシュはアプリの前にあるプロキシであり、受信した Salesforce および Data Cloud リクエストをインターセプトして検証および認証します。
インストールするには、次のコマンドを実行します。
$ heroku buildpacks:add heroku/heroku-applink-service-mesh
さらに、nodejs プロジェクトでは heroku/nodejs buildpack を設定します。
$ heroku buildpacks:add heroku/nodejs
Buildpack added. Next release on applink- will use:
1. https://github.com/heroku/heroku-buildpack-heroku-applink-service-mesh
2. heroku/nodejs
Run git push heroku main to create a new release using these buildpacks.
Heroku AppLink アドオンをプロビジョニングする
アドオンをプロビジョニングするには、次のコマンドを実行します。
$ heroku addons:create heroku-applink
Creating heroku-applink on ⬢ applink-dc-app... free
Your add-on is being provisioned.
applink-regular-78506 is being created in the background. The app will restart when complete...
Use heroku addons:info applink-regular-78506 to check creation progress
Use heroku addons:docs applink-dc-app to view documentation
プロビジョニング後、アドオンは次の環境設定を作成します。
HEROKU_APPLINK_URL: CLI がリクエストを行うためのベース URL が含まれます。HEROKU_APPLINK_TOKEN: アクセストークンが含まれます。
heroku config コマンドを使用して、環境設定を取得できます。
$ heroku config
=== applink-dc-app Config Vars
HEROKU_APPLINK_API_URL: https://heroku-applink.heroku.com/addons/894792c1-c1e8-4f34-ba32-00000000000
HEROKU_APPLINK_TOKEN: af0a7e7984d4ef28948db6431dc036ae383fcb2f02064cbb0000000000000000
このチュートリアルでデータアクションターゲットを作成するには、HEROKU_APP_ID 環境設定も設定する必要があります。
$ heroku config:set HEROKU_APP_ID="$(heroku apps:info --json | jq -r '.app.id')"
Heroku アプリをデプロイする
次に、アプリをデプロイします。
$ git push heroku main
...
2025-07-07T14:09:33.845077+00:00 heroku[web.1]: State changed from provisioning to starting
2025-07-07T14:09:49.304734+00:00 app[web.1]: time=2025-07-07T14:09:49.304Z level=INFO msg=environment app=applink-app source=heroku-applink-service-mesh go_version:=go1.24.3 os=linux arch=amd64 http_port=31835 version=v0.2.2 environment=local app_host=http://127.0.0.1 app_port=3000
2025-07-07T14:09:49.304754+00:00 app[web.1]: time=2025-07-07T14:09:49.304Z level=INFO msg="Heroku AppLink Service Mesh is up!" app=applink-app source=heroku-applink-service-mesh port=31835
2025-07-07T14:09:49.833835+00:00 app[web.1]:
2025-07-07T14:09:49.833839+00:00 app[web.1]: > applink-app@1.0.0 start
2025-07-07T14:09:49.833840+00:00 app[web.1]: > fastify start -o -a 0.0.0.0 -p $APP_PORT -l debug src/app.js
2025-07-07T14:09:49.833840+00:00 app[web.1]:
2025-07-07T14:09:50.482717+00:00 heroku[web.1]: State changed from starting to up
2025-07-07T14:09:51.111131+00:00 app[web.1]: {"level":30,"time":1751897391110,"pid":63,"hostname":"dyno-bcad42a8-33d4-447f-9adb-0000000000","msg":"Server listening at http://0.0.0.0:3000"}
...
remote: Verifying deploy... done.
To https://git.heroku.com/applink-app.git
* [new branch] main -> main
Heroku アプリをデプロイする他の方法については、「デプロイ」を参照してください。
ユーザー権限を割り当てる
ユーザー権限についての詳細は、「ユーザー権限の割り当て」を参照してください。
Heroku AppLinkで操作を実行するには、Heroku で deploy 権限または operate 権限を持っているか、Heroku アプリの所有者である必要があります。また、Salesforce で Heroku AppLink 権限を持っている必要があります。Salesforce で権限を追加するには、権限セットを作成します。
- Salesforce の [設定] から、
Quick Find(クイック検索) ボックスにPermission Sets と入力して選択します。 New(新規) を選択し、権限セットに名前を付けます。Save(保存) を選択します。Find Settings…(設定の検索…) ボックスにManage Heroku AppLink と入力して選択します。- [システム権限] ページの上部で、
Edit(編集) を選択します。 Manage Heroku AppLink の横にあるチェックボックスをオンにしてSave(保存) を選択し、もう一度Save(保存) を選択します。- [システム権限] ページのナビゲーションバーで、
Manage Assignments(割り当ての管理) を選択します。 Add Assignments(割り当てを追加) を選択します。- 権限セットを追加するユーザーの横にあるチェックボックスをオンにし、
Next(次へ) を選択してからAssign(割り当て) を選択します。
Data Cloud に接続する
接続の作成、表示、削除についての詳細は、「アプリ上の接続」を参照してください。
本番組織の場合は、ログイン URL に “https://login.salesforce.com” を使用します。サンドボックス組織とスクラッチ組織の場合は、ログイン URL に “https://test.salesforce.com” を使用します。
すでに組織にログインしている場合、このコマンドはすでにログインしている組織への接続を試みます。別の組織に接続する場合は、このコマンドを実行する前に既存のすべての組織からログアウトしてください。
次に、次のコマンドを使用して、Data Cloud 組織への接続を作成します。
$ heroku datacloud:connect dc-org -addon applink-regular-78506 -a applink-dc-app
Opening browser to https://login.salesforce.com/services/oauth2/authorize?client_id=…
Press any key to open up the browser to connect ⬢ applink-dc-app to dc-org, or q to exit:
Connecting Data Cloud org dc-org to ⬢ applink-dc-app... Connected
接続に関する情報を表示するには、次のコマンドを実行します。
$ heroku applink:connections:info dc-org -a applink-dc-app --addon applink-regular-78506
=== dc-org on ⬢ app applink-dc-app
Connection Type: Data Cloud Org
Created By: admin@heroku.com
Created Date: 2025-05-30T18:55:42.863808Z
Id: b6ff0867-935a-4181-a303-52ce1aefb456
Instance URL: https://login.test1.my.pc-rnd.salesforce.com
Last Modified: 2025-05-30T18:56:02.282284Z
Last Modified By: admin@heroku.com
Org ID: 00Dbc0000000000000
Status: Connected
ユーザーを承認する
承認の作成・表示・削除方法についての詳細は、「アプリ上の承認」を参照してください。
次に、ユーザーを承認して、サンプルアプリの /handleDataCloudDataChangeEvent API 操作が Data Cloud API 経由で Data Cloud を呼び出せるようにします。次のコマンドを使用して、Data Cloud ユーザーを承認します。
$ heroku datacloud:authorizations:add dc-user --addon applink-regular-78506 -a applink-dc-app
Opening browser to https://login.salesforce.com/services/oauth2/authorize?client_id=…
Press any key to open up the browser to add credentials to ⬢ applink-dc-app to dc-org, or q to exit:
Adding credentials to ⬢ applink-dc-app as dc_user... Authorized
承認に関する情報を表示するには、次のコマンドを実行します。
$ heroku applink:authorizations:info dc_user --addon applink-regular-78506 -a applink-dc-app
=== auth_user on app ⬢ example_app
Add-on: applink-regular-78506
App: applink-dc-app
Created By: admin@heroku.com
Created Date: 2025-05-21T05:11:10.864524Z
ID: 864aace1-72cb-47e0-aafe-35286b4283be
Instance URL: https://login.test1.my.pc-rnd.salesforce.com
Last Modified: 2025-05-21T05:11:29.383383Z
Last Modified By: admin@heroku.com
Org ID: 00DSB00000SEt1L2AT
Status: Authorized
Type: Data Cloud Org
Heroku アプリを公開する
詳細は、「アプリを公開する」を参照してください。
アプリを外部サービスとして Salesforce に公開すると、Data Cloud でデータアクションターゲットを作成できます。アプリを公開するには、次のコマンドを実行します。
$ heroku salesforce:publish api-spec.yaml --client-name HerokuAPI --authorization-connected-app-name MyAppLinkConnectedApp --authorization-permission-set-name MyAppLinkPermSet --connection-name dc-org --addon applink-regular-78506
Publishing ⬢ applink-dc-app to dc-org as HerokuAPI via https://applink.herokudev.com/addons/1c6bb699-2a91-47b3-b55e-8f2e37254684/connections/salesforce/applink-dc-org/apps... done
必要に応じて、アプリのapi-spec.yaml OpenAPI 仕様ファイルを編集して Salesforce で使用する接続アプリまたは権限セットを指定し、ユーザーの権限をデフォルトの user モードから user-plus モードに昇格させることができます。
アプリを公開すると、Salesforce の [設定] からアプリとその入力・出力パラメータを確認できます。設定ページで次のことを行います。
- [クイック検索] で
Heroku を検索し、Apps(アプリ) を選択します。 - 公開したアプリを選択します。
![[設定] の Heroku アプリ](https://assets.devcenter.heroku.com/article-images/1750872001-rn_heroku_apps_setup.png)
アプリの公開に失敗した場合は、Salesforce の [設定] の [リリース状況] で詳細を確認してください。
公開に関する情報を表示するには、次のコマンドを実行します。
$ heroku salesforce:publications -a applink-dc-app
=== Salesforce publications for app ⬢ applink-dc-app
Connection Name Org ID Created Date Created By Last Modified Last Modified By
──────────────── ────────────────── ──────────────────── ──────────────── ───────────────────── ────────────
dc-org 00Dbc0000000000000 2025-05-30T17:34:56Z admin@heroku.com 2025-05-30T17:34:56Z Admin Heroku
ログを表示する
アプリのログは heroku logs –tail で確認できます。
$ heroku logs --tail
---
2024-10-28T16:02:15.215250+00:00 app[web.1]: time=2024-10-28T16:02:15.215Z level=INFO msg="Processing request to /accounts..." app=local source=heroku-applink-service-mesh request-id=00Dbc0000000000000-f2f3ed60-2dbd-4edd-b707-9dee97d89c7c
...
2024-10-28T16:02:15.215332+00:00 app[web.1]: time=2024-10-28T16:02:15.215Z level=INFO msg="Authenticating Salesforce request for org 00Dbc0000000000000, domain https://mydomain.demo.my.salesforce.com..." app=local source=heroku-applink-service-mesh request-id=00Dbc0000000000000-f2f3ed60-2dbd-4edd-b707-9dee97d89c7c
...
2024-10-28T16:02:15.398893+00:00 app[web.1]: {"level":30,"time":1730131335396,"pid":37,"hostname":"dyno-f34267e3-3d00-453d-a3b4-a16ab26a773b","reqId":"00Dbc0000000000000-f2f3ed60-2dbd-4edd-b707-9dee97d89c7c","msg":"Querying invoking org (00Dbc0000000000000) Accounts..."}
...
2024-10-28T16:02:15.482442+00:00 app[web.1]: {"level":30,"time":1730131335482,"pid":37,"hostname":"dyno-f34267e3-3d00-453d-a3b4-a16ab26a773b","reqId":"00Dbc0000000000000-f2f3ed60-2dbd-4edd-b707-9dee97d89c7c","res":{"statusCode":200},"responseTime":86.56547299958766,"msg":"request completed"}
Data Cloud で公開した App アクションを呼び出す
詳細は、「Heroku AppLink アプリの呼び出し」を参照してください。
Data Cloud 組織をアプリに接続したら、アプリのデータアクションターゲットを作成できます。Webhook データアクションターゲットを作成するには、次のコマンドを実行します。
$ heroku datacloud:data-action-target:create Example_DAT -a applink-dc-app -o dc-org -p /handleDataCloudDataChangeEvent
Creating ⬢ applink-dc-app as 'Example_DAT' data action target webhook to dc-org... Created
データアクションターゲットは Data Cloud で確認できます。

これで、アプリでの顧客とのやり取りや顧客満足度スコアの低下など、特定のアクションが発生するとデータアクションターゲットを呼び出すイベントを生成するデータアクションを作成できるようになりました。
接続、承認、公開済みアプリ、アドオンを削除する
接続を削除する
この操作を行うと組織への接続が削除され、元に戻すことはできません。
Data Cloud 組織から接続を削除するには、次のコマンドを実行します。
$ heroku datacloud:disconnect dc-org -a applink-dc-app
› Warning: Destructive action
› This command disconnects the connection dc-org from add-on applink-regular-78506 on app ⬢ applink-dc-app.
›
To proceed, type dc-org or re-run this command with --confirm dc-org: dc-org
Disconnecting Data Cloud org dc-org from applink-dc-app ... done
承認を削除する
この操作を行うと、組織に対する承認が削除され、元に戻すことはできません。
Data Cloud 組織から承認を削除するには、次のコマンドを実行します。
$ heroku datacloud:authorizations:remove auth-user --addon applink-regular-78506 -a applink-dc-app
Removing credentials dc-user from applink-dc-app ... done
公開したアプリを削除する
この操作を行うと、Salesforce から公開されたアプリが削除されます。アプリアクションを削除する前に、既存のコードまたはリソースがアプリアクションを参照していないことを確認してください。
サービスの [アクション] 列の矢印をクリックし、Delete (削除) を選択して、Salesforce から公開したアプリを削除します。公開されたアプリのページで Delete (削除) を選択することもできます。

アドオンを削除する
アドオンを削除すると、すべての接続、承認、パブリケーションが削除されます。アドオンを削除する前に、アプリケーション内で承認が参照されている場所がないことを確認するようお勧めします。
Heroku AppLink アドオンを削除するには、次のコマンドを実行します。
$ heroku addons:destroy heroku-applink
その他の資料
その他の Heroku AppLink ファーストステップガイドもご覧ください。
お勧めのリソースを以下に紹介します。