マーケティング ブログ

Salesforceのキャンペーンで費用対効果を算出するためにキャンペーン費用(コスト)を管理する方法について

作成者: 三宅 毅|2023/54/16

こんにちは!マーケティングデザインの三宅です。
今回は、Salesforceのキャンペーン内で、キャンペーンにかかった費用を管理する方法について実装する方法をご紹介します。

企業が展示会や広告などの販促活動を実施する際には、予算の管理が必要です。そのため、多くの企業がExcelやスプレッドシートを使用して予算管理を行っています。これらのツールを使用することで、柔軟に自分のニーズに合わせてカスタマイズし、データを独自の形式で整理することができます。

ただし、展示会や広告に関連する顧客情報は、一般的にはCRMや顧客データベース(DB)に保存されていることが多いです。そのため、予算・費用・顧客情報を統合的なビューで見ることは、Excelやスプレッドシートだけでは難しいかもしれません。

そこで、今回は、マーケティングデザイン社内でも使用しているCRMツール「Salesforce」内でキャンペーンで使用した費用管理ができるようにカスタマイズした内容についてご紹介したいと思います。

費用管理をキャンペーンのオブジェクトに書き込むことで、以前の使用金額や費用対効果、顧客獲得単価など色々算出しやすくなるかと思います。

  💡こんな方におすすめの構築💡
デフォルトでは、手入力で、キャンペーン外注コストは、記入できるけど、金額を計算して入力するのは面倒
✔ 過去のキャンペーンの使用金額知りたい時にExcelを開いて確認しなければならない
✔ 単純にキャンペーンに紐づいているキャンペーンメンバー数からCPAを割り出したい

◆目次◆

  1. Salesforcemのキャンペーンについて
  2. カスタムオブジェクトの作成と項目の作成
  3. フローの作成

  

Salesforceのキャンペーンについて

Salesforce の中には、キャンペーン管理するためのいくつかの機能が標準のキャンペーン(Campaign)オブジェクトが用意されています。このオブジェクトを使用して、目標、対象者、およびスケジュールなどを設定できます。親子でキャンペーンを連携することも可能なため、階層を集計した内容についても算出しやすくなっています。


また、その配下には、キャンペーンメンバー(CampaignMember)オブジェクトがありキャンペーンに参加する顧客や見込み客のリストやキャンペーンへの参加状況を管理できます。

これらを活用して、キャンペーンに関連するさまざまなマーケティング活動のトラッキングが可能となり、例えば、メールマーケティング、広告、イベント(展示会・セミナー)などの進捗や結果を記録することができます。パフォーマンスを可視化し、効果的な戦略や改善策を明らかにすることができます。
また、それらを通じて、細かい集計などは、Salesforceのレポート・ダッシュボード機能を活用し、キャンペーンの結果や効果を可視化することができるため、キャンペーンのパフォーマンス指標やKPI(重要業績評価指標)をリアルタイムで監視し、キャンペーンの評価や改善のための分析レポートやグラフを作成することができます。

では、費用対効果を簡単に出せるかというと、標準機能で販促で使用した費用に関しては、キャンペーンの外注コストというフィールドにいれるしかなく、手動で計算した金額を入れ込まなければいけなく手間でした。そこで、今回は、Salesforceにカスタムオブジェクトでキャンペーンにぶら下がるようにして費用を入れれるように作成してそれを外注コストというフィールドに、フローという機能を用いて入れ込もうと思います。

キャンペーンの親子関係を考慮に入れなければ、カスタムオブジェクト側で、キャンペーンと主従関係を作って、積み上げでもかまわないのですが、今回は、キャンペーンの親子関係を考慮して実装していきたいと思います。

 



カスタムオブジェクトの作成と項目の作成

さて、まずは、カスタムオブジェクトを作成したいと思います。新規作成で、今回は、「キャンペーン費用」という表示ラベル、オブジェクト名で、「CampaignCost__c」、レコード名は、「キャンペーン費用名」とつけて作成しました。データ型は、今回は明細を書き込みにしようと思い、そのままテキストにしましたが、番号でもかまわないと思います。
※セキュリティ権限の設定などは今回の説明から省いていおります。




次に項目とリレーションを作成していきます。下記の項目で、補足で、計上日のフィールドには、デフォルト値として、本日の日付が自動的に入るように、「Today()」を仕込んでいます。また、金額(税抜)は、合計金額で出したいため、数式として、「Unit__c * UnitPrice__c」としています。

ラベル

項目名

データ型

キャンペーン費用名

Name

テキスト(80)

キャンペーン

CampaignId__c

主従関係(キャンペーン)

計上日

AccountingDate__c

日付

単価(税抜)

UnitPrice__c

数値(180)

数量

Unit__c

数値(180)

金額(税抜)

TotalPrice__c

数式

 

 

フローの作成

