Omni Stuidoスターターガイド

# 1. Introduction
本記事は非エンジニア、特にコンサルティングファームで働かれている方向けに、Omni Studioの概要、および簡単なハンズオンまでご説明させて頂きます。
なかなか日本語の記事が無く、苦労した事があったため、海外のサイトを参考に**引用する形で**ご紹介させて頂ければと存じます。

# 2. Omni Studioとは？
Omni Studioとは、**ノンコードでフロントエンド・バックエンド共にシステム開発を行うサービス**です。
アジャイル開発（スクラム開発）と親和性が高く、迅速にクライアントの要望をシステムに反映できる特徴があります。他方で、Salesforceの拡張機能としての側面がある為、利用する際にはService Cloudライセンスに上乗せする形でランニングコストがかかりますので、特定の業務領域に絞ってOmni Studio・Salesforce Industries（Vlocity）を導入し、その他領域はコア製品（Service Cloudライセンス）で構築するのが一般的な流れだと思います。

:::note warn
**Vlocity は Salesforce Industries** に名前が変更されております。
Salesforce Industriesは、業界（通信、保険、健康保険、エネルギー、公共事業など）毎にカスタマイズされたアプリケーションパッケージ（＋カスタムオブジェクト）です。
:::
:::note alert
**Salesforce Industries（Vlocity）と Omni Studio は同じではありません。**
Salesforce Industries（Vlocity）は業界固有のアプリケーションパッケージですが、Omni Studio は Salesforceプラットフォーム上でSalesforce Industriesを動かすためのプラットフォームだと理解いただければと思います。
Salesforce環境上にインストールしたSalesforce Industries（Vlocity）経由でOmni Studioを操作する事が出来るイメージです。
:::
:::note warn
**Salesforce Industries（Vlocity）の Omniscript とは、Salesforce Industries（Vlocity）の機能**です。（ややこしいですね…）
各業務フロー単位でOmniscriptが作成されるイメージで、Omniscriptを起点にDataRaptor・Integration Procedures等呼び出すことが可能です。
:::

# 3. Omni Studio アーキテクチャ
Omni Studioで提供されるサービスは、以下の3つに分類されます。

**1\. デジタルエクスペリエンス**：（フロントエンド、UI）
* Flex Cards
* Omni Scripts(Step要素)

**2\. サービス管理**：（バックエンド、サーバーサイド）
* Integration Procedures 
* Data Raptores

**3\. 開発者エクスペリエンス**：（資材移送）
* IDX Build Tool
* IDX Workbench

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644257/0156e778-8580-9a38-bfea-66612efe7d92.png)

## 3-1. デジタルエクスペリエンス
### 3-1-1. Flex Cards
コードを書かずにLightning Web コンポーネント（以下、LWC）が作成できるサービスです。
Flex Cardsで作成されたLWCは、本記事ではFlex Cardと表現します。
Omni Studioを導入する際、Flex Card単体で用いることは無く、Omni Scriptから呼び出す形で利用されるのが、一般的です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644257/21aef380-8568-4531-afa9-6dab76730a54.png)

### 3-1-2. Omni Scripts
Omni Scriptsは、複雑な業務フローを実施すべく、 **ユーザーをガイドする一連のサービス群**になります。
因みに、Omni Scriptsのサービスの内、画面を構成する要素である **「Step」** が先ほど説明したFlex Cardと競合するサービスとなります。
Omni Scriptsの詳細な説明は割愛させていただきますが、 **業務フロー単位でOmni Scriptsを適宜作成** し、Flex Card・Integration Procedures・Data Raptoresを呼び出す形になります。

また、Salesforce・外部システムのデータを画面に表示する場合、構築の容易さで言うとOmni Scriptsの「Step」になります。多くのプロジェクトでは、「Step」要素を利用することが多いですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644257/3eb34825-d5bb-a2f9-70ad-5b09564e9bf3.png)
[OmniScript.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644257/2702adf1-0771-7af5-09e0-f5af8346d196.gif)

## 3-2. サービス管理
### 3-2-1. Integration Procedures
サーバーサイドのロジックを定義するサービスになります。
Integration Proceduresを 1回呼び出すことで、複数のアクションを実行でき、Lightning Flowと違い、 **外部システムとの連携の容易さ・複雑な計算処理が可能** です。
Salesforce上のデータだけではなく、外部システムのデータをソースとして使用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644257/1f95fb24-2c06-3d5c-2bbd-932ae3faf7b2.png)

### 3-2-2. Data Raptores
DataRaptorは、Integration Proceduresと同様に、サーバーサイドのロジックを定義するサービスですが、 **Salesforce内のデータを抽出、変換、ロード**するために使用されます。

種類としては大きく分けて４つ存在し、用途に応じて使い分けていただければと思います。

1. DataRaptor **Extract**
2. DataRaptor **Turbo Extract**
3. DataRaptor **Load**
4. DataRaptor **Transform**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644257/ad7cda9c-2ea7-b877-c18f-20b3c4ea54c5.png)

### 3-2-2-1. DataRaptor **Extract**
Salesforceから**データを抽出**し、必要に応じてその**データを変換**するためのツールです。

