How to Lose a Customer: 140,000 TL, a Date of Birth and 20 Days

A pre-approved 140,000 TL limit, a customer ready to buy, and one date-of-birth error. How bad customer experience gets built: a 20-day story seen through an architect's eyes.

This is a true story. It happened to me, and as usual I will tell it the way I tell everything: as a story. We will go back in time a little for some nostalgia, then look at the digitally transformed world we live in now. After that I will share the deep details of the problem I ran into as a potential customer, along with my views on it as an architect. So this is partly about customer experience, and partly about how a service turns into a “fail” — the thing people quietly stop choosing. Fair warning: it gets technical.

The 2000s and today

Let’s rewind to the 2000s. My generation may be the last one that actually saw internet cafés. Remember? Floppy disks still existed, ADSL was only available in certain places, and most of us got online through a fax modem. In Turkey we had providers like E-Kolay and Ixir. I remember ten computers sharing a single fax modem at the same time.

I remember downloading mp3s from LimeWire to play them in Winamp. There was a real distinction between “a track” and “an mp3”. And your optical drive mattered: if you didn’t know the difference between “CD-ROM” and “CD-RW”, you’d end up asking “why can’t I burn this CD?” There was an application called Nero Burning ROM purely for this.

Like everyone else I played Counter-Strike 1.0 and Age of Empires II. I built HTML pages in Adobe Dreamweaver and saved them to 3.5-inch floppies, because I didn’t want to waste a CD. Rewritable CDs weren’t that effective either.

To be honest, this was the period when I had to work any job I could, because I lost my father early. I started working in an internet café when I was barely 13 or 14. Learning hardware concepts at that age turned out to matter enormously: what a CPU is, why we used DDR2 RAM, why we should pick SATA over IDE. I got to observe all of it up close, because we weren’t only running an internet café — we were also selling computers in that neighbourhood.

In the 2000s, in the Yazıcıoğlu Business Centre in Kadıköy, Istanbul, there were companies like Gold Bilgisayar. I think most places running an internet café were also selling computers. We would place an order, the parts would arrive four or five days later, we’d assemble the machine, install the OS and hand it to the customer.

If you’ve noticed, technology has changed unbelievably over the last quarter century, and it keeps accelerating. AI tools, autonomous and fully integrated systems are right at the centre of our world. We’ve reached a stage where life without technology isn’t really possible. Everything is forced to integrate with everything else. And yet, standing in the middle of all this technology, I’m still surprised when one thing cannot fully integrate with another. For example, I find it strange that a manager still has to wait for reports from different departments to understand what is happening in their own company right now. I’m sure most of the reasons behind that are managerial and operational — but I don’t believe there can be a technical reason. We live in a time when there is a solution, or at least a workaround, for almost anything we want.

A service delivered at the moment of need = a warm sales opportunity

Back then my job sometimes meant reinstalling an operating system, sometimes assembling a PC, and sometimes attempting a “printer repair” that either fixed itself for no reason or never got fixed at all. I have hated refillable cartridge printers ever since. Which is why my position on printers has always been stubbornly fixed: buy a big toner printer, like the ones in government offices.

My wife is a preschool teacher, so we needed a printer. And she had exactly one model in mind. I said it many times: “Look, let’s not buy this one, these have problems, let’s get something else.” It was useless — I was shouting from the tenth village over, as we say. Remember: our wives are always right. Happy wife, happy life. 🙂

The Canon PIXMA we bought was in a bin before it turned four months old. So there we were, on the edge of another printer adventure — except this time I was the one deciding. After some research I settled on a printer from a brand I liked, with good price/performance. We went to the electronics retailer in our city, walked to the till and paid with my credit card.

And that is exactly where it all started. We had just paid and were walking out when my wife turned to me with an indecent proposal: “Can I ask you something? That AlışGidiş thing you worked with — why don’t you get yourself a new phone from there? Actually, why not replace your MacBook too? Your AirPods are broken anyway, let’s get all of it at once. Phone, MacBook, AirPods — let’s update you!” I believe it was a bribe of compensation. To be fair, my AirPods developing a microphone problem so quickly had been annoying me; that part was worth considering. I’m actually very happy with my phone and my MacBook, they still perform beautifully — but the AirPods idea made sense to me. Then a voice inside said: “Why not, let’s just buy all of it.”

You may not know AlışGidiş. Inside their mobile app you could buy tech products in interest-free instalments, financed through Fibabanka; it was a subsidiary of the bank. For a short period I consulted for AlışGidiş as a software architect. Later the company was closed and merged into Taksitlio, another subsidiary of the same bank. During those two months, having worked with Fibabanka for many years, I comfortably bought two devices through that app. I killed three birds with one stone: I was a good son, a good son-in-law, and an architect who tested the product end to end and noticed what nobody else had. That’s how I got to observe the issues and report them first-hand. It’s my style: in everything we build, I’m the first to try it, because I have to be satisfied before I can convince anyone else. Otherwise the work is sloppy.

A “date of birth” error I could not make sense of

