キャンペーンメンバーのまとめ



+ [カスタムキャンペーンレポート：「メンバーの最初の関連付けられた日付」と「最初の関連付けられた日付」の違い](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000Fxxa6)
+ [CampaignのCampaignMemberRecordTypeIdの不思議な挙動](https://qiita.com/Keiji_otsubo/items/9cf1273a6df24cab62f3)
+ [キャンペーンメンバーレコードのコレクションを組み立てて、ループの外に作成するにはどうすればよいですか](https://qiita.com/Keiji_otsubo/items/a50e199af41f2223e0ea)
+ [あるキャンペーンメンバーを既存の別のキャンペーンに一括で追加したい](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000PefGd)
+ [キャンペーンメンバーのレコード作成をトリガーとして、マッチングレコードを作成したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007bLSwL)

:::note
Opportunity オブジェクトにCampaignId項目があるので、CampaignMember オブジェクトのCampaignIdと一致する商談をレコードの取得で検索すればOpportunityIdを取得できると思います。
:::



# リードと取引先責任者

+ [【フロー】キャンペーンメンバーに追加したリードor取引先責任者の条件分岐](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000OpyLkSAJ)

キャンペーンメンバーとしてリードが登録されている状態で、取引の開始をすると、取引先責任者の参照にもIDが入ります。（キャンペーンメンバーとしての取引先を有効化すると取引先の参照にも入ります）



# 取引先をキャンペーンメンバーに追加する

+ [キャンペーンメンバーとしての取引先の追跡 (ベータ)](https://help.salesforce.com/s/articleView?id=release-notes.rn_sales_account_campaign_members.htm&release=230&type=5)
+ [キャンペーンメンバーとして追跡することで取引先に焦点を合わせる (正式リリース)](https://help.salesforce.com/s/articleView?id=release-notes.pardot_rn_accounts_campaign_members_ga.htm&release=232&type=5)
+ [Accounts as Campaign Members with Salesforce (and Pardot Account Engagement)](https://www.salesforceben.com/the-drip/accounts-as-campaign-members-with-salesforce/)
+ [Use Accounts as Campaign Members in Pardot](https://thespotforpardot.com/2021/06/29/accounts-as-campaign-members-in-pardot/)

+ [【リストメール】キャンペーンメンバーへ取引先を含めてリストメール送信](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000O6l82SAB)

キャンペーンメンバーに取引先（※）を追加し、キャンペーンメンバー関連リストからリストメールを送信した場合に、リストメールを送信することができず以下のようなエラーメールが届きました。
取引先をキャンペーンメンバーに追加した場合に、取引先に紐づく取引先責任者へリストメールを送ってくれるような認識は間違っておりますでしょうか？

:::note alert
リストメール「件名」が次の理由によりキャンセルされました: システムによってエラーが検出されました。
エラーコード: NO_RECIPIENTS
エラーの説明: No recipients provided by the ListEmail
:::

＞取引先に紐づく取引先責任者へリストメールを送ってくれるような認識

取引先と取引先責任者は親子の関係、よって取引先責任者は複数あっても関係を保持できますよね。そうすると複数あった場合に、すべてに送るのか、その中の１人に送るのかが問題になると思います。　プログラムを書く場合にはどうするのか非常に問題になるのではと思います。


この部分の制約があるような資料が発見できればよかったのですが、見つけられませんでした。
個人的には、取引先責任者まで検索して送信先をセットしているとは思えないです。

キャンペーンメンバーとしての取引先の追加できる機能はずっとアイデアに上がっていたようです。そのため後付けで機能追加しているので制約があるのかもしれません。

+ [キャンペーンメンバーの総数と実際に紐付いているリードと取引先責任者の合計が一致しない](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JgUvbSAF)

以下のアイデアを見るとキャンペーンメンバーのリード、取引先責任者は一度設定すると編集できないようなことが書かれています。また四宮さんの実験でも取引先責任者を消すと、キャンペーンメンバーも無くなったようなので、リード、取引先責任者のIdがない状態を作るのは難しいように思いました。

+ [Allow campaign member records to be changed to a different contact or lead](https://ideas.salesforce.com/s/idea/a0B8W00000GdXc5UAF/allow-campaign-member-records-to-be-changed-to-a-different-contact-or-lead)

ただ、気になるヘルプがあります。

オブジェクトマネージャーで項目を確認すると確かに、リード、取引先責任者の参照項目以外に関連レコード IDがあります。　もしリードメンバーとして取引先も含める設定にしていたら、リード、取引先責任者の項目はNullなのかもしれません。

おそらく、レポートはこのベータ機能に対応していないような気がします。

+ [リード/取引先責任者 ID の表示ラベルの変更](https://help.salesforce.com/s/articleView?id=release-notes.rn_pardot_related_records_label_change.htm&release=230&type=5)
 

[リード/取引先責任者 ID] の表示ラベルが [関連レコード ID] になりました。この表示ラベルの変更は、デフォルトで [キャンペーンとキャンペーンメンバー] 標準レポートに表示されます。


 この表示ラベルは、「キャンペーンメンバーとしての取引先」ベータ機能をサポートするように変更されましたが、すべてのユーザに表示されます。この項目で取引先、リード、および取引先責任者の ID をサポートできるようになりました。この項目に取引先 ID を含めるには、Salesforce の [設定] でベータ機能をオプトインしてください。

+ [キャンペーンメンバーに取引先を自動で追加したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007bLFjuSAG)

:::note
個人取引先の場合は取引先のPersonContactIdをキャンペーンメンバーのContactIdに入れると動作します。
:::

+ [pythnの　SF Bulk API だと　Field name not found : AccountId　エラーになる](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000G2l3W)

データローダーではOKだったらしい

結局APIのバージョンが古かったらしい。この機能は確か2019年ごろから導入されたので40.0なら2018年なので対応してなかったみたい。

OK I solved the issue. I observed that the default value of API_version inside the  salesforce_bulk.py class is defined as 40.0

So I passed the API version '50.0' while instantiating the SalesforceBulk class

```
SF_BULK_API_VERSION = '50.0'
bulk = SalesforceBulk(username=sf_user, 
                      password=sf_password,
                      security_token=sf_security_token,
                      sandbox=True,
                      host=dev_host_001,
                      API_version=SF_BULK_API_VERSION)
```


# ステータスの追加

+ [オブジェクトマネージャー→選択リストが追加できない](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000PeKITSA3)

キャンペーンレコードの関連リストから追加します。
https://sf.forum.circlace.com/articles/601498670227001344

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/826113c0-bf8b-4c24-8994-f8d54d28493c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/9158e3fb-aead-a2d5-8426-166386d179db.png)

# 数式

+ [キャンペーンメンバーの数式フィールドを使用して、メンバーが取引先担当者、リード、またはアカウントであるかどうかに基づいてさまざまなフィールドを取得できますか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007F2Nxu)

キャンペーン メンバーがアカウントに関連付けられている場合に対応できるように、既存の数式フィールドを拡張して、その場合はアカウントの名前を取得したいようですね。 

```
IF(ISBLANK(ContactId), 
    IF(ISBLANK(LeadId), Account.Name, Lead.Company), 
    Contact.npsp__Primary_Affiliation__r.Name)
```

# エラー

+ [Cannot filter by member status without specifying a campaign](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ajTZUSA2)