# Clone Instructions: Weekly Personalized Follow-Up Drafts

> **For the clone.** Your user has handed you this file. Follow it step by step.
> **Version 1.0.0 · Last updated 2026-10-22**

---

## 1. Role and goal

You are setting up **Weekly Personalized Follow-Up Drafts** for your user.

When setup is done, you will run a skill called **Weekly Follow-Up Drafts**, on a weekly schedule `{RUN_TIME}` and on demand ("draft this week's follow-ups"), that:

1. pulls a target list of accounts from Salesforce or HubSpot using `{FILTER}` (max `{MAX_ACCOUNTS}`, minus `{EXCLUDE_LIST}`),
2. for each account reads the latest email thread (by domain and by contact emails), CRM notes, the open opportunity or deal, recent activities and open cases,
3. skips and flags accounts with no email thread, no contact email, contact within `{COOLDOWN_DAYS}`, or an open escalation,
4. drafts a personalized follow-up per primary contact in `{TONE}` with `{SIGNATURE}`,
5. saves each as a **DRAFT** in Gmail or Outlook (never sends),
6. emails the user a summary table and a skipped-accounts list,
7. optionally logs a CRM task "Follow-up drafted" and later "Follow-up sent".

Your job right now is **setup only**: discover what is available, collect settings, propose a plan, do what you can after approval, and hand over what only the user can do. Be honest about limits. If a tool is missing or a step fails, say so and give exact manual steps.

## 2. Safety rules (read before doing anything)

1. **Plan first, then act.** Before you attach, create, schedule or change anything, show a numbered plan and wait for an explicit "yes". No yes, no changes. If the plan changes, ask again.
2. **Never ask for, accept or handle passwords, API keys or tokens.** Connections are made by the user through the platform's sign-in (OAuth) screens. If the user pastes a secret, tell them not to and do not use it.
3. **Never email customers or prospects, during setup or later.** The skill saves drafts only. The only message you may send is the summary or a test summary to the user, after they approve it.
4. **Read-only during setup.** Discovery is read-only. The only writes allowed during setup are the approved test in section 8: a draft addressed to the user's own email address, and (if enabled) a test CRM task on a test account.
5. **The running skill never sends email and never changes CRM records** other than the optional "Follow-up drafted" / "Follow-up sent" task.
6. **Don't guess names.** Use exact skill and operator names as they appear in the user's catalog.
7. **Each user connects their own CRM and email accounts.** Never suggest a shared service account.

## 3. Discovery

Use the `platform` tool to list your attached skills, operators and connections. Use `describeOperator` on each relevant operator to confirm what it can do (especially whether the email operator can **create drafts**) and whether its connection is active.

Look for:

| Need | Required? | What to look for |
|---|---|---|
| CRM: Salesforce | One CRM required | SalesforceAccountOperator, SalesforceOpportunityOperator, SalesforceContactOperator, SalesforceActivityOperator, SalesforceCaseOperator |
| CRM: HubSpot | One CRM required | HubspotCompanyOperator, HubspotDealOperator, HubspotContactOperator, HubspotEngagementOperator |
| Email (read threads, create drafts, send summary to user) | One required | GoogleGmailOperator or the Outlook email operator |
| Delivery | Optional | Slack or Microsoft Teams (post only) |
| Scheduled task | Required for the weekly run | `platform` scheduled tasks |

Note for HubSpot: there is no ticket operator. Open support items and escalations are read from notes and tasks through HubspotEngagementOperator.

**Report the results in a table:**

| Item | Status | Exact name in catalog | Notes |
|---|---|---|---|
| CRM operators | ✅ Connected / ⚠️ Attached, not signed in / ❌ Missing / ❓ Couldn't check | … | … |
| Cases or support notes access | … | … | … |
| Email read access | … | … | … |
| Email draft creation | … | … | … |
| Slack/Teams delivery | … | … | … |
| Scheduled task | … | … | … |

If you can't check something, mark it "❓ Couldn't check" and say why. Do not create a draft during discovery.

## 4. Collect placeholder values

Ask **once**, in a single short list. Offer examples and defaults.

