タスク管理アプリにSalesforce連携を実装する方法(Bubble編)
目次
準備:Salesforce側の設定
- Salesforceにログインし、[設定]→[アプリケーション]→[アプリケーションマネージャ]を開く
- 右上の[新規接続アプリ]をクリックし、以下を設定
- 接続アプリ名:Bubble_SF_Integration
- 連絡先メール:管理者メールアドレス
- API (Enable OAuth Settings) をオンにして下記を入力
- コールバックURL:https://YOUR_APP.bubbleapps.io/api/1.1/oauth_redirect
- OAuthスコープ:
api
,refresh_token
,offline_access
- 作成後、消費者キー (Consumer Key) と 消費者秘密 (Consumer Secret) をメモ
- プロファイル設定で、Connected Appの使用を許可するプロファイルに「APIの有効化」と「OAuth許可」が含まれていることを確認
準備:Bubble側の設定
- Bubbleエディタで[プラグイン]→[API Connector]をインストール
- [API Connector]を開き、以下のように新規APIを追加
- API名:Salesforce
- Authentication:OAuth2 User-Agent Flow
- Authorize URL:
https://login.salesforce.com/services/oauth2/authorize
- Token URL:
https://login.salesforce.com/services/oauth2/token
- Client ID:先ほどのConsumer Key
- Client Secret:先ほどのConsumer Secret
- Scope:
api refresh_token offline_access
- Redirect URL:自動で表示される Bubble のリダイレクトURL
- [Initialize call] をクリックし、OAuth認証フローを実行してアクセストークンを取得
データモデル設計
- Salesforceオブジェクト と Bubbleデータタイプ の対応表を作成
Salesforce Task フィールド | Bubble タスクフィールド |
---|---|
Id | SF_Id (text) |
Subject | Title (text) |
OwnerId | Owner (text) |
Status | Status (text) |
ActivityDate | Due Date (date) |
- Bubbleのデータタブで
Task
データタイプを作成し、上記フィールドを追加
レコード取得の実装
- Workflowタブで新規APIアクションを設定
- アクション名:Get Salesforce Tasks
- API:Salesforce →
GET /services/data/vXX.0/query
- Query:
SELECT Id,Subject,OwnerId,Status,ActivityDate FROM Task WHERE OwnerId = '{{Current User's SF_UserId}}'
- レスポンスを
results
配列として初期化し、Bubbleでレスポンス型を確認 - ページロード時(Page is loaded)に上記アクションを実行し、RepeatingGroupにバインド
レコード作成・更新の実装
新規タスク作成
- フォーム送信ボタンの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>" }
- レスポンスの
Id
をBubbleデータベースのSF_Id
に保存
タスク更新
- 編集完了ボタンのWorkflowにAPIアクションを追加
- Update Salesforce Task:PATCH
/services/data/vXX.0/sobjects/Task/{{SF_Id}}
- Body (JSON):
json { "Status": "<input Status>", "ActivityDate": "<input Due Date>" }
トークンリフレッシュとエラーハンドリング
- refresh_token をAPI Connectorの [Automatic refresh] で有効化
- 401エラー時のWorkflowを作成し、リフレッシュアクションを手動実行可能に設定
- APIレスポンスの
error
フィールドをチェックし、ユーザーにエラーメッセージを表示
テスト&デバッグ
- Bubbleデバッガーを使い、各APIアクションのレスポンスJSONを確認
- Salesforce開発者コンソールでレコードの作成・更新ログを監視
- サンプルデータを使い、機能一覧(取得・作成・更新)が正常動作することを検証
運用・セキュリティ考慮
- レート制限:Salesforce APIは1日あたりの呼び出し回数上限に注意
- Field-Level Security:ユーザー権限によるフィールド表示制御をSalesforce側で設定
- HTTPS:Bubbleアプリは必ずSSL化
- データバックアップ:定期的にBubbleとSalesforce両方のデータをエクスポート
まとめ
以上の手順で、Bubbleのタスク管理アプリに対してSalesforceと双方向連携を実装できます。要件に応じてカスタムオブジェクトや高度なSOQL、Bulk APIの活用も検討してください。“`