My credit record is clean, so I rarely have trouble with credit limits. As you may know, in Turkey instalment sales by credit card have for some time been available only through corporate arrangements. On the AlışGidiş side I had bought two devices over 12 interest-free instalments, at a laughably small premium over market price. I was curious what Taksitlio was offering, because the store I went to had an agreement with them and there could be a good deal. But instead of downloading the mobile app, what caught my eye was the “apply by SMS” option printed on the leaflet. The same instructions are on the retailer’s website.

Where the customer experience failure begins: the retailer's SMS application instructions ask for the date of birth in DD/MM/YY format.
The instruction is explicit: date of birth in DD/MM/YY. Hold on to that detail.

1. I sent the first application exactly as instructed. The system replied that my message was in the wrong format.

The SMS application sent to 6457: keyword, national ID number and date of birth written as 17/09/91.
Taksitlio's error SMS: it asks for the date of birth in DDMMYYYY format with no separators.

Let’s pause here for a second. The retailer’s website and leaflet say “DD/MM/YY”. The error message returned by the service says “DDMMYYYY, with no spaces in between”. Two different day formats, two different year formats, and a separator disagreement on top. I followed the instruction to the letter and still got an error. This isn’t even a software bug; it is the same field being described two different ways in two different channels.

2. On my next message I sent it in the format the service actually wanted, so I received the privacy notices and the pre-approval. A pre-approved shopping loan of 140,000 TL was ready.

The Taksitlio SMS thread: format error, a privacy notice link, and a notification of a pre-approved 140,000 TL shopping loan.
Pre-approval granted: 140,000 TL. At this point I am a customer standing at the till, ready to buy.

3. To continue, I am required to download the mobile app. So I tap the link and carry on. I install the app, complete the first SMS confirmations, and pass through successfully.

4. I want to read the terms attached to the limit, but I cannot reach the limits page. It asks for a second SMS verification, and there I hit the date of birth error. I got the same errors again the following day, so these are the screenshots from then.

The SMS code verification screen in the Taksitlio app: a date-of-birth error banner at the top, and an
The Personal Information screen of the Taksitlio app, showing the date of birth stored correctly and in full.

The screen on the left says “the date of birth you entered is incorrect”. But that screen isn’t asking me for a date of birth; it’s asking for an SMS code. And it already says “you entered an incorrect code” before I have typed a single digit. The screen on the right is the app’s own “Personal Information” page: my date of birth is right there, complete and correct. The system already knows the data, stores it correctly, and still blocks the flow because of that very same data.

I think I tried this six or seven times. I was stuck in a loop, so I stopped. The store was closing anyway. “I’ll try again later,” I said, and we left. I assumed it might be a momentary production error. When I tried again from home the next day, I got the same errors. I later turned it into a post on LinkedIn — being able to monitor and observe software failures matters. You can read the longer version here: A Reference Number and an Observability Story.

Customer experience on digital channels

In the digital age, being reachable has turned from a phone call into a simple email. Which is perfectly reasonable if it makes things faster. When I lived in Estonia, for instance, everything ran digitally. I remember selling my car to another Estonian citizen from Turkey, over a digital platform, using my mobile signature. All he had to do was go to the Estonian road administration’s website, see the request I had created, approve it, transfer it to himself or to a company he was authorised for, and pay the fee. That simple.

Naturally our customer service experience went digital too. There are systems integrated with WhatsApp, with email, with VoIP telephony. Social platforms got their share as well: we can file complaints through Instagram, X (Twitter), even LinkedIn, and companies do try to respond. At İdeanet we serve three channels ourselves: WhatsApp, email and phone. All of them land on a shared “support” screen and flow into our internal systems from there. But the thing we really watch is SLA. When a request comes in from a customer, we use an integrated system that tracks everything from response time to the terms of the service agreement.

As far as I can tell, the Taksitlio team does follow digital platforms closely. If you ask whether they do it well, though, my answer is no. I say that because I know teams who do it better. Take this LinkedIn message. A few days after my post, they sent the reply below:

Taksitlio's first reply on LinkedIn: they apologise for the negative experience and ask for contact details via DM.

So I sent them my details right away, privately:

LinkedIn DM thread: Taksitlio says the date of birth was entered in the wrong format, while the user shows with a screenshot that it was entered correctly.
Their page says “typically replies within 1 hour”. In reality the reply came the next day, and it said the date of birth “was not entered in the correct format” — while the app’s own screen showed it correctly.

My reply may read as blunt, but I felt I had to write it, because what I saw was a verdict reached before any investigation. You answer a day later, and you haven’t even looked into it properly. Under normal circumstances a support agent could have:

  1. Looked up the record by phone number and reviewed the user’s actual flow.
  2. Corrected the data manually, if it really was malformed, on the basis of the complaint received via LinkedIn.
  3. Called the customer and understood the process in detail.

None of the above happened. They never replied to what I wrote.

Two LinkedIn messages dated 11 and 16 August that never received a reply.

