メインコンテンツへスキップ

はじめに

支払いデータを直接HubSpot CRMに同期します。成功した支払いから連絡先を作成し、サブスクリプションライフサイクルを追跡し、包括的な顧客プロファイルを構築します。すべてはDodo Paymentsのイベントによって自動的にトリガーされます。
この統合には、OAuthスコープとAPI権限を設定するためのHubSpot管理者アクセスが必要です。

始め方

1

Webhookセクションを開く

Dodo Paymentsダッシュボードで、Webhooks → + エンドポイントを追加に移動し、統合のドロップダウンを展開します。
エンドポイントの追加と統合のドロップダウン
2

HubSpotを選択

HubSpot統合カードを選択します。
3

HubSpotに接続

HubSpotに接続をクリックし、必要なOAuthスコープを承認します。
4

変換を設定

支払いデータをHubSpot CRMオブジェクトにマッピングするために変換コードを編集します。
5

テストと作成

サンプルペイロードでテストし、作成をクリックして同期を有効にします。
6

完了!

🎉 支払いイベントは、今後自動的にHubSpot CRMにレコードを作成/更新します。

変換コードの例

支払いから連絡先を作成

create_contact.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://api.hubapi.com/crm/v3/objects/contacts";
    webhook.payload = {
      properties: {
        email: p.customer.email,
        firstname: p.customer.name.split(' ')[0] || '',
        lastname: p.customer.name.split(' ').slice(1).join(' ') || '',
        phone: p.customer.phone || '',
        company: p.customer.company || '',
        amount: (p.total_amount / 100).toString(),
        payment_method: p.payment_method || '',
        currency: p.currency || 'USD'
      }
    };
  }
  return webhook;
}

サブスクリプションで連絡先を更新

update_contact.js
function handler(webhook) {
  if (webhook.eventType === "subscription.active") {
    const s = webhook.payload.data;
    webhook.url = `https://api.hubapi.com/crm/v3/objects/contacts/${s.customer.customer_id}`;
    webhook.method = "PATCH";
    webhook.payload = {
      properties: {
        subscription_status: "active",
        subscription_amount: (s.recurring_pre_tax_amount / 100).toString(),
        subscription_frequency: s.payment_frequency_interval,
        next_billing_date: s.next_billing_date,
        product_id: s.product_id
      }
    };
  }
  return webhook;
}

支払いから取引を作成

create_deal.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://api.hubapi.com/crm/v3/objects/deals";
    webhook.payload = {
      properties: {
        dealname: `Payment - ${p.customer.email}`,
        amount: (p.total_amount / 100).toString(),
        dealstage: "closedwon",
        closedate: new Date().toISOString(),
        hs_currency: p.currency || "USD"
      },
      associations: [
        {
          to: {
            id: p.customer.customer_id
          },
          types: [
            {
              associationCategory: "HUBSPOT_DEFINED",
              associationTypeId: 3
            }
          ]
        }
      ]
    };
  }
  return webhook;
}

ヒント

  • HubSpotのAPIエクスプローラーを使用してオブジェクトの作成をテストする
  • 支払い金額をHubSpotの通貨フィールドにマッピングする
  • 適切な関連付けのために顧客IDを含める
  • 支払い状況に基づいて適切な取引ステージを設定する

トラブルシューティング

  • OAuthスコープに書き込み権限が含まれていることを確認する
  • 必要なHubSpotプロパティが存在するか確認する
  • 顧客のメールアドレスが有効で一意であることを確認する
  • HubSpot APIのレート制限を確認する
  • JSON構造がHubSpot APIフォーマットに一致していることを確認する
  • 必要なすべてのプロパティが含まれていることを確認する
  • プロパティ名がHubSpotのフィールド名と正確に一致していることを確認する