Luma inbound webhook enrich (DRAFT)
Goal
Registration events become a durable system: webhook → validate → normalize LinkedIn → enrich → upsert CRM/DB → optional Slack notify. Not a one-off CSV import after the event.
Design checklist
- Trigger: Luma registration / unsubscribe (document exact event names you subscribe to).
- Idempotency: upsert key = email (plus event id).
- Normalize: LinkedIn slug → canonical
https://www.linkedin.com/in/...URL. - Enrich: cheap fields first; gate expensive providers.
- Write: CRM or customer DB fields listed in
references/field-map.md. - Failure mode: keep original failed payload; dead-letter queue; backfill later.
- Versioning: bump play/workflow version on each mapping change; never silent overwrite of prod without dry-run.
Backfill pattern
- Export failed webhook payloads (or Luma guest delta since last success).
- Re-run through the current versioned play.
- Leave original failed records intact for audit.
- Report: attempted / succeeded / still failing.
Pair with
luma-event-campaignfor outbound stagingevent-ops-score-and-doorfor capacity decisions (separate from inbound enrich)
Guardrails
- Do not log raw PII into public git.
- Secrets only via secret store / workflow secrets — never in SKILL.md.
- Ask before replaying large historical backfills (cost + CRM noise).


