# Requirements: Automated Customer Email Program

> **Version 1.1.0 · Last updated 2026-10-22 · Estimated setup time: 60–120 minutes**

Use this checklist before you hand CLONE-INSTRUCTIONS.md to your clone. Your clone will also check most of this during discovery.

---

## 1. Required skills / operators

Use the exact operator names below. Your clone will report the names it finds in your catalog.

> Skill names can differ slightly between orgs. Confirm the exact names in your skill catalog before saving the skill.

| # | Skill / operator | What it's used for | Notes |
|---|---|---|---|
| 1 | **Gmail** (`GoogleGmailOperator`) or **Outlook** (email operator) | Previews, 1:1 sends, daily summary, reading approval replies, labeling sends | The **clone's own** inbox (`{CLONE_INBOX}`), plus send access to `{SENDER_INBOX}` if used |
| 2 | **HubSpot marketing email** (`HubspotMarketingOperator`) | Build, test-send and send list/segment emails; read send history and unsubscribes | Required for list sends. Lists and segments live in HubSpot. If it can only create drafts, you click Send after approving |
| 3 | **Salesforce:** `SalesforceContactOperator`, `SalesforceActivityOperator` **or HubSpot:** `HubspotContactOperator`, `HubspotEngagementOperator` | Find contacts for 1:1 emails, check opt-outs, log completed tasks, read past send tasks | Choose one CRM; see the mapping in section 3 |
| 4 | **Content calendar:** `GoogleSheets-Operator` or `Microsoft_Excel` (or a doc via `GoogleDocsCoreOperator` / `Microsoft_Word`) | Read `{CONTENT_CALENDAR}` | Google Sheet, Excel file or document |
| 5 | **Scheduled task** (`platform`) | Daily run at `{RUN_TIME}` and the approval check until `{SEND_WINDOW_END}` | Platform feature; the clone may be able to create it |

## 2. Required connections and permissions

| Connection | Minimum permission | Why |
|---|---|---|
| Gmail or Outlook | **Read** + **Send** + **manage labels/categories** | Previews, 1:1 sends, approval replies, `{SEND_LABEL}` |
| HubSpot (marketing email) | **Create and send emails**, **read** lists, send history and unsubscribes | List sends and duplicate checks. **No list editing needed** |
| CRM (Salesforce or HubSpot) | **Read** contacts/accounts and activities; **create** tasks | 1:1 targeting, opt-out checks, send logging |
| Content calendar (Sheets / Excel / doc) | **View** (edit only if the clone should mark rows "Sent") | Today's planned email |
| Content sources (if private) | **View** | Release notes, docs, video and social content |
| Slack or Teams (if used) | **Post** to one channel | Approval pings and summaries |

All connections are made by **you** through sign-in (OAuth). Your clone never needs your password.

## 3. Optional add-ons

| Add-on | Adds | Notes |
|---|---|---|
| **Web / research access** (recommended) | Reads public release notes, blog feeds, video channels, social posts | The clone's web research |
| **Knowledge base** (`search_knowledge`) | Tips and how-to content, verified facts | Help center or docs loaded into a knowledge base |
| **Image_Operator** | Video thumbnails with a play button; simple header images | Exact name as in catalog |
| **Clone-Automated-Video** | Produces a short video for a feature or tip | Optional; you approve before it is used |
| **Clone_Code** | Builds and checks the HTML template, fixes rendering issues | Exact name as in catalog |
| **Slack or Microsoft Teams** | Summaries and approval pings in a channel | Delivery only; approve by email reply |

### HubSpot marketing email concepts

| Concept | In HubSpot |
|---|---|
| **All-customers list** (`{LIST_ALL}`) | Active (dynamic) list of emailable current customers |
| **Segment** (`{LIST_SEGMENT}`) | Active list filtered by tier, product or role |
| **Custom coded template** | Coded email template in the Design Manager |
| **Unsubscribe and address tokens** | HubSpot's own unsubscribe link and company address tokens, inserted from the personalization token menu |
| **Logging** | HubSpot's own CRM records (email events on the contact) |

### Salesforce to HubSpot mapping (CRM logging for 1:1 sends)

| Concept | Salesforce | HubSpot |
|---|---|---|
| **Contact** | Contact (`SalesforceContactOperator`) | Contact (`HubspotContactOperator`) |
| **Account / company** | Account | Company |
| **Lead** (never emailed) | Lead | Contact (lifecycle stage = Lead) |
| **Activity / task** (send log) | Task, Status = Completed (`SalesforceActivityOperator`) | Task (completed) or note (`HubspotEngagementOperator`) |
| **Opt-out flag** | Email Opt Out | Unsubscribed / opted out |
| **Role / use case** (custom fields) | Title / custom field | Job title / custom property |
| **Current customer flag** (`{CUSTOMER_DEFINITION}`) | e.g. Account Type = Customer | e.g. Lifecycle stage = Customer |

