Overview
This reference lists the confirmed staff-facing areas, campaign settings, delivery rules, subscriber details, and reporting surfaces in the email marketing area.
Use this page when you need a quick reminder of what exists, what controls are available during campaign setup, and what factors can affect final delivery.
Staff-facing areas
The email marketing area includes:
CampaignsTemplatesSubscribersInterest GroupsAudience GroupsEmail PerformanceEmail Audience Health
These areas are often used together during campaign preparation, audience review, topic setup, template reuse, and post-send analysis.
Campaign settings
Confirmed campaign settings include:
- name
- subject
- template
- scheduled send time
- send-to-all toggle
- audience groups
- required interest group
- secure member autologin
- from name and from email
- open tracking
- click tracking
- UTM tracking and overrides
Campaign setting guidance
Name
Internal campaign label used by staff.
Subject
The subject line supporters see in their inbox.
Template
Optional reusable content structure for campaigns with recurring layouts or branding patterns.
Scheduled send time
Used when the campaign should be sent later instead of immediately queued for current processing.
Send-to-all toggle
Used when the campaign should go to all broadly eligible subscribers for the selected topic, rather than to selected audience groups only.
Audience groups
Define the audience scope the team wants to consider for the send.
Required interest group
Defines the topic-level permission gate used during delivery eligibility checks.
Secure member autologin
Optional campaign feature when secure member-access behavior is relevant.
From name / from email
Controls the sender framing supporters see and can influence trust, recognition, and engagement.
Open tracking
Tracks opens where supported by client behavior and tracking conditions.
Click tracking
Tracks link click activity where campaign tracking behavior applies.
UTM tracking and overrides
Controls whether UTM parameters are applied and how campaign-level tracking values are set.
Delivery rules
Campaign delivery can still suppress recipients who are:
- marked
Do not contact - tenant-unsubscribed
- not eligible for the selected interest group
Delivery model note
The selected audience does not equal the final delivered audience.
The audience setup defines the initial scope. Final delivery still depends on suppression, unsubscribe, consent, and campaign eligibility checks.
This is important when staff are investigating why a campaign audience appears smaller than expected.
Subscriber records
Subscriber records include:
- first name
- last name
- status
- subscribed and unsubscribed timestamps
- optional notes or metadata JSON
These records help staff review email-specific contact context for one person or address.
Templates
Templates are reusable campaign starting points.
They are especially useful for:
- recurring newsletters
- event invitation structures
- stewardship formats
- consistent branded campaign layouts
A template improves consistency, but it should still be reviewed before reuse in a live campaign.
Email builder blocks
The active builder is Easy Email.
Confirmed sidebar categories and cards:
Layouts:1 column,2 columns,3 columns,4 columnsContent:Text,Image,Button,Social,Divider,Spacer,Hero,WrapperNonprofit:Event spotlight,Event CTA,Event details + CTA,Program spotlight,Program CTA,Program details + CTA,Giving appeal,Giving CTA,Donation form spotlight,Campaign goal,Supporter quote,Image + Appeal,Impact story,Conditional ContentPersonalization:Personal greeting,Donation recap,Event reminder,Footer signatureLinks:Member portal CTA,Preferences CTA,Donation CTA,Event registration CTA,Dashboard CTA,Unsubscribe footer
Event, program, and giving blocks open record picker modals before insertion. Story blocks insert editable starter content directly. Conditional Content appears with the Dynamic Content family label and opens the conditional rule modal before insertion.
Dynamic content
Conditional Content
Conditional Content is available in the Easy Email builder with the Dynamic Content family label.
It inserts a marked section that is shown or hidden for each recipient at render time.
Supported condition sources are:
Profile:email,first name,last name,nameGiving history:has ever donated,last donation amount,lifetime giving amount,last donation dateEvent engagement:has ever attended event,attended event count,has upcoming registration
Rules can use all matching, where every condition must pass, or any matching, where one passing condition is enough.
Example rules:
- show when profile email is not blank
- show when last donation amount is greater than 100
- show when attended event count is greater than 0
- show when upcoming registration exists
Invalid or malformed conditional rules fail closed, so the marked content is hidden rather than shown unexpectedly.
Current preview limitation
Template-only builder preview may show the conditional placeholder without applying recipient-specific filtering. Use campaign preview and test sends to verify how content renders for real recipient contexts before queueing.
Giving and event-engagement rules require a reliable recipient/constituent context. In the current implementation, SendportalSubscriber is not mapped to TenantUser until a durable subscriber-to-constituent identity link exists, so profile rules are safest for regular SendPortal campaign recipients.
Conditional content implementation notes
Conditional sections are stored in the email HTML with marker comments:
<!-- altrinum:conditional:v1 BASE64URL_JSON_RULES -->
...content...
<!-- /altrinum:conditional:v1 -->
The rules payload is evaluated by ConditionalContentEvaluator.
Recipient context is built by ConditionalContentContextBuilder.
Conditional HTML sections are filtered by ConditionalContentHtmlFilter.
SendPortal campaign content is filtered in MergeContentService.
When adding new condition sources, fields, or operators, allowlist them in both the Easy Email frontend metadata in resources/js/easy-email/app.jsx and the backend evaluator/context builder. The marker format should remain stable unless a new marker version is introduced.
Invalid rules should continue to fail closed.
UTM tracking for email campaigns
Tenant-wide UTM defaults are configured in Workspace Settings > Campaign Email UTM Tracking.
The settings are implemented in app/Livewire/Filament/Dashboard/TenantSettings.php and stored under the tenant settings.email_utm array.
Confirmed tenant settings:
Enable automatic UTM tagging for campaign emailsDefault UTM SourceDefault UTM MediumUTM Campaign PatternUTM Content PatternUTM Term Pattern
Campaign-level controls are configured in app/Filament/Dashboard/Resources/SendportalCampaigns/Schemas/SendportalCampaignForm.php.
Confirmed campaign controls:
Apply UTM trackingUTM source overrideUTM medium overrideUTM campaign overrideUTM content overrideUTM term overrideUTM tracking preview
The render-time implementation is CampaignEmailUtmTagger, called by MergeContentService for campaign messages.
When enabled, missing UTM parameters are appended to HTTP and HTTPS links in marketing campaign email HTML at final render. Existing UTM parameters are preserved and not overwritten.
Skipped links include:
- signed links with a
signaturequery parameter - preferences links
- unsubscribe links
- secure member-access links
- non-HTTP links such as
mailto:,tel:, and page anchors
Supported parameters:
utm_sourceutm_mediumutm_campaignutm_contentutm_term
Supported pattern tokens:
{campaign_id}{campaign_name}{campaign_slug}{tenant_id}{tenant_name}{tenant_slug}{date}
Recommended naming convention:
- use lowercase values
- use hyphens instead of spaces
- keep
utm_sourcefocused on the channel or list source, such asnewsletter - keep
utm_mediumconsistent for email, such asemailormarketing-email - use
utm_campaignfor the campaign family, such asspring-appeal-2026 - use
utm_contentfor link placement or variant, such ashero-button - use
utm_termonly when the team has a clear keyword, audience, or internal term convention
Conditional content manual QA
Before releasing changes to conditional content, verify:
- insert a
Conditional Contentblock - configure a profile rule
- configure a giving rule
- configure an event rule
- save the campaign
- confirm the marker comments are present in saved content or MJML if inspectable
- preview or test-send with a recipient who should match
- preview or test-send with a recipient who should not match
- confirm normal personalization tokens still render inside visible conditional content
Audience groups vs interest groups
This distinction is central to the email system.
Audience groups
Used for targeting and segmentation.
They answer: “Who are we considering for this send?”
Interest groups
Used for topic-level communication eligibility.
They answer: “Who is allowed to receive this topic?”
A campaign may use both at the same time.
Performance areas
Confirmed reporting surfaces include:
- campaign-level reports
- workspace email KPI overview
- audience health buckets
- secure autologin campaign visibility table
Reporting guidance
Campaign-level reports
Best for reviewing one specific send in detail.
Workspace email KPI overview
Best for broader cross-campaign performance review at the tenant level.
Audience health buckets
Best for understanding list quality, suppression patterns, and send-readiness issues.
Secure autologin campaign visibility table
Useful where secure member-access campaign behavior needs review.
Operational notes
- Email marketing access depends on the tenant email module.
- Editing is limited once a campaign is queued, deployed, or cancelled.
- Audience groups define scope, but do not override suppression or interest-group logic.
- Topic-level eligibility remains important even when a segment is very narrowly defined.
- Tracking setup should be reviewed before queueing, especially for campaigns tied to broader reporting or fundraising analysis.
Example role-based usage
A communications team may work mainly in:
CampaignsTemplatesEmail Performance
Operations or compliance-focused staff may also spend time in:
Email Audience Health- subscriber review
- campaign delivery troubleshooting
A fundraising team may rely on:
- audience groups for targeting
- interest groups for topic alignment
- campaign reports to assess appeal performance