reactivate
Run the win-back chain: review-reputation to find who went quiet and why, outreach-composer to write to them, crm-autopilot to log it. The owner approves at every handoff, per message.
Connectors: a CRM (HubSpot, Monday.com, Salesforce, or Zoho CRM), a payments connector (PayPal, Square, or Stripe), or a storefront (Shopify or Square) is the backbone — one is required to know who bought what and when, and same-category connectors are peers (../../shared/connector-neutrality.md). A storefront alone is enough: its customer list (Shopify list-customers) and order history (list-orders, get-order) are the purchase rhythm. Mail (Gmail or Microsoft 365) adds sending; a storefront also adds order and fulfillment patterns as a churn signal in their own right. A ledger adds invoice history (Zoho Books list_invoices by customer_id; the other ledgers' AR and sales-by-customer reads), which is the cleanest read of a customer's rhythm and worth. A support desk (Zoho Desk) adds service history — an unresolved ticket beside a silence is a reason, not a mystery, and it moves that customer to the owner's call list rather than the email sequence. With none of these, an exported customer list and pasted reviews go in and win-back drafts come out for the owner to send by hand.
Mailchimp, when connected, adds two things and no more: campaign and audience-growth analytics that help spot who went quiet on email before they went quiet on orders, and a place to save an approved win-back as draft campaign content. It cannot send, its planner refuses single-campaign requests and returns multi-channel plans only, and its audience list should be treated as unreadable unless a call actually returns it — the quiet-customer list still comes from the CRM, the payments connector, the storefront, the ledger, or an export.
Step 1 — Find who went quiet (review-reputation)
Trigger the review-reputation skill workflow, scoped to the churn side rather than the full reputation report.
In: customer purchase or job history from the CRM, the payments connector, the storefront, the ledger, or an uploaded export. Stripe: GET /v1/customers by email, then GET /v1/charges for that customer, for value and rhythm; PayPal: the transaction list by payer; Square: payments by customer. Plus public reviews, disputes, support tickets (Zoho Desk getTicketsByContact), and complaint-language email threads for the "why."
Out: a ranked list of quiet customers, each with their own normal rhythm, how far past it they are, what the relationship was worth, and any negative signal attached — a one-star review, a dispute, a late fulfillment, a refund.
A quiet customer is one whose gap has stretched past their own pattern, not past an industry average. Someone who buys quarterly and has been gone seven months is a signal. Someone who buys annually is not.
Trust the dates before trusting the gaps. Sanity-check the order-date field before computing anyone's rhythm. If a date-window query returns essentially the whole store or nothing at all, or created_at values cluster on one or two days, the field is unreliable — bulk-imported orders stamp the import date, not the order date. Fall back to processed_at or the per-customer order history, and say in the output which date field was used and why.
Rank by past value, not by length of silence. Fifteen names Ray Okonkwo will actually work beat two hundred he will not.