> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apollospace.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Marcus — the outbound agent

> Writes and sends email and WhatsApp campaigns in sequence, landing in the recipient's real inbox.

## What it does

**Marcus** is the agent that **runs outbound** — when you need to
**reach** leads at scale without sacrificing individual quality,
Marcus is who operates.

It combines:

* **Lead research** (via Scout under the hood)
* **Message composition** in your team's voice
* **Real delivery** via WhatsApp (Twilio) or email (Resend)
* **Reply tracking** and inbound routing

Not the right agent for:

* Pure research without action (Scout)
* General CRM operations (Athena)
* Post-reply conversation with the customer — that moment passes to a human
  (or the Twin of whoever owns the relationship)

## Campaign flow

<Steps>
  <Step title="Define the audience">
    You select a set of leads (CRM filter, imported list, entire pipeline).
    Marcus operates **per lead** — it does not blast identical text.
  </Step>

  <Step title="Signal gather">
    For each lead, Marcus calls Scout (via Tavily) looking for public signals:
    a recent post, a new hire, an award, a title change. It cites at least
    3 snippets before composing.
  </Step>

  <Step title="Compose (draft)">
    With the signals, the org's voice, and the recipient's persona, Marcus
    drafts the message. At this point it also decides:

    * channel (email vs. WhatsApp — based on what's available)
    * tone (formal vs. casual — follows the org's `voice_md`)
    * call-to-action (ask for a reply, schedule a call, send a link)
  </Step>

  <Step title="HITL — human approval (optional)">
    By default every draft stays at `status='pending'` and appears as an
    "awaiting approval" card in chat. You review, edit freely, approve **or**
    reject.

    Alternative settings:

    * **Auto-approve** for low-risk campaigns (newsletter, public event) —
      Marcus sends immediately
    * **Approve-by-batch** — approve all drafts from a run at once
      (after spot-checking 3–5)
  </Step>

  <Step title="Send">
    After approval, Marcus sends via the configured channel:

    * **WhatsApp** — via your Twilio account (BYO key)
    * **Email** — via Resend or Gmail (Composio), depending on what
      you connected

    Each send is idempotent (retries do not duplicate the message).
  </Step>

  <Step title="Tracking + follow-up">
    Marcus monitors replies:

    * **Reply detected** → routes to the relationship owner's chat
    * **No reply in N days** → triggers the next touch in the cadence
    * **Bounce / opt-out** → marks the lead as invalid and stops the sequence
  </Step>
</Steps>

## HITL — when the agent waits

Default: **every** outbound message goes through approval. You see the
card in chat with:

* Rendered message text
* Cited signals (Tavily snippets that informed the composition)
* Projected cost in Stars
* **Approve / Edit / Reject** buttons

<Tip>
  For teams that want speed once they have dialed in their voice: you can
  **approve an entire run by sampling** — open 5 random drafts from the
  run; if they all look good, approve the batch.
</Tip>

## Customizing via your org's voice

Marcus loads your organization's **`voice_md`** — a markdown document
that describes:

* How the team presents the company (short name, tagline, one-line USP)
* How it greets people (formal "Dear" vs. casual "Hey")
* Vocabulary to avoid ("innovative", "disruptive", etc.)
* Default signature
* Tone policy per channel (WhatsApp can be more informal than email)

This document is **editable by the team** — it is versioned and every
change is audited. Marcus re-reads it on every run.

## Inbound tracking

When a recipient replies:

| Channel                               | How Marcus detects it                                                            |
| ------------------------------------- | -------------------------------------------------------------------------------- |
| **Email**                             | The email provider's webhook triggers automatic tracking                         |
| **WhatsApp**                          | The messaging provider's webhook triggers automatic tracking                     |
| **Manual reply outside the platform** | Marcus does NOT capture it — the human must log the activity in the CRM manually |

The reply becomes a **lead activity** + **chat notification** for the
relationship owner. Marcus does **NOT** reply to the reply — that is the
human's role (or their [Twin](/en/agents/digital-twins)).

## Cadence

You define the cadence per campaign — how many touches, on which channel,
with what spacing. The suggested defaults for B2B outbound alternate
email + WhatsApp over several weeks with a different angle on each touch.

The cadence **automatically respects the WhatsApp 24-hour window** —
outside it, Marcus uses a Meta-approved template instead of free-form.

## Metrics Marcus exposes

Per campaign + per touch:

* **Delivery rate** (delivered / sent)
* **Open rate** (email only — WhatsApp has no reliable read receipt)
* **Reply rate**
* **Reply-to-CTA rate** (replies that accept the call-to-action)
* **Opt-out / bounce rate**
* **Total campaign cost** in Stars

## Next steps

<CardGroup cols={2}>
  <Card title="WhatsApp setup" icon="comments" href="/en/guides/set-up-whatsapp">
    Connect your Twilio account and approved number.
  </Card>

  <Card title="Outbound feature" icon="paper-plane" href="/en/features/outbound">
    Details on sequences and campaign types.
  </Card>

  <Card title="Scout — the research behind it" icon="binoculars" href="/en/agents/scout">
    Marcus calls Scout for each lead. Learn how.
  </Card>

  <Card title="Outbound costs" icon="star" href="/en/billing/stars">
    How much each WhatsApp / email touch deducts from your wallet.
  </Card>
</CardGroup>
