Deliverable-Type: automation-spec
Title: Speed-to-Lead Automated First Touch + Escalation
## Automation: speed-to-lead-ack
- Name: speed-to-lead-ack
- Trigger: property change `lifecycle_stage` -> `Inquiry` (fires on funnel-page submit event)
- Entry conditions: contact has a valid email; contact is not already `unsubscribed`; contact has no `first_touch` timestamp set
- Action steps:
1. Send automated acknowledgment email within 5 minutes using Template ID: TPL-104 (compliance-checked, includes physical address footer)
2. Write `first_touch` timestamp to the contact record
3. Create a human follow-up task assigned to outreach-operator with a 60-minute SLA timer
- Exit condition: exits/suppresses if `first_touch` is already set, or if `lifecycle_stage` has advanced past `Inquiry`, or if contact is `unsubscribed`
- Failure path: if the send step errors (Resend API failure), the automation retries twice with backoff, then logs a `send_failed` event and creates a human task for outreach-operator instead of silently dropping the lead
- Idempotency: keyed on `first_touch IS NULL` as an entry condition — once set, the trigger cannot re-fire for the same contact even if the source event replays
- Owner: outreach-operator (auto-fixable); escalates to 19Keys only if the human task breaches its SLA
- Kill switch: `automations.speed_to_lead_ack.enabled = false` flag in the Sovereign CRM config table, checked before every fire
## Automation: rfm-winback-vip-track
- Name: rfm-winback-vip-track
- Trigger: property change `rfm_segment` -> `Champions` OR nightly batch recompute crossing the VIP threshold
- Entry conditions: contact is in the 4,591-buyer base; contact has not received a winback touch in the last 30 days; `OUTREACH_POSTAL_ADDR` compliance flag is true
- Action steps:
1. Enroll contact in the VIP winback sequence using Template ID: TPL-220 (compliance-checked)
2. Tag contact `vip_winback_active` to prevent overlap with other lifecycle sequences
- Exit condition: exits if the contact purchases again, opens a support ticket, or is flagged `do_not_contact`
- Failure path: if enrollment fails (CRM write error), the step retries once, then falls back to a manual task for owner-action-chaser with the reason code attached
- Idempotency: `vip_winback_active` tag guards against double-enrollment; sequence is skipped entirely if the tag is already present
- Owner: owner-action-chaser
- Kill switch: global `winback_engine_paused` flag, checked at trigger time