luma-event-campaign · git:20260921.d62ab79 · 2026-09-21 · sha256 fc6e0a720980e34a
luma-event-campaign git:20260921.d62ab79A
Immutable. This exact content is served forever at /api/v1/blob/fc6e0a720980e34a.
---
name: luma-event-campaign
description: >-
DRAFT. Use when running a Luma-centered GTM event campaign: pull/export guests,
enrich and score, draft invites and social, stage email+LI sequences paused for
approval, and wire registration sync. Not installed by deepline skills.
---
# Luma event campaign (DRAFT)
## When to use
You have (or are creating) a Luma event and need a **repeatable campaign system**:
guest acquisition → enrichment → messaging → staged outreach → registration hygiene.
Not for one-off "write me an invite tweet."
## Non-negotiables
- Keep outbound campaigns **paused** until a human approves sends.
- Pilot enrich on ≤10 rows before full waterfall.
- No invented speaker bios, titles, or company facts.
- Templates use placeholders (`{{event_name}}`, `{{city}}`, `{{speaker_1}}`).
- Prefer systems language: skills, plays, webhooks, score → approve → door — not "blast the list."
## Inputs
| Input | Required | Notes |
| --- | --- | --- |
| Luma event URL or export CSV | yes | At least name, email, status |
| ICP / TAL sheet (domains) | no | Boosts scoring |
| Brand voice notes | no | Else use `templates/voice.md` |
| Sequencer (Lemlist/Instantly/etc.) | no | Stage paused campaign only |
## Standard flow
### 1. Frame the system
Say out loud (or in the run log):
1. Source of truth for guests (Luma)
2. Enrich + score path
3. Messaging artifacts (invite email, LI DM, social)
4. Outreach object (paused)
5. Inbound sync (registration webhook — see `luma-inbound-webhook-enrich`)
### 2. Guest list hygiene
1. Export or API-pull guests.
2. Normalize emails; drop empties; flag duplicates.
3. Map ticket/status: pending / approved / waitlist / checked_in.
4. Write `guests.normalized.csv`.
### 3. Enrich + score (pilot first)
1. Run a **10-row pilot** enrich (email validation + LinkedIn URL + title/company).
2. Score segments: `hot` / `warm` / `low` / `skip` using ICP + TAL + seniority.
3. Full run only after pilot lookback.
4. Write `guests.scored.csv`.
### 4. Messaging pack
Use templates in `templates/`:
- `invite-email.md` — HubSpot or transactional invite
- `linkedin-dm.md` — short DM, no hype words
- `social-announcement.md` — X/LinkedIn announcement
- `speaker-bio.md` — only from verified sources
Fill placeholders; human-edit before publish.
### 5. Stage outreach (paused)
1. Create/update sequencer campaign from `hot`+`warm` only.
2. Import with enrichment fields needed for personalization.
3. Leave campaign **paused**; paste the campaign URL in the run report.
4. Never auto-send from this skill.
### 6. Registration sync
Hand off to `luma-inbound-webhook-enrich` for standing registration → enrich → CRM.
### 7. Day-of handoff
Hand off scored list to `event-ops-score-and-door` and optional `event-host-prep-dossiers`.
## Output checklist
- [ ] `guests.normalized.csv`
- [ ] `guests.scored.csv` (with segment)
- [ ] Messaging pack under `out/copy/`
- [ ] Paused campaign link
- [ ] Credit / provider notes for enrich pilot + full run
- [ ] Explicit "human approve before send" line in the report
## Guardrails
- Do not dunk on other tools; frame hybrid stacks honestly.
- Strip unsafe emails after validation; do not import fails into sequences.
- Anonymize any shared examples before committing to git.