Service
Funnels configured as routes and records, not as a black box.
A funnel is a sequence of pages, forms and follow-up steps with one job each, and most of them leak at a point nobody measured. We configure the sequence you specify and the measurement points you name. What rate that produces is not ours to promise.
What this involves
-
Landing routes with a single job
One route per offer and audience you name, each carrying exactly one action. Variants live at their own addresses, so what differed between them is a diff in the repository rather than somebody remembering what was changed.
-
Form paths that hold their state
Multi-step forms that survive a reload, validation that says what is missing and where, and a confirmation the visitor can keep. The state sits on the server, so a closed tab does not cost the entry.
-
A submission that arrives once, even when the network disagrees
A double click, a retry after a timeout and a request sent again must not produce three records. Submissions carry a key, so a repeat lands on the record that already exists instead of beside it.
-
Follow-up is triggered, not remembered
Notification, hand-off to the system that owns the record, a scheduled reminder: each one a step of the path on a queue, with retries and a failure somebody can see — rather than a person who was supposed to check.
-
The measurement points you define, and no others
Which step counts as progress is your decision, not a default. We configure events for those steps only: what nobody named is not collected, and nothing goes to a third party you have not named.
What we use
-
Application side
- Laravel
- Livewire
-
Path structure
- landing routes
- multi-step forms
- confirmation pages
-
Follow-up
- Laravel queues
- queued notifications
- hand-off to the owning system
-
Records
- PostgreSQL®
-
Testing
- Pest
-
Measurement
- events named in the specification
Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.
Is this the problem you have?
If it is adjacent rather than exact, say so anyway — the useful conversations usually start that way.