ConceptReviewed 2026-09-29

Campaign audiences, recipient lists and unsubscribes

A campaign's audience is a saved filter over contacts or leads; the recipient list is the snapshot built from it, one row per contact, skipping those without a valid email or on the organization's unsubscribe list, which the link in every mail adds to.

Campaign audiences, recipient lists and unsubscribes

A campaign's audience is a saved filter that says who should get the mail: all contacts of some types, or the contacts behind opportunities on chosen projects and stages, narrowed by city, date added or a search. The recipient list is the snapshot built from that filter when you build it or send: one row per matched contact with the address as it was then, marked Pending, Skipped or Unsubscribed. The unsubscribe list is the organization's opt-out list; the link in every campaign email adds to it, and a contact on it is never put on a new list.

How it works in NirmaanOne

The audience filter

The Audience card on a campaign ("Who receives the mail. Contacts without an email address and unsubscribed contacts are skipped automatically.") has two sources:

  • All contacts: every active contact, optionally narrowed by Contact types (Lead, Customer, Tenant, Vendor and the rest of the lookup; "Any type" when none is ticked).
  • Contacts with an opportunity (leads and buyers): each contact who has an opportunity in the organization, narrowed by Projects, Stages (Lead, Estimate, Approval, Booked, Lost) and Lead sources. A contact appears once whatever the number of their opportunities; the latest matching one is the one the mail can refer to. Allottees' purchases are opportunities too, so an allottee buying their allotted unit is matched like any buyer.

Both sources take Cities (comma-separated, matched whatever the case), Added from / Added to (the date the contact was created, the to-date included) and Name, email or company contains. Inactive contacts are never matched. Switching source clears the other source's filters. The campaign's Project field is a label for the mail and the list ("Lets {{ campaign.project }} appear in the mail and groups campaigns."); only the Projects checklist under the opportunities source narrows the audience.

Count audience runs the filter and reports "<reachable> reachable of <matched> matched (<n> without email, <n> unsubscribed)." with up to twenty sample lines. Matched is every contact the filter returns; with email those whose address looks valid; unsubscribed those with an address who are on the opt-out list; reachable the rest. An opted-out contact with no valid address counts under without email here, but is marked Unsubscribed when the list is built.

The recipient list

Build list (or Rebuild list) on the campaign turns the filter into rows, and needs the Edit permission on Campaigns. It deletes the old rows and writes one per matched contact:

  • Pending, ready to send;
  • Unsubscribed with the note "Contact unsubscribed", when the contact is on the opt-out list;
  • Skipped with "No valid email address".

Each row keeps the name and address as they were at that moment and gets its own unsubscribe token. The counters reset: the Recipients tile is the total, Skipped counts both the skipped and the unsubscribed rows, and the toast says "<n> reachable recipients (<n> skipped)."

Send builds the list itself only when there is none yet ("The recipient list is built from the audience when you send."). A list that already exists is sent as it stands, so after changing the audience click Rebuild list, or the old list goes out ("<n> on the list; rebuild after changing the audience."). Sending with nobody reachable is refused: "No reachable recipient in the audience". The opt-out list is honoured when the list is built, not again at send time: a contact who unsubscribes after the build still receives that campaign, and is left off the next one.

The unsubscribe list

Every campaign email carries an unsubscribe link, in the template where it uses {{ unsubscribe_url }}, otherwise in a footer added automatically ("You receive this because you are in touch with <organization>. Unsubscribe"), plus a List-Unsubscribe header for mail clients. Clicking the link needs no login: it records the contact on the organization's list with the reason "Unsubscribe link" and the campaign it came from, and shows "You are unsubscribed" / "<email> will no longer receive campaign email from <organization>."

The list is one row per contact for the whole organization, shown under Campaigns, Unsubscribes with the contact, the Reason ("via <campaign>" for link opt-outs) and when. With the Edit permission on Campaigns you can add someone by hand (Unsubscribe a contact, with a reason such as "Asked on the phone"; "This contact is already unsubscribed" if they are on it) or remove a row ("<name> will receive campaign email again."). There is no per-campaign or per-topic opt-out, and it is the contact who is opted out, not the address: a second contact record with the same email is still mailed.

