ターゲティング
一括配信のターゲティングは、連絡先の属性に基づいて配信対象者を絞り込む機能です。
ターゲティング条件
Section titled “ターゲティング条件”interface BroadcastCriteria { readonly logic?: 'AND' | 'OR'; // 条件結合ロジック readonly tags?: readonly string[]; // タグフィルタ readonly groupIds?: readonly string[]; // グループフィルタ readonly labelIds?: readonly string[]; // ラベルフィルタ readonly userType?: readonly string[]; // ユーザー種別フィルタ}フィルタの種類
Section titled “フィルタの種類”タグフィルタ
Section titled “タグフィルタ”連絡先に付与されたタグで絞り込みます。
-- ARRAY_OVERLAPS: いずれかのタグに一致WHERE tags && ARRAY['tag1', 'tag2']グループフィルタ
Section titled “グループフィルタ”手動グループとスマートグループの両方に対応します。
手動グループ: 連絡先の groupIds 配列に含まれるか
WHERE groupIds && ARRAY['group1', 'group2']スマートグループ: グループの criteria を評価して動的に解決
手動グループとスマートグループは OR で結合されます:
(手動グループに含まれる) OR (スマートグループAの条件) OR (スマートグループBの条件)ラベルフィルタ
Section titled “ラベルフィルタ”スマートラベル(タグの組み合わせ)で絞り込みます。
| ラベル logic | SQL |
|---|---|
OR | tags && ARRAY[label.tags](いずれか一致) |
AND | tags @> ARRAY[label.tags](全て一致) |
ユーザー種別フィルタ
Section titled “ユーザー種別フィルタ”連絡先の userType で絞り込みます。
WHERE userType IN ('customer', 'prospect')logic フィールドで複数フィルタの結合方法を指定します。
AND 結合
Section titled “AND 結合”全ての条件を満たす連絡先のみ対象:
WHERE tags && ARRAY['VIP'] AND groupIds && ARRAY['group1'] AND userType IN ('customer')いずれかの条件を満たす連絡先が対象:
WHERE (tags && ARRAY['VIP']) OR (groupIds && ARRAY['group1']) OR (userType IN ('customer'))システムフィルタ
Section titled “システムフィルタ”ユーザーが指定する条件に加え、以下のシステムフィルタが常に適用されます。
チャットNG 除外
Section titled “チャットNG 除外”アクティブなチャットNG が設定されている連絡先は配信対象から除外されます。
-- NG対象の連絡先IDを収集SELECT DISTINCT contactId FROM contact_chat_ngWHERE isActive = true AND ngType IN ('SHOP_NG', 'USER_NG', 'NO_PURELOVERS_USER')
-- 対象から除外WHERE id NOT IN (chatNgContactIds)purelovers 会員限定
Section titled “purelovers 会員限定”purelovers 連携済みの連絡先のみが配信対象です。
-- purelovers連携済みの userId を収集SELECT userId FROM contact_purelovers
-- purelovers会員のみWHERE userId IN (pureloversUserIds)件数プレビュー
Section titled “件数プレビュー”配信作成フォームで、条件を変更するたびにリアルタイムで対象件数が表示されます。