A webinar funnel without dragging deals by hand
The online school runs multi-day webinars, and managers moved participants' deal stages by hand: who attended, who did not, who to invite to the broadcast. The previous ChatApp integration had spawned ~1,470 extra deals and 261 extra contacts in two days.
A live cloud portal with robots and mailings on stages — any mass move immediately sends messages to real people. REST silently ignores some filters and limits execution time, and the server and the portal live in different time zones.
- Intake of Bizon365 attendance reports: by broadcast day, a deal moves only forward by stage weights and never rolls back
- A separate branch for case-study webinars — a task for the owner instead of a new deal, idempotency by an event sha256 key and a dry_run mode with zero writes
- Moving no-shows to "Did not attend" in batches: writes only with --execute, protection against repeated and parallel runs, protection for those who attended the broadcast
- An invitation 10 minutes before the broadcast via a trigger stage, returning the deal to its original stage; course buyers are excluded from the mailing
- Joining a WhatsApp chat via ChatApp moves the deal to the right stage — through a file queue with flock instead of creating new deals
- A REST wrapper that never reports errors as success and waits on its own until the portal allows requests again
Broadcast invitations reached 628 of 628 participants with no errors, 451 of 451 deals were moved to "Did not attend", and a backlog of 396 deals was cleared; attendee protection filtered out 65 of 78 deals. A contact audit found 564 cards with a phone number in the "Name" field — the source of undeletable duplicates.