Business reason

Bulk mail to leads and buyers is only acceptable, and only stays deliverable, when every message can be opted out of and the opt-out is honoured. Keeping the recipient list as a snapshot means the send log records exactly who was mailed at what address, even after contacts change, and counting the audience before sending shows how many will actually be reached.

Example

The sales manager creates the campaign "Tower B launch" with the Email template "Launch invite" and this audience: source Contacts with an opportunity, Projects Skyline Heights, Stages Lead and Estimate, Cities "Mumbai, Thane".

Count audience reports "203 reachable of 240 matched (28 without email, 9 unsubscribed)." The 240 are the contacts with a Lead or Estimate opportunity on Skyline Heights in those cities; 28 have no usable address; 9 are on the opt-out list.

Build list writes 240 rows: 203 Pending, 28 Skipped ("No valid email address") and 9 Unsubscribed ("Contact unsubscribed"). The tiles read Recipients 240, Skipped 37, and the toast "203 reachable recipients (37 skipped)." That afternoon two of the 203 phone in to ask not to be mailed, and a colleague adds them under Unsubscribes with the reason "Asked on the phone". Their rows on the list built that morning stay Pending: had the campaign been sent as it stood, both would still have received it.

The next day the manager adds the stage Approval to the audience and saves. The list still holds the 240 rows built yesterday, so she clicks Rebuild list: 251 rows now, with the two phone opt-outs marked Unsubscribed ("Contact unsubscribed"). Then Send. A week later a third recipient clicks the link at the foot of the launch mail: a row appears under Unsubscribes with the reason "Unsubscribe link" and "via Tower B launch", and every list built from now on marks them Unsubscribed.

Where you see it

  • Campaigns: recipient counts per campaign and the Unsubscribes link.
  • New campaign: the Audience card and Count audience.
  • Campaign: Build list, the Recipients card with its status filter, the tiles and Send.
  • Unsubscribes: the opt-out list, Unsubscribe a contact and removal.
  • Contacts: the contacts and their types the audience draws on.
  • Opportunities: the projects, stages and lead sources behind the opportunities source.
  • Lookups: the Contact types and Lead sources lookups.
  • Message templates: the Email template and its {{ unsubscribe_url }}.

Related

  • CampaignsScreen

    The list of every email campaign with its status and recipient counts, the way into the campaign editor, and the link to the unsubscribe list.

  • New campaignScreen

    Create an email campaign: name it, choose the email template, tag a project, set the reply-to address and define who receives the mail, with a live count of the audience.

  • Campaign (editor: <campaign name>)Screen

    Finish and send one email campaign: build the recipient list from the audience, preview the merged email, send a test, send now or schedule, cancel, and read the per-recipient log afterwards.

  • UnsubscribesScreen

    The organization's opt-out list: contacts who will not receive campaign email, added by the link in every campaign mail or by hand, with the reason and when.

  • ContactsScreen

    The master list of every person your organization deals with, with a panel to add, edit, deactivate or delete a contact and see who changed the record.

  • OpportunitiesScreen

    The sales pipeline as a list or a stage board: every buyer enquiry with its stage, owner and current estimate, with filters, search and shortcuts to open, edit, delete or reopen one.

  • LookupsScreen

    The dropdown lists every form draws on: contact types, lead sources, activity types, company types, bank account purposes, parking types, amenities, unit types and unit configurations.

  • Message templatesScreen

    The list of your organization's message templates: the wording that Send email actions and campaigns use, with filters and the actions to create, open or delete one.

  • Contacts, companies and company typesConcept

    A contact is a person; a company is a legal entity with people attached. The company type decides which registrations the form asks for (promoter, channel partner, vendor, contractor), and a channel partner's default commission feeds the commissions on the bookings it brings.

  • Lookups and their codesConcept

    The dropdown lists each organization maintains (contact types, lead sources, activity types, company types, bank account purposes, parking types, amenities, unit types, unit configurations), the machine code each value carries, how the code is derived from the name, and why some codes must not be retired.