**主な機能**:
- Salesforceオブジェクトからデータを抽出
- データのフィルタリングやマッピングを実行
- 複数のオブジェクトからデータを結合することが可能

### 3-2-2-2. DataRaptor **Turbo Extract**
DataRaptor Extractのシンプルで高速なバージョンです。
主に**単一のSalesforceオブジェクト**からデータを取得するために使用されます。

**主な機能**:
- 単一のSalesforceオブジェクトからデータを抽出
- シンプルな設定で、実行時のパフォーマンスが向上
- 複雑なデータ変換や結合が不要なシナリオに最適

### 3-2-2-3. DataRaptor **Load**
Salesforceに**データを保存**する際に使用されるツールで、データの変換も行います。

**主な機能**:
- Salesforceにデータをロード
- データの変換やマッピングを実行
- 既存のレコードの更新や新しいレコードの作成が可能

### 3-2-2-4. DataRaptor **Transform**
**Salesforce内外**の任意のデータを変換するためのツールです。

**主な機能**:
- データ形式の変換やフィールドのマッピングを実行
- Salesforceデータと外部データの統合が可能
- 複雑なデータ変換ロジックを実装

## 3-3. 開発者エクスペリエンス
Omni Studioを用いて開発した資材について、資材の管理・移送を行う**Salesforce開発者向けツール**になります。ここでは、その中でも主要な2つのツールについて説明します。

### 3-3-1. IDX Build Tool
コマンドラインベースの自動化ツールで、OmniStudioの**DataPacks**をソース管理に適した形式でパッケージ化および移行します。イメージとしては、Jenkins等でCI・CDを実現するために用いるCLIツールと理解いただければと存じます。
きっちり資材管理を行いたい場合は、こちらのツールを用いていただければと存じます。

**主な機能**:
- **自動化**: コマンドラインからの自動化により、DataPacksのパッケージ化と移行プロセスを効率化します
- **ソース管理**: DataPacksをソース管理（例: Git）に適した形式でエクスポートできます
- **一貫性**: 一貫したパッケージ化により、開発と展開プロセスの一貫性を確保します

**利用例**:
- 開発者が新しい機能を開発し、その機能を別の環境に移行する際に使用します。
- 継続的インテグレーション/継続的デリバリー（CI/CD）パイプラインに統合し、自動化を実現します。

### 3-3-2. IDX Workbench
デスクトップアプリケーションであり、DataPacksとSalesforceメタデータを一つの組織から別の組織へ、または組織からGitリポジトリへ移行するためのツールです。DevOpsを簡素化し、ソース管理を介して更新を共有しやすくします。
Salesforceでいうところの変更セットの様に、GUIベースの資材管理・移送サービスという建付けで、資材移送の容易さが特徴としてございます。

**主な機能**:
- **デスクトップアプリケーション**: 使いやすいGUIを提供し、DataPacksとメタデータの移行を視覚的に管理します。
- **ソース管理統合**: DataPacksとSalesforceメタデータをソース管理リポジトリ（例: Git）に移行します。
- **簡素化されたDevOps**: DevOpsプロセスを簡素化し、複数の開発者間でのコラボレーションを促進します。

**利用例**:
- 複数の開発者が同じプロジェクトで作業し、変更を統合する際に使用します。
- 異なるSalesforce組織間でのデータとメタデータの移行を効率化します。

# 4. 終わりに
ここまで読んでいただきありがとうございます！
基本的には海外のサイトを翻訳した内容になりますが、案件を通じて得た知見を踏まえ記述しておりますので、これからOmni Studioを活用される方は、本記事を通じて学習のとっかかりになって貰えればと存じます。

また、今後は継続的にOmni Studio関連の記事を作成し、実際にOmni Studioを操作し、開発するまでの過程を開設できればと存じます。試験向けの解説記事を記載しようかと考えましたが、実務とはかけ離れた内容になってしまうため、どのように活用すべきなのか？を中心に記載できればと考えてます。

引き続き、どうぞよろしくお願いいたします！

# 99. 参考文献
1. [Introduction to OmniStudio](https://www.apexhours.com/introduction-to-salesforce-omnistudio/)
2. [FlexCard Basics](https://www.apexhours.com/omnistudio-flexcards/)
3. [FlexCard Advanced](https://www.apexhours.com/omnistudio-flexcards-advanced-concepts/)
4. [OmniScript Basics](https://www.apexhours.com/introduction-to-omniscripts/)
5. [OmniScript Advanced](https://www.apexhours.com/omnistudio-omniscript-advanced-concepts/)
6. [DataRaptor](https://www.apexhours.com/omnistudio-dataraptors/)
7. [Integration Procedure Basics](https://www.apexhours.com/integration-procedure-basics/)
8. [Integration Procedure Advanced](https://www.apexhours.com/integration-procedure-advanced-concepts/)
9. [IDX Workbench & CLI](https://www.apexhours.com/idx-workbench-and-cli-for-omnistudio/)
10. [OmniStudio Best Practices](https://www.apexhours.com/omnistudio-best-practices/)

※動画学習ツール：[Salesforce OmniStudio Beginner Tutorials | Salesforce Industries](https://www.youtube.com/playlist?list=PLaGX-30v1lh2QKI-Ud269FUaFiUtebsQ6)