Newsletters
Create targeted email campaigns with opt-in recipients, sender setup, scheduling, and delivery analytics.
Newsletters
Newsletters let a Workspace create email campaigns, target subscribed recipients, send through configured sender accounts, and review delivery results.
Configure newsletters
- The Workspace must have the
newslettersfeature enabled and your role needs newsletter permissions. - Open Workspace Settings -> Newsletters to review monthly Einblick-hosted sending usage, choose the signup mode, and check whether SMTP or Google Workspace senders are available. Configure sender accounts, sending-domain DNS verification, and domain identities under Workspace -> Email.
- Choose whether public API newsletter signups subscribe immediately or require email confirmation before the address becomes eligible.
- Use Contact Groups to maintain newsletter-specific audience lists.
Contact groups
- Create contact groups from Contact Groups. Lists show member counts, and each detail page lets you switch between groups, edit metadata, add one active contact at a time, and remove existing members.
- From the Contacts list, selected-row actions can add active contacts to an existing group or create a new group from the selection. Users who can read Newsletters also see contact group columns and filters in contact tables.
- Each group has a slug generated from its title. Public signup commands can add contacts to published groups by passing those slugs.
- Archived contact groups disappear from campaign targeting and from the active group list.
Create a campaign
- Open Newsletters, create a draft, and choose a starting template: Blank, Basic, or Einblick-style.
- Use Campaign Settings to set the internal name, subject, preheader, sender identity, and audience. The selected identity supplies the sender type, from address, from name, and reply-to address; these values are read-only in the campaign.
- Build the email with newsletter blocks: container, heading, formatted rich text, image, button, divider, spacer, columns, and unsubscribe.
- Save editor changes explicitly with Save or Cmd/Ctrl+S. Sending saves dirty content first.
Double-click the campaign title in the editor header to rename it. If you close the editor with unsaved content, Einblick asks whether to save and exit, discard the changes, or keep editing.
Only draft campaigns are editable. Once a campaign is scheduled, sending, sent, cancelled, or blocked, the campaign content and audience become read-only.
Blank starts with an empty content container and an unsubscribe footer. Basic adds starter copy and a call-to-action button. Einblick-style adds a branded sample layout with a logo, banner image, two-column section, and footer.
The editor supports drag-and-drop layout, desktop and mobile previews, theme colors, font family and font size, per-block margins, container background/padding/corners, button alignment and size, and image width/corners. Rich text supports bold, italic, links, lists, inline text color, a default font size, per-block font-size overrides, and recipient variables such as contact name, email, company, job title, phone, and unsubscribe URL. Image blocks can use uploaded files, external URLs, or AI-generated images saved in the shared newsletter folder. Image generation uses Workspace AI limits; prompts can be up to 2,000 characters and generated files over 15 MB are rejected.
Campaign detail and editing
- Opening a campaign row shows its preview, status, sender, recipient counts, and a readiness checklist. Metadata, sender, and audience are maintained in Campaign Settings; the editor focuses on content and theme.
- Draft campaigns send tests from the detail page. Other campaign states keep the content and audience locked.
- Any campaign can be duplicated into a new
draftwith copied metadata, content, sender settings, and audience targets. - Campaigns in
sending,sent,cancelled, orblockedstate link to the analytics table.
Audience and opt-in
Campaign audiences can include individual contacts, contact groups, users, user groups, and organizations. Organization targets expand to the contacts linked to that organization.
The audience editor stores each target as a typed row. Contact group rows can also create a new group inline and add it to the campaign once it is saved.
Before queueing a campaign, Einblick resolves the audience and shows recipient counts:
- Eligible recipients have a valid email and an active newsletter subscription.
- Missing opt-in recipients have not subscribed yet.
- Unsubscribed, invalid, and duplicate addresses are excluded.
Only eligible recipients are queued for delivery. You can manage a contact's subscription from the contact detail page.
Einblick checks eligibility again immediately before handing each email to the provider. A recipient who unsubscribes after the campaign starts is cancelled instead of receiving the email.
Public signup
- Grant the
newsletters.signupwrite action to an API key before external forms can call the signup command. - The command accepts an email plus optional first name, last name, contact group slugs, locale, and confirmation URL.
- Einblick creates or updates the contact, adds the contact to published groups matching the requested slugs, and either subscribes immediately or returns
pending_confirmation. Unknown group slugs fail the command. - In double-opt-in mode, Einblick sends a confirmation email and keeps the subscription pending until the link is opened. Confirmation tokens expire after seven days. A custom
confirmationUrlmust be an absolutehttporhttpsURL; it can include{token}or receive the token as a query parameter.
Send and schedule
- Use Send test to send the current draft to a test address.
- Use Send now to queue eligible recipients immediately.
- Use Schedule to queue the campaign for a future date and local time. Scheduled campaigns can be cancelled before they start sending.
- The send popover blocks campaigns without an audience or eligible recipients and saves dirty editor content before sending.
- Choose a managed, SMTP, or Google Workspace sender identity in Campaign Settings. Managed identities use a verified newsletter domain or the Workspace fallback address; sender and reply-to values cannot be changed separately on the campaign.
Usage and limits
Einblick-hosted sending tracks monthly recipient usage. Queueing a campaign reserves the eligible recipient count, then releases or records those recipients as deliveries succeed, fail, or are blocked. If a Workspace limit is enforced, queueing can be blocked when the campaign would exceed the remaining allowance.
Analytics and unsubscribe
- Open a campaign's analytics page to review accepted, delivered, bounced, complained, suppressed, acceptance-unknown, blocked, and cancelled deliveries. Acceptance unknown remains pending until delivery is resolved.
- Each delivery row shows the recipient, source, status, attempts, last event time, and error message when available.
- Newsletter emails include unsubscribe handling and list-unsubscribe headers. If the campaign content does not already contain the recipient's unsubscribe URL, Einblick appends a small unsubscribe footer.
- When a recipient unsubscribes, future campaign previews mark that address as unsubscribed and exclude it from delivery.
- With the managed sender, a previous permanent bounce, spam complaint, or provider suppression can suppress later deliveries before they reach the outbox. SMTP and Google Workspace senders do not yet use this pre-send suppression list. Provider-reported Suppressed deliveries count as failed.