MySQLレコードをSalesforceにバッチで同期するレシピ
このユースケースでは、MySQLおよびSalesforceをWorkatoに接続して、強力な自動化を作成する手順を説明します。
このレシピの機能
このレシピは、MySQLからSalesforceにレコードをバッチで同期します。 具体的には、このレシピではMySQLからSalesforceに取引先責任者をアップサートする方法を示します。 このレシピは、取引先、リード、商談など、他のSalesforceオブジェクト向けに調整できます。
このレシピはどのように使用できますか?
このレシピは、次のユースケースを含むさまざまな方法でワークフローの自動化に適用できます。
- ユーザー同期: MySQLからSalesforceにユーザーレコードをシームレスに同期し、すべてのユーザーの情報を正確かつ最新に保ちます。
- 取引先管理: 顧客データをMySQLからSalesforceに取引先として自動転送し、プラットフォーム間の一貫性を維持します。
- 商談追跡: 商談の詳細をMySQLからSalesforceに同期し、営業チームが最新のパイプライン情報にアクセスできるようにします。
レシピの作成
MySQLからSalesforceにレコードをバッチで同期するレシピを作成するには、次の手順を実行します。
ユースケースは例示のみを目的としています
このユースケースは一例です。 このレシピをワークフローに合わせて適応させるには、トリガー、アクション、または条件ロジックの変更が必要になる場合があります。
Workatoにサインインします。
レシピを作成する予定のプロジェクトを選択します。
MySQLとSalesforceのコネクションを作成します:
MySQLコネクションを作成します。
MySQLコネクションの作成
このステップでは、WorkatoとMySQLアカウント間のコネクションを作成します。
作成 > コネクションをクリックするか、Cを2回押します。
新規コネクションページでMySQLを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
MySQLコネクションの設定
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
コネクションタイプドロップダウンメニューを使用して、使用する予定のコネクション方式を選択します。 オンプレミスグループ名を選択するか、Cloudを選択して直接コネクションを使用できます。
ホスト項目にデータベースホストアドレスを入力します。
サーバーが実行されているポート番号をポートフィールドに入力します。 デフォルトのポート番号は3306です。
ユーザー名項目に、MySQLに接続するためのユーザー名を入力します。
パスワード項目に、ユーザー名に関連付けられたパスワードを入力します。
データベース項目に、接続するMySQLデータベースの名前を入力します。
任意です。 詳細設定を展開して、次のコネクション設定を構成します:
改善された日時処理を使用項目で、MySQLコネクションが改善された日時処理を使用するかどうかを指定します。 すべての新しいコネクションのデフォルトははいです。 この設定は、MySQLに行を挿入するすべてのアクションに影響します。
データベースタイムゾーン項目で、データベースのローカルタイムゾーンを選択します。 日時値のタイムゾーンを指定すると、Workatoは挿入前に指定されたタイムゾーンに変換します。 デフォルトはUTCです。
詳細については、改善された日時処理セクションを参照してください。
任意です。 SSL設定を展開して、次の項目を構成します:
サーバー証明書項目に、.pem形式のX509サーバー証明書を指定します。
SSL証明書項目に、.pem形式のX509クライアント証明書を指定します。
SSL証明書キー項目に、.pem形式のRSAクライアントキーを指定します。
すべて信頼項目で、クライアントが任意の証明書チェーンを信頼するかどうかを選択します。 自己署名サーバー証明書がサポートされています。
ホストを検証項目で、サーバー証明書名をドメイン名と照合するかどうかを選択します。
接続をクリックします。
接続に必要な権限
データベースユーザーアカウントには、アクセスするデータベースに対して少なくともSELECT権限が必要です。
たとえば、新しいデータベースユーザーworkatoを使用してMySQLインスタンス内の名前付きデータベース(HR_PROD)に接続するには、次のクエリを使用できます:
Workatoとの連携ユースケース専用の新しいユーザーを作成します:
CREATE USER 'workato' IDENTIFIED BY 'password';このコマンドは、MySQLインスタンスへのログインアクセス権を持つ新しいユーザーを作成します。 ただし、このユーザーはまだどのテーブルにもアクセスできません。
HR_PROD内のすべてのテーブルに対するSELECT権限をユーザーに付与します:
GRANT SELECT ON `HR_PROD`.* TO 'workato';次のクエリを実行して、ユーザーの権限を確認します:
SHOW GRANTS FOR 'workato';このクエリは、WorkatoでMySQLコネクションを作成するために必要な最小権限を返します:
+---------------------------------------------------------------------+
| Grants for workato@% |
+---------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'workato'@'%' IDENTIFIED BY PASSWORD <secret> |
| GRANT SELECT ON `HR_PROD`.* TO 'workato'@'%' |
+---------------------------------------------------------------------+
2 rows in set (0.24 sec)Salesforceコネクションを作成します。
Salesforceコネクションの作成
この手順では、WorkatoとSalesforceアカウント間のコネクションを作成します。
作成 > コネクションをクリックするか、Cを2回押します。
新規コネクションページでSalesforceを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
Salesforceコネクションのセットアップ
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
Auth typeドロップダウンメニューを使用して認証方法を選択します。 デフォルトはOAuth 2.0です。
サンドボックスドロップダウンメニューを使用して、Salesforceアカウントがサンドボックスアカウントかどうかを指定します。
任意です。 詳細設定を展開して、高度なコネクションオプションを設定します。
任意です。 Custom OAuth profileドロップダウンメニューを使用して、コネクション用のCustom OAuth profileを選択します。
- このCustom OAuth profileにより、コネクションは、そのプロファイルを使用するすべてのユーザーに対して選択した同じスコープセットに制限され、認証フローではCustom OAuth profileにリンクされたクライアントアプリが使用されます。
接続をクリックします。
Salesforceアカウントの認証情報を入力し、Log Inをクリックします。
Salesforceアカウントにログインする
プロジェクトに戻り、Create > Recipeをクリックするか、C+Rを押します。
新しいレシピを作成
Nameフィールドにレシピの名前を入力します。
Locationドロップダウンメニューから、レシピを保存する予定のプロジェクトを選択します。
ビルドを開始をクリックします。
レシピの構築を開始
Pick a starting pointをクリックし、Trigger from an appを選択します。
Select an app and trigger eventをクリックします。
MySQLの新規/更新された行バッチトリガーを設定します。
MySQLの新規/更新された行バッチトリガーの設定
このステップでは、MySQLデータベース内の新規または更新された行をバッチで検出します。
MySQLを検索し、アプリとして選択します。
アプリとしてMySQLを選択
新規/更新された行バッチトリガーを選択します。
新規/更新された行バッチトリガーを選択
前の手順で作成したMySQLコネクションを選択します。
任意です。 トリガーポーリング間隔フィールドで、このトリガーが新しいイベントをチェックする頻度を指定します。 このフィールドを空白のままにすると、デフォルトで5分になります。
テーブルドロップダウンメニューで、新規または更新された行を監視する予定のテーブルを選択します。
この例では、contactsという名前のテーブルで新規または更新された行を監視します。
テーブルフィールドでMySQLテーブルを選択
一意キーフィールドで、重複行を除外する一意のキー列を選択します。 トリガーイベントを見逃さないように、この列は一意で自動インクリメントされる必要があります。
この例では、idという名前の列を一意キーとして使用します。
一意キーを選択
ソート列で、更新された行を識別する列を選択します。 ソート列として使用できるのはタイムスタンプ列のみです。
この例では、このフィールドにlast_updatedという名前の列を選択します。
ソート列を選択
このMySQL列はTIMESTAMPデータ型を持ち、行が変更されるたびに現在の日付と時刻で自動的に更新されます。 詳細は、TIMESTAMPとDATETIMEに関するMySQLのドキュメントを参照してください。
バッチサイズフィールドで、返されるイベントバッチのサイズを選択します。 最小値は1、最大値は100です。 デフォルトは100です。
任意です。 出力列フィールドで、選択したテーブルから返される列を選択します。 すべての列を返すには、このフィールドを空白のままにします。
任意です。 WHERE条件フィールドで、新しい行をフィルタリングする条件を指定します。
保存をクリックします。
+ Add stepをクリックし、Action in appを選択します。
アクションを追加
Salesforceのレコードをバッチでアップサートアクションを設定します。
Salesforceのレコードをバッチでアップサートアクションの設定
MySQLテーブルに新規または更新されたレコードがある場合、このステップではSalesforceでレコードをバッチで更新または挿入します。 このユースケースでは、このアクションによりMySQLからSalesforceに取引先責任者レコードをアップサートします。
Salesforceを検索し、アプリとして選択します。
アプリとしてSalesforceを選択
レコードをバッチでアップサートアクションを選択します。
レコードをバッチでアップサートアクションを選択
前の手順で作成したSalesforceコネクションを選択します。
オブジェクトフィールドで、アップサートするSalesforceオブジェクトを選択します。
この例では、取引先責任者オブジェクトを使用します。
アップサートするSalesforceオブジェクトを選択
任意です。 バッチサイズフィールドに、バッチで処理するレコード数を入力します。 最小値は1、最大値は200です。 デフォルトは200です。
主キーフィールドで、レコードをアップサートするための外部一意識別子を選択します。
この例では、MySQL IDという名前の主キーを使用します。
主キーを選択
Salesforceコネクタードキュメントを参照して、主キーを作成する方法を確認してください。
任意です。 リレーションシップフィールドドロップダウンメニューを使用して、アップサートに含めるリレーションシップフィールドを選択します。 詳細は、Salesforceオブジェクトリレーションシップドキュメントを参照してください。
取引先責任者を展開して、追加設定を構成します。 このフィールド名と以降のフィールド名は、選択したオブジェクトによって異なります。
オプションフィールドを表示をクリックして、MySQLテーブルからSalesforceにマッピングするフィールドを選択します。
オプションフィールドを表示
この例では、contacts MySQLテーブルのレコードに対応するフィールドを選択します:
- 勤務先電話
- メール
- 名
- 姓
- タイトル
MySQLテーブルに対応するデータピルを、取引先責任者フィールドセクションのフィールドにマッピングします。
出力データピルを取引先責任者フィールドセクションにマッピング
一意キー(ステップ1)として選択したMySQL列に関連付けられているデータピルを、Salesforceの主キーに対応するフィールドにマッピングします。
この例では、idStep 1データピルを、Salesforceで作成された主キーの名前であるMySQL IDフィールドにマッピングします。
idStep 1データピルをマッピング
任意です。 詳細設定を展開して、次の設定を構成します:
- エラー発生時にレコードをロールバックしますか?: オブジェクトのアップサートが失敗した場合に、バッチでレコードをロールバックするかどうかを選択します。 バッチが200件を超えるレコードを含む場合、影響を受けたバッチのみがロールバックされます。 デフォルトのいいえ設定を使用することをお勧めします。
保存をクリックします。
MySQLレコードをSalesforceにバッチで同期レシピは、テストおよび実装の準備ができています。
レシピ設定の例。
MySQLレコードをSalesforceにバッチで同期レシピ
Last updated:
