Skip to main content

Getting Subscribers & Opt-Ins

Before you can send campaigns, you need subscribers — contacts who have explicitly agreed to receive your messages on a specific channel. This guide explains how opt-ins work in SendSeven: how lists organize your subscribers, how the automatic START/STOP keywords work on every channel, what the default list is, and how contact identifiers differ between channels.

Permission is your responsibility

SendSeven gives you the technical tools to collect and manage opt-ins, but you are responsible for having the actual permission of every person you message. Importing a contact and marking them as subscribed does not create consent — it records consent you have already obtained elsewhere. Messaging people without permission violates the platform policies of WhatsApp, Meta, and Telegram, anti-spam laws (GDPR, ePrivacy, TCPA, CAN-SPAM), and SendSeven's terms of service.

Lists: How Subscribers Are Organized

Subscriptions are managed through lists (Settings → Lists or the Lists API). There are three list types, but only one matters for opt-ins:

List typePurpose
staticManually curated contact collections
dynamicRule-based segments (filters)
newsletterOpt-in/opt-out categories — subscribers join and leave these themselves

A newsletter list represents one category of communication your contacts can subscribe to — for example "Product News", "Weekly Deals", or "Order Updates". Each newsletter list has:

FieldDescription
slugURL-safe short name, auto-generated from the list name (e.g. weekly-deals). Used in keywords (stop weekly-deals) and deep links.
is_defaultMarks this list as the tenant's default list (see below). Only one list can be the default.
newsletter_config.welcome_messageMessage sent when someone subscribes
newsletter_config.goodbye_messageMessage sent when someone unsubscribes
newsletter_config.auto_subscribe_via_deeplinkWhether deep links (t.me/...?start=...) can subscribe to this list (default: on)

A subscription is always per contact, per list, per channel. A contact can be subscribed to "Weekly Deals" on WhatsApp but not by email — those are two separate subscriptions with independent opt-in and opt-out.

The Default List

One newsletter list per workspace can be marked as the default list. The default list is what makes the simple opt-in keyword work: a contact who sends just start is subscribed to the default list, with no slug or category name needed. This is what you want for most promotion material: "Text START to +49 151 2345678" is a much better call to action than "Text START WEEKLY-DEALS ...".

If you have not set a default list, a bare start does nothing, so set one before printing QR codes on your packaging.

A bare stop does not depend on the default list: it always unsubscribes the contact from every list on that channel (see Opt-out keywords).

PUT /api/v1/lists/{list_id}
{
"is_default": true
}

Setting a new default automatically unsets the previous one.

START / STOP Keywords

SendSeven automatically processes opt-in and opt-out keywords on all messaging channels — WhatsApp, Telegram, Facebook Messenger, Instagram, and SMS. No bot or flow setup is required; this works out of the box. (Email works differently — see Double Opt-In below.)

Keywords are case-insensitive (STOP, Stop, and stop all work), and they are processed before any bot or flow: even if an AI assistant or automation is active in the conversation, an opt-in/opt-out keyword is always handled — and answered — by the subscription system, never by the bot.

Opt-in keywords

MessageEffect
start or subscribeSubscribe to the default list
start <slug> or subscribe <slug>Subscribe to the list with that slug (e.g. start weekly-deals)

After subscribing, the contact receives the list's welcome message — configurable per list, with this default:

Welcome! You've successfully subscribed to our updates. Reply 'stop' to unsubscribe at any time.

Opt-out keywords

MessageEffect
stopTotal opt-out — unsubscribe from every list on that channel
stop allSame as stop: unsubscribe from every list on that channel
stop <slug>Unsubscribe from the list with that slug only (e.g. stop weekly-deals); other lists are kept
Single-word opt-outs in English, German, French, Spanish, Portuguese and Italian: unsubscribe, cancel, halt, stopp, abmelden, abbestellen, abbrechen, arrêt, annuler, baja, cancelar, sair, annulla, disdireTotal opt-out — same as stop

A bare stop means "stop everything": a contact on three lists who replies stop leaves all three. If you want to offer a way to leave just one list, tell subscribers to reply stop <slug>.

On chat channels (WhatsApp, Telegram, Messenger, Instagram, Live Chat, RCS) the single-word opt-outs must be the entire message. A message that merely contains the word cancel in a sentence is not an opt-out. Matching ignores case and accents, so ARRET, arrêt and Arrêt all work.

If a bare stop changes nothing because the contact has no active subscription on that channel, SendSeven still answers with your default list's goodbye message when you have a default list. Without a default list, the message is not treated as a keyword and goes on to your bots, flows and inbox as a normal message (someone typing "stop" at a bot may simply mean the bot). An explicit stop all always answers, with "You are not subscribed to any newsletters." if there is nothing to remove. Workspaces with no lists at all get no keyword handling, and every message goes straight to bots and the inbox.

After unsubscribing, the contact receives the list's goodbye message — configurable per list, with this default:

You've been unsubscribed. Reply 'start' to subscribe again.

SMS compliance keywords

On SMS, regulatory requirements are stricter. Every single-word opt-out from the table above works as a one-word reply, just as on chat channels (for example BAJA, ANNULLA, HALT or ABMELDEN). In addition, the keywords STOP, UNSUBSCRIBE, CANCEL, STOPP, ABMELDEN, ABBESTELLEN and ARRET/ARRÊT are also matched as whole words anywhere in the message ("Please stop sending me these"). The other words only count when they are the entire message, so "la batería está baja" is not an opt-out. Either way the contact is unsubscribed from all SMS lists at once. The contact receives a confirmation and can re-subscribe at any time by replying START.

