CRM for an Insurance Intermediary: Masuria Group
A custom insurance CRM built in 3 months: 11 sales stages, automatic renewals and 62 GB of files migrated from the previous system.
- 3 mo.
- from project start to production
- 62 GB
- of files migrated into the system for launch
- Client
- Masuria Group
- Industry
- Insurance intermediation, mainly motor insurance
- Scope
- Process analysis, design and development of a custom CRM, client portal (PWA), data migration, production environment and backups
- Project duration
- 3 months to production launch
- Technologies used
- SymfonyAPI PlatformVue.jsTypeScriptPostgreSQLRedisElasticsearchPWA
Masuria Group is an insurance intermediary based in Olsztyn, Poland. It sells and services mainly motor insurance (third-party liability, comprehensive cover, personal accident, assistance, GAP, glass), comparing offers from more than a dozen insurers. Its portfolio covers both individuals and companies, including leased vehicles.
The first project document set the goal: a production system for an agency's daily work, not an MVP. So the scope covered the full life of a policy from the start, from first contact to post-sale matters, along with roles, permissions and a change history. We took a similar approach in the CRM for samochodowy.pl, but insurance has a different rhythm: the end of cover sets the pace.
Sales opportunities: 11 stages from lead to policy
A salesperson sees one process: lead, first contact, needs analysis, calculations, offer, conversation, decision, policy preparation, sending documents, receiving signed documents and success. The list sorts by policy end date, and an opportunity can be found by VIN, registration number, client or tax ID. Personal data on the screenshots has been masked. The interface is in Polish.
My Day and the calendar: dates that cannot slip
After logging in, an employee sees today's deadlines, contacts and overdue items, plus the number of policies due for renewal, with urgent ones highlighted. Shortcuts lead to adding a client, a company or an opportunity.
The calendar gathers dates from across the system: planned contacts, decision dates, offer validity, instalments, start of cover, renewals and personal events. A switch shows one person's calendar or the whole team's.
Reports: premium and renewals without manual data gathering
Dashboards show written premium, policy count, average premium and renewal rate, with a chart comparing the last 12 months to the year before. Listings and the sales report, previously a separate document, sit alongside them. The client's financial values on the screenshot have been masked.
Settings: configuration instead of code changes
The agency administrator manages branding, modules, client emails, notifications, insurers, partners and sales dictionaries directly. GDPR consent, data retention, anonymisation and the change history are in the same place.
Technology stack
The backend runs on Symfony and API Platform with PostgreSQL, Redis and Elasticsearch. The agency panel and the client portal are two Vue.js applications in TypeScript that share a component library. Building a similar system around your own processes? See how we work on dedicated applications and PWAs, or talk to us about your project.
Diagnosis
What had to come together in one system?
Data in several sources
Clients and policies lived in a policy system, while sale type, account owner, partner, documents and instalments sat in a 2023-2026 sales report. A full picture of a policy meant checking both.
Renewals in spreadsheets
Open renewals were tracked in monthly spreadsheets. With over 3,500 active policies, the end of cover is the most important date in a salesperson's work.
10 processes to cover
Besides buying and renewing a policy, the system had to handle leasing assignment and buyout, vehicle sale, theft, total loss, add-on products and post-sale work.
A list of 113 items
The starting point was the client's own list of 113 functional items.
Sensitive data
National ID numbers, GDPR consents and client documents needed encryption, access control and a change history from the first day of operation.
Solution
A CRM built around the policy and its dates
Sales opportunities
An 11-stage board from lead to success. Search by VIN, registration number, client or tax ID, a filter by account owner and a separate list of unassigned opportunities.
Policies and renewals
Every night the system creates renewal opportunities for active policies ending within 40 days. The dashboard shows how many policies expire within 45 days and which are urgent.
Post-sale and client service
Separate work areas for missing documents, payments and client matters. Changing the account owner uses the same dialog everywhere and can include linked work.
Calendar and My Day
7 entry types, including policy instalments, offer validity, start of cover and renewals. Day, week, month and list views, for one person or the whole team.
Reports and dashboards
Written premium, policy count, average premium and renewal rate with a year-on-year comparison, plus listings and a sales report.
Integrations and client portal
Telephony with calls pinned to clients, company data from the Polish GUS registry, Przelewy24 and TPay payments. A PWA client portal is part of the platform.
How we worked
From a requirements list to production in 3 months
- 01
Process analysis
We started by documenting 10 processes, roles, statuses and business rules from the client's process map, feature list and spreadsheets. Each rule got a number that later tasks refer to.
- 02
Specification before code
Each larger feature started from a specification and a plan, and over 2,200 automated test files now guard business rules and permissions.
- 03
Migration as a separate track
The import first runs as a dry run: it reads and validates all data, writes nothing and returns an exception report and control totals. Only then does the same run write the data.
- 04
Full rehearsal
Before launch we rehearsed the import on the production stack, including a backup and its restore to a separate database.
- 05
Fixes after launch
After launch the Masuria team sent its first notes from working in production. We immediately prepared 7 series of fixes to lists, filters, phone fields and policy handling.
Results
What does Masuria Group have after launch?
- ✓ One system in place of a policy system, monthly spreadsheets and a sales report as separate sources
- ✓ Renewal opportunities created automatically every night for policies ending within 40 days
- ✓ Policy history and 62 GB of files, attached to the records they belong to
- ✓ An import proven by rehearsal: no gap between plan and database, no aborted runs, exceptions listed for correction
- ✓ Mandatory two-factor login, encrypted off-server backups and a tested restore in 10-11 minutes
“ Working with Endora felt like working with part of our own team. They did not wait for finished instructions: they asked about our processes, flagged risks early and proposed better solutions. What I value most is how quickly they responded after launch, when we started sending our first notes from daily work. ”
Have a specific challenge?
Don't just read about it - let's talk about your case.
