Skip to main content
In Maestra, every customer has subscription data at two levels: the channel (such as email or SMS) and the topics within that channel (for example, promotions, news, or order updates). Topic subscriptions can be set directly, or they can be inherited from the channel they belong to. This article explains how topic subscriptions behave when you change channel-level data through different mechanisms.

Subscription types

Maestra distinguishes three states for any channel or topic:
StateWhat it means
ExplicitThe subscription value was set directly for this channel or topic.
ImplicitNo direct value exists for the topic, so it inherits the value from its parent channel.
No dataNo subscription information has been received at any level.
A simple rule of thumb: if the subscription value arrived directly for the channel or topic, it is explicit. If the topic has no value of its own and only mirrors the channel, it is implicit.
Explicit and implicit subscriptions are treated identically for campaigns, segments, filters, and workflows. An implicit subscription is just as valid for sending as an explicit one — and an implicit unsubscribe will stop sends just like an explicit unsubscribe.

How updates propagate by mechanism

The same channel-level change can produce different results depending on how it reaches Maestra. The sections below walk through each mechanism.

File import (bulk upload)

When you subscribe a customer to a channel by importing a file:
  • The channel is marked as an explicit subscription.
  • Every topic under that channel becomes an implicit subscription, inheriting the channel’s value.
When you unsubscribe the customer from the channel through the same import:
  • The channel is marked as an explicit unsubscribe.
  • Every topic under that channel becomes an implicit unsubscribe.
If a topic already has an explicit value, the file import does not overwrite it. Only implicit topics follow the channel.

Workflows

Workflows can change subscription status as part of an automated scenario (for example, after a customer completes a form or hits a trigger).
  • Channel-level subscribe and unsubscribe actions behave the same way as a file import: the channel becomes explicit, and topics that had no explicit value become implicit with the new channel value.
  • Not every channel supports every action in workflows. Where the action is available, the explicit/implicit rules above apply.
  • Explicit topic subscriptions are preserved and are not rewritten by a channel-level workflow step.

Unsubscribe from a campaign

When a customer unsubscribes through a link in one of your campaigns (or marks the message as spam), the result depends on which link they used:
  • Channel unsubscribe link — creates an explicit unsubscribe on the channel. All topics that did not have an explicit value become implicit unsubscribes.
  • Topic unsubscribe link — creates an explicit unsubscribe on that specific topic only. The channel and other topics are not changed.
Use topic-level unsubscribe links when you want to let customers opt out of a single content stream (for example, promotions) without losing them on transactional or service topics.

API operations

API calls that update subscription data follow the same explicit/implicit logic as a file import, with one important difference:
If a customer already has an explicit subscription on a channel, a new subscribe request through the API will not overwrite the existing data. This protects customers who have already made an explicit decision (for example, an explicit unsubscribe) from being silently re-subscribed by an automated API call.
For unsubscribe requests, the API writes an explicit channel unsubscribe and turns inheriting topics into implicit unsubscribes, the same as the other mechanisms.

Manual editing in the admin panel

When a Maestra user edits a customer’s channel subscription directly from the customer card:
  • The channel value is updated to explicit.
  • Topics that were implicit inherit the channel’s new value (they remain implicit, with the updated state).
  • Topics that were explicit keep their existing value. Manual channel edits never overwrite explicit topic data.

Adding new topics to a project

When you add a new topic to a channel that already has customer data:
  • Every existing customer receives an implicit subscription value for the new topic, matching their current channel state.
  • If a customer is explicitly subscribed to the channel, they will be implicitly subscribed to the new topic.
  • If a customer is explicitly unsubscribed from the channel, they will be implicitly unsubscribed from the new topic.
This means a new topic immediately reflects each customer’s existing channel preference — no backfill is required.

Change history

The customer’s change history records only explicit changes. Implicit updates — for example, a topic flipping because the parent channel was changed — do not appear as separate events in the history. To trace why a customer’s effective subscription on a topic shifted, look at the most recent explicit change on the parent channel.

Effect on campaigns, segments, and filters

For the purpose of deciding whether to send a message:
  • An implicit subscribe lets the customer receive campaigns just like an explicit subscribe.
  • An implicit unsubscribe blocks sends just like an explicit unsubscribe.
When you build a segment or filter on “subscribed to topic X,” both explicit and implicit subscribers are included. The same applies in reverse for unsubscribed audiences. There is no separate filter that targets only explicit or only implicit subscribers — Maestra evaluates the effective state.
Because implicit topic data follows the channel, the cleanest way to manage broad opt-ins and opt-outs is at the channel level. Use explicit topic edits only when a customer’s preference for a single topic should differ from their overall channel preference.

Quick reference

MechanismChannel resultTopic result (no prior explicit value)Topic result (prior explicit value)
File importExplicitImplicit, inherits channelUnchanged
WorkflowExplicitImplicit, inherits channelUnchanged
Campaign channel unsubscribeExplicit unsubscribeImplicit unsubscribeUnchanged
Campaign topic unsubscribeUnchangedExplicit unsubscribe on that topic onlyExplicit unsubscribe on that topic only
API subscribeExplicit (skipped if already explicit)Implicit, inherits channelUnchanged
API unsubscribeExplicit unsubscribeImplicit unsubscribeUnchanged
Manual edit in admin panelExplicitImplicit, inherits channelUnchanged
New topic added to channeln/aImplicit, inherits current channel staten/a