Audiences and campaigns

3 articles H By Hisham

Reaching a group of customers on purpose.

Shared audiences

An audience is a question about your customers that Lynomia Chat keeps answering. You write the conditions once — "last purchase in the past 30 days", "has never written to us", "spent over 1,000 SAR" — and give them a name. From then on, every time something opens, counts or sends to that audience, the conditions are run again against your data as it is at that moment. No membership is stored anywhere. There is no list of members to refresh, no sync button, and no way for an audience to go stale. A customer who places an order this morning is in "recent buyers" this afternoon because the question was asked again, not because anything was updated. A saved question, not a saved list An audience is built in the contacts filter: apply some conditions, see who matches, then save the conditions under a name. What you saved is the conditions — never the contacts that matched at the time. Delete the audience later and the conditions go; every contact stays exactly as it was. Because the answer is recalculated, an audience can only express things derivable from your data. "Customers who complained and we escalated it" is not derivable, so that belongs in a label. When to use one - The group changes on its own, as time passes or as orders arrive. - You want the same group used in more than one place — a campaign this week, an automation rule next month. - You want everyone in the account working from the same definition rather than each person's own filter. When not to use one - The group is a decision your team made and nothing in the data implies. Use a label. - You need a fixed list of exactly these people, frozen at a point in time. Lynomia Chat has no static list; the nearest thing is a label applied in bulk. What you need first Nothing, for a personal audience built from contact and conversation conditions. For the Commerce conditions you need a connected store — see Commerce. To share an audience with the account you need to be an administrator. What you can ask about a contact The condition picker groups the fields: | Group | What it asks about | |---|---| | Standard and additional filters | name, email, phone number, identifier, labels, country, city, company, created at, last activity, blocked | | Custom attributes | every contact attribute you have defined — see custom attributes | | Conversations | conversation status, priority, inbox, assigned agent, assigned team, conversation labels | | Commerce | linked store, store platform, visible orders, visible spend per currency, last visible purchase, has an active order, order status, payment status, shipment status | Conversation conditions are about existence: Equal to means the contact has at least one conversation like that, Not equal to means none. Several values in one condition mean "or" — status open or pending is one condition. Commerce conditions read what Lynomia Chat has already stored locally, so evaluating an audience never calls your store. That has two consequences worth knowing. Figures are visible orders and spend, not lifetime totals. And a linked customer whose orders have not been read yet is unknown, never zero: it will not match "more than 3 orders", and it will not match "fewer than 3 orders" either. The filter panel tells you how many linked contacts are in that state. Spend is held per currency and never converted, so there is a separate field per currency and no way to add two currencies together. Conditions join in a flat chain Each condition joins the next with and or or, and "and" binds tighter than "or", so A and B or C means (A and B) or C. There are no brackets and no nested groups. To express "Salla or Shopify, and spend above 1,000", put both platforms as two values in one Store platform condition and add the spend condition with and. Steps 1. Go to Contacts and open the filter panel. 2. Add your conditions and Apply filters. The list shows the first page and the total, as Showing 1 - 15 of N contacts. 3. Save as audience, give it a name, and — if you are an administrator — tick Share with the whole account. 4. It appears under Audiences, marked Shared or Only you. Start from a preset More actions → New audience from a preset opens a short gallery. A preset fills in the conditions; you then confirm the name and whether the account shares it, in the same dialog as always. What it creates is an ordinary audience with editable conditions. | Preset | Asks you for | |---|---| | Has contacted us | — | | Has never contacted us | — | | High-value buyers | currency and amount | | Repeat buyers | number of orders | | Recent buyers | number of days | | Customers with an open order | — | | Customers with a shipped order | — | | Customers of one store | which store | | All linked customers | — | The first two work in any account. The other seven need Commerce, and are shown with what is missing rather than hidden. Note that "High-value buyers" asks you for the threshold. Lynomia Chat will not decide what a high-value customer is for your business, and deliberately does not ship a preset called "VIP". Personal or shared | | Personal | Shared | |---|---|---| | Who can open it | you | everyone in the account | | Who can change or delete it | you | administrators | | Usable in a campaign or an automation rule | no | yes | | If its creator leaves | deleted with them | stays | Sharing is always an explicit tick. Nothing converts a personal audience on its own. An agent can open a shared audience and adjust the conditions to look at something, but cannot save, rename or delete it. A worked example You want to message customers who bought in the last 60 days and have an open order. 1. Contacts → filter: Last visible purchase — more than N days ago — 60, joined with and to Has an active order — Yes. 2. Apply filters. The footer tells you how many match right now. 3. Save as audience, name it Recent buyers with an open order, tick Share with the whole account. 4. From the audience's More actions, choose Use in a new WhatsApp campaign. Next month the same audience contains different people, with nothing to maintain. Who can do this Any agent can build a filter and save a personal audience. Only an administrator can share one, change a shared one, or delete a shared one. Changes to audiences are recorded in the audit log. See roles and permissions. Limits - A filter may use at most 10 conversation or Commerce conditions, and at most 50 values in one condition. Contact and custom-attribute conditions are not counted against that. - Up to 1,000 saved filters per person. - An audience with no conditions matches every contact. The Audiences page says so on the card. - Editing a shared audience changes what every campaign and rule using it matches, immediately. The filter panel warns you with the count. - You cannot delete a shared audience, or make it personal, while an automation rule or an unsent campaign references it. Remove it from those first. - The contacts list shows a page at a time and a count, so there is no screen that shows the whole membership at once. There is no export button on an audience itself; export from the contacts list, which sends the filters you have applied. - When you open an audience, conversation conditions only see conversations you are allowed to see. When a campaign or an automation rule reads the same audience it is evaluated for the whole account, so the two counts can differ. - Nothing writes an audience's membership back onto contacts. There is no audience-to-label sync. Related - Labels or shared audiences? - Labels - WhatsApp campaigns - Automation rules - Contacts - Commerce If it does not work I saved an audience and nobody else can see it. It is personal. Only an administrator can share one, and only by ticking Share with the whole account. My audience does not appear in the campaign's recipient picker. Campaigns list shared audiences only. A customer I know bought something is not in my Commerce audience. Their orders have probably not been read yet. Lynomia Chat reads a linked customer's orders when an agent opens their conversation or the store sends an update; until then the contact is unknown, not zero. I cannot delete the audience. A rule or an unsent campaign is using it. The error says how many of each. My condition was rejected. A value of the wrong kind, more than 50 values in one condition, or more than 10 conversation and Commerce conditions in one filter.

