# Set Up the Outbound Email Skill



Give your AI agent a repeatable workflow for outbound email. The **Surface
Campaign Pipeline** skill sets up three tasks in Surface: find prospects,
qualify accounts, and prepare personalized outreach. Campaign context,
research, and progress stay in your Surface Vault so each task can pick up
where the last run left off.

<CampaignSkill />

The skill prepares inactive drafts for review. It does not launch campaigns
or send emails. You can start with setup only, test the tasks, then enable
recurring runs when you are ready.

## What You Will Set Up [#what-you-will-set-up]

| Task               | What It Does                                                                          | What It Saves                                                       |
| ------------------ | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **Prospect**       | Finds companies and contacts that match your ideal customer profile (ICP).            | Account and contact records with their sources.                     |
| **Qualify**        | Checks account evidence against your campaign's qualification criteria.               | Decisions, supporting evidence, and research still in progress.     |
| **Draft Outreach** | Uses qualified account evidence to personalize email sequences for eligible contacts. | Complete email copy and, where supported, inactive provider drafts. |

The tasks use the providers available in your Surface environment. A specific
provider is not required by the skill. If your outreach connection cannot
support the draft workflow, the agent can save personalized copy in Vault
and explain what needs to happen manually.

## Before You Start [#before-you-start]

You will need:

* An AI agent connected to Surface MCP. To install the ZIP for repeat use,
  your agent also needs local skill support.
* A Surface environment with access to Vault, campaign tools, and scheduled
  tasks through MCP. Ask your agent to check that these tools are available.
* Connected providers for the discovery and research you want to perform.
  Creating drafts in an external provider also requires a suitable outreach
  connection and a verified sender mailbox.
* Your company website, target audience, and the criteria that make an account
  worth contacting.

Connect your agent using [Surface MCP Setup](https://www.withsurface.com/docs/mcp-server/setup). The connection
must allow the writes needed to create campaign files and tasks.

## Choose How to Use It [#choose-how-to-use-it]

**Copy instructions** is the quickest way to start. Paste the combined Markdown
into an agent connected to Surface MCP, then provide your campaign details.
All supporting instructions are included, so you do not need to install any files.

**Download skill** is the reusable installation option. Extract the ZIP and place the **entire
`surface-campaign-pipeline` folder** in your agent's skills directory. Use your
agent's skill installation instructions to choose the location.

Keep these files together:

```text
surface-campaign-pipeline/
  SKILL.md
  agents/
    openai.yaml
  references/
    vault-contract.md
    task-instructions.md
    recovery.md
```

`SKILL.md` is the entry point. The reference files contain the campaign
structure, task instructions, and recovery procedures it uses during setup.
Copying only `SKILL.md` leaves the installation incomplete.

## Set Up Your First Campaign [#set-up-your-first-campaign]

Copy this prompt into your agent and replace the bracketed values:

```text
Use the Surface Campaign Pipeline instructions to set up an outbound email campaign.

Company: [company name and website]
Surface environment: [team and environment]
Target accounts: [industry, geography, company size]
Target contacts: [roles or personas]
Qualification criteria: [evidence that makes an account a fit]
Offer: [what we can help with]
Exclude: [customers, competitors, domains, or other exclusions]
Preferred providers: [names, or inspect my available Surface connections]
Sender: [verified mailbox and sender first name, or leave unresolved]
Timezone: [for example, America/Los_Angeles]

Create the campaign files and three tasks. Use the skill's suggested starting
limits and leave the tasks paused. Report missing connections or information.
Do not run the tasks, enable recurring runs, or send any emails.
```

The agent checks your available connections and existing campaigns, builds
the campaign files, and creates paused tasks. If it finds a matching campaign,
it should resume that setup using the saved records.

### Suggested Starting Settings [#suggested-starting-settings]

| Setting               | Starting Value                                                            |
| --------------------- | ------------------------------------------------------------------------- |
| Schedule              | Hourly: Prospect at :00, Qualify at :20, Draft Outreach at :40            |
| Prospect Batch        | Up to 5 new accounts and 10 contacts per run, with 2 contacts per account |
| Qualify Batch         | Up to 3 accounts per run                                                  |
| Draft Outreach Batch  | Up to 3 contacts per run                                                  |
| Initial Account Limit | 30 accounts for initial testing                                           |
| Email Sequence        | Four steps, on business days 0, 3, 7, and 11                              |

These are starting limits, not promised output. Your agent can adjust them
for your campaign and provider capabilities. The scheduled offsets do not
guarantee that an earlier task has finished; each task uses saved, eligible
records from the previous stage.

## Review Your Setup [#review-your-setup]

Open the campaign and task links returned by your agent. In
`Campaigns/{Campaign}/`, review:

* **The brief and ICP:** seller context, target accounts, personas, and
  qualification criteria.
* **Exclusions:** the companies and contacts to leave out, and which checks
  your connections can support.
* **The sequence:** every email step, its personalization sources, timing,
  and sender.
* **The workflow and setup log:** task links, timezone, limits, paused state,
  and anything still blocked.

A missing sender can hold up outreach while account discovery and research
remain ready. Your agent should report readiness for each stage separately.

## Test the Pipeline [#test-the-pipeline]

When you are ready to use your connected providers, ask:

```text
Test the [campaign name] pipeline with bounded runs of Prospect, Qualify,
and Draft Outreach, in that order where eligible records are available.
I authorize the provider calls for these tests, which may use credits.
Verify saved results after each stage. Keep recurring schedules paused
and all outreach in inactive drafts. Report completed work and blockers.
```

Research may take more than one run. The agent should retain pending job IDs
and resume that work instead of submitting it again.

Check the results separately: accounts discovered, accounts qualified,
contacts eligible for outreach, email copy saved, and provider drafts or
memberships verified. Copy saved in Vault does not by itself mean a draft
exists in your outreach provider.

## Enable Recurring Runs [#enable-recurring-runs]

After reviewing successful tests, ask your agent to enable the stages that
passed:

```text
Enable recurring runs for the verified stages of [campaign name], using
the agreed schedule, timezone, and limits. Leave blocked or unverified
stages paused. Keep all outreach in inactive drafts and report which
schedules are enabled.
```

Recurring tasks continue preparing prospects, research, and drafts within
your campaign limits. Sending those drafts is a separate step outside this
skill. Notifications stay in Vault unless you separately request Slack.

## When a Stage Is Blocked [#when-a-stage-is-blocked]

Ask your agent to inspect the latest run and saved campaign records before
retrying. A missing connection, pending research result, unresolved sender,
or unsupported personalization method can each hold up a stage.

If a run fails after changing something in a provider, that change may still
exist. The skill directs the agent to reconcile it before making another
attempt, so a retry does not create duplicate research or drafts.