If your CRM is Salesforce, HubSpot unsubscribes and Salesforce opt-outs are separate flags. Check both before 1:1 sends. Field names vary by setup. Describe your rules in plain words.

### Google Workspace to Microsoft 365, Slack to Teams

| Concept | Google Workspace | Microsoft 365 |
|---|---|---|
| Inbox | Gmail (`GoogleGmailOperator`) | Outlook |
| Send log marker (`{SEND_LABEL}`) | Label | Category |
| Sending from a team inbox | Delegation / "Send mail as" | "Send As" / "Send on Behalf" (admin grants) |
| Content calendar | `GoogleSheets-Operator` / Google Docs | `Microsoft_Excel` / `Microsoft_Word` |
| Summaries (delivery only) | Slack | Microsoft Teams |

## 4. Data prerequisites

- [ ] **Clean customer lists.** `{LIST_ALL}` and `{LIST_SEGMENT}` exist, contain only current customers, and automatically exclude unsubscribes, bounces and do-not-email contacts.
- [ ] **CRM contacts have emails, roles and opt-out flags** filled in reliably (needed for 1:1 personalization).
- [ ] **A content calendar** (`{CONTENT_CALENDAR}`) with at least: Date, Type, Title, Link, Audience, Status. The clone can suggest one.
- [ ] **Content sources are reachable**: public URLs, or shared with `{CLONE_INBOX}`.
- [ ] **Brand assets**: hex colors (`{BRAND_COLORS}`), a public PNG logo (`{LOGO_URL}`), mailing address (`{PHYSICAL_ADDRESS}`).
- [ ] **Authenticated sending domain** (SPF, DKIM, DMARC) in HubSpot.
- [ ] **Consent confirmed** for emailing these customers (CAN-SPAM, GDPR, CASL or local rules).

## 5. Roles and permissions

| Who | Needs to |
|---|---|
| **Clone admin** | Attach skills/operators, approve the plan, save the skill, create/approve scheduled tasks |
| **Approver** (`{APPROVER}`) | Approve or skip each day's email during `{APPROVAL_PERIOD}`; read the daily summary |
| **HubSpot admin** | Sign in, save the custom coded template, maintain lists, confirm sending domain authentication |
| **CRM admin** | Grant read + create-task access; confirm opt-out and customer fields |
| **Email / IT admin** | Grant send access to `{SENDER_INBOX}` if used |
| **Content owners** | Share the content calendar and private content with the clone; keep the calendar current |
| **Compliance owner** | Confirm consent and footer requirements |

## 6. Estimated setup time

| Step | Time |
|---|---|
| Pre-flight check (this doc) | 10 min |
| Clone discovery + placeholders + plan | 15–20 min |
| Your sign-ins, sharing and access | 15–30 min |
| Template, image hosting and list check | 10–30 min |
| Save skill + scheduled tasks | 10 min |
| Test run in real inboxes | 20–30 min |
| **Total** | **60–120 min** |

## 7. Pre-flight checklist

- [ ] I'm the clone admin (or have one available)
- [ ] My clone has its own inbox (`{CLONE_INBOX}`)
- [ ] Gmail or Outlook attached (or can be), with send and label/category permission
- [ ] `HubspotMarketingOperator` available, and I know whether it can send or only draft
- [ ] Salesforce or HubSpot CRM operators available, with read + create-task access
- [ ] Content calendar exists (or I'm happy for the clone to suggest one)
- [ ] I can create scheduled tasks (or the clone can)
- [ ] My lists exclude unsubscribes, bounces and do-not-email contacts
- [ ] I can create a custom coded template in HubSpot (or know who can)
- [ ] Logo and images can be hosted publicly
- [ ] I've decided `{CADENCE_RULES}`, `{APPROVER}`, `{APPROVAL_PERIOD}` and `{RUN_TIME}`
- [ ] I have 2–3 internal test addresses (Gmail, Outlook, phone)

## 8. You're ready when…

- ✅ Every **required** item in section 1 is attached and its connection is signed in.
- ✅ You have answers for all the placeholder questions.
- ✅ Your lists are clean and exclude anyone who shouldn't be emailed.
- ✅ Your branded template is saved as a coded template in HubSpot, with public images.
- ✅ You know who approves each day's email, and by when.
- ✅ You've set aside ~30 minutes for the test run in real inboxes.

Then download **CLONE-INSTRUCTIONS.md** and give it to your clone.
