How many of the customers you onboarded last month actually booked the kickoff call you emailed them about? If you can't answer that without checking a spreadsheet someone updates by hand, your onboarding sequence is running on hope.

The fix is to treat onboarding as a state machine driven by real engagement signals: a welcome email with open and click tracking, a self-service booking link for the kickoff, and webhooks that move each customer between states — engaged, unresponsive, kickoff booked — without anyone watching an inbox. The full recipe is in the customer onboarding automation tutorial, and the whole thing gets more interesting when the sending mailbox is an Agent Account (in beta) — a dedicated onboarding@ address your app owns, so replies route back to the same identity that sent the drip.

Start with a tracked welcome email

The first send carries tracking_options so you learn whether the customer opened it and what they clicked. The label field is the trick: it encodes which customer and which stage the event belongs to, so webhook handlers don't need a lookup table.

curl --request POST \