Opt-outs are always honored

Keyword opt-outs are processed before everything else — including bots, AI assistants, and flows — and cannot be disabled. Campaigns automatically exclude unsubscribed contacts — you don't need to filter them yourself.

The fastest way to get subscribers is a link (or QR code) that opens the messenger with the opt-in message already filled in — the user just hits send. The Promotion tools section on the Widgets page generates these links, QR codes, and ready-made promo images for all your channels. Under the hood they work like this:

ChannelLink formatHow the list is selected
WhatsApphttps://wa.me/<number>?text=startPre-filled message text (start or start <slug>)
Telegramhttps://t.me/<bot>?start=newsletter_<list_id>The start parameter is delivered with the user's first tap on "Start"
Messengerhttps://m.me/<page_id>?ref=newsletter_<list_id>The ref parameter arrives with the first message
Instagramhttps://ig.me/m/<username>Opens a DM thread — for direct contact, not newsletter opt-ins (see note)
SMSsms:<number>?&body=startPre-filled message body
Instagram is a contact channel, not a newsletter channel

Instagram's platform policies do not allow newsletter-style bulk messaging, so there is no subscribe flow for Instagram. Use Instagram links to start conversations ("Contact us on Instagram"); opt-out keywords still work there as everywhere else.

Email has no keyword path — emails sent to your sender address are not processed for start keywords. Collect email subscribers with the newsletter signup widget instead, which puts them through double opt-in.

Telegram and Messenger deep-link parameters can carry one or more list references (list IDs or slugs separated by _), so a single tap can subscribe a contact to multiple categories. For lists you don't want joinable by link, disable auto_subscribe_via_deeplink in the list's newsletter settings.

You can also fetch a ready-made signup link and QR code for any newsletter list via the API:

GET /api/v1/lists/{list_id}/signup-options?include_qr=true

Double Opt-In (Email)

Email works differently from the messenger channels: there are no inbound keywords. Subscribers sign up through the newsletter signup widget on your website (or via the API), and SendSeven supports double opt-in: the contact receives a confirmation email with a link and only becomes subscribed after clicking it. Until then the subscription is pending and the contact receives no campaigns.

  • Confirmation links are valid for 24 hours.
  • The confirmation email uses a system default template that you can copy and customize per workspace under Reach → Email → Double opt-in templates.
  • Double opt-in is strongly recommended for email (and legally required in some jurisdictions, e.g. Germany).

Messenger channels don't need double opt-in in the same way: the opt-in keyword is itself sent from the user's verified account (their phone number, Telegram account, or Meta profile), which makes it a verifiable, user-initiated action.

Channel Identifiers: What You Can Import

Every subscription is tied to a contact method — the identifier used to reach the contact on that channel. The identifiers differ fundamentally between channels, and that determines what you can import:

ChannelIdentifierImportable?
WhatsAppPhone number (E.164)✅ Yes
SMSPhone number (E.164)✅ Yes
EmailEmail address✅ Yes
TelegramChat ID (scoped to your bot)❌ No
Facebook MessengerPSID (scoped to your page)❌ No
InstagramIG-scoped user ID (scoped to your account)❌ No

Importing WhatsApp, Email, and SMS subscribers

Phone numbers and email addresses are global identifiers — they mean the same thing everywhere. If you already have opted-in contacts from another system, you can import them via Contact Import and set their list subscriptions in the same request:

POST /api/v1/contacts/import

Pass subscriptions to subscribe imported contacts to lists per channel:

[
{ "channel_type": "whatsapp", "list_id": "<list_id>" },
{ "channel_type": "email", "list_id": "<list_id>" }
]

Imports that create subscriptions require you to confirm that you have the contacts' opt-in (optin_confirmed=true). The subscription's opt-in method is recorded as import — keep your own proof of the original consent (signup form, order checkbox, etc.).

Why Telegram, Messenger, and Instagram IDs cannot be imported

These platforms don't expose phone numbers or global user IDs to businesses. Instead they use scoped IDs:

  • Messenger assigns each user a page-scoped ID (PSID) — the same person has a different ID for every Facebook page they talk to.
  • Instagram works the same way with IG-scoped user IDs per professional account.
  • Telegram identifies users by a chat ID that only your specific bot can message.

A scoped ID from another system (or another page/bot) is meaningless for your channel — there is no way to translate it. The ID for your channel only comes into existence when the user messages you first. This is deliberate anti-spam design by Meta and Telegram: businesses cannot buy or transfer messenger audiences; every subscriber must initiate contact themselves.

That's why growing these channels is all about getting the first inbound message — deep links, QR codes, "Message us" buttons, and website widgets that open the conversation with the opt-in keyword pre-filled. As soon as the user's first message arrives, SendSeven creates the contact method automatically and processes the opt-in.

Opt-In Methods Reference

Each subscription records how consent was obtained:

opt_in_methodMeaning
keywordContact sent a START/subscribe keyword or used a deep link
widgetSignup via the website newsletter widget
double_opt_inConfirmed via double opt-in email link
single_opt_inDirect signup without confirmation step
importImported with optin_confirmed=true — consent obtained outside SendSeven
apiCreated via the API
manualAdded manually by a team member

Next Steps

  • Generate links, QR codes, and promo images: the Promotion tools section on the Widgets page in the app
  • Send your first campaign: Messaging Campaigns · Email Campaigns
  • Collect signups on your website: newsletter widget (Widgets → Create Widget)