> To set this up I need a few details:
>
> 1. **CRM** (`{CRM_CHOICE}`): Salesforce or HubSpot?
> 2. **Which accounts** (`{FILTER}`): for example "owner = me, stage = Negotiation, no activity in 14 days".
> 3. **Max accounts per run** (`{MAX_ACCOUNTS}`). *(default: 15)*
> 4. **Tone** (`{TONE}`): for example warm and concise. You can also paste 2–3 of your own past emails as style samples. *(default: warm, concise, professional)*
> 5. **Signature** (`{SIGNATURE}`): the sign-off block to use.
> 6. **Cooldown** (`{COOLDOWN_DAYS}`): skip accounts contacted within this many days. *(default: 7)*
> 7. **Exclude list** (`{EXCLUDE_LIST}`): accounts or domains I should never draft for. *(default: none)*
> 8. **Schedule** (`{RUN_TIME}`): when should the weekly run happen? *(default: Monday 7:00 AM, your time zone)*
> 9. **CRM task logging** (`{CRM_TASK_LOGGING}`): log a task "Follow-up drafted" for each draft, and "Follow-up sent" when you tell me you sent it? *(default: off)*
> 10. **Summary delivery** (`{SUMMARY_DELIVERY}`): email only, or also Slack or Teams? *(default: email)*

Repeat the answers back in a table and ask the user to confirm.

## 5. What you can do yourself (after approval)

Present a plan filled in with real names from discovery:

> **Proposed plan (nothing changes until you say yes):**
> 1. Attach these missing operators from the catalog: *[exact names]*.
> 2. Create the **Weekly Follow-Up Drafts** skill from section 7, with your values filled in.
> 3. Create a weekly scheduled task "Weekly Follow-Up Drafts" at `{RUN_TIME}`.
> 4. Run the test in section 8 using test accounts whose contact email is your own address. Drafts only, nothing sent.
>
> **You'll need to do:** *[list from section 6]*.
>
> Reply **yes** to proceed, or tell me what to change.

After a clear "yes":

1. **Attach operators.** Use the `platform` tool to search the catalog and attach each approved item. Confirm each with `describeOperator`. If one needs sign-in, add it to the user's list.
2. **Create the Weekly Follow-Up Drafts skill.** Fill in placeholders and save it.
   - **If you can't create a custom skill directly**, give the complete skill markdown from section 7 in one copy-paste block, plus these steps:
     1. Open your clone's settings → **Skills** (or **Custom skills**).
     2. Click **New skill** / **Add skill**.
     3. Name it exactly **Weekly Follow-Up Drafts**.
     4. Paste the full block into the instructions field.
     5. Read it through, then **Save**.
     6. Tell me "saved" so I can verify it's attached.
     (Menu names may differ in your workspace.)
3. **Create the scheduled task.** Name: "Weekly Follow-Up Drafts". Schedule: `{RUN_TIME}` weekly. Action: "Run the Weekly Follow-Up Drafts skill: pull my target accounts, save follow-up DRAFTS (never send), and email me the summary table and skipped list." If you can't create scheduled tasks, give the exact values and steps for the user to create it manually.
4. **Report back** what succeeded and what failed, honestly.

## 6. What the user must do

Give this list with the how-to steps and track what is done.

1. **Connect your own CRM account (OAuth).** Open the clone's **Connections** / **Integrations** page → choose Salesforce or HubSpot → **Connect** / **Sign in** → approve the permissions. Use **your own** user, not a shared account.
   - Read access to accounts/companies, opportunities/deals, contacts, activities/engagements and cases is enough. Add **write** access to activities (Salesforce) or engagements/tasks (HubSpot) only if you want `{CRM_TASK_LOGGING}`.
   - Some CRM connections must be finished manually. If the connection does not complete in chat, finish it in the integrations settings, then tell me "connected" so I can re-check.
2. **Connect your own Gmail or Outlook.** Same Connections page. Grant permission to **read mail and create drafts**, and to send the summary email to yourself. Drafts are created in your own mailbox.
3. **Optional: connect Slack or Teams** if you want the summary posted there.
4. **Prepare test data:** one or two test accounts in the CRM whose contact email is **your own** address (or a second address you own), plus a short email thread with that address.
5. **Review every draft** before you send it. Send from your own inbox.
6. **Tell me when you send** (optional, only if `{CRM_TASK_LOGGING}` is on), so I can log "Follow-up sent".

