ワークフローの構成
- トリガー: スケジュール実行
- Code: データウェアハウスをクエリする
- Code(任意):データを配列として整形
- Iterator: 各製品をループ処理する
- Upsert Record: Twentyで作成または更新

ステップ 1: トリガーをスケジュールする
データの鮮度要件に合わせた頻度でワークフローを実行するよう設定します:- ほぼリアルタイム同期用に5分ごと
- 重要度の低いデータには1時間ごと
- バッチ更新には毎日
ステップ 2: データウェアハウスをクエリする
直近のデータを取得するために「Code」アクションを追加します:ステップ 3: データを整形(任意)
ウェアハウスが変換を要する形式でデータを返す場合は、別の「Code」アクションを追加します。 一般的な変換には、型変換、フィールド名の変更、データのクリーンアップなどがあります。例: 真偽値およびステータスフィールドを含むユーザーデータ
例: 型変換を含む製品データ
例: 日付および通貨の整形
一般的な変換
| ソース形式 | ターゲット形式 | コード |
|---|---|---|
"true" / "false" | true / false | v === true || v === "true" |
"123.45" | 123.45 | parseFloat(value) |
"active" | "ACTIVE" | value.toUpperCase() |
1704067200 (Unix) | ISO 日付 | new Date(v * 1000).toISOString() |
"$1,234.56" | 1234.56 | parseFloat(v.replace(/[^0-9.-]/g, "")) |
null / undefined | "" | value || "" |
ステップ 4: 製品をループ処理する
「Iterator」アクションを追加します:- 入力:
{{code.products}}
ステップ 5: 各レコードをアップサートする
Iterator 内で「Upsert Record」アクションを追加します:| 設定 | 値 |
|---|---|
| オブジェクト | カスタムの Product オブジェクト |
| 一致条件 | 外部IDまたはSKU(一意の識別子) |
| 名前 | {{iterator.item.name}} |
| SKU | {{iterator.item.sku}} |
| 価格 | {{iterator.item.price}} |
ユースケース例
| ソース | データ |
|---|---|
| ERP システム | 製品カタログ、価格設定、在庫 |
| Eコマースプラットフォーム | 受注、顧客、製品更新 |
| データウェアハウス | 集計メトリクス、エンリッチされたデータ |
| 在庫管理システム | 在庫水準、再発注アラート |