コンテンツにスキップ

検索はプロダクションビルドでのみ利用可能です。 ローカルでテストするには、サイトをビルドしてプレビューしてください。

ターゲティング

一括配信のターゲティングは、連絡先の属性に基づいて配信対象者を絞り込む機能です。


interface BroadcastCriteria {
readonly logic?: 'AND' | 'OR'; // 条件結合ロジック
readonly tags?: readonly string[]; // タグフィルタ
readonly groupIds?: readonly string[]; // グループフィルタ
readonly labelIds?: readonly string[]; // ラベルフィルタ
readonly userType?: readonly string[]; // ユーザー種別フィルタ
}

連絡先に付与されたタグで絞り込みます。

-- ARRAY_OVERLAPS: いずれかのタグに一致
WHERE tags && ARRAY['tag1', 'tag2']

手動グループとスマートグループの両方に対応します。

手動グループ: 連絡先の groupIds 配列に含まれるか

WHERE groupIds && ARRAY['group1', 'group2']

スマートグループ: グループの criteria を評価して動的に解決

手動グループとスマートグループは OR で結合されます:

(手動グループに含まれる) OR (スマートグループAの条件) OR (スマートグループBの条件)

スマートラベル(タグの組み合わせ)で絞り込みます。

ラベル logicSQL
ORtags && ARRAY[label.tags](いずれか一致)
ANDtags @> ARRAY[label.tags](全て一致)

連絡先の userType で絞り込みます。

WHERE userType IN ('customer', 'prospect')

logic フィールドで複数フィルタの結合方法を指定します。

全ての条件を満たす連絡先のみ対象:

WHERE tags && ARRAY['VIP']
AND groupIds && ARRAY['group1']
AND userType IN ('customer')

いずれかの条件を満たす連絡先が対象:

WHERE (tags && ARRAY['VIP'])
OR (groupIds && ARRAY['group1'])
OR (userType IN ('customer'))

ユーザーが指定する条件に加え、以下のシステムフィルタが常に適用されます。

アクティブなチャットNG が設定されている連絡先は配信対象から除外されます。

-- NG対象の連絡先IDを収集
SELECT DISTINCT contactId FROM contact_chat_ng
WHERE isActive = true
AND ngType IN ('SHOP_NG', 'USER_NG', 'NO_PURELOVERS_USER')
-- 対象から除外
WHERE id NOT IN (chatNgContactIds)

purelovers 連携済みの連絡先のみが配信対象です。

-- purelovers連携済みの userId を収集
SELECT userId FROM contact_purelovers
-- purelovers会員のみ
WHERE userId IN (pureloversUserIds)

配信作成フォームで、条件を変更するたびにリアルタイムで対象件数が表示されます。