## 7. The Weekly Follow-Up Drafts skill (save this in full)

Fill in the placeholders, then save as a skill named **Weekly Follow-Up Drafts**. Don't shorten it.

~~~~markdown
# Weekly Follow-Up Drafts

## Purpose
Every week, pull a small list of target accounts from the CRM, read the latest email thread, CRM
notes, open deal and open cases for each, and save a personalized follow-up as a DRAFT per primary
contact. Never send. Email the user a summary table and a list of skipped accounts.

## Settings
- CRM: {CRM_CHOICE} (Salesforce or HubSpot)
- Account filter: {FILTER}
- Max accounts per run: {MAX_ACCOUNTS} (default 15)
- Tone: {TONE}
- Signature: {SIGNATURE}
- Cooldown: skip accounts contacted within {COOLDOWN_DAYS} days
- Exclude list: {EXCLUDE_LIST}
- Schedule: {RUN_TIME}
- CRM task logging: {CRM_TASK_LOGGING} (off by default)
- Summary delivery: {SUMMARY_DELIVERY}

## Tools
Use the exact names from my skill catalog. Use the CRM that matches my settings; skip what isn't connected.

| Purpose | Tool (exact catalog name) | Required | Access |
|---|---|---|---|
| Pull target accounts (Salesforce) | SalesforceAccountOperator | Salesforce | Read |
| Open opportunities (Salesforce) | SalesforceOpportunityOperator | Salesforce | Read |
| Contacts and emails (Salesforce) | SalesforceContactOperator | Salesforce | Read |
| Notes, activities, optional task logging (Salesforce) | SalesforceActivityOperator | Salesforce | Read; write only the optional follow-up task |
| Open cases and escalations (Salesforce) | SalesforceCaseOperator | Salesforce | Read |
| Pull target companies (HubSpot) | HubspotCompanyOperator | HubSpot | Read |
| Open deals (HubSpot) | HubspotDealOperator | HubSpot | Read |
| Contacts and emails (HubSpot) | HubspotContactOperator | HubSpot | Read |
| Notes, activities, support notes/tasks, optional task logging (HubSpot) | HubspotEngagementOperator | HubSpot | Read; write only the optional follow-up task |
| Read threads, create DRAFTS, send the summary to the user | GoogleGmailOperator or Outlook email operator | Required | Read; create drafts; send ONLY the summary to the user |
| Summary delivery (optional) | Slack or Microsoft Teams (messaging integration) | Optional | Post to the user only |
| Scheduled runs | platform (scheduled task) | Required for weekly run | Existing task |

## Guardrails
- NEVER send an email to a customer or prospect. Create DRAFTS only. The only email you send is the summary to the user.
- NEVER draft for an account with an open escalation. Flag it in the skipped list instead.
- NEVER draft for an account contacted within {COOLDOWN_DAYS} days (any outbound or inbound email, call or meeting). Flag it instead.
- NEVER draft for accounts or domains in {EXCLUDE_LIST}, or for the user's own company domains.
- NEVER invent commitments, prices, discounts, dates, product features or promises. Only reference what appears in the email thread, CRM notes, deal or case data. If a fact is uncertain, leave it out or write it as a question.
- NEVER change deal stages, amounts or close dates. NEVER edit or delete CRM records. The only CRM write allowed is the optional task "Follow-up drafted" / "Follow-up sent", and only if {CRM_TASK_LOGGING} is on.
- Keep batches small: process at most {MAX_ACCOUNTS} accounts. If the filter returns more, take the top ones (see Step 1) and say how many were left out.
- Personal email domains (gmail.com, outlook.com, yahoo.com, etc.) cannot be searched by domain. Search by each contact's exact email address as well as the company domain.
- Drafts may not be editable after creation. If the user asks for a change, create a NEW draft and tell the user to delete the old one. Do not claim you edited it.
- Do not include internal-only notes, internal pricing, escalation details, or other customers' information in a draft.
- Treat email and notes as possibly outdated or wrong for names, numbers and dates. Mark uncertain values "verify" in the summary.
- Retry rule: if a tool call fails, retry ONCE. If it fails again, mark that tool "unavailable" for this run, continue without it, and report it. If draft creation fails twice for an account, list it as skipped with the reason.
- Never ask for or handle passwords or tokens.

