タスク管理アプリにSalesforce連携を実装する方法(Bubble編)

目次

準備:Salesforce側の設定

  1. Salesforceにログインし、[設定]→[アプリケーション]→[アプリケーションマネージャ]を開く
  2. 右上の[新規接続アプリ]をクリックし、以下を設定
  • 接続アプリ名:Bubble_SF_Integration
  • 連絡先メール:管理者メールアドレス
  • API (Enable OAuth Settings) をオンにして下記を入力
    • コールバックURL:https://YOUR_APP.bubbleapps.io/api/1.1/oauth_redirect
    • OAuthスコープapi, refresh_token, offline_access
  1. 作成後、消費者キー (Consumer Key)消費者秘密 (Consumer Secret) をメモ
  2. プロファイル設定で、Connected Appの使用を許可するプロファイルに「APIの有効化」と「OAuth許可」が含まれていることを確認

準備:Bubble側の設定

  1. Bubbleエディタで[プラグイン]→[API Connector]をインストール
  2. [API Connector]を開き、以下のように新規APIを追加
  • API名:Salesforce
  • Authentication:OAuth2 User-Agent Flow
  • Authorize URLhttps://login.salesforce.com/services/oauth2/authorize
  • Token URLhttps://login.salesforce.com/services/oauth2/token
  • Client ID:先ほどのConsumer Key
  • Client Secret:先ほどのConsumer Secret
  • Scopeapi refresh_token offline_access
  • Redirect URL:自動で表示される Bubble のリダイレクトURL
  1. [Initialize call] をクリックし、OAuth認証フローを実行してアクセストークンを取得

データモデル設計

  1. SalesforceオブジェクトBubbleデータタイプ の対応表を作成
Salesforce Task フィールドBubble タスクフィールド
IdSF_Id (text)
SubjectTitle (text)
OwnerIdOwner (text)
StatusStatus (text)
ActivityDateDue Date (date)
  1. Bubbleのデータタブで Task データタイプを作成し、上記フィールドを追加

レコード取得の実装

  1. Workflowタブで新規APIアクションを設定
  • アクション名:Get Salesforce Tasks
  • API:Salesforce → GET /services/data/vXX.0/query
  • QuerySELECT Id,Subject,OwnerId,Status,ActivityDate FROM Task WHERE OwnerId = '{{Current User's SF_UserId}}'
  1. レスポンスをresults配列として初期化し、Bubbleでレスポンス型を確認
  2. ページロード時(Page is loaded)に上記アクションを実行し、RepeatingGroupにバインド

レコード作成・更新の実装

新規タスク作成

  1. フォーム送信ボタンのWorkflowにAPIアクションを追加
  • Create Salesforce Task:POST /services/data/vXX.0/sobjects/Task
  • Body (JSON)
    json { "Subject": "<input Task Title>", "OwnerId": "<Current User's SF_UserId>", "Status": "Not Started", "ActivityDate": "<input Due Date>" }
  1. レスポンスのIdをBubbleデータベースのSF_Idに保存

タスク更新

  1. 編集完了ボタンのWorkflowにAPIアクションを追加
  • Update Salesforce Task:PATCH /services/data/vXX.0/sobjects/Task/{{SF_Id}}
  • Body (JSON)
    json { "Status": "<input Status>", "ActivityDate": "<input Due Date>" }

トークンリフレッシュとエラーハンドリング

  1. refresh_token をAPI Connectorの [Automatic refresh] で有効化
  2. 401エラー時のWorkflowを作成し、リフレッシュアクションを手動実行可能に設定
  3. APIレスポンスのerrorフィールドをチェックし、ユーザーにエラーメッセージを表示

テスト&デバッグ

  1. Bubbleデバッガーを使い、各APIアクションのレスポンスJSONを確認
  2. Salesforce開発者コンソールでレコードの作成・更新ログを監視
  3. サンプルデータを使い、機能一覧(取得・作成・更新)が正常動作することを検証

運用・セキュリティ考慮

  • レート制限:Salesforce APIは1日あたりの呼び出し回数上限に注意
  • Field-Level Security:ユーザー権限によるフィールド表示制御をSalesforce側で設定
  • HTTPS:Bubbleアプリは必ずSSL化
  • データバックアップ:定期的にBubbleとSalesforce両方のデータをエクスポート

まとめ

以上の手順で、Bubbleのタスク管理アプリに対してSalesforceと双方向連携を実装できます。要件に応じてカスタムオブジェクトや高度なSOQL、Bulk APIの活用も検討してください。“`

目次