# Independent learner review: appmint-run-a-customer-campaign

- Frozen manuscript: `assets/appmint-run-a-customer-campaign/manuscript-frozen.md`
- SHA-256: `e0ca3f555d9476a5f5bdb8ac2a9166fe0ffd6c6ac5cb0ea6ed2175d471717af4`
- Review type: **document-only**, 18 September 2026. All 21 embedded screenshots inspected; all images and nine linked targets exist. Evidence inventory/contact sheets: `assets/appmint-run-a-customer-campaign/`.
- Read only this manuscript, its images and the relevant account-entry portion of its explicitly linked welcome prerequisite. No app source, capture ledger, author account or API inspected. No emails, ads, affiliate activation or payments executed.

## Outcome

The bounded draft exercise is coherent: it supplies fictional recipients and copy, explains first-save name recovery, verifies duplicated drafts separately and honestly withholds any delivery claim. The prerequisite is linked, but controlled owner credentials remain unavailable while signup awaits a controlled inbox. Every protected action below is **not executed**, not passed. Repeating public signup would add no campaign-specific evidence and was not done.

## Findings

1. **Medium — company-wide totals are treated as exercise acceptance criteria.** “What you need” permits the learner's company account; Part 1 says the training company starts empty; Part 2.2 says the final list should show two drafts and Messages Sent: 0. Those totals cannot be expected in an existing company with earlier broadcasts. Require an isolated training organisation or tell learners to verify the two named records, their draft state and their own unsent progress instead of global totals. This also improves name-loss recovery when many untitled drafts exist: record creation time/subject before duplicating.
2. **Medium — the real-send branch stops at an unresolved sender-setup dependency.** Part 3 “Connect a sender” names CRM → Email Accounts, actual provider configuration and a monitored reply inbox, but provides no provider-specific setup instructions or working prerequisite; it expressly says the conversations course does not configure email delivery. The draft outcome is unaffected. Label Part 3 as a readiness checklist until a linked sender-setup lesson and a controlled send/read/reply result exist; it cannot serve as a first-time learner's end-to-end sending lesson.
3. **Medium — two screenshot captions overstate what their image establishes.** Part 2.3 `10-list-saved-zero.png` is captioned “Actual result: zero contacts saved,” but its visible frame has the three manual addresses and count 3, with no “Saved 0 contacts” notice. The following `13-empty-contact-group.png` does show 0 members, supporting the narrower conclusion that the group is empty. Part 3 `14-channels.png` shows **Loading…**, not a completed no-sender result. The earlier Sending Accounts screenshot establishes no configured sender in its own state; replace the Channels still with a settled screen and capture the actual zero-save notice or adjust the caption.
4. **Low — a knowledge check calls deliberately nonexistent addresses usable.** Part 1.4's malformed-list example uses the same `.invalid` domain, but the answer describes “two unique, usable addresses” and “Two” people to contact. That conflicts with Part 1.3's excellent distinction between syntax and deliverability. Say “two unique syntactically valid entries, zero actual practice inboxes”; make replacing them with controlled, appropriate recipients explicit in the answer.
5. **Low — restore-and-save and optional-inspection exit points need closure.** Part 1.8 asks the learner to change copy, save/reopen and “restore the original wording” without explicitly saving and reopening that restoration before duplication. Part 2.3/2.4 invites inspection of Email Lists after choosing Manual Entry without a final audience-mode/readback checkpoint. Add a final save/reopen of the restored body and Manual Entry selection before duplicating or reviewing both final drafts. This avoids an unsaved restored sentence or changed audience mode becoming the next step's hidden state.

## Lesson execution matrix

| Section | Independent execution | Evidence/readability assessment |
| --- | --- | --- |
| Welcome/setup prerequisite | Linked instructions read; account not created in this review | Explicit real setup path exists; no staff credentials available |
| Part 1.1–2: Broadcast and empty sender | Not executed | Dashboard and no-email-account state clearly visible |
| Part 1.3–4: manual audience/count trap | Not executed | 3-entry normal state and duplicate/invalid mismatch shown; hypothetical check wording needs correction |
| Part 1.5–7: name, subject, body, draft | Not executed | Actual copy, review count and 0 selected senders visible; Send Now correctly excluded |
| Part 1.8: close/refresh/reopen/name recovery | Not executed | Untitled first list and eventual named drafts support explanation; learner persistence not established |
| Part 2.1–2: duplicate and separate reminder | Not executed | Generated copy, changed subject/category and named final list shown |
| Part 2.3–4: contact-list/other audience paths | Document inspection only | Empty group visible; zero-save toast not shown; backend explanations remain author claims |
| Part 3: sender, send, reports, reply/booking | Not executed; outside captured practical scope | Channels loading still; Analytics placeholder shown; no delivered inbox/report/booking evidence |
| Part 4: optional referral draft | Not executed | Saved details visibly show Draft, 10%, 30-day cookie, 14-day hold, Auto Credit No and attribution conditions |
| Part 5: advertising builder | Document inspection only | First stage visible; later launch/provider behavior not independently checked |