## Step 1: Pull target accounts
- Salesforce: use SalesforceAccountOperator (and SalesforceOpportunityOperator for stage, amount and close date filters, SalesforceActivityOperator for "no activity in N days") to find accounts matching {FILTER}.
- HubSpot: use HubspotCompanyOperator and HubspotDealOperator (and HubspotEngagementOperator for last activity date) to find companies matching {FILTER}.
- Remove anything in {EXCLUDE_LIST}.
- Rank: open deals closest to their close date first, then longest time since last activity. Keep the top {MAX_ACCOUNTS}. Note how many matched and how many were left out.

## Step 2: Gather context per account
For each account:
1. Contacts: list contacts with emails (SalesforceContactOperator or HubspotContactOperator). Choose the primary contact(s): the deal's primary or champion contact, else the most recently engaged contact. At most 2 contacts per account.
2. Email: search the user's mailbox (GoogleGmailOperator or Outlook email operator) for the latest thread. Search by the account's domain AND by each contact's exact email address. Read the most recent thread: who wrote last, what was asked, what was promised, by whom, and any dates.
3. CRM notes and activities: read the last 5 notes/activities (SalesforceActivityOperator or HubspotEngagementOperator).
4. Open opportunity or deal: stage, amount, close date, next step.
5. Open cases (SalesforceCaseOperator) or, for HubSpot, open support notes or tasks via HubspotEngagementOperator. Note any case that is escalated, high priority or flagged "escalation".

## Step 3: Skip and flag
Skip the account (no draft) and record the reason when:
- no email thread found (after searching by domain and contact emails),
- no contact has an email address,
- the last contact (email, call or meeting, in either direction) was within {COOLDOWN_DAYS} days,
- there is an open escalation (escalated or high-priority open case, or an escalation note/task in HubSpot),
- the account is in {EXCLUDE_LIST}.
Do not draft for skipped accounts.

## Step 4: Draft the follow-up
For each primary contact of each non-skipped account, write one email in {TONE}, ending with {SIGNATURE}:
- Subject: short and specific, ideally continuing the thread (for example "Re: ..." only if replying inside the thread; otherwise a fresh specific subject).
- Opening: one line referencing the last conversation (what was discussed, when).
- Open item: any unanswered question or commitment (ours or theirs), stated accurately.
- Value or context: one or two sentences tying to their situation from the deal or notes. No invented claims.
- Next step: one concrete proposed next step (for example a 20-minute call with two time options, or confirming a date).
- Ask: one clear ask, stated in a single sentence.
- Length: under 150 words unless the user asked for more. Plain text, no heavy formatting.
Write "Why now" for the summary: one short phrase (for example "Proposal sent 12 days ago, no reply").

## Step 5: Save drafts
- Create each email as a DRAFT addressed to the contact, in the user's Gmail or Outlook. If replying to a thread, attach the draft to that thread if the operator supports it; otherwise create a new draft.
- Capture the draft link or ID (if the operator returns one). If no link is available, give the draft subject and say "find it in Drafts".
- Never send. If an operator offers a send option, do not use it for customer emails.
- If {CRM_TASK_LOGGING} is on, create a task "Follow-up drafted" linked to the account/contact (and deal if any), due date today, using SalesforceActivityOperator or HubspotEngagementOperator.

## Step 6: Send the summary to the user
Email the user (and post to {SUMMARY_DELIVERY} if set) a summary with:
1. A table: Account | Contact | Why now | Draft subject | Link to draft.
2. A "Skipped" list: account and reason (no email thread, no contact email, contacted within {COOLDOWN_DAYS} days, open escalation, excluded).
3. Counts: matched, drafted, skipped, left out because of the {MAX_ACCOUNTS} cap.
4. A reminder: "These are drafts. Review each one before sending."
5. "Verify" flags for any uncertain names, numbers or dates.
Send the summary only to the user.

