Skip to main content

はじめに

GoHighLevel(GHL)は、ファネル、Webサイト、メール/SMS、オートメーション(「Workflows」)をカバーするオールインワンの CRM およびマーケティングプラットフォームです。GHL では Dodo Payments が組み込みプロセッサとして掲載されていないため、チェックアウトをどの程度ページに組み込みたいか、またどの程度コードを使用できるかに応じて、3つの方法のいずれかで2つを接続します。 どの方法でも、フルフィルメントの処理は同じです。Dodo は webhook events を GHL の Inbound Webhook Workflow に送信し、コンタクトへのタグ付け、アクセス権の付与、確認メッセージの送信を行います。

方法を選択する

初めて使用する場合は、方法 A(Payment Links) から始めてください。ノーコードで、すべての GHL ユーザーが利用でき、数分で設定できます。方法 B と C では checkout sessions を作成するためのバックエンドが必要で、コードの扱いに慣れたチーム向けです。

前提条件

  • 少なくとも1つの product を作成済みの Dodo Payments アカウント。
  • ファネル、Webサイト、またはワークフローを備えた GoHighLevel アカウント。
  • Dodo ダッシュボードの Settings → Webhooks(API key には Settings → Developer)へのアクセス権。
  • 方法 B と C の場合:checkout sessions を作成するための小規模な backend または serverless endpoint
GHL でファネルを publish するには connected domain が必要です。構築中はファネルの Preview を使用してテストしてください。カスタム JavaScript(方法 B と C)は通常、Preview ではなく、実際のドメイン上の公開ページでのみ実行される点に注意してください。

webhook を使用したフルフィルメント(すべての方法)

これがオートメーション層です。一度設定すれば、どのチェックアウト方法を選択しても機能します。
1

Create the workflow

GHL の sub-account で、左側のメニューから Automation を開きます(Workflows タブが表示されます)。Create workflow をクリックし、Start from Scratch を選択します。
2

Add the Inbound Webhook trigger

ビルダーで Add new trigger をクリックします。Add trigger パネルで webhook を検索し、Inbound webhookTriggers → Events の下に表示)を選択します。生成された Webhook URL をコピーします。
3

Register the webhook in Dodo

Dodo ダッシュボードで Settings → Webhooks に移動し、新しい endpoint を追加して、GHL Inbound Webhook URL を貼り付けます。テスト購入を行い、GHL がサンプル payload を取得できるようにします。これにより、フィールド(customer email、product、amount、status)をマッピングできます。
4

Add fulfillment actions

GHL ワークフローに戻り、イベントに基づいて、find/create contact by emailadd a taggrant course/membership accesssend a confirmation email などのアクションを追加します。その後、ワークフローを Publish します。
決済は Dodo で処理されるため、GHL の Payments タブには 表示されません。上記の webhook ワークフローを使用して GHL に照合し、アクセス権付与の source of truth にはブラウザのリダイレクトではなく webhook を使用してください。顧客が戻る前にタブを閉じる可能性があるためです。

方法 A:Payment Links(ノーコード)

GHL のボタン、ファネル CTA、注文ページのボタン、メール、SMS のいずれにも Dodo payment link を設定できます。
1

Create a product and copy its payment link

