Growth system overview

Abandoned signup recovery

Contents

The signal everything hangs on

Customer.io holds a person attribute called sign_up_completed. The Carepatron backend writes false partway through signup and true the moment the person finishes.

One measured quirk shapes the whole design: about half of the people who complete signup pass through false on the way (11 of 24 recent completers, most flipping to true within five minutes). So false on its own means "started signup", not "abandoned".

The 60 minute rule

Every part of this system waits one hour before treating someone as a dropoff. Anyone who finishes signup inside that hour exits quietly and is never emailed and never sent to sales.

Piece 1: recovery emails in Customer.io

Campaign 85, "Lost Signup - Recovery (Maddy)" re-engages genuine dropoffs with a personal note and one call to action: book a walkthrough call.

  1. A person enters when sign_up_completed flips to false. They must have an email address and no bounce history.
  2. 60 minute grace delay. Completers exit here.
  3. Email 1 from Maddy: "I saw you started setting up Carepatron", with the booking link.
  4. Four day wait.
  5. Email 2: a gentle follow-up, same call to action.

People leave the journey the moment they complete signup, become a paying customer, or book a call. The conversion goal is a calendly_call_booked event within seven days. An SMS nudge is built but parked and disabled.

Piece 2: the Pipedrive sync

Sales gets genuine dropoffs as Pipedrive Persons roughly an hour after they abandon. The chain has three parts:

  1. Campaign 86, "Dropoff -> Pipedrive Signal" watches the same trigger and applies the same 60 minute gate. If the person still has not completed, a webhook emits a signup_abandoned event. Completers never emit one.
  2. The event lands in a dedicated pipeline source (156602) connected only to the Pipedrive destination, so it cannot touch Customer.io profiles or any other tool.
  3. A Pipedrive action (subscription 764125) picks the event up and creates or updates the Person, matched by email, setting the custom field "Sign up completed" to false. Dropoffs have not given a name yet, so their email doubles as the Person name.

What sales sees

Roughly ten new dropoffs a day. Filter Persons on Sign up completed = false to work them. There is no historical backfill: the feed is forward-only from the day it is switched on.

It corrects itself

The live person sync now also carries sign_up_completed, so anyone who later completes signup and starts using the product has their Pipedrive field flipped to true automatically. Everything matches on email, so the same person is never duplicated.

Status and go-live switches

PartTodayTo go live
Recovery emails (campaign 85)Draft, both emails offFlip Emails 1 and 2 to automatic, start the campaign with backfill off
Signal campaign (86)Draft, webhook offFlip the webhook to automatic, start with backfill off
Pipedrive action (764125)Built, disabledEnable it
Person sync field flip (618448)LiveNothing, already running

Both campaigns must start with backfill off: the 103 people who match today stay out, by decision.

Reference IDs

ObjectReference
Recovery email campaign85 (grace delay 684, Email 1 action 680, Email 2 action 682, SMS 683)
Signal campaign86 (delay 686, webhook 687, webhook template 622)
Pipeline source156602 "Signup Abandoned Signal"
Pipedrive destination334088
Pipedrive actionsubscription 764125
Pipedrive field"Sign up completed", key d0afd8e1d221c19a2dedd34c4e0ce3cf0ddc0189 (enum 364 = true, 365 = false)
Person sync carrying the flipsubscription 618448