🗝 KeyzHub
19Keys · community archive
2505 bytes raw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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