Skip to content
Expedify
Building AI Agents for Sales, Onboarding and Support

Module · M4 · Money in, student in

The first 48 hours: verify, then watch for absence

Lesson 13 of 16 · 10 min

The money has arrived. Almost every team treats that as the finish line, and it is the point at which the most value is quietly lost — because everything that goes wrong from here goes wrong silently.

Nobody writes in to say "I paid you and then never logged in". There is no ticket, no complaint, no event. There is just an absence, and absences do not raise their hand.

The one idea. Onboarding automation is mostly monitoring for absence. Humans are bad at this — you cannot notice nothing happening, at volume, across hundreds of accounts. Machines are unambiguously better at it, and it is all reads and internal alerts, so it is the safest automation you will ever ship.

The first 48 hours

Three windows. Only the first is about things that happened; the other two are about things that did not.

1. Verify fulfilment happened

In value order, because
The most expensive failure is the one where they paid and never got access. Check it, do not assume it.
Who it alerts
Nobody — fix it silently.

2. Detect absence

In value order, because
Paid and never started is a refund in three weeks' time.
Who it alerts
A named human, with a date.

3. Shorten time to first value

In value order, because
The gap between paying and getting something out of it is where regret grows.
Who it alerts
The customer, once, if they have not started.

4. Surface it to the buyer

In value order, because
For a corporate account, the buyer is not the learner — and they are flying blind.
Who it alerts
The account owner. That is lesson 14.

The build

Desk — the first 48 hours, watching for absence

There is no trigger for 'nobody logged in'. Absence has to be computed by comparing what was bought against what was used.

YesNo

Scroll for all 5 steps →

Look at what the query does, because it is the shape of every absence check you will ever write. It does not look for an event — there is no event for "nobody logged in". It compares two numbers: seats bought against seats activated. Absence only becomes visible as a difference.

That is why a Scheduler trigger is the right one. Every other trigger in the product fires because something happened. This one fires because time passed, which is the only way to catch things that did not.

What it found

Run against the real seeded accounts, unprompted:

Two accounts. Eight people who bought a seat and never opened it.

Meridian Business School — PGP-2026 Cohort A

Seats
45
Activated
41
Dormant
4

Vertex Logistics — Production-Ready AI Agents

Seats
10
Activated
6
Dormant
4

Notice the second row. Vertex has bought ten seats and four of them have never been touched — forty per cent. Nobody at Vertex has complained, because from their side nothing has gone wrong; four of their people simply have not got round to it. That account will renew or not renew on the basis of a number nobody is watching.

The alert it raised is an internal task, owned by the account owner and linked to the deal:

"4 of 45 seats have never been activated. Nobody has reported a problem, which is the point — this is absence, not a complaint. Contact the account owner before the cohort deadline makes it unrecoverable."

Alert a human; do not nag the customer. The instinct is to email the four dormant learners. Resist it for one cycle. Absence has causes — a wrong address, a licence never forwarded, a manager who bought seats without telling anyone. An automated "you haven't started!" to someone who never received their login is worse than silence.

Why this is the safest thing in the course

Every step here is a read, an internal write, or an alert. Nothing touches a customer, nothing spends money, nothing is irreversible. Compare that to lesson 12, where the whole difficulty was that a message cannot be recalled.

So if you are nervous about automating, start here rather than with outbound. The value is higher, the blast radius is nearly zero, and the failure mode is that a human gets a task they did not need.

Do this on your own data tonight

  1. Count how many people paid you in the last 30 days and have never used the thing they bought. Do it in SQL, once, by hand.
  2. That number is your churn in advance. Nobody in your company currently knows it.
  3. Then decide who should be told when it moves — and give them a task, not a dashboard.

Next: you now know who has not started. Lesson 14 is about the one person who most wants that list and never gets it.