Zuora導入プロジェクトで「どのデータをどのツール・手順で移行するか」を体系的に理解する記事です。
Zuora Data Migrationとは、既存システム(CRM・ERPなど)に蓄積された顧客・契約・支払いデータをZuoraテナントへ移し替えるプロセスです。
SaaS企業がZuoraを新規導入する際、過去のAccountやSubscriptionがZuoraに存在しない状態では請求が動き出せません。既存の請求システムからデータを移行することで、Zuoraによる請求サイクルをゼロから稼働させられます。
レガシーシステムからのデータエクスポートは手動でも、ETLツールを使った自動化でも行えます。アカウント数の多少に関わらず、どちらの方法も有効です。
| 方法 | 向いているケース |
|---|---|
| 手動エクスポート | 件数が少ない・一時的な作業 |
| ETLツール自動化 | 件数が多い・定期的な差分移行 |
移行対象はAccount・Subscription・Payment Method・Invoiceの4種類です。Product CatalogはZuora側で新規作成するため、レガシーシステムからの移行対象ではありません。
| カテゴリ | オブジェクト | 移行対象? |
|---|---|---|
| マスターデータ | Account | ✅ |
| マスターデータ | Payment Method | ✅ |
| トランザクション | Subscription | ✅ |
| トランザクション | Invoice履歴 | ✅ |
| トランザクション | Payment履歴 | ✅ |
| 設定データ | Product Catalog | ❌(Zuora側で新規定義) |
| その他 | Reports | ❌(移行対象外) |
移行するオブジェクトは大きく「Typical Migration Objects(典型的な移行オブジェクト)」と「Atypical Migration Objects(非典型的な移行オブジェクト)」の2グループに分かれます。
Typical Migration Objectsは以下の4つのオブジェクトで構成されます。
Open Balancesの移行時:
Open Invoicesの移行時:
Atypical Migration Objectsには、以下のようなオブジェクトが含まれます。いずれも移行対象には含めず、レガシーシステムやデータウェアハウス側に読み取り専用で残しておくのが基本方針です。
Product Catalogは通常、移行オブジェクトとはみなされません。Zuoraのテンプレートに合わせて商品データをビジネス側とソリューションアーキテクトが一から再設計する必要があるためです。プロジェクト規模が大きい場合は一部移行やETL(Extract, Transfer, Load)プロセスを組むことも可能ですが、その場合は顧客がZuoraと密に連携して設計する必要があり、プロセスの所有を顧客側が担うケースもあります。
ビジネスの過去の履歴データすべてを含むオブジェクトです。Zuoraの請求システムは今後のすべての請求について100%の正確性を目指しており、履歴データを持ち込むことは移行・突合(reconciliation)作業の複雑性を増すだけです。そのため、今後も請求が発生し続けないアカウントや、キャンセル済みのアカウントはZuoraへ価値をもたらさず、移行しません。
Amendmentオブジェクトも移行しません。これはビジネスの履歴データの一部だからです。Zuoraが推奨するのは、レガシーシステムから移行するSubscriptionの最新の請求バージョンのみです。理由は以下の2点です。
これにより、移行プロセスをできる限り効率的に保てます。
Salesforceデータは分類上はAtypical Migration Objectに含まれますが、Zuoraは他のAtypicalオブジェクトとは異なり、すべてのSalesforceデータを移行することを推奨しています。
Zuoraのセルフサービス移行ツールは、大きく「①メタデータの移行(設定・構成)」と「②トランザクションデータの移行(顧客・契約・請求などの実データ)」の2系統に分かれます。移行したいものがどちらに属するかを最初に見極めることが、ツール選定の出発点です。
Settings・Custom Fields・Notificationsなど「設定・構成」をテナント間でコピーする仕組みです。ソース環境とターゲット環境が違っても動作する(環境非依存)という特徴があります。
| ツール | 内容 |
|---|---|
| Deployment Manager | ソーステナントとターゲットテナントの差分を比較・検証しながら、選んだ構成要素だけを転送できるセルフサービスUI |
| Configuration Templates | 構成の一部をJSON形式のテンプレートとして書き出し、GitやCI/CDパイプラインで再利用可能にする仕組み。Golden tenant(お手本となるテナント)の設定を切り出して複数環境へ繰り返しデプロイする用途に向く |
| Metadata API | 開発者・管理者がプログラム経由でソースからターゲットへ構成を移行するためのAPI群 |
Account・Subscription・Invoice・Paymentなど「実データ」に対してImport・Update・Create・Exportを行うためのツール群です。
| ツール | 位置づけ | 特徴 |
|---|---|---|
| Data Loader | 現行の主力ツール(Developer Toolsの後継) | セルフサービスUI・動的テンプレート・インライン編集に対応し、取り込み前にテナント設定と照合するリアルタイムバリデーションを持つ。ビジネスユーザーでも扱える設計 |
| Mass Updater | Zuora上でいつでも使える一括操作ツール | 同じ操作を1件ずつ繰り返す代わりに、対象データをまとめた1つのCSVファイルをアップロードすると、Zuoraが非同期でアクションを実行し、各処理結果をまとめたレスポンスファイルを返す |
| Developer Tools | レガシーツール(順次廃止予定) | Account & Contacts API Loader・Product Catalog API Loader・Subscription API Loaderなど、用途別の複数のマイクロアプリの集合体。CSVでのImport/Update/Delete/Exportに対応するが、Zuoraは今後Data Loaderへの移行を推奨している |
Mass Updaterの主な機能は以下の6つです。
Developer Toolsの一つであるProduct Catalog API Loaderには、3つの実行モード(Run Mode)があります。
このほかに「Import Discounts」という実行モードも用意されています。
knowledgecenter.zuora.comknowledgecenter.zuora.com/Zuora_Platform/Data_Management/Zuora_DevOps/Data_Mig...データ移行はZuora公式のData Migration Processに沿って「Planning → Preparation → Migration → Post-Migration」の4ステージで進めます。
「どのステージで何をするか」をステージごとに整理します。
Planningステージでは、プロジェクトの各種成果物をスコープに含め、必要な時間とリソースを見積もります。 具体的には以下のような項目を確定させます。
データはCSV形式の「データロードテンプレート」を使ってZuoraへロードします。このテンプレートのサンプルは、移行開始時にGS Data Migrationチームへリクエストできます。
Preparationステージは以下の5つのステップで構成されます。
Migrationステージでは、レガシーシステムからZuoraへ実際にデータを移動します。
移行の性質によっては、GS Data Migrationチームが複数バッチに分けてデータを移動することを判断する場合があります。一括で移行した後、Go-Liveまでの間にレガシーシステム側で新たに発生したデータを追加で取り込む「差分移行(Delta Migration)」も、このバッチ移行の一種として実務では使われます。
Post-Migrationステージでは、データ検証(Data Validation)を行います。 データが欠落なく(without missing records)、正しくロードされたかを確認する一連のテストで、以下の方法を組み合わせて行います。
移行が完了した時点で、Zuoraシステムは請求(Bill)・回収(Collect)、そしてレポーティング・ファイナンスデータの提供ができる状態になっている必要があります。実務では、旧システムで請求していた期間分をZuoraで「追いつき」請求するCatch-up Bill Runも、この本番稼働開始に合わせて実行します(CUBRの実行方法・Invoiceの消し込み方法は「Catch-up Bill Run(CUBR)の2つの実行方法」で詳しく扱います)。
Cutover Dateは「どこまでの履歴データを移行対象にするか」を決める基準日です。Planningステージの「カットオーバー時の移行戦略」の一部として方針を固め、実際にその日を迎えて切り替える作業はMigration〜Post-Migrationの一連の流れの中で行います。
| 条件 | 移行対象 |
|---|---|
| Cutover Dateが契約の開始日〜終了日の間にある | ✅ 対象 |
| Cutover Date時点でアクティブ・一時停止中・開始待ちの契約 | ✅ 対象 |
| Cutover Date以前に終了済みの契約 | ❌ 対象外 |
Zuoraへのデータ移行では、以下の4つの要因が課題になりやすいとされています。
移行後、Zuoraが請求・ファイナンス・コマースのデータをどう扱うかによって、ビジネスオペレーションや顧客とのやり取りの仕方そのものが変わる場合があります。
レガシーの請求システムとZuoraでは、データの保存・アクセス方法が異なることがあります。例えば、レガシーシステムでは氏名と住所を1つのフィールドにまとめて保存しているのに対し、Zuoraでは別々のフィールドに保存する、といった違いです。
レガシーデータが複数のサイロや旧式システムに分散している場合、抽出作業が難しくなります。また、データの欠落や不正確さも起こりやすく、Zuoraへロードする前に手作業でのクレンジングが必要になることがあります。例えば、レガシーシステムの住所データに「US」と「USA」が混在しているようなケースはデータの不整合を生み、クリーンアップが必要になります。
データ移行中も通常のビジネスオペレーションが止まらない場合に発生する課題です。新システムとのデータ同期に追加の難しさをもたらします。
ZuoraのセルフサービスによるStandardなデータ移行に加えて、Zuora移行チームが変換作業を代行するPremiumデータ移行という選択肢もあります。
Premiumデータ移行では、Zuora移行チームが次のようなステップでデータを処理します。
Zuora to Zuora(ZtoZ)データ移行とは、既存のZuoraテナントから別のZuoraテナント(マルチエンティティ導入時のサブエンティティなど)へデータを移す移行パターンです。
| 区分 | オブジェクト |
|---|---|
| ✅ ZtoZ移行プロセスの一部としてサポート・移行される | Accounts/Contacts、Subscriptions(最新のアクティブバージョンのみ抽出・再インポート可能)、Product Catalog、Open Balances(サマリーレベルの残高のみ抽出・インポート可能) |
| ❌ ZtoZ移行プロセスの一部としては非サポート | Amendments、Payments、Invoices and Invoice Items、Refunds、Taxation Items、Revenue Schedules |
完全なZtoZデータ移行では、現在のエンティティにあるすべてのアクティブなSubscription・Account・未収A/R・Revenue Scheduleを、複数のサブエンティティへ分割します。 データ移行は段階的に実施し、各ステージの完了後に顧客がサインオフを行い、移行スクリプトが該当データを正しく記録できていることを確認してから次のステージへ進めるのが基本です。
5つのステージは以下の通りです。
複数のサブエンティティにまたがって商品を共有する必要がある場合、Product Catalogはグローバルエンティティ側で一元管理し、各商品を該当するサブエンティティへ共有する方式が使われます。一度共有した商品・Rate Plan・Rate Plan Chargeは削除できません。また、サブエンティティごとに有効化する通貨が異なる場合があるため、グローバルエンティティ側では各サブエンティティで使用するすべての通貨をあらかじめ有効化しておく必要があります。
AccountとSubscriptionは、Zuora上で手動作成するか、API経由で作成します。Subscriptionは、紐づくAccountが属する正しいエンティティ側で作成する必要があります。Subscription番号は、Zuoraによる自動採番、またはエンティティごとに設定した一意のプレフィックスをあらかじめ付与する方法のいずれかで生成できます。
サブエンティティへのデータ移行が完了した後、レガシーエンティティ側ですでに支払い済みだった過去のInvoiceを消し込むため、Catch-Up Bill Runを実行します。マルチエンティティのgo-live以前にレガシーエンティティ側で発行済みのInvoiceは、引き続きレガシーエンティティ側の記録として参照されます。プラス残高(Invoice)・マイナス残高(Credit)を問わず、未収残高はサブエンティティ側で単一のInvoice・Open Credit Balanceとして再作成されます。
未収残高(未払いのInvoiceおよびOpenのCredit残高)は、新しいサブエンティティへ移行する必要があります。具体的には、未払いInvoice残高用と、マイナス金額として扱うOpen Credit残高用の、2本のスタンドアロンInvoiceを作成する方法で移行します。新しいサブエンティティ側では、これらのInvoiceに対して支払いを処理できます。
標準の共有レポートをそのまま実行したり、既存の共有レポートを編集してプライベートレポートとして保存したり、新しくカスタムレポートを作成したりできます。各エンティティは会計処理をそれぞれ独立して行い、会計コード(Chart of Accounts)もエンティティごとに個別に設定します。すべてのエンティティで似たような会計期間を使用しますが、会計期間の締め処理(クローズ)はエンティティごとに個別に行います。
理想的な標準データ移行プロジェクトは、Vision・Define・Build・Test・Deployの5フェーズに区切られます。 本記事の「移行プロセスとステージ設計」で扱ったPlanning/Preparation/Migration/Post-Migrationとは別の切り口として、プロジェクトマネジメント寄りの視点でフェーズを整理したものです。
各プロジェクトの最初のフェーズです。このフェーズでは、データ移行コンサルタントが、キックオフを成功させるために必要な詳細情報を収集し、続くDefineフェーズに向けた準備を行います。
データ移行コンサルタントが、データ移行ソリューション全体がどのように機能するかについて、おおまかな見通しを立てるフェーズです。データ移行チームは顧客とのキックオフセッションに注力し、顧客がデータ移行プロセス全体を理解できるようにします。このセッションの中で、これから移行するデータをZuoraのデータモデルにマッピングし、必要なテンプレートについて顧客に理解してもらいます。あわせて、顧客からの質問に答える機会にもなります。
主要な作業が始まるフェーズで、計画が完了し、要件収集とタスクの記録が済んだ後に着手します。コンサルタントはロード仕様書(load specification document)とプロジェクトタスクリストの作成に取り掛かり、プロジェクトのニーズに合わせて必要な調整を行います。このフェーズでは、顧客がデータの抽出・変換に関する手順とガイドラインに従っているかを確認する必要があります。データ移行チームは定期的にデータスキャン作業を行い、顧客と認識をすり合わせて正しいアプローチを取れているかを確認します。すべてのロードドキュメントとプロジェクトタスクリストは、このフェーズの終わりまでに完成させておく必要があります。
Buildフェーズで作成したファイル・手順をすべてテストするフェーズです。このフェーズの前提条件として、Subscriptionのテストを行う前にZuora側のProduct Catalogを完成させておく必要があります。go-liveまでに、フルロードとモックgo-liveを含む2サイクルのテストを完了させる必要があります。各サイクルの後には、完了状況を検証し、発見したエラーを報告します。
プロジェクトの最終フェーズで、すべてのデータが顧客の本番環境へ移行されます。Go-Live時に実施する手順は、モックGo-Liveテストのときとまったく同じ手順にする必要があります。
Post-Deployment(デプロイ後の作業): 各デプロイの後、コンサルタントはFinance Catch-up Bill Runシートに記入し、Invoiceの件数を記録し、(マルチエンティティのテナントの場合は)テナントごとの合計Invoice金額を入力する必要があります。
CUBRは「T9 catch-up bill run」と「Regular bill run」の2通りの方法で実行できます。
CUBRで生成したInvoiceを消し込む(write off)方法は3つあります。
基本の4ステージ・3ツールに加えて、実務では以下のような発展的な論点・制限事項も押さえておく必要があります。
本番移行の前に、Sandbox環境で移行手順そのものをリハーサルします。Application Lifecycle Management(ALM)の考え方に沿って、Unit Testing・Integration Testing・UATの各段階で「実データに近いテストデータ」を投入し、移行スクリプトやマッピングの精度を検証してから本番に臨みます。
| 制限事項 | 内容 |
|---|---|
| Deployment Managerはメタデータ専用 | AccountやSubscriptionのようなレコードデータは移行できない。User Role・カスタムオブジェクトのレコード・パスワードも非対応 |
| 本番稼働後の再移行は不可 | 稼働後に同じデータを再投入すると二重登録・請求不整合を引き起こす |
| UOM・通貨・日付フォーマットの不一致 | 旧システムとZuoraでフォーマットが違う場合、インポートが全件エラーになりやすい |
| Product Catalogは移行対象外 | Subscriptionを移行する前に、Zuora側でProduct Catalogを先に用意しておく必要がある |
| Amendment履歴(旧Subscribe and Amendモデル) | 旧モデルの契約変更履歴をそのままOrder履歴として移行することはできない。[[BI4]]のOrders Harmonizationも参照 |
Data Migrationは301固有のトピックで、101/201の公式試験には対応するセクションがありません。ここでは、旧・Implementation Guide 101学習記事の内容をこの記事に統合し、Zuora導入プロジェクト全体(Inception〜Succeed)の中でデータ移行がどこに位置するかを整理します。
Zuora Implementation Methodology(ZIM)は6つの主要フェーズで構成されます。プロジェクト立ち上げ(営業からのハンドオフ・J2Uによるキックオフ前イネーブルメント)は[[BI1]]で扱っている内容と重なる部分が多いため、ここではその後のInception(プロジェクトの立ち上げ・ビジョン合意)以降の流れに絞って整理します。
公式のImplementation Guide 101コースでは、Inception/Visionフェーズについて次の8つの学習目標が示されています。
| # | 学習目標 |
|---|---|
| 1 | Inception/Visionフェーズの定義 |
| 2 | フェーズ内の主要アクティビティ一覧 |
| 3 | Sales-to-Implementation(営業から実装チームへの)引き継ぎプロセスの目的 |
| 4 | キックオフ前後の重点確認事項 |
| 5 | キックオフ会議のアジェンダ・成果物一覧 |
| 6 | Zuora導入に必要な顧客側の役割 |
| 7 | プログラム/運用ガバナンスのガイドライン |
| 8 | アジャイル/ウォーターフォール手法の使い分け、推奨されるES(Expert Services)チーミングモデル |
SDDは1つの分厚い文書ではなく、目的の異なる3つのパーツで構成されます。
| 要素 | 一言で言うと |
|---|---|
| CRP(Conference Room Pilot) | 本番前の"通しリハーサル"。実際の画面を動かしながら顧客と一緒に確認する |
| DMS(Data Migration Strategy) | 旧システムのデータをどう引っ越すかの計画。本記事の「移行プロセスとステージ設計」がこのDMS作成活動に対応 |
| RTM(Requirements Traceability Matrix) | 要件と実装内容の"対応表"。要件が漏れなく実現されているかのチェックリスト |
ARAは、プロジェクトが今どれくらい健康な状態で進んでいるかをスコアカード形式で可視化する仕組みです。チェックポイントは「設計時(Architecture Review Board)」と「稼働直前(Go-Live Review)」の2つだけです。Post Go-Live Review(稼働後のレビュー)はARAの正式なチェックポイントとしては扱われません。
Buildフェーズのゴールは、①設定変更を環境間で移行すること、②構成内容をドキュメント化することの2つです。「ソリューション設計そのものを作る」「データ移行戦略を定義する」はDesignフェーズの成果物であり、Buildフェーズのゴールとしては誤りです。
| 役割 | 何を見ているか |
|---|---|
| Implementation Lead | プロジェクト全体の進行。必要な場面ではSolution Architectの橋渡し役として設計やワークショップにも参加する |
| Solution Architect | 技術的な設計の中身。データマッピングやデータ移行の実務、設計ワークショップの主導など技術的な実行を担う |
| Partner Prime | パートナーとの連携体制。Zuora側のリソースも顧客チームと連携させ実装を支える |
Zuora Revenue(収益認識の専用モジュール)を導入する場合は、Billingとは別に移行が必要な設定が3つあります。
| 用語 | 内容 |
|---|---|
| Performance Obligations(POBs) | 収益を認識する最小単位となる「履行義務」 |
| RC Grouping | 複数のRate Plan Chargeを1つの履行義務としてまとめるグルーピング設定 |
| Contract Modifications | 契約変更が既存の収益認識に与える影響のルール |
SIT(System Integration Testing)の前提は「開発完了」「単体テスト完了」「基本的なエンドツーエンド機能確認の完了」の3つです。UATの完了やエンドユーザーのトレーニングはSITの前提条件には含まれません。
SITは主に技術チームがシステム間連携を検証するのに対し、UATは顧客のエンドユーザー自身が業務目線で検証を行う点が異なります。
Deployフェーズのカットオーバー作業は、本番環境の準備・レガシーデータの投入・上流/下流システムとの連携・カスタマイズの本番反映が典型です。移行データやテスト実行から生成されたBill Runを将来の請求対象から除外したい場合は、本記事のCatch-up Bill Runと同じ考え方(catch-up bill runの実行)が使われます。ここでは「テスト実行の除外」という角度で扱っている点に注意してください。Train-the-Trainerセッション(エンドユーザー教育)はカットオーバー作業そのものではなくイネーブルメント側の活動です。
Succeedフェーズのゴールは、本番稼働後に発生する課題やイネーブルメント不足を解消すること、そして顧客関係のオーナーシップをCustomer Success ManagerやAccountチームへ正式に引き継ぐことです。プロジェクトのクロージャーより、稼働後の安定化と関係の引き継ぎが優先されます。
| # | プラクティス | 理由 |
|---|---|---|
| 1 | 小規模データで先にテスト | エラーパターンを本番前に潰せる |
| 2 | 低トラフィック時間帯に実行 | 再実行頻度を下げ、本番影響を最小化 |
| 3 | 本番稼働前に一度だけ実施 | 二重実行はデータ不整合・重複請求の原因になる |
| 4 | 日付フォーマットを事前確認 | フォーマット不一致でインポートが全件エラーになる |
| 5 | Product Catalogを先に整備 | Subscription移行時に商品定義が存在しないとエラー |
| 6 | データオーナーを指定 | 変換・マッピングの責任者を明確にする |
本記事で扱った内容のうち、特に混同しやすいポイントをまとめます。
| 論点 | 押さえるべきポイント |
|---|---|
| 移行できるオブジェクト | Payment Methods・Invoices・Accounts and Subscriptionsは移行対象。Product Catalogは移行対象外(Zuora側で新規作成) |
| Open Invoice残高を移行する理由 | 請求書番号や商品情報の引き継ぎではなく、移行後に支払いを回収できるよう現在の残高を引き継ぐため |
| Subscriptionの移行対象 | 過去のバージョンではなく最新のアクティブバージョンのみ |
| Amendmentオブジェクト | Zuoraへは移行しない(レガシー側に記録がないことが多く、必要データが揃わないため) |
| データ移行の4ステージ | Planning → Preparation → Migration → Post-Migration(何をするかに着目) |
| データ移行の5フェーズ | Vision → Define → Build → Test → Deploy(プロジェクト進行に着目) |
| 移行ツールの現行主力 | かつてはDeveloper Toolsが推奨だったが、現在の主力はData Loader |
| Mass Updaterの用途 | 会計コード更新、Revenue Scheduleの作成/更新/削除、為替レートインポート、一括支払いアップロードなど、Finance系の一括操作 |
| CUBRの実行方法 | T9 CUBR(Invoiceを生成しない)/Regular bill run(Invoiceを生成する) |
| CUBRのInvoice消し込み方法 | External Payments/Standalone Credit Memos/WriteOff API Call の3種類 |
| Cutover Date | 「どこまでの履歴データを移行対象にするか」を決める基準日。決定はPlanningステージで行う |
| ZtoZ移行で非サポートのオブジェクト | Amendments・Payments・Invoices and Invoice Items・Refunds・Taxation Items・Revenue Schedules |
| Salesforceデータの扱い | 分類上はAtypicalだが、Zuoraはすべての移行を推奨する例外オブジェクト |
読み終えたら完了にしましょう
完了ボタンを押すと、モジュール「【Zuora Billing 301】BI1〜BI12 学習記事」の進捗として記録されます。読んだ内容を振り返るときにも役立ちます。