Labels or shared audiences?

Both group customers. Both can be the recipients of a WhatsApp campaign. They are still not interchangeable, and picking the wrong one is the most expensive small mistake in the product. The rule fits in one line: If you can point at the customers, use a label. If you can describe them, use an audience. Side by side | | Label | Shared audience | |---|---|---| | What it is | a sticker stored on the contact | conditions stored under a name | | Who puts a customer in it | a person | nobody — the conditions decide | | When membership changes | when somebody adds or removes it | every time the audience is used | | Can go out of date | yes, silently | no, there is nothing stored to be out of date | | Can record a decision | yes, that is its only job | no | | Can express "bought in the last 30 days" | not durably | yes | | Who creates it | an administrator creates the label; any agent applies it | any agent saves one; an administrator shares it | | Visible to the account | always | only when shared | | Campaign recipient source | yes | yes, when shared | | Automation condition | no | yes, when shared | The test Ask: can this change without anybody touching the contact? A customer becomes a "recent buyer" because time passed. Nobody did anything. That is an audience. A customer becomes "VIP" because somebody decided so. There is no data that implies it. That is a label. Three things, not two People usually compare labels with audiences and forget the thing in the middle. | | What it is | How long it lasts | Who else sees it | |---|---|---|---| | A contact filter | conditions you have applied to the list you are looking at | until you clear them or leave | nobody | | A personal audience | the same conditions, saved and named | until you delete it | nobody | | A shared audience | the same conditions, saved and owned by the account | until an administrator deletes it | everyone | A filter is a view. It is the right tool for a question you are asking once. Saving it is what turns the view into something you can come back to, and sharing it is what makes it available to a campaign, to an automation rule, and to your colleagues. Nothing can reference an unsaved filter, because there is nothing to reference. So the honest sequence is: filter to explore, save when you will want it again, share when something other than you needs it. What only a label can do Record a judgement. vip, wholesale, complaint-escalated, do-not-call, event-attendee. None of these can be worked out from your data, so no set of conditions will ever reproduce them. A label is also the only way to pin an arbitrary set of people — the thirty contacts from a trade show, the list somebody sent you. Lynomia Chat has no static audience. Import or select those contacts and apply a label in bulk; see import contacts and bulk actions. What only an audience can do Stay correct. "Spent over 1,000 SAR", "has an open order", "has never written to us", "customers of one store" — each is re-answered when it is used, so there is no moment at which it is quietly wrong. An audience is also the only one of the two that an automation rule can test. A rule can ask is this conversation's contact in audience X. There is no condition anywhere that asks whether a contact carries a particular label. The trap that costs money Two things that look alike and are not: A conversation label is not a contact label. They come from the same catalogue and are stored separately. Tagging a conversation vip does not make that person a vip contact, and a campaign reads contact labels. Build a campaign to a label that only ever went on conversations and it reaches nobody. No automation action labels a contact. An automation rule's "add label" action always labels the conversation. There is also no trigger for a contact being created or changed. So you cannot build a rule that maintains a contact label for you — which is exactly why the questions people want such a rule for ("who has contacted us?") are audience presets instead. Which to use, by case | What you want | Use | |---|---| | customers who bought in the last 30 days | shared audience | | customers with an order still open | shared audience | | customers who have spent above a threshold | shared audience | | customers of one connected store | shared audience | | customers who have never written to us | shared audience | | customers we decided are VIP | label | | customers who asked not to be contacted | label | | the thirty people from last week's event | label, applied in bulk | | a one-off question you will not ask again | a filter, unsaved | A worked example You want a monthly offer to good customers who are not wholesale accounts. "Good customers" is describable: Visible spend (SAR) — more than — 1000. That is a shared audience. "Wholesale" is a decision: your team knows which accounts those are. That is the wholesale label. Lynomia Chat has no "exclude these" option on a campaign, so you cannot subtract the label from the audience. Add a condition to the audience instead — contact labels are a filter field, so Labels — not equal to — wholesale joined with and does it, inside the audience, once. Both are recipient sources A campaign takes labels and shared audiences together, and each contact receives it once however many of them they are in. So choosing correctly costs nothing at the point of sending — the cost is paid earlier, in whether the group is still right by the time you send. Limits - Nothing maintains a label for you. No rule, job or schedule anywhere adds or removes a contact label. - Nothing writes an audience's membership onto contacts, either. There is no synchronisation in either direction. - A personal audience cannot be used by a campaign or a rule. Only shared ones can. - Label names are stored in lower case, must be at least two characters, and cannot contain spaces. - Deleting a label removes it from everything carrying it, with no undo. Deleting an audience removes only its conditions. Related - Shared audiences - Labels - WhatsApp campaigns - Automation rules - Contacts - Bulk actions If it does not work My campaign to a label found no recipients. The label is on conversations, not contacts. Open it under Contacts → Tagged with — an empty page is the answer. Apply it to the contacts from the contacts list. I built the filter but cannot find it tomorrow. An applied filter is not saved. Use Save as audience. I cannot see the audience I need in the campaign form. It is personal. An administrator has to share it. I want a rule that fires when a contact gets a label. That does not exist. Describe the same people as a shared audience and have the rule test the audience instead.

