Migri Appointments
An alert tool helping users secure scarce Finnish immigration appointments.

Key outcome
Killed. Lawyers weren't receptive as a B2B channel, and B2C CAC/LTV didn't support scaling.
02 / The problem
Appointment slots at the Finnish Immigration Service are scarce and released unpredictably. Applicants refresh booking pages for days or weeks, often missing openings that disappear within minutes — delaying permits, jobs and family plans.
03 / The hypothesis
“If applicants get instant alerts when a slot opens, they will pay a small fee for it, because the cost of waiting weeks is far higher than the price of the alert.”
04 / The solution
- →Live availability monitor reading Migri's public booking system (migri.vihta.com) across all 11 Migri offices (Mariehamn to Vaasa) and every appointment type — scanning every other second, with alerts sent in under 10 seconds.
- →Users sign up, choose their criteria (category, appointment type, office) and activate alerts for €10/week — cancel anytime; 100% refund if no alerts are sent in the first 14 days.
- →A scheduled sweep runs every minute; when a matching slot opens, the user gets an email alert and books directly with Migri.
- →Appointment Concierge: no upfront payment — the user pays only once an appointment matching their criteria is found.
- →SEO guide library (8 guides) covering appointment types, fees and how to get slots faster.
05 / Build components
Four-step flow: choose alert → pay → get alert → book; trust badges, pricing, FAQ.
Server-side scanner of Migri's public booking API with history, stats and CSV export.
Per-minute scheduled job matches new slots to each customer's criteria and dispatches emails.
Email signup/login, password reset, criteria management.
Stripe weekly subscription (€10/week) with billing reconciliation.
Request form + internal and customer emails; €99 success fee.
Templates for appointment alerts, alerts activated/updated, concierge, auth.
Guides with categories, canonical tags, Google Ads conversion tag, cookie consent, GDPR/terms pages.
06 / AI & LLM stack
- Build platform
- Lovable (TanStack Start)
- LLM(s)
- [Add model]
- AI use case
- Built with Lovable's AI agent; [add any in-product AI use]
- Automation
- Scheduled database job (every minute) triggering the scan
- APIs / integrations
- Migri public booking API, Stripe, Lovable email, Google Ads
- Hosting / infrastructure
- Lovable Cloud (database, auth, scheduled jobs)
07 / Distribution & GTM
- →B2B: outreach to immigration lawyers and relocation advisers as a referral channel — low receptiveness.
- →B2C SEO: 8 long-form guides targeting Migri appointment queries.
- →B2C paid: Google Ads with conversion tracking.
- →[Add community / expat group tests, if any]
08 / KPIs & results
Visitors
TBC
Signups
TBC
Paid conversions
TBC
Revenue
TBC
CAC
TBC
LTV
TBC
Conversion rate
TBC
Gross margin
TBC
Payback period
TBC
Retention / repeat
TBC
Alerts delivered
TBC
Values marked TBC are pending real data.
09 / Scale-or-kill
Kill.
With B2B closed and B2C being a one-time purchase, acquisition cost per paying user was too high relative to lifetime value. No path to efficient scale.
What worked
- +The pain is real and clearly articulated by applicants.
- +The product was cheap and quick to build and operate.
What didn’t
- −Immigration lawyers didn't see enough value to refer or resell.
- −Consumer usage is one-off by nature, capping LTV.
Next time I’d test
- →Validate the B2B channel with 10 conversations before building.
- →Test pricing and willingness to pay on day one with a pre-sale page.
10 / Total cost & credits
- Lovable credits
- TBC
- AI / LLM credits
- TBC
- Hosting
- TBC
- Domain
- TBC
- Paid ads
- TBC
- Tools & subscriptions
- TBC
- Contractor / creative
- TBC
- Total experiment cost
- TBC
11 / Lessons learned
- 1.Urgent pain doesn't guarantee a repeatable business if the need is one-off.
- 2.Talk to the intended channel partner before assuming they'll distribute.
- 3.Model CAC/LTV before launch, not after.
- 4.Regulated, government-adjacent niches carry platform and dependency risk.
12 / Next experiment
An adjacent bet: a broader relocation companion for new arrivals, with recurring value (documents, deadlines, renewals) instead of a single alert.