今回は、キャンペーンの「外注コスト」という項目に、上記で作成したキャンペーン費用の金額をレコードトリガフローで自動的に更新してみましょう。

 レコードトリガーフローが動くタイミング

 キャンペーン費用が作成されたとき、キャンペーン費用が更新されたとき

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    • フローから呼び出すための設定をいくつか用意しておきます。
    • 左サイドバーの [新規リソース] ボタンをクリックして、以下の通り入力します。
      1.  
      2. リソース種別: 変数
        API参照名: varCampaignID
        説明: キャンペーンのIdを受け取るために使用するテキスト型変数です。
        データ型: テキスト
        デフォルト値: 空のまま
        フロー外部での可用性: 入力で使用可能にチェックを入れる
      再び、[新規リソース] ボタンをクリックして、以下の通り入力します。
      1. リソース種別: 変数
        API参照名: varCampaignCostSum
        説明: コストの合計を入れる数値型変数です。
        データ型: 数値
        小数点の位置:0
        デフォルト値: 空のまま
      2.  
    •  
    •  
    •  
    • 再び、[新規リソース] ボタンをクリックして、以下の通り入力します。
      1. リソース種別: 変数
        API参照名: varCampaignCostRecordSum
        説明: キャンペーン費用の関連レコードをいれる変数です。
        データ型: レコード
        複数の値を許可:チェックを入れる
        オブジェクト:キャンペーン費用
    •  


さて、次に、 1つのキャンペーンに紐づくキャンペーンの費用を積上げするために、キャンペーン費用を取得します。[開始] 要素の下の (+) ボタンをクリックして [レコードを取得] を選択し、以下の通り設定します。

    1.  
    2. 表示ラベル: キャンペーン費用情報取得(作成・更新)
      API参照名: GetCampaignCostRecord
      説明:
      オブジェクト: キャンペーン費用 (CampaignCost__c)
      絞り込み条件:
          条件の要件: すべての条件に一致 (AND)
          項目: CampaignId__c、演算子: 次の文字列と一致する、値: {!$Record.CampaignId__c}
      保存するレコード数: すべてのレコード を選択
      レコードデータの保存方法:項目を選択して変数を割り当てる (高度)
      キャンペーン費用レコードを保存する変数を選択:{!varCampaignCostRecordSum} 項目:TotalPrice__c

    下のキャプチャのようにしました。[完了] ボタンをクリックして閉じます。


次に、取得したキャンペーン費用の金額を取得します。キャンペーン費用情報取得(作成・更新)を取得 要素の下の (+) をクリックして、[ループ] を選択します。以下の通り設定します。

        1. 表示ラベル: キャンペーン費用繰り返し
          API参照名: LoopCampaignCost
          コレクション変数: {!varCampaignCostRecordSum}
          方向:最初の項目から最後の項目へ
      •  

下のキャプチャのようにしました。[完了] ボタンをクリックして閉じます。




次に、取得したキャンペーン費用の金額を取得します。キャンペーン費用繰り返しをループの下の (+) をクリックして、[割り当て] を選択します。以下の通り設定します。

        1. 表示ラベル: コストカウントアップ
          API参照名: CampaignCostCountUp
          変数値を設定
           変数: {!varCampaignCostSum}、演算子: 追加、値: {!LoopCampaignCost.TotalPrice__c}
      •  


下のキャプチャのようにしました。[完了] ボタンをクリックして閉じます。

  • ループで合算した数でキャンペーンを更新します。ループの最後の項目の後の (+) ボタンをクリックして、[レコードを更新] を選択します。
          1. 表示ラベル: キャンペーンオブジェクトの実費変更
            API参照名: CampaignCostUpdate
            更新するレコードを検索してその値を設定する方法:レコードを識別する条件を指定し、項目を個別に設定
            オブジェクト:キャンペーン
            キャンペーンレコードを絞り込み
            変数値を設定
             変数: {!varCampaignCostSum}、演算子: 追加、値: {!LoopCampaignCost.TotalPrice__c}
            絞り込み条件:
                条件の要件: すべての条件に一致 (AND)
                項目: Id、演算子: 次の文字列と一致する、値: {!$Record.CampaignId__c}
            キャンペーン の項目値を レコード に設定
                項目:ActualCost ← 値:{!varCampaignCostSum}
        •  


    下のキャプチャのようにしました。[完了] ボタンをクリックください。

     

    設定や途中途中で保存しながら以下のようなフローが出来上がっているかと思います。


    出来上がりましたら、デバッグから動作確認してみましょう。ちゃんと条件通りにキャンペーンの外注コストが積上げ計算で計算できるか確認してみましょう。

    稼働することが確認できたら次に間違ってレコードを作成してしまった場合、レコードの削除処理を実施することがあるので、この作ったレコードをコピーして最初のトリガを設定の部分について、「レコードが削除された」を選択して変更しましょう。以下のようになるかとおもいます。



  • これで、レコードが作成・更新された場合と削除された場合に動くフローが出来上がります。

  •  
  •  
  •  

 

2つとも有効化して、想定通り更新した際にキャンペーンの外注コストが更新されるるようになりました。


後は、企業に応じたCPAや費用対効果をキャンペーン側に数式で作った上げることで、色々な指標が見えるようになるかと思います。
今回のブログ、如何でしたでしょうか?少しでもなにかのお役立ちにたてれば幸いです。

なお、本ブログにおける設定について参照にしての検証などは、各自のSalesforceのSandbox環境で実施したのちに本番環境へ移設してください。各環境下での動作保証しているものではございませんのでご理解の程、よろしくお願いします。