Salesforce フローのデータの変換要素（ベータ）を試してみる

# はじめに

この記事では Winter '24 でベータ版としてリリースされた
フローの新たな要素 `データの変換要素`を試してみます。

https://help.salesforce.com/s/articleView?id=release-notes.rn_automate_flow_builder_transform.htm&release=246&type=5

:::note warn
データの変換要素は2023年12月 Winter '24現在ベータ版です。
:::

# どんなことができるようになるの？

>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/978e76cb-c3eb-d29a-daac-ca6e01335577.png)
引用：https://help.salesforce.com/s/articleView?id=release-notes.rn_automate_flow_builder_transform.htm&release=246&type=5

外部APIで取得してきたデータやSalesforceのレコードを
Salesforceのレコード型・Apex定義型にフロー上のGUIでカラムをマッピングすることができます。

１画面でグラフィカルにマッピングができるのはかなり便利になりました。

# やってみる

変換要素を使って取引先レコードに変換し、変換後のデータを取引先としてレコードを作成します。

https://qiita.com/takaHAL/items/8ee5328de91ba93a7998

今回は以前Qiitaの記事を取得するフローを作成したので
APIの部分はそれをそのまま利用します。

さらにプラスでリードオブジェクトのデータを取引先に変換もやってみます。

## 変換要素を配置（API）

### Qiita→取引先

![スクリーンショット 2023-12-24 23.59.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/c566e1d6-929b-854f-ccaf-d47ee0e3d215.png)


### リード→取引先

変換用のリードを検索します。

![スクリーンショット 2023-12-24 23.54.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/02530ecc-ca2b-2ffd-a0bf-583e6143459a.png)


![スクリーンショット 2023-12-24 23.59.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/dd9783f8-ca42-bd72-f1b4-2eb2c505d0f2.png)



## レコードを作成

変換要素を使用すると、変換後
今回だと取引先のレコード型として利用することができます。

![スクリーンショット 2023-12-25 0.03.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/13ae8fd8-cddb-4460-56bb-12f00d1eec80.png)

![スクリーンショット 2023-12-25 0.03.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/f675988c-2c50-a0b6-fdf6-39c6b49922aa.png)

## 実行してみる

### Qiita→取引先

Qiitaの記事名で取引先レコードが作成されました。

![最近参照したデータ-取引先-Salesforce (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/fddeb4b5-d771-667e-f77b-e646a974a014.png)

## 変換要素部分のメタデータを見てみる

` <transformValueActions>`の中の`elementReference`が変換前のデータ。
`outputFieldApiName`が変換後のAPI参照名としてマッピングしている形式になってました。

```xml
 <transforms>
        <name>Leads2Accounts</name>
        <label>リードを取引先に変換</label>
        <locationX>176</locationX>
        <locationY>458</locationY>
        <connector>
            <targetReference>createQiitaAccounts</targetReference>
        </connector>
        <dataType>SObject</dataType>
        <isCollection>true</isCollection>
        <objectType>Account</objectType>
        <scale>0</scale>
        <transformValues>
            <transformValueActions>
                <outputFieldApiName>Name</outputFieldApiName>
                <transformType>Map</transformType>
                <value>
                    <elementReference>getLeads[$EachItem].Company</elementReference>
                </value>
            </transformValueActions>
            <transformValueActions>
                <outputFieldApiName>Website</outputFieldApiName>
                <transformType>Map</transformType>
                <value>
                    <elementReference>getLeads[$EachItem].Website</elementReference>
                </value>
            </transformValueActions>
        </transformValues>
    </transforms>
```


### リード→取引先

リードの会社名で取引先レコードが作成されました。

|リード|取引先|
|---|---|
|![リードインテリジェンスビュー-リード-Salesforce.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/12cd7746-a478-b355-09f8-ad48d74b88c6.png)|![最近参照したデータ-取引先-Salesforce (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445600/058cbbf1-cf76-a349-c66a-1d460552f1bf.png)|

# 最後に

`データの変換要素`便利ですね。もちろんAPIで取得したデータをレコード型定義に変換できるところも非常に魅力的ですが、何気に通常のレコードも別のレコード型定義に変換できるのが割り当て要素を使わずにできるので便利です。
今はまだベータ機能ですが、Spring '24でもアップデートがあったりとどんどん強化されていく機能です。
正式版になる頃が楽しみですね。