Campaigns

Campaigns orchestrate the sending of phishing emails to target lists using configured templates, servers, and profiles.

Overview

A campaign combines:

  • An email template

  • Target lists (one or more)

  • A sending server

  • A sender profile

  • Delivery configuration


Campaign configuration

Basic Settings

  • Campaign name: internal identifier for the campaign

  • Template: select the email template to use in the campaign

  • Sending server: SMTP server for delivery

  • Sender profile: email account to use for delivery

  • Target lists: select one or more lists

Delivery Options

Duplicate Targets

Deduplicates targets by email address across all selected lists, retaining only the first occurrence. Enabled by default.

Batching

Enable batch sending for rate limiting.

  • Batch size: number of emails per batch

  • Batch delay (seconds): pause between batches

A default 0.3-second delay is applied between individual emails. This setting can be adjusted via the DEFAULT_MAIL_DELAY environment variable.

Running a campaign

By default, campaigns are created in a stopped state, allowing operators to review configuration before execution. At creation time, the following options are also available:

  • Run campaign now: start sending as soon as campaign is created

  • Schedule start: set a future start date/time for the campaign

These options can also be configured from the campaign details view, which allows operators to manually start, pause, schedule, or reschedule campaigns.

The scheduler uses the timezone from the environment config (SCHEDULER_TIMEZONE).

Custom Headers

It's also possible to add custom email headers in a campaign. For example:

However, there are some reserved headers that cannot be overriden:

  • From

  • To

  • Subject

  • Date

  • Message-ID

  • MIME-Version


Campaign states

A campaign goes through different states

State
Description
Actions

Stopped

Not started

Start, Schedule, Archive

Scheduled

Waiting for start time

Edit time, Cancel

Running

Actively sending

Pause, Archive

Paused

User-paused

Resume, Archive

Completed

All emails sent

Archive, Export

Failed

Error occurred

Review errors & Resume, Archive

Archived

Read-only

View only, Delete


Campaign in process

Resource locking

When a campaign begins, some resources are locked in order to prevent inconsistencies.

For that reason:

  • Sending servers and sender profiles cannot be editted or deleted until a running campaign completes

  • Target lists are snapshotted once the campaign starts. Targets are pulled from this snapshot, meaning additions to the target list after campaign initiation will not be included in the running campaign. Targets lists and individual recipients associated with an active campaign cannot be deleted until it is completed

  • Email templates in use are locked from deletion but can be modified in real-time. Any modification in a template will be immediately reflected in ongoing campaigns

Monitoring progress

The campaign details page provides real-time updates including:

  • Campaign configuration

  • Email statistics: total, sent, pending, and failed counts

  • Email delivery timeline

  • Real time updates of each recipient's status

Campaign pausing

Campaigns can be paused to temporarily halt message delivery and can be resumed at any time.

Email Retry Logic

Failed emails are automatically retried:

  1. First failure: wait 60 seconds, retry

  2. Second failure: wait 5 minutes, retry

  3. Third failure: mark as failed, pause campaign

Three consecutive failures typically indicate invalid SMTP credentials, server connectivity issues, or configuration errors. Automatic pausing prevents mail server penalties and allows investigation of the root causes.

Campaign completion & results

Viewing Results

Once a campaign is concluded, it will be marked as complete.

A detailed overview of the entire campaign configuration will be then available, along with a record of all emails sent to each recipient and their corresponding timestamps.

In addition, a complete list of all generated variable values (e.g., {{randomID}} or other custom variables) for each email log entry will be displayed. These values can be easily viewed and filtered through a user-friendly search interface. This information is essential for accurate tracking and correlation.

Tracking opened emails

Tangled does not automatically track email opens. However, it allows you to record when a target has opened an email. This can be done either manually or through the use of variables.

This approach allows operators to implement custom tracking logic on external infrastructure, avoiding exposure of the mailing server and offering greater flexibility in how tracking and access registration are handled.

Manually tracking opened emails

When you confirm a target opened the email:

  1. Find the email in logs

  2. Click Mark as Opened

  3. Access timestamp is recorded

Tracking via variables

Generated variables can be embedded in links for automatic tracking calling an API endpoint (see API Reference for more details). Below are some simplified examples based on real-world scenarios:

Website that receives the random ID parameter in the id parameter.

In the website's backend, the operator registers all randomIDs received when the pixel is loaded and calls the API endpoint to automatically register all values received.

Note: Additional measures may be required to prevent false positives caused by anti-spam and anti-malware bot scanning. Operators should implement appropriate filtering logic in their tracking infrastructure to reliably identify genuine user interactions.

Exporting Data

Clicking the "Export Results" button downloads an Excel file containing:

  • Recipient data (name, email, extra field)

  • Send status (time sent and result)

  • Open status and timestamp

  • All generated variables (static and per-recipient)

This will allow keeping track for analysis and reporting.

Archiving Campaigns

Once a campaign is no longer needed, the Archive button can be clicked within the campaign view —even if the campaign has not yet finished. The campaign will then be marked as read-only.

Archived campaigns remain accessible under the Campaigns > Archived tab.

It is also possible to click "Archive All" in the top-right corner to archive all non-running campaigns at once.

Deleting Campaigns

Only archived campaigns can be deleted. Once a campaign is deleted, all associated data, including email logs, will be permanently lost. This action cannot be undone.

It is also possible to delete all archived campaigns at once by clicking the top-right button in the Archived Campaigns tab.

Last updated