## What can be credited

The manuscript and screenshots support a useful **draft-preparation walkthrough**, not an independent learner application pass. The 10% referral rule is accurately kept separate from paid commission; the blank sender, schedule limitation, unimplemented analytics, personalization risk and list-path failures are disclosed. A future live review must use its own controlled owner, save/reopen both unsent drafts and the optional referral draft, and check record-specific results. A real-send pass requires separate sender configuration and controlled inbox authorization; neither is present here.

## Fresh local browser execution — 19 September 2026

**Result: complete for the course's draft-preparation scope.** The document-only review above is historical. This run used the newly created learner's own local Studio account and organisation `ck-local-mu83iwh3`, an isolated browser context, actual Studio at localhost:3100 and AppEngine at localhost:3300. Actions used the visible application controls; no API fixture or source-only test substitutes for the results below.

Evidence directory: [campaign-local-20260919](assets/campaign-local-20260919/). Each numbered screenshot has a matching plain-text screen capture.

| Lesson step | Actual result and evidence |
| --- | --- |
| Account prerequisite / Part 1.1–2 | Signed into the learner's own account. Broadcast initially empty; Sending Accounts showed no email account. Captures 01–02. |
| Part 1.3–4 | Entered the three supplied `.invalid` addresses. Tried Maya, Daniel, malformed text and Maya again: current counter reads **2 valid emails**, total **4**. Restored the three unique practice addresses. Captures 03–04. |
| Part 1.5–8 | Entered the exact name, subject, Promotional category and supplied message, reviewed 3 recipients / 0 senders, and saved as Draft. First save preserved the name. Closed, refreshed and reopened the actual saved record. Captures 05–08. |
| Try it | Changed “one photo” to “one or two photos,” saved, closed/refreshed/reopened and checked it. Restored the original wording, saved and reopened again before duplication. Captures 09–10. |
| Part 2.1–2 | Duplicated the original through its row action. Copy initially retained the original name; renamed it to the supplied reminder name, changed subject and category to Newsletter. Saved/reopened the copy and checked the original remained unchanged. Captures 11–12, 17–18. |
| Part 2.3 | Saved `Tutorial October list` through Manual Entry. Closed/reopened Email Lists; the group showed **3 members**. Capture 14; fresh full-reload result in [31](assets/campaign-local-20260919/31-contact-list-after-reload.png). |
| Part 2.4 | Inspected Upload CSV and Filter Contacts; the latter showed “Advanced filtering coming soon.” Returned both drafts to Manual Entry, saved, closed and refreshed. Captures 15–16. |
| Final persistence | Full browser reload: **2 drafts, 0 pending, 0 scheduled, 6 total recipients, Messages Sent 0**. Opened both records again: distinct names/subjects/categories, original message, Manual Entry and exactly three supplied addresses persisted. Captures [26](assets/campaign-local-20260919/26-final-two-drafts-after-reload.png)–30. |
| Part 3 inspectable screens | Channels settled on **No domains yet / No email accounts**; Analytics displayed its coming-soon placeholder. Captures 19–20. Actual provider configuration and delivery are future guidance, outside the executable draft exercise. |
| Part 4 optional draft | Created `tutorial-design-partners`, title `Introduce a design client`, Referral/Draft, 10% commission, 30-day cookie, 14-day hold, $0 minimum and Auto Credit No. Closed/reopened and then fully reloaded before reopening again. Confirmed Last Click, 30-day attribution window, blocked self-referral, unique email and paid-order requirements. Captures 21–24. |
| Part 5 | Opened Marketing & Ads → New Campaign. Inspected the six stages and first-screen objectives. Did not save/launch an active campaign. Capture 25. |

Course corrections from this execution: current unique-valid count is 2 rather than 3 for the malformed/duplicate example; the initial name persists; duplicate initially retains that name; contact group now has three members. Replaced the stale failure/loading screenshots with current captures. The earlier five editorial findings were already repaired and their executable checkpoints now pass.

No Send Now, external provider configuration, message delivery, ad launch, affiliate activation/enrolment, qualifying order, commission processing or payment occurred. No production operation was needed for this local completion.
