Build an audience from ERP data

Create a dynamic or static audience, see how many people may actually be reached, and prepare it for an ad platform.

Required permission: marketing.audience.view; create and change need marketing.audience.edit and campaign edit

Before you begin

Audiences depend on consent. Record consent first, or the Reachable count will be low. The screen shows New to everyone; saving needs marketing.audience.edit, and creating from the register also needs marketing.campaign.edit.

Steps: create the audience

  1. Open Marketing > Audiences > Audiences and press New.
  2. Enter the Audience name.
  3. Choose the Type: Dynamic (rule) is rebuilt from the rule every time; Static list keeps the people you add by hand.
  4. Choose the Purpose: Marketing, Newsletter, Promotions / offers, Transactional / service, Support, or Profiling / ads. Transactional and Support are service messages and always count as reachable.
  5. In Rule, enter a JSON object. Leave it empty for all customers on WhatsApp: {"base": "customers", "channel": "whatsapp"}.
  6. Add a Description and press Save. The audience is built at once.

Rule bases

BaseWho it picksExtra keys
customersActive customersnone
leadsOpen leads not archived and not "do not contact"tag, source, country
inactive_customersCustomers with no sale for a number of daysdays (default from settings, 90)
high_valueCustomers whose posted invoices exceed a valuemin_value (default from settings, 50,000)
repeat_customersCustomers with several ordersmin_orders (2)
by_productCustomers who bought a productproduct_id
by_industryCustomers in an industryindustry
by_locationCustomers in a placecountry, city
abandoned_quotationsDraft sales between days and six times days olddays (14)
staticOnly the people you addnone

Example: {"base": "high_value", "min_value": 20000, "channel": "whatsapp"} picks customers with more than AED 20,000 of posted invoices and counts those consented on WhatsApp. An unknown base gives zero members without an error, so check the spelling. A rule that is not valid JSON is refused: 'That is not valid JSON.'

Steps: read the result

Open the audience. The summary line reads, for example, '1 of 3 reachable (consented)'. Each member has a consent chip: Opted in, Opted out, No consent recorded, or Unknown - allowed by company setting (only when that setting is on).

Steps: keep it up to date

  1. Press Rebuild to recompute a dynamic audience after your data changes.
  2. For a static audience press Add member, enter a name, phone and email (a phone or an email is needed) and add. The same phone is not added twice.
  3. Press the bin icon on a row to remove a member.

A dynamic audience is recomputed on every rebuild, so people you add by hand to it disappear. Use a static list for hand-picked people.

Steps: prepare for an ad platform

  1. On the audience record choose the Platform (Facebook, Instagram, LinkedIn, TikTok, Snapchat or YouTube).
  2. Press Sync audience. An active ad account on that platform is required: 'Connect an ad account on that platform first (Campaigns > Ad Accounts).'

With a Manual entry account the audience is only prepared. The line reads, for example, 'facebook: prepared 120', and only hashed values (SHA-256) are made. A real upload happens only for Facebook and Instagram with a Connected account. Only people who consented for Profiling or Marketing (on Any channel) are included.

Good to know

  • A newly added audience can be linked to an ad set on the ad set form.
  • Date calculations use the server date, so a rebuild just after midnight in Dubai may use the previous day.