> For the complete documentation index, see [llms.txt](https://docs.yaeris.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yaeris.com/software/yaeris-radar/email-outreach.md).

# Radar Email Outreach Campaigns

Connect Smartlead, Instantly, MailRush, or your own email (SMTP) to build a contact list, write your email, and run tracked campaigns.

Connect your own email-sending provider, build a contact list, and launch outreach campaigns — tracked opens, clicks, replies, and bounces where your provider supports it.

{% hint style="info" %}
You'll need to connect a provider before you can create a campaign — the **New campaign** button only appears once at least one connection is active.
{% endhint %}

### Connecting a provider

1. Go to **Outreach → Email Outreach → + Connect provider**.
2. Choose a provider:
   * **Smartlead** — full campaign platform, sequences, warmed sending accounts, webhook-driven tracking (opens/clicks/replies/bounces).
   * **Instantly** — same as Smartlead, plus AI reply classification.
   * **MailRush** — send-only. No campaigns, sequences, or tracking of any kind — Radar will only ever know whether a send succeeded or failed.
   * **Your Email (SMTP)** — send through your own Gmail, Outlook, Hostinger, or other mailbox instead of signing up for a dedicated provider. Also send-only, no tracking, and capped by a real daily safe-sending limit (see [Launching a campaign](#launching-a-campaign) below) — see the warning below before using this for any real volume.
3. Optionally give the connection a **Label** for your own reference (e.g. "Main Smartlead account").
4. For Smartlead/Instantly/MailRush, paste your provider **API key**. For **Your Email (SMTP)**, pick a preset (Gmail, Outlook, or Hostinger) or enter a custom host/port, then enter your email address and an **app password** — not your normal password.

{% hint style="warning" %}
**Hostinger runs two different email backends under one brand** — legacy "Hostinger Email" (`smtp.hostinger.com`) and newer "Titan Email" (`smtp.titan.email`). Picking the wrong one causes an authentication error even with the correct password. Check hPanel → Emails to see which backend your specific mailbox is actually on before choosing a preset — Radar offers both as separate options for exactly this reason.
{% endhint %}

5. Click **Connect** — Radar tests the credentials before saving them. Everything is stored encrypted.

{% hint style="warning" %}
**MailRush and SMTP have no tracking.** Neither supports campaigns, sequences, or webhooks — Radar will only ever know whether a send succeeded or failed, never opens/clicks/replies/bounces. SMTP carries an extra real risk on top of that: sending bulk-looking mail from a personal mailbox can get that mailbox rate-limited or suspended by Google/Microsoft/your host, which affects your real inbox too — not just the campaign. If you want tracking or real send volume, connect Smartlead or Instantly instead.
{% endhint %}

### Warming up your mailbox (SMTP only)

A brand-new or rarely-used personal mailbox has no sending reputation with Google/Microsoft yet — jumping straight into real campaign volume is exactly what gets an account rate-limited or suspended. Warm-up builds that reputation first, by trading a small, gradually-increasing volume of real send/reply traffic with a pool of mailboxes Radar maintains for this purpose, and automatically rescuing anything that lands in spam along the way.

1. On **Email Outreach**, find your connected SMTP mailbox and click **Enable warm-up**.
2. **Gmail or Outlook**: warm-up turns on immediately — nothing else to fill in.
3. **Any other provider** (including Hostinger): you'll be asked for that mailbox's IMAP host and port (a one-time setup) — needed so Radar can check whether mail landed in spam and pull it out if so. Use the same backend distinction as above: Hostinger Email's IMAP host is `imap.hostinger.com`, Titan's is `imap.titan.email`, both on port 993.
4. From there it runs on its own, no ongoing action needed:
   * Sends a low volume of email from your mailbox to Radar's decoy mailboxes, starting around 1-2 a day.
   * Gets a reply back after a random natural delay (5-45 minutes) — a real back-and-forth, not an instant round trip.
   * Checks your inbox for any of that traffic sitting in spam and rescues it automatically.
   * Volume ramps up on its own over about 6 weeks (roughly 1-7/day in week one, climbing to \~40/day by week six, then holding there) — you don't set this, it just follows the schedule.
5. The same row shows live progress once it's running: which day of the ramp you're on, today's sent count vs. today's target, and your total rescued-from-spam count. Click **View analytics** for the fuller picture — an **Email Health Score** (based on how much of your own warm-up traffic actually lands in the inbox vs. spam — not the same thing as Gmail/Outlook's own internal sender-reputation score, which isn't exposed via any public API), a week-by-week trajectory view, and a 7-day sent/received chart for that mailbox.
6. Click **Disable** to pause anytime — your progress is kept, so re-enabling later resumes the ramp instead of restarting at day one.

{% hint style="info" %}
The Email Health Score only counts messages IMAP finds still marked **unread** — if you've personally opened a warm-up email in your own inbox while checking on things, it can never be counted, even retroactively. If the score seems stuck, that's usually why, not a broken connection. It also can't move until a genuinely new, unread exchange has happened after IMAP was correctly configured — a same-day fix won't retroactively count exchanges that already completed.
{% endhint %}

{% hint style="warning" %}
**If this mailbox is also checked by a POP3 mail client (Outlook, a phone mail app, etc.) with "remove mail from server after download" turned on, the Email Health Score will stay at 0% forever, no matter how long warm-up runs.** That client downloads and deletes each incoming message before Radar's own IMAP check ever gets a chance to see it — so warm-up traffic is genuinely arriving, just never observed. This isn't a broken connection or a setup mistake on Radar's side. Fix it by switching that mail client to IMAP for this account, or, if it must stay on POP3, enabling "leave a copy of messages on the server."
{% endhint %}

{% hint style="info" %}
Each warm-up email sent from your mailbox costs credits from your Radar balance, same as a real campaign send (see Admin pricing for the current rate) — nothing is charged for the reply traffic coming back from Radar's decoy mailboxes. Warm-up volume and real campaign volume also **share the same daily safe-sending budget** for a mailbox — see [Launching a campaign](#launching-a-campaign) below.
{% endhint %}

**Warm-up Analytics** (a button next to Connect Provider once any mailbox has warm-up history) rounds up every mailbox you've ever warmed up in one place — total sent, total rescued from spam, and each mailbox's current ramp day and Email Health Score, with a link into that mailbox's own detail view.

### Building your contact list

Contacts is its own page in the sidebar (between **Bulk Crawl** and **Email Outreach**) — a shared pool of outreach targets reused across every campaign, organized optionally into named **groups**.

**Adding contacts** — three ways, all on the Contacts page:

* **Add one** — manually enter an **Email**, plus optional Company, First name, and Last name.
* **Paste CSV** — paste rows in the format `email,first_name,last_name,company` (a header row is detected and skipped automatically).
* **Upload Excel** — upload an `.xlsx` file with a header row; only an `email` column is required, `first_name`/`last_name`/`company` are optional and can be in any order. Click **Download a template** on this tab for a ready-made file with the right headers.

Each of these has an optional **Add to group** dropdown, so new contacts can land straight into a specific group instead of only the general pool.

**Contact groups** — create a named group (e.g. "Leads — Malaysia crawl") from the pill bar at the top of Contacts, and filter the contact table down to just that group by clicking its pill. Deleting a group only removes the tag — the contacts themselves stay in your pool.

**Adding contacts from a Crawler result** — on any completed crawl job's results page, tick the rows you want (only rows where an email was actually found show a checkbox), pick **All Contacts** or a specific group from the dropdown that appears, then click **Add N to Contacts**. Rows already in your contact pool are labeled so you don't accidentally re-add the same ones — either "✓ All Contacts" or the specific group name(s) they're already in.

**Verifying an email address** — click **Verify** next to any contact (or select several and click **Verify N**) to run a real, live check against that address's actual mail server — no third-party service, no extra cost. It shows one of:

| Status           | Meaning                                                                                                                                                                |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Valid**        | The mail server confirmed this specific mailbox exists.                                                                                                                |
| **Invalid**      | The mail server rejected it, or the domain can't receive email at all.                                                                                                 |
| **Risky**        | The domain accepts mail for *any* address ("catch-all") — Radar can't confirm this specific mailbox is real.                                                           |
| **Unknown**      | The check was inconclusive — often a slow/unresponsive mail server, or (rarely) an infrastructure issue on Radar's side rather than anything about the address itself. |
| **Not verified** | Never checked.                                                                                                                                                         |
| **Verifying…**   | A check is queued and in progress — the page updates on its own once it's done.                                                                                        |

Verification statuses show up again on the New Campaign page's Send-to list, so you can filter out anything but Valid before sending if you want.

**Managing contacts** — from the contacts table, **Unsubscribe**/**Resubscribe** a contact, or **Remove** it entirely.

{% hint style="info" %}
Unsubscribing a contact only stops *future Radar campaigns* from including them — it does not call your provider's own unsubscribe or suppression list.
{% endhint %}

### Writing your email template

The **Body** field on the New Campaign form has two modes, switchable at any time — content carries over between them either way:

* **Simple editor** — a normal rich-text editor (bold, italic, headings, bullet/numbered lists, links) for anyone who doesn't want to write HTML by hand. Includes an **Insert merge tag** dropdown so you don't have to type `{{...}}` yourself.
* **HTML custom code** — a raw HTML textarea for full control.

**Merge tags** — `{{first_name}}`, `{{last_name}}`, `{{company}}`, `{{email}}` — each is replaced with that recipient's real value when the email actually sends, in either mode.

**Inserting images (Simple editor only)** — paste an image directly with **Ctrl-V**, or click the **Image** button in the toolbar to pick a file. Either way, it uploads to real hosted storage (the same system behind the Image Hosting tool) rather than embedding it as raw data — click an inserted image and drag the small handle at its bottom-right corner to resize it.

{% hint style="info" %}
Each image upload through the editor is billed like a normal Image Hosting upload (a small credit charge — see Admin pricing) — not free just because it happened inside the campaign editor.
{% endhint %}

**Automatic link tracking (UTM tagging)** — every link in your email body automatically gets `utm_source`/`utm_medium`/`utm_campaign` parameters added when the campaign actually sends, so a click can be attributed back to this exact campaign in Google Analytics once the recipient lands on your site. Nothing to set up — it applies to every link, in both editor modes. A link that already carries its own `utm_*` parameters is left untouched (Radar never overrides tagging you've already done yourself); non-web links (`mailto:`, page anchors) are skipped.

{% hint style="info" %}
**An AI assistant (Claude, ChatGPT, etc.) can generate this HTML for you** — ask it for a clean, inline-styled HTML email (not a full webpage), then paste the result straight into **HTML custom code**. Worth telling it explicitly: inline CSS only (no `<style>` block — many inboxes strip it), a single-column layout around 600px wide (avoid CSS grid/flexbox — Outlook desktop doesn't support them), no JavaScript (stripped everywhere), and real hosted image URLs rather than embedded/base64 images (most inboxes block or strip those).
{% endhint %}

**Via API/MCP, this already works without the dashboard at all.** The same `body` field on `POST /email-outreach/campaigns` (REST) and the `create_email_campaign` MCP tool accepts this HTML directly — an AI agent can generate the email and launch the campaign in the same request, no copy-pasting required. See **Settings → MCP** in the dashboard for connection details, or the full API reference for the exact request shape.

### Content Compliance

Every campaign — created from the dashboard or via the API/MCP — has to pass a content compliance check before it's allowed to send, and needs a business mailing address on file before it can be created at all. Both checks apply no matter which provider you're sending with.

**Compliance scan** — runs automatically the moment you try to create a campaign, in two layers:

1. **Keyword scan** (instant, no cost) — checks your subject and body against a blocklist across five categories: illegal content (CSAM, terrorism, unlicensed weapons/drugs, stolen data), weapons/firearms, adult/explicit content, gambling, and phishing/scam patterns (impersonation, fake urgency, advance-fee fraud, credential harvesting).
2. **AI classifier** — only runs if the keyword scan comes back clean. An AI model re-checks the same five categories to catch paraphrased or disguised violations the keyword scan alone would miss.

If either layer flags a violation, campaign creation is blocked outright and Radar tells you which category triggered it — there's no warning-only mode that lets a flagged campaign through.

{% hint style="info" %}
Scanning malicious or phishing links against a dedicated link-safety database isn't part of this yet — that's planned as a follow-up once a suitable API key is in place. Today's check covers subject/body text only.
{% endhint %}

**Business mailing address** — CAN-SPAM and GDPR both require a physical mailing address and a working unsubscribe link on every commercial email. Set yours once under **Settings → Business Info**. Campaign creation is blocked with a clear error until this is filled in.

**Automatic compliance footer** — once your business address is set, every email sent through **Your Email (SMTP)** or **MailRush** automatically gets a footer appended after your own content, containing:

* Your business mailing address.
* A real, working, per-recipient **Unsubscribe** link.

You don't need to add either of these to your template yourself — Radar appends them at send time.

{% hint style="warning" %}
**The automatic footer applies only to SMTP and MailRush sends.** Smartlead and Instantly campaigns are not covered — those platforms do their own per-lead template merging after Radar hands off your template, and as full sales-engagement platforms they already have their own native unsubscribe/compliance handling built in.
{% endhint %}

Clicking the unsubscribe link marks that contact as unsubscribed in Radar, the same flag used elsewhere on this page — they're excluded from all future campaign recipient selections automatically.

### Launching a campaign

1. Go to **New campaign**.
2. Choose **Send with** — which connected provider/account to send from.
3. Choose your **sending account(s)**:
   * **Smartlead/Instantly** — tick from a live list of your connected sending inboxes.
   * **SMTP** — the mailbox you picked in step 2 sends by default. You can also check additional connected SMTP mailboxes below it to **rotate sends across several mailboxes at once** — more mailboxes means both a faster send and less volume through any single one, since each mailbox paces itself independently and they all send concurrently. Each mailbox listed shows whether it's warming up and how much of its safe daily volume is left today.
   * **MailRush** — type a from-address that's already active on your MailRush account (Radar can't verify it in advance).
4. Name the campaign.
5. Write your **Subject** and **Body** (see [Writing your email template](#writing-your-email-template) above) — this is what the [content compliance check](#content-compliance) scans before the campaign can be created.
6. Tick who to send to from your contact list (up to 500 at a time — unsubscribed contacts are excluded automatically). Use the **Group** and **Verification** filters above the list to narrow it down first, then **Select all shown** / **Deselect all shown** to work with just what's currently filtered.
7. Choose **When to send**:
   * **Send now** (default) — starts sending as soon as you click the button below.
   * **Schedule for later** — pick a future date/time; the campaign is created but held until then, with a **Scheduled** badge shown on both the campaign list and its detail page. Radar checks for due scheduled campaigns every 15 minutes, so it fires within about that window of your chosen time, not to the exact minute. Contacts and their verification status are locked in at send time, not when you schedule it — anything you unsubscribe/verify/remove between now and then is reflected at the actual send.
8. Click **Send campaign** (or **Schedule campaign**, when scheduling).
9. Open the campaign afterward to see live counts per status: Queued, Sent, Opened, Clicked, Replied, Failed, Bounced, Unsubscribed (SMTP/MailRush connections only ever show Queued/Sent/Failed — no tracking beyond that). A pending scheduled campaign shows a **Cancel** button instead — cancelling deletes it outright, since nothing has touched its recipients yet.

{% hint style="warning" %}
**SMTP campaigns respect each mailbox's real daily safe-sending limit** — the same warm-up-aware capacity used by the warm-up engine (roughly matching its ramp if warm-up is on, or a flat 40/day ceiling if it's never been turned on), shared between warm-up traffic and real campaign traffic. If your recipient list is bigger than what your selected mailbox(es) can safely send today, Radar sends what fits now and shows you an estimated number of days for the rest — it finishes automatically as capacity resets each day, no action needed from you. This is deliberate: it's what stops a still-warming mailbox from being blasted with a full campaign in one shot.
{% endhint %}

{% hint style="info" %}
Sending needs a positive Radar credit balance — if your balance runs out, campaign creation is blocked with a message asking you to top up. For a scheduled campaign, this check happens when it actually fires, not when you first schedule it.
{% endhint %}
