A telco whose app is the front counter.
The client provides broadband and mobile services to consumer and business customers, who manage those services through a self-service portal and a mobile app already live in both major app stores. The app is where customers check what they owe, pay a bill, and work out whether a service interruption sits in their home equipment or the wider network — IXC Digital was engaged to rebuild it and broaden what customers could do without contacting support.
Customers had to chase the app.
The existing experience was largely passive. Important updates required customers to check the app themselves, payments were card-only, and connectivity problems often became support calls.
Behind the scenes, the product also relied on legacy APIs, unreliable analytics event naming, and a deep-link dependency scheduled for deprecation.
Proactive alerts — customers had to open the app to check bill due dates or outages themselves.
Payment option — card only, with no Apple Pay, Google Pay, or PayPal for customers who wanted them.
Self-service diagnostics — every connectivity issue and hardship request went straight to a support call.
What the project had to deliver.
Rebuild, not patch
React Native across iOS and Android, without losing anything customers already relied on.
Notifications that opt in
Working push notifications with category opt-in — account, service and marketing kept separate.
Wider payments
Card, Apple Pay, Google Pay and PayPal, with pay, part-pay, or change-method all in-app.
Hardship, self-service
A 7-day payment extension presented as support, not buried three menus deep.
Modern API layer
Move off legacy APIs onto the client's modern experience API layer.
Diagnose, then act
Let customers test their connection, see where the fault sits, and book a technician — no calls.
Pin the detail down first, then build against it.
Delivery ran on four disciplines, kept visible throughout rather than resolved only at sign-off.
Requirements traceability
A traceability matrix covered the existing app as well as new scope, so current-state behaviour was documented rather than assumed — every requirement from design workshops carried through to a user story.
Design validated before development
Information architecture, user journeys and a component system were signed off in Figma first. Screen names had to support notification targeting, so naming was settled before routing code was written.
Sprint governance people could see
Roughly 10 two-week sprints in Jira, each closing with a showcase. UAT ran every second sprint, not saved for the end, so payment and FCM integration problems surfaced while there was still time to act.
Analytics designed, not retrofitted
Because most existing events were untitled, event tracking was planned during business analysis after design sign-off — every tracked element mapped to its Figma frame.
An app that pays the bill, explains the fault, and books the fix.
The rebuilt app is React Native across iOS and Android, with style, text and imagery configurable rather than hard-coded.
Notifications & PaymentsPush, by category
FCM notifications with tokens tied to customer ID, refreshed on reinstall — opt-in split into account, service and marketing.
Drop-in checkout
Card, Apple Pay, Google Pay and PayPal, with a consistent vault flow so a stored token covers recurring charges.
Pay-my-account
Editable down to the overdue balance, plus a full transaction history by date, invoice and amount.
Hardship request
A short-term payment extension presented as financial-support assistance — the date writes back so it can't be reused.
Connection health check
Tests across the provider and wholesale networks to tell the customer whether the fault is home-side or upstream.
Automatic fault handling
A network fault gets lodged with a ticket number; a known outage gets an ETA instead of a queue position.
Chatbot that acts
Lodges faults, returns ticket updates, rebooks technician visits, and hands over to a live agent when it can't help.
The stack behind the app.
Self-service became a real service channel.
Customers can receive targeted billing and outage updates, choose how they pay, diagnose connectivity problems, lodge faults and manage technician appointments without waiting on support.
The app also moved onto the modern experience API layer and a deliberate analytics model, creating a reusable foundation for future customer-app initiatives.
Customers used to call us to find out what we already knew. Now the app tells them first — and handles most of it before it ever reaches a support queue.— Head of Digital, National Telecommunications Provider (placeholder — replace with a real, sign-off'd quote before publishing)
What this engagement reinforced.
Screen naming is a technical decision, not just a design one — notification targeting and deep links both depend on it.
UAT every second sprint, not just at the end, surfaces payment and notification integration problems while there's still time to act.
Analytics planned during business analysis beats retrofitting tracking onto a shipped app with unreliable event names.
The kind of work we do well.
A live app serving real customers, payments and notifications that had to work correctly from launch, several third parties in the critical path, and shared dependencies across client teams. Projects like this demand precise requirements, visible governance, and disciplined delivery — the model we bring to every engagement.