はじめに
表題のエラーの解決に難儀したので、同じエラーを踏んだ誰かのためのメモです。
一見よくある権限不足エラーですが、「わかるわけないやろ…」という解決方法だったので記録します。
このエラーは何?
No such column 'EmailTemplateId' on entity 'EmailMessage'.
このエラーは、「Salesforce Integration」ライセンスを使用したユーザーで「Minimum Access - API Only Integrations (最小アクセス - API 限定インテグレーション)」プロファイルを設定した場合に、当該ユーザーからAPI経由で「EmailMessage」オブジェクトの「EmailTemplateId」項目をデータ取得しようとした時に発生しました。
通常このようなエラーは、項目への閲覧権限不足で発生しますが、画面から通常通り権限付与を行おうとしてもこの項目を変更する機能が存在せず、特殊な設定方法が必要です。
(Salesforceへの問い合わせで解決方法がわかりました)
解決方法
以下は、Salesforceの問い合わせ結果を引用したものです。
(権利的に問題があったら教えてください)
■ 参考手順
1 システム管理者で Salesfroce にログイン
2. 開発者コンソールを開く
Salesforce 画面右上の歯車マークをクリックし、[開発者コンソール] を選択することで開発者コンソール画面が開きます。
3. クエリエディターから SOQL を実行
左下寄りのクエリエディター(Query Editor)タブを選択し、タブの下に表示されるテキストエリアに以下 SOQL を入力の上、左下 [Execute] ボタンをクリックします。
----
SELECT Id,Name,PermissionsEmailTemplateManagement FROM PermissionSet
----
【参考:開発者コンソールのクエリエディター】
https://help.salesforce.com/s/articleView?id=sf.code_dev_console_tab_query_editor.htm&type=5
【参考:SOQL クエリまたは SOSL 検索の実行】
https://help.salesforce.com/s/articleView?id=sf.code_dev_console_tab_query_editor_soql_sosl.htm&type=5
4. 実行結果から対象権限セットの "PermissionsEmailTemplateManagement" の値を True に変更
正常に実行された場合には開発者コンソール画面中央の Query Results 画面に結果が表示されます。
対象の権限セットレコードの「PermissionsEmailTemplateManagement」列の false の値をダブルクリックすることで表示されるチェックボックスにチェックします。
5. レコードの変更内容を保存
実行結果左下の [Save Rows] ボタンをクリックして保存します。
まとめ
EmailTemplateIdへの参照権限は「SOQLを使って "PermissionsEmailTemplateManagement" の値を True に変更」する。
Salesforceのサポートに感謝します。
以上、参考になりましたら幸いです。