WhatsApp campaigns

A WhatsApp campaign sends one template message, once, at a scheduled time, to every contact selected by the labels and shared audiences you choose. That is the whole shape of it. It is not a sequence, not a drip, and not a conversation — it is one outbound message to a group. It exists because WhatsApp will not let you write freely to someone who has not messaged you recently. Outside that window only an approved template may be sent, which is why a campaign asks you to pick a template rather than type a message. See the WhatsApp 24-hour window. When to use it An announcement, offer or reminder that goes to a described group at a moment you choose, and where you want to see how many people it will reach before you send. When not to use it - A reply to one customer. Reply in the conversation. - Anything that should happen because something happened. That is automation, covered below. - Anything you will want to edit later. A WhatsApp campaign cannot be edited once created, only deleted. What you need first | | | |---|---| | A WhatsApp inbox on WhatsApp Cloud | campaigns refuse to run on any other WhatsApp provider | | WhatsApp campaigns switched on for your account | off until enabled | | An APPROVED template | see WhatsApp templates | | At least one label or shared audience | the form will not submit without one | | Administrator access | every campaign action is administrator-only | Choosing who receives it The Recipients section takes two kinds of source, and you can mix them: - Labels — contacts carrying any of the labels you pick. Contact labels, not conversation labels. - Shared audiences — contacts matching any of the audiences you pick. Personal audiences are not offered; only shared ones, because a campaign belongs to the account. As you choose, Lynomia Chat counts the matching contacts on the server and shows the number. Each contact is counted and sent to once, however many of your labels and audiences they fall into. Two things about that number matter. It is the count now, not at send time — recipients are worked out again when the campaign is dispatched, and for a date-based or order-based audience that will be a different set of people. And it is a count, not a list: no screen shows exactly who will receive a campaign, so open the audience or the label in Contacts to inspect the people. If your account has no shared audiences yet, the Recipients section explains what one is and offers to take you to build one. Your draft campaign is kept while you do. Only an APPROVED template can be sent Meta approves each template before it can be used, and Lynomia Chat enforces that in two independent places. The template picker offers a template only when all of these hold: - Meta's status for it is APPROVED; - it is not an AUTHENTICATION template; - it is not a customer-satisfaction survey template; - it has no list, product, catalogue or call-permission component, and no location header. Then, at the moment of sending, the template is looked up again in that channel's synced list by name and language and must still be APPROVED. A template that was approved when you built the campaign and has since been paused, rejected or removed is not sent — nothing is sent to that contact at all. Meta decides a template's category when it approves it. A UTILITY template and a MARKETING template are both sendable here, and the category of an already-approved template cannot be changed; to move a template between categories you create a new one. Steps 1. Campaigns → WhatsApp campaigns → Create campaign. 2. Title — for you and your colleagues, never shown to the customer. 3. Select Inbox — the WhatsApp channel it is sent from. 4. WhatsApp Template — pick one, then fill in its variables. The preview shows the message as the customer will see it. 5. Recipients — labels, shared audiences, or both. Check the count. 6. Scheduled time — required. There is no "send now". 7. Create. The campaign appears in the list as Scheduled. Lynomia Chat checks for due campaigns every five minutes, so a campaign goes out at the first check at or after its scheduled time. While it is sending the card reads Processing; afterwards, Completed. A worked example A clearance offer to customers who bought in the last 90 days, excluding wholesale accounts. 1. In Contacts, filter Last visible purchase — more than N days ago — 90 and Labels — not equal to — wholesale. Save it as a shared audience called Retail buyers, last 90 days. 2. In the template manager, make sure your offer template is APPROVED. 3. Campaigns → WhatsApp campaigns → Create campaign. Choose the inbox and the template, fill in the variables, and pick that audience under Shared audiences. 4. Read the count. Schedule it for 10:00 tomorrow and create it. The exclusion lives in the audience, because a campaign has no "exclude these people" field. Campaigns or automation? They answer different questions, and the difference is not about size. | | Campaign | Automation rule | |---|---|---| | Starts because | a time you set | an event happened | | Acts on | a group you described | the one conversation the event occurred on | | Sends | one template | a message, or a label, assignment, status change, webhook | | Runs | once | every time the event happens | | Conditions | none — the recipients are the condition | yes, and nothing runs unless they match | | Needs the 24-hour window open | no, it sends a template | for a text reply, yes | Choose a campaign when you are the one deciding that now is the moment and the recipients are a group. Choose automation when the customer or your store decides the moment — an order shipped, a message arrived, a conversation was resolved — and the thing to do concerns that one conversation. A rule cannot message a group; it has no audience. A campaign cannot react to anything; it has no trigger. The one place they meet is that a rule can test whether a conversation's contact is in a shared audience, so the same audience can define who gets the campaign and who gets the follow-up. See macros or automation? for the neighbouring distinction. Who can do this Administrators only — listing, creating, viewing and deleting campaigns, and the recipient count. Agents have no access to the campaigns section. See roles and permissions. Limits - A campaign cannot be edited after it is created. Delete it and create another. Deleting is also the only way to cancel a scheduled campaign. - There is no send-now, no draft and no pause. A campaign is scheduled or it does not exist. - A scheduled time more than three days in the past is never sent. If your account was down over that window, recreate the campaign. - Blocked contacts are not excluded, and there is no opt-out list. Whatever you want excluded has to be a condition in the audience or a label you filter against. - A recipient without a usable destination is skipped. A contact needs a phone number, or exactly one WhatsApp identity on that inbox. A contact with two identities on the same inbox is skipped rather than guessed at. - A template variable that renders empty skips that contact. If you use {{ contact.name }} and a contact has no name, they do not receive the message. Check your data, or choose a template without that variable. - The campaign message does not appear in your inbox. A campaign sends through WhatsApp directly and creates no conversation and no outgoing message. When somebody replies, that reply opens a conversation as usual. - Per-recipient delivery results are not available on every installation. Where they are, a View analytics button appears on a WhatsApp campaign once it has started sending, and shows each recipient as queued, skipped, sent, delivered, read or failed, from WhatsApp's own status updates. A campaign still scheduled has nothing to show yet. - A shared audience cannot be deleted or made personal while a campaign that has not yet been sent references it. - SMS campaigns use the same Recipients section, but WhatsApp's template and window rules do not apply to them. Related - Shared audiences - Labels or shared audiences? - WhatsApp templates - The WhatsApp 24-hour window - Automation rules - Labels If it does not work My template is not in the dropdown. It is not APPROVED, it is an authentication template, it is a survey template, or it uses a component campaigns cannot send — a list, a product or catalogue block, a call-permission button, or a location header. Check its status in the template manager first. The dropdown is empty altogether. No inbox is selected, or the selected inbox has no approved templates synced yet. The campaign says Completed but people tell me they got nothing. If your installation has campaign analytics, open View analytics: each recipient carries its own outcome and a reason when it was skipped or failed — usually a missing phone number, a variable that rendered empty, or an error WhatsApp returned. The three most common causes are a template that stopped being APPROVED, a variable rendering empty, and recipients with no phone number. My recipient count is zero. Your labels are on conversations rather than contacts, or the audience genuinely matches nobody right now. Open each one in Contacts to see which. I cannot find the campaigns section. You are not an administrator, or WhatsApp campaigns are not switched on for your account. The count will not load. The number is unknown, not zero. Reopen the form and reselect the recipients.