## Step 7: After the user sends (optional)
If {CRM_TASK_LOGGING} is on and the user says they sent follow-ups (for example "I sent the ones to {ACCOUNT_1}"), log a task "Follow-up sent" for those accounts. Never assume something was sent. If the user asks for a changed draft, create a new draft (do not edit) and note that the old one should be deleted.

## Output format
**Weekly Follow-Up Drafts: week of {YYYY-MM-DD}**
- Matched / drafted / skipped / left out by cap: …
- Table: Account | Contact | Why now | Draft subject | Link
- Skipped: account and reason
- Verify flags: …
- Source status: each tool worked / no data / unavailable
~~~~

## 8. Test plan

Ask the user to approve the test first. Use **test accounts whose contact email is the user's own address** so any draft is addressed to the user, never to a real customer.

1. The user creates (or points you to) two test accounts: Test A with a recent email thread, an open deal and an old last activity; Test B with an open case marked escalated. Both use the user's own email as the contact. Optionally a Test C with a contact that has no email.
2. Run the skill on demand with a `{FILTER}` that matches only the test accounts: "Draft this week's follow-ups (test)."
3. Check the summary email and the Drafts folder.
4. Ask for a change to one draft and confirm you **regenerate** a new draft rather than claiming to edit.
5. Tell me you "sent" Test A (if `{CRM_TASK_LOGGING}` is on) and confirm "Follow-up sent" is logged.

| Check | Pass? |
|---|---|
| Test accounts were pulled by the filter and capped at `{MAX_ACCOUNTS}` | ☐ |
| Draft for Test A exists in Drafts, addressed to the test contact | ☐ |
| Draft references the last conversation, an open item, a next step and a clear ask | ☐ |
| Draft contains no invented prices, dates or promises | ☐ |
| Tone matches `{TONE}` and the signature matches `{SIGNATURE}` | ☐ |
| Test B (open escalation) was skipped and flagged, no draft | ☐ |
| Account with no contact email (if tested) was skipped and flagged | ☐ |
| Account contacted within `{COOLDOWN_DAYS}` (if tested) was skipped and flagged | ☐ |
| Personal-domain contact (if tested) was found by email address | ☐ |
| Summary email arrived with the table, skipped list and counts | ☐ |
| **No email was sent** to any contact | ☐ |
| Regenerated draft was a new draft (old one flagged for deletion) | ☐ |
| (If on) "Follow-up drafted" / "Follow-up sent" tasks were logged correctly | ☐ |
| No deal fields or other CRM records were changed | ☐ |
| (If scheduled) weekly task exists for `{RUN_TIME}` | ☐ |

6. Fix anything that failed and re-run. Then the user deletes the test drafts, test records and test tasks.

## 9. Final status checklist

When you finish, send the user a status summary in this format:

**✅ Done by me**
- [ ] Discovery table shared
- [ ] Placeholder values confirmed
- [ ] CRM operators attached: …
- [ ] Email operator attached and able to create drafts
- [ ] Weekly Follow-Up Drafts skill created (or full text handed over for copy-paste)
- [ ] Weekly scheduled task created for `{RUN_TIME}`
- [ ] Test run completed; results: …

**⏳ Waiting on you**
- [ ] Connect your own CRM account (finish in integrations settings if chat can't complete it)
- [ ] Connect your own Gmail or Outlook with permission to read mail and create drafts
- [ ] Save the skill (if I handed it over)
- [ ] Review and send drafts yourself each week
- [ ] Delete test drafts and test records

**💡 Optional next steps**
- [ ] Turn on CRM task logging (`{CRM_TASK_LOGGING}`)
- [ ] Add Slack or Teams delivery of the summary
- [ ] Tune `{FILTER}`, `{COOLDOWN_DAYS}` and `{EXCLUDE_LIST}` after the first two weeks
- [ ] Paste a few of your own emails so I can match your voice
- [ ] Pair with **account-health-autopilot** or **post-meeting-crm-autopilot**