Dodo ダッシュボードで Products → Add Product に移動し、nameprice を設定して、one-time または subscription を選択し、Save します。product を開き、その Payment Link(形式:https://checkout.dodopayments.com/buy/{product_id})をコピーします。
2

Add the link to your GHL button

ファネルまたは Webサイトのページを編集し、Buy / Checkout button を選択して、アクションを Open URL / Website に設定し、Dodo payment link を貼り付けます。
3

Set a success page (optional)

Dodo で product の return URL を GHL のサンキューページに設定し、支払い後に顧客がファネルへ戻れるようにします。
payment link の顧客情報を事前入力して変更不可にしたり、トラッキングを追加したりするには、payment-link query parameters を使用できます。これは、webhook から読み取れるメタデータとして、ファネル ID やオファー ID を渡す場合に便利です。

方法 B:Overlay Checkout(カスタムコード)

Checkout SDK を CDN 経由で使用し、GHL ページ上に modal overlay として Dodo checkout を開きます。checkout session を作成して checkoutUrl を返すバックエンドが必要です。
1

Create a backend endpoint that calls the Checkout Sessions API

この手順は 必須 です。SDK には有効な checkoutUrl が必要で、作成には secret API key が必要です。GHL は静的ページのみをホストするため、このサーバーサイド呼び出しを代わりに実行することはできません。また、Create Checkout Session API をブラウザから直接呼び出してはいけません。ページのソースに secret key が露出してしまうためです。そのため、overlay checkout と inline checkout は GHL だけでは動作しません。セッションを作成し、URL だけを返す、管理下のバックエンドが必要です。小規模なバックエンドであればどのようなものでも使用できます。serverless function(Cloudflare Workers、Vercel Functions、AWS Lambda、Supabase Edge Functions など)や、既に運用しているサーバー上の endpoint が利用できます。ロジックはどの環境でも同じです。リクエストを受け取り、secret key を使用して Dodo の API を呼び出し、checkout_url を返します。ハンドラーのロジック例(使用するプラットフォームに合わせて調整してください):
デプロイ先のプラットフォームで Dodo API key を secret として保存してください(コードにコミットしないでください)。GHL ドメインからのリクエストを許可し(CORS)、管理下のドメイン配下に endpoint を設定します(例:https://api.example.com/create-checkout)。live mode に移行したら https://live.dodopayments.com/checkouts に切り替えます。
2

Add a Custom Code element in the GHL page builder

GHL page builder でファネルのステップまたは Webサイトのページを開き、次の操作を行います。
  1. ビルダーの左上にある + アイコンをクリックして Quick Add を開きます。
  2. 左側のカテゴリ一覧から Elements を選択します。
  3. Custom Code(HTML と表示される場合もあります)を見つけて、ページにドラッグします。
  4. 以下のコードを要素のコードエディターに貼り付け、保存します。
3

Publish and test on your domain

Custom JS は常に Preview で実行されるとは限らず、公開済みページ(connected domain)で実行されます。公開後、Pay Now をクリックして overlay が開くことを確認します。

方法 C:Inline(埋め込み)Checkout

同じ SDK と mount container を使用して、チェックアウトフォームを GHL ページの 内部に 埋め込みます(リダイレクトなし、ポップアップなし)。方法 B と同様に、セッションを作成するバックエンドが必要です。
1

Create a backend endpoint that calls the Checkout Sessions API

overlay と同じ要件であり、同様に 必須 です。セッションの作成には secret API key が必要なため、サーバーサイドで実行する必要があります。GHL 単独では実行できません。上記の Overlay Checkout セクションで説明したものと同じバックエンド endpoint(管理下の小規模な serverless function またはサーバー)を再利用してください。この endpoint は Create Checkout Session API を呼び出し、{ checkoutUrl } を返します。
2

Add a container and SDK via Custom Code

GHL page builder で次の操作を行います。
  1. ビルダーの左上にある + アイコンをクリックして Quick Add を開きます。
  2. 左側のカテゴリ一覧から Elements を選択します。
  3. Custom Code(HTML と表示される場合もあります)を見つけ、チェックアウトフォームを表示したい場所にドラッグします。
  4. 以下のコードを要素のコードエディターに貼り付け、保存します。
3

Verify your domain for wallets (Apple Pay)

inline checkout で Apple Pay を使用するには、verify your domain を実行してください。関連付けファイルをホストし、ダッシュボードでドメインを登録します。
Inline は GHL で最も複雑な方法です。カスタムコード、バックエンド、実際のドメイン上の公開ページが必要で、Apple Pay を使用する場合はドメイン検証も必要です。完全に埋め込まれたフォームが不要な場合は、方法 A または B を推奨します。

処理する Events

すべての webhook には customer email が含まれます。GHL の find/create contact by email アクションを使用して、決済を正しいコンタクトに紐付けます。完全な一覧については、Webhook Event Guide を参照してください。

テストと本番稼働

1

Test in test mode

Dodo を Test Mode にしたまま、テストカード 4242 4242 4242 4242(有効期限は将来の日付、CVC は任意)を使用して購入を完了し、GHL ワークフローが実行されてタグまたはアクセス権が適用されることを確認します。
2

Go live

Dodo を Live Mode に切り替え、live mode 用の webhook endpoint を更新します。その他に変更する内容は、方法によって異なります。
  • Payment Links(A): product の live payment link に差し替えます。
  • Overlay checkout(B): バックエンドの接続先を https://live.dodopayments.com/checkouts に変更し、live API key を使用します。また、Initialize 呼び出しで SDK の mode"live" に設定します。
  • Inline checkout(C): 同じバックエンド endpoint と SDK 初期化を使用するため、overlay と同じです。
その後、実際のエンドツーエンドの購入を1件実行して確認します。

Tips

アクセス権の付与では、webhook を source of truth として扱ってください。ブラウザのリダイレクトではなく、payment.succeeded / subscription.active に基づいて処理します。
webhook-signature ヘッダー(Standard Webhooks)を使用して webhook の真正性を検証し、本物の Dodo イベントだけが GHL でフルフィルメントをトリガーするようにします。

トラブルシューティング

Dodo webhook endpoint が正しい GHL Inbound Webhook URL を指していること、ワークフローが 公開済み であること、フィールドマッピングを作成できるようトリガーがサンプル payload を取得していることを確認してください。
Custom JS は通常、Preview ではなく 公開済みページ(実際のドメイン) でのみ実行されます。ページが公開されていること、SDK <script> が読み込まれていること、checkoutUrl がバックエンドから返された有効な session URL であることを確認してください。
ワークフローで find/create contact by email が使用され、email フィールドが webhook payload からマッピングされていることを確認してください。
これは想定された動作です。決済は Dodo で処理されるため、webhook ワークフローを使用して GHL に照合してください。
最終更新日 2026年8月6日