So I searched online for a customer service number. There were two contact channels: send an email, or file a complaint through the LinkedIn page. Given what the second one had produced, email seemed more sensible. I sent one on 18 August, described the error, and showed with screenshots that I had followed the correct format. The investigation took exactly two days. In the end they asked: “could you delete the app and reinstall it?” After doing that, I was finally able to see my limit.

Taksitlio customer support email thread: request sent on 18 August, first reply on 19 August, and on 20 August a suggestion to delete and reinstall the app.
The fix: “please delete the application from your device and install it again.” That is not a solution, it is a diagnosis.

The timeline

  1. 31 July — A pre-approved, warm user hits an error.
  2. 31 July — The limits page in the mobile app is unreachable. (Why can a pre-approved user not use the credit within the first hour? No abandoned-basket handling + a process mismatch between the SMS flow and the mobile app + missing monitoring.)
  3. 4–5 August — First support contact, via LinkedIn. (Response time, SLA breach.)
  4. 6 August — First reply, and the user’s counter-reply. (A verdict delivered without investigation.)
  5. 11–16 August — Two messages, zero replies.
  6. 18 August — The same user writes again, this time by email.
  7. 20 August — The fix: “delete the app and reinstall it.”

Total: 20 days. The shelf life of a warm sales opportunity is about 20 minutes.

Architecturally, what exactly broke here?

As promised, let’s open this up with an engineer’s eyes. None of these problems is a hard engineering problem. But every one of them will look familiar.

1. Contract mismatch

The retailer’s website and leaflet say “DD/MM/YY”, the service’s error message says “DDMMYYYY, no separators”. Two channels of the same product describe the same field two different ways. This is not a coding error, it is an ownership error: there is no single source of truth between the team writing the marketing copy and the team writing the API. Unless the format rule is defined in one place and fed to every channel from there, that gap never closes.

2. The error surfacing on the wrong screen (error mapping)

“The date of birth you entered is incorrect” appears on a screen that never asks for a date of birth. On the same screen, “you entered an incorrect code” appears before a single digit is typed. The error code returned by the backend does not match the message rendered by the mobile client. The user is told to fix the wrong thing — so the user does the only thing available: tries the same thing six or seven times. Binding a generic error code to the nearest string on screen is a far more expensive shortcut than it looks.

3. Asking for data you already hold

My date of birth sits correctly on the app’s own profile screen. The system knows the value, stores it in the right format, and still breaks the flow because of it. That tells you validation is running against whatever the current session is carrying, not against the stored record. Asking a user for something you already know is friction at best; at worst it is a wall like this one.

4. Stale client state

The fix was “delete the app and reinstall it”. That sentence is not a solution, it is a diagnosis: a cache or local state on the device is corrupted, and the app has no way to recover itself from that condition. With version-based cache invalidation, a session reset, or a recovery flow that asks “stuck? shall we reset this?”, the whole thing would have taken 20 seconds instead of 20 days.

5. No measurement

A user with an approved limit, standing in a shop at the till, tries to reach the limits page six or seven times within the first hour and gets the same error every time. That is an event that should light up red on any funnel dashboard. Nobody saw it. The person who reported the fault was, once again, the user. I have written this before: a user telling you about a failure is not feedback, it is the invoice for missing measurement.

6. No abandoned-basket handling

A limit that has been pre-approved but never used is the warmest list in marketing. On the evening of 31 July I should have been on it. No SMS, no push notification, no call. In a credit product, pre-approval has a shelf life — and if nobody checks that shelf, the product spoils on it.

7. The SLA in the window is not the process behind it

Their LinkedIn page says “typically replies within 1 hour”. In reality the first reply came the next day, my messages on 11 and 16 August were never answered, and the fix only arrived 20 days later, through a different channel. An SLA that isn’t measured, and whose breach raises an alarm for nobody, is not an SLA. It is a sign in a shop window.

So where did the 140,000 TL go?

Back to the opening question. A pre-approved limit of 140,000 TL, a customer ready to buy, and a basket waiting at the till. How much of that was lost?

Honestly, what was lost is not 140,000 TL. It is three separate items:

  • The single transaction. The products weren’t bought that day; some of them were later bought elsewhere, with different financing.
  • Lifetime value. The limit did eventually become visible — but I never opened that app again, and it won’t cross my mind next time either.
  • Reputation. I wrote this article. Nobody budgets for this line item, and it is the one that gets paid off the slowest.

Those three together cost far more than an alarm that would have caught the problem in the first hour. And there is no hard engineering problem here: a format inconsistency, a mis-mapped error message, a cache that never got cleared, and an unread inbox. Each looks trivial on its own. Side by side, they lose you a customer.

This is not a grudge piece. I have worked with Fibabanka for many years and I still do. I wrote it so that the dozens of teams currently making the same mistakes might read it — because somewhere in your product there is a ticket you closed with “delete it and reinstall”. And behind that ticket there may be a customer who stood at the till and gave up.

One last question for you: after a bad customer experience, would you give that brand another try? Or has the second chance run out for you too? I shared a short summary of this piece on LinkedIn as well — leave your answer under that post and we can talk it through there.