Hacker News new | past | comments | ask | show | jobs | submit | shash7's comments login

Can relate, I've been in a similar boat running a small B2B Saas over the last 2 years. It does get easier over time.

I've learnt a few tricks for managing early stage pain points.

- You need to develop a polite but curt tone of voice for customer support.

- Once your core product is built, its worthwhile spending some time automating the heck out of everything. This will save a TON of time in the near future.

- Invest in good docs, even if you're not running a api saas. Good docs + consistent ux + rock solid support will solve most of your support issues.

I think a lot of literature around running a online biz has been boiled down to rather basic advice and its hard to find anything solid in this area. I've been running a small blog where I document these issues(operational.co) if anyone wants to check it out.


>You need to develop a polite but curt tone of voice for customer support.

And very focused responses in terms of action items.

You might think of 3 things to say, check, but sadly 90% of the people you respond to with a list will behave like they read just one of them. Sadly this also leads to dragging things out for everyone who can handle more than one thing at a time :(


Yep. All the time when I worked in IT:

Me: Please try these 3 things and let me know how it goes: (list of 3 things with instructions)

Them: I tried (thing #1) and it didn’t work.

Me: Thank you, please try these 2 things and let me know how it goes

Them: I tried (thing #2) and it didn’t work.

Me: Thank you, please try this thing and let me know how it goes

Them: (no response)

Me: Just checking in to see if this is resolved?

Them: (no response)

Me: I’m closing this ticket as I haven’t heard back, let me know if this is still a problem and I can reopen it

Them: Don’t close the ticket, I’m still having this issue

Me: No problem, can you try this thing and let me know how it goes?

Them: (no response)


Me: This very specific thing is broken in general for your product when I do a and b. Just like users x,y and z report on <random forum>.

(Siemens) Support: Before I can help you, please find the serial number via <tedious procedure>, and the exact version of subsystems <x, y and z>.

Me: Here you go, though I fail to see how my specific setup is relevant as the problem has been reported on forums for years, and it is easily reproducible

Support: Please update to latest version x.

Me: Version x has known regression which will break the machine for the customer. I did the 1 hour procedure anyway but the issue is still present.

Support: Please execute this <obtuse command that runs a trace> and download the log from <airgapped machine> with SCP

Me: O well, did that here is the file. Don't understand why you can't run it on your machine

Support: Please try <irrelevant thing>, reboot (wait 5 minutes) and run the trace again

Me: (Gives up)


This is me almost every time I interact with ISP support.

Except… recently I completely misdiagnosed something. So while I was getting politely frustrated with the support clerk, he was stepping me through a set of irrelevant seeming procedures which, indeed, resulted in identifying that a piece of hardware was broken.

In this case it was the fiber to Ethernet adapter my ISP uses. He needed me to verify that, at every step of the way, pieces of my infrastructure were not the cause of my flaky connection (they weren’t). However, as a final step he had me reboot the adapter and it didn’t start back up. Turns out this is a rare failure mode and the flaky network I’d been seeing was an early, year long, symptom of this issue.


I did the even more dumbass version of this once.

I had DSL with a router and modem. I never had problems with it, never required reset etc. Over the years somehow I forgot and thought it was a combo router and modem.

Then when I finally had a problem, I insisted to customer support I had done many power cycles already. They scheduled a tech to come out, but I realized my mistake before it went that far at least.

A power cycle fixed the modem, of course.


I went as far as going out to one of the local metro offices for my ISP in the city, to demonstrate some bizarre problem that I was experiencing with my combo router / modem.

I was actually able to demonstrate the issue in person, and everyone was scratching their heads trying to figure out what was going on.

I decided to try factory resetting it as a hail mary... and instantaneously I got a perfectly functioning ADSL connection.

It would have been far less embarrassing for me to have thought to try that and make the effort at home. lol


I wonder how flows like that happen.

Is Support just completely disconnected from Engineering? Do they not have a way to report issues and indicate that many customers are having a specific issue?

Does the company believe that giving a customer a runaround will make them less upset than saying "Sorry, this is a known issue. We're working on it but do not have a timeline"?

Certainly at some point, some support person is going to be like "Huh, we have a lot of customers complaining about an issue, and our usual flowchart script doesn't seem to resolve it" and try to work it up the chain, right? Or does it get to their manager who says "Meh, that's an engineering problem, not a support problem. Get back to your tickets!" and never pass it up?


If you're working with a large company, Support is outsourced to a bunch of people reading scripts in Manila/Bangalore, and the external company employing them is actively incentivized to never resolve the root cause of any issue, because doing so would mean less tickets and less billable hours.


In my first job in a software maintenance project, I was overenthusiastic and was closing issues left and right. My manager called me to his office and told me that if I solved all the issues, the project will need much lesser people when they renew the contract, which might lead me, the junior most person, to be sent to the bench until they get a new contract.


Sounds like something that could be turned into an opportunity. Immediately start looking for a different job, and on the interview explain “I left previous job because I was too efficient at solving problems. After X time, there were no outstanding issues so I was no longer necessary. I’m looking for the next place where I can make a difference”. There are plenty of places that see fewer issues a positive.


I left to pursue further studies after that.


> I left previous job because I was too efficient at solving problems. After X time, there were no outstanding issues so I was no longer necessary.

And so I was fired and could no longer support myself or my family, that's why I'm applying to a position with the lowest pay grade,

It's the capitalism, not a red cross


To give you the other side of this, I have had service providers obviously do this to us. It didn’t result in more billable hours at renewal. We just systematically moved teams leadership to a competitor - we have found that mixing companies of origin in teams keeps everyone more honest - and removed developers we thought were not meeting the productivity standard we were looking for.

Cheating your customer is a dangerous game. They are not dumb.


It’s not that we were inefficient, we got some 80+ tools to support without any knowledge transfer or documentation. We got regular issues, and I was digging to find the root cause and solve them for which apparently we weren’t paid.


You were not overenthusiastic, you were sane.


> I wonder how flows like that happen.

This is the usual response when a companies customer numbers start to scale up so far that the volume of users like the ones in Vegenoid's parent comment start to overwhelm the support staff. Keeping up the good/decent customer support that you could give to your first few hundred or perhaps even few thousand users eventually becomes ludicrously expensive or even impossible.

Then the original article's "Keeping this running and supported is shit. People are idiots and time wasters! Automate all the things!" stage kicks in.

So "first level support" is created, who's main objective is to get rid of support requests with the minimal effort by the least skilled staff possible. So everything is written into a script that call centre employees are required to follow. Low skill minimal wage staff are required to ask stupid things like "Have you tried reinstalling Windows?" and getting a confirmation that they have - before any support request is passed on to even a junior or intern developer. At this stage nobody gives a damn about users who need help, and they outsource that work to other users on the "community forums" and the entire support team is fired.

(Google, of course, being a world leader in both webtech and customer acquisition, completely skipped the "provide decent customer service" stage and went directly to the "don't give a damn about users" end game.)


Yes. Engineering time is expensive. Support exists to resolve problems without needing engineer time except when the company thinks that the problem is worthy of being addressed.

The tendency to wall off engineers is often taken to a counterproductive level.


Silo your engineers from reality and hire a few BAs and a PM to interpose.

(Don't actualy do this unless you want to burn money)


Obviously, not every support ticket requires engineering attention. I would wager at least 90% don't. In the case of B2C businesses, likely 99.99% don't, considering 80% are customers that simply need a password reset and can't figure out how to do the most basic Reset Password -> Open E-mail -> Click link -> enter new password flow.

But there's a line SOMEWHERE. The few tickets that DO need engineering time REALLY NEED IT, and it's completely asinine that in some corporations, it's impossible.

If, for example, 100 people are talking to support for the exact same crash, and people in support are able to reproduce it, it needs to go to Engineering, rather than support telling customers "Have you tried formatting your drive and reinstalling everything from scratch?" when they already know it won't fix anything.


The best place I ever worked had fairly sophisticated, formal channels for noticing when a cluster of related-looking problems happened repeatedly, and escalating that to engineering for a fix. It also had open Slack channels with engineers and product managers in them, and some informal understandings about what type of problem was appropriate for support or professional services to bring up, there.

That combination kept the customer-frustrating bugs quite low, while still allowing engineering to keep developing new features at a fairly rapid pace.

(and then we got purchased by a PE firm and dismantled)


Because most people's problems are they don't have the router's power cord plug in followed by the coax / ether / fiber cord.

The amount of times the software doesn't work because the HASP key [1] is plugged into a different machine is so many.

You just can't trust that they've done any basic troubleshooting and so have to start from a completely blank slate.

[1]: https://en.wikipedia.org/wiki/Software_protection_dongle


I think sometimes the company doesn't know what to do or doesn't care. But they have to make some response. So they just ask you to do a load of busywork, to keep you out of their hair for a while.


The other side of the coin is that support gets an ocean of lazy/unrelated/confused support requests that the engineer cannot help with, and responding and explaining that eats up a huge amount of time. I don't know that I agree with putting up barriers to reach support, but they are trying to address a real problem and I get where they are coming from


i remember we had similar issues at my 2nd to last job a bit ago. we would often times try to reduce the friction, but it built up and built up until, one day, there was zero chance of reaching anyone worthwhile. i wish we had gone back and really focused on providing as much support as we provide in product!!


sometimes we're aware of an issue and management has decided its not worth the effort to actually fix it, but also management doesn't want support to straight up tell people we wont help you, so they basically obfuscate


> Is Support just completely disconnected from Engineering?

Support is almost always tiered because $$$. In an ideal situation (hello GitLab!) tier 1 they are friendly and competent triage artists that can redirect lost customers and handle the common basic cases. Tier two is essentially an experienced and skilled tier 1. It's not until you get to tier 3 that you reach an engineer, usually one dedicated to support. That engineer is the one who reaches out to the operational engineering team if needed.


> I wonder how flows like that happen.

These flows are intended to dissuade problem reports, because the business is too big to care.

I once reported a ui bug to Discord(the game chat). This is how it went.

- me wrote an elaborate email and screenshots of the problem with step-by-step guide to reproduce it

- support responded me by asking build version, my os version, device type

- me screenshot all the requested details + manually wrote down in response email so someone can also copy-paste somewhere directly from my email

- support responds by asking me to clear my iphone cache(sending me a guide for Android's App data cleaning process) and see if issue persists

- me respond that it is not Android and since I knew what they will ask, I have uninstalled, reinstalled, logged-out, logged in and documented the whole process by recording my screen while doing it

- support, please try to logout, then uninstall and reinstall again

- me begrudingly do it again(record screen), send them everything

- support, could you try updating your device OS? - me check for updates, iOS says it is latest, me send screenshots

- support, can you try disconnecting and reconnecting to your network or rebooting your device?

- me follow the steps(by recording my device using another device) and send it back

- support, can you try factory resetting your device

- me get pissed off, I mean c'mon, the issue is that, the client is incorrectly handling the on-screen keyboard events and has nothing to do with my device, but giveup anyways and write on twitter that I tried to report an ui bug, is there some engineers I can reach out to?

- twitter official DM me and what do you know, it was the same person who was responding to my emails and tells me, if I tried resetting my device to factory default, else they'll close my ticket as not reproducible

I just gave up and uninstalled discord. I mean, sure there are lot of useless problem reports, but when your user goes on to extreme lengths to document an issue and cooperates, please take it seriously.

In most cases, the whole script is intended to deter the less patient consumers/users and not actually solve any problems. In some cases, the support is just an outsourced team with no connect/contact with actual team or the product.


> Support just completely disconnected from Engineering

Yes.

Unless you want to drive engineering insane / waste a ton of money.


As mentioned in another comment, support shouldn't be entirely disconnected.

If a customer seems to have discovered a legit bug in the software, there needs to be a path from support to engineering for the bug to get reported.

At the very least, support staff should be willing and able to attempt to recreate a bug that a user is reporting, rather than asking them to completely wipe their device and install everything from scratch for something that is easily reproduced.

Let's take a very simple example. Imagine you've got this Chess app, and whenever someone creates a checkmate involving two bishops, the game crashes, 100% of the time, but only in cases involving two bishops. Sure, maybe the first ticket you get, you go through the workflow of reinstalling, etc. But by the time you've got 100 tickets all saying their game crashed on a checkmate involving two bishops, that should have been escalated to engineering. At the very least, support should be saying it's a known issue. Honesty is going to be a lot less frustrating than to be told to take steps that both sides knows won't fix the issue.


I have had that experience. Or variations of it.


What do you do if you are incorrect? It has happened many times that a customer calls certain they know what the issue is and even if the customer is well versed in that field he may be wrong.


I hop on video and do screen share. It probably takes less aggregate time, they think they get special treatment when really I'm just saving time and I know how my stuff is being used more.


I have had great experiences with Schneider electric support for their automation platforms, and switchgear


Me: Hi, my ADSL isn't working, I have line sync but no data.

ISP Support: Hi do you have a dial tone?

Me: No we don't have a land line phone at all and haven't for years

ISP Support: Can you please check your land line phone and let me know if you have a dial tone?

Me: I. HAVE. LINE. SYNC.

ISP Support: Yes but your line might not be connected yet. I need to know if you have a dial tone.

Me: ...

Me: drives 5km to the nearest shop that sells telephone handsets

Me: <twhoo hoours layter> YES. WE. HAVE. A. DIAL. TONE.

ISP Support: Okay so it looks like there's an outage in your area which is affecting your connection.


And sometimes the last one becomes:

    Them: Don’t close the ticket, I hadn't had a chance to check that yet.
Life gets in between and this one library or project is usually hardly the only thing that person juggles. We need to accept, that sometimes issues remain open for an extended duration. The worst is, when you have the same error or issue someone else had already, but their issue got closed by an effin github bot, that automatically closes issues, because someone hasn't replied for a day or two. Like, you are not the center of the other person's life. Just like no one forces you to work at no cost for others and help them, they should not be forced to give undivided focus to your project's issues.

Having bots close issues, accompanied by a rude automated message is often contra-productive. It would be fine to instead post a reminder in the issue, asking for an update like shown in the example:

     Me: Just checking in to see if this is resolved?
This is actually a very polite form of handling it.


This. Usually if you are looking at tickets closed, that means you are using that as a metric, which is a BAD idea. Ticket lifetimes and movement are more appropriate metrics.


What I find really infuriating is when I was the last person to post on my issue, and I'm waiting on an update from the maintainer, and the github bot threatens to close the issue on me for not posting any updates!

I've started replying to it with "No updates here." to reset the timer.


I almost never see bots close issues that are less than 30 days old. Many projects can change a lot in 30-90 days and the bug may no longer exist, keeping issues open when they may no longer be relevant isn't helping anyone either. If it is still relevant, it can simply be re-opened. I don't see any downside to semi-aggressively closing stale issues. If it's easily reproduced then most good projects will mark it so that it won't be auto-closed.


I encounter prematurely closed tickets all the time, practically every day.

So many software projects close bugs with bots, and they have an unrealistically rosy picture of how bug-free their software is.


> If it is still relevant, it can simply be re-opened.

I've seen places where tickets were not allowed to be re-opened. If a ticket was closed for any reason at all besides a misclick, a new ticket had to be opened with a link to the old ticket if necessary.


Automatic closing tickets is a solution looking for a problem. Humans should close tickets when they're resolved or no resolution is anticipated or planned. Putting an arbitrary number of days on it with a one way trip to the [closed] tag is like following a broken clock because it's right twice a day.


> no resolution is anticipated or planned

This is the real problem an automated close addresses. They are are afraid to tell their customers this.


> keeping issues open when they may no longer be relevant isn't helping anyone either.

If you're moving fast enough that you don't have time to close them manually, you're moving too fast (and breaking too much).


Usually it can't be reopened because you can't even really get someone to look at it, because issues are wrongfully closed so frequently that they don't pay attention to complaints about the closures.

Take a look at this issue to see what it takes to keep something open: https://github.com/oobabooga/text-generation-webui/issues/41...

(not especially proud of my reactions there, but I hate being abused, even by robots.)


When I see some bug like this I do wonder why don't more people fix the issue themselves or think that it might be specific to their setup or accept a little random lag.

If I received a bug like that I would immediately think why are you telling me this... just fix it yourself and share your fix if you want. I probably have higher expectations from my users. You give the software away now they want you to fix it for them.


> If I received a bug like that I would immediately think why are you telling me this... just fix it yourself

Then you're part of the problem.

I am far less equipped to handle a bug like this than you'd think. It would take me so much more work and time than asking someone who already knows the project and how to work on it.

If I did this for every bug I reported, I wouldn't have a job because I wouldn't have any time left for one.

You know, this is also my issue with Linux. The attitude is generally that if you want to run Linux, you are expected to do anything you need completely on your own, including fixing bugs. This is why macOS is my preferred operating system. (Not that I can run it right now...)

I'm of course not entitled to anything from you (or anyone), but the one thing I won't do is fix it myself.

I don't really want to be a hacker right now. I've tried. I can be, but it rarely pays off for me. Not even financially, just emotionally.


You have a future in management.


I had this experience with an online game crashing. This is a game I play all the time, which recently recieved an update that adds a kernel level anticheat program. The game would start and then black screen, and I would get a null reference exception popup. Audio and input would continue without any graphics. To me this likely indicates a lack of init result check on some pointer that gets passed to a graphics init function, and then they try to access the pointer that was never assigned to. (my guess anyways)

I was punushed for "leaving" the game, banned for a couple weeks, and sent an obnoxious email about my bad behaviour. I reached out to them on customer support handfuls of times and was always given a list of three steps such as "upgrading graphics drivers", "ensuring i disable my firewall", "using a pc with high enough specs" (my machine is ridiculously overspecd) and things like that. I would follow the three obviously pointless steps, and then be given another set of obviously unrelated steps. This went on about five times over a month.

At some point I just told them, look im a fucking game developer, give me a log dump tool, or a build with debug symbols and I will fix it myself, and finally a real human showed up and actually sent me one. I recreated the bug and sent log captures but they wouldnt let me help beyond that. Then at the end they still scolded me for "leaving" the game.

I dont blame the average person for expecting customer support to be unhelpful or a robot by default, and not following steps.


We had a Salesforce consultant who was like this. I'd send him a list of five things he needed to do to make his jitterbit connection work with our internal API.

He'd do one thing, report that it still didn't work. I'd ask if he did the other four things. He'd do the next thing, report that it still didn't work, etc.

God only knows how much that department was paying him.


That's a person artificially extending their own task to get some slack from their company's toxicity.


>Me: Please try these 3 things and let me know how it goes: (list of 3 things with instructions) Them: I tried (thing #1) and it didn’t work.

I noticed I do exactly this when troubling shooting problems with LLMs!


_This_ is exact the place where a LLM could step in and could really help:

1. Customer describes the problem 2. You get the problem, parsed by the model, including a summary and a suggestion what could help. 3. You write "do that 3 things" 4. The model tells the customer to do the 1st, then the 2nd and so on 5. The model reminds the customer in intervals that things are not completed 6. the model notifies you after the 3 things are done and the issue is still there.


You don't need an expensive, opaque, antisocial system to run interference against your users. What you need is literally just a checklist.

Give the user a checklist instead of just freeform text -- where they can check off the three individual things to try. When they've checked them all off, they can go back to the well for another response from support.


The user will have found another solution that's more intuitive after trying thing #1 and failing.


I’m observing this for many years and it feels like there are two types of people. Those who perceive lists as a whole and those who list.shuffle().pop(). Try asking your colleagues/etc three semi-related questions in one message and you’ll get only a partial answer in a significant number of cases. When confronted (constructively, much later) they usually get evasive and can’t explain. I could theorize it’s a learned behavior to avoid threaded pedantry or something, but my messages aren’t even long and other people share my frustration too (we communicate 10x faster and clearer between us). I’d write it off to attention capacity issues, but these people often aren’t even busy at all.


I'm pretty sure it's because they're not paying full attention, even worse, sometimes already building an intense narrative with only few items internalized inside their brains.

I also feel that this is happening more and more, since there's more rewards for giving very small pieces of attention and energy to a bigger pool of people, instead giving extra energy or attention to a smaller pool of people seeking for one's help.

I'm just facing this with a contractor doing repairs in my house, a month ago was finding a decent mechanic to fix just 2 issues on my car.

The first promptly finds energy to discuss things it receives through social networks or messages, but can't provide a decent list of things that I need to provide him to finish his work faster.

The second case took a lot of time and discussing with 6 different mechanics, until th car broke and it was towed.

I'm seeing this more and more, unfortunately.


That actually sounds like a good idea for a technical support app:

The only interaction possible is they can tell you the problem, then you can give them a list of things to try, and they can do nothing but give feedback on each step, in order, and you arent bothered until they at least respond something for each step


This sounds like a recipe to get a lot of `asdfalsfasfsd` responses...


I'm starting to think Humanity's problems are not technical in nature. I don't see how to even think about forcing people to help themselves.

This is obviously satire, but we could make every internet app completely modal: once you start a flow on any site your computer prohibits you from starting any other flow on any other site before you complete the previous one.


Or simply their priorities are not your priorities. They have encountered a problem, they asked for help, but they have 10 other things going on. By the time you answer, they have forgotten half the context of the issue. They try one thing, it doesn't work, they don't have more time right now so they answer that thing 1 didn't work. Repeat.


I find most people suffer from at least one (and more commonly two) of the following: insufficient attention to detail; poor time management; and bad organization skills.


> their priorities are not your priorities.

> insufficient attention to detail

I believe there's a cause effect scenario here.


This is especially true in the trades. If you're able to:

- be on time

- respond to emails/texts, and especially: phone calls

- give quotes

Then if you're even halfway competent, the world is your oyster. Please come do work for me!

If you can manage people and budgets, you can have more work than you'll know what to do with (assuming there's work available).

The inability of many people to focus their attention and prioritize their work is shocking to me. This isn't just for the stereotypical "younger adult" either, this seems to apply across the board (and especially to boomer-aged adults!).


> I'm just facing this with a contractor doing repairs in my house

Are you saying that you give your contractor a list of seven things to address, and find that they only address two and say they're done?

I can't remember where I heard of using painter's tape for this, but it's used as a metaphor in this article https://randsinrepose.com/archives/the-blue-tape-list/

.... I also found this link while looking for the above article, https://www.quantumbalancing.com/news/bluetape.htm . That's. ... just... well. Not what I was looking for, but was so remarkable that I thought I would link to it here. I suppose they have probably sold some of their devices. I'm curious to know what the insides are like, but not curious enough to spend $1k+.


Imagine blue tape for software. I guess the closest thing I have seen is

// Fixme: address this later.


> list.shuffle().pop()

Oh, no. It's not a shuffle. They unerringly identify the least important possible action item. Sometimes just a single clause of a single sentence in a list item.

You have to scour your communication of anything that can possibly be interpreted as an easy request. It has to be a curt, imperative, isolated, request to do something hard or it will be ignored.


1. Reboot

2. Wait

3. Update your XYZ

User: I tried the second option but nothing happened


Same conclusion here.

At my last job we had a customer who was famous for doing this. Since he generated a significant amount of sales, we couldn't just sideline him, so I learned to only ask one question at a time on email. Otherwise, if you asked e.g., three questions, it was a complete tossup as to which one he would decide to answer, all the while reminding you that this was a "hair on fire" issue for him.

Compounded with the fact that he was on another continent, multiple time zones away, this made debugging anything a difficult proposition.

We had another customer for the same product in the same country who had absolutely no problem answering whatever questions you asked him, in as much detail as he could supply. It has to be a personality thing.


Makes me thing I need a new email template

"Try this one thing: ....

If you are a detail-oriented person, you could also save us both some time and try these things also ..."


I think this issue is a lot of why ChatGPT feels smart to me. It actually parses all the parts of what I say and tries to respond to it comprehensively. It doesn't always succeed, but it's usually better than my experience asking a multi-part question to a random real-life person in a support role.


I really wish there was a reliable way to ask people.

"I need your engagement level to be set to 10 for this communication. It's ok if you can't do that, but then just say you can't do that. I'm already set to 10 and rando guesswork / tidbits are only going to cause problems."

Even just "nope can't do it" responses would save me time.

I just got off a critical call with folks pulling stuff out of their ... and it was a nightmare / complete waste of my time.


I think that's unreasonable to ask for just about anyone. The only time that's going to work is if you're helping them with an issue that's critical to them. Otherwise you are never going to get their full attention, it even close.

Much easier and safer is to drill into your own head that your own engagement level may be at 10, but the other person's is probably going to be more like 2. And that's fine.


I don't think it is unreasonable, if they can't for whatever reason their answer is "I can't." that's 100% fine.

I'm not asking them to be at 10, I'm asking they not engage unless they are.


> I think that's unreasonable to ask for just about anyone.

Notice your parent doesn't say "you must be at 10," but rather "let me know if you can't be at 10." I think that's perfectly reasonable, as long as you're willing to accept almost always getting "no."

> Much easier and safer is to drill into your own head that your own engagement level may be at 10, but the other person's is probably going to be more like 2. And that's fine.

But sometimes that's not fine! For example, if you're giving a list of instructions for some safety-critical procedure, it's not fine to find out later that the nodding "uh-huh, uh-huh" actually meant "I'll do what I remember and what sounds easy," and it's much better to do nothing than to proceed with partial information.


You need to be able to send a form to people with required fields.


In written communication it often works for me to create an explicit numbered list with indentations and plenty of white space between the items. It also makes it easier to refer to the items in the following communication.


I have to be really careful to never write a paragraph to a colleague or vendor dev under any circumstances. (God forbid a run-on sentence..)

I have to give every idea it's own sentence, and every sentence must be separated by double space at minimum.

And then I can't offer more than maybe four complete ideas, no more than one of which can demand a response.


There is a Youtuber and AI safety researcher that I support on Patreon's "poor person tier" and they were gonna do a Q&A video so asked us to offer questions for the video, so I offered five in one post as a list.

They wound up answering every question in my list of five, spent enough time on some of them that I think that may have been part of the motivation for them to break it up into two videos, and even emailed me the answer to the one out of five points they didn't address in the video.

In contrast if I render a list at any of my colleagues or vendor dev teams there is a <20% chance that they will address or even acknowledge 2 whole separate items out of the list, so the points they don't address get frequently brought back up again and dropped again. :(

So AI researcher has.. ..list comprehension. (YEAAAH!!)


Would you care for a counterpoint?

This comment should be three paragraphs. As written, it’s very hard to read and I get lost.

If this was a professional communication and you had asked three questions, I might understand one or might not. Now I have no issues saying “dude, your writing is very hard to follow.” But what if your colleagues are nicer than I am?

Or just spitballing. You’ve admitted that you’re the kind of person who will set traps for your colleagues. What if they’re just sick of your shit but are too conflict avoidant to say that?


Okay, different person as the one you responded to. Your entire comment was reasonable up until the last line.

What is that even based on? Where did they admit to setting up traps? Is that your take on their comment about trying to ask three questions in one message?

Because, even without them creating paragraphs, it is abundantly clear they just mean that as something from experience. Not something they do as something to spring a trap on people.


This is a good example. They wrote:

“When confronted (constructively, much later) they usually get evasive and can’t explain.”

Confronted is a big word with a hostile intent. They’re incredibly measured in their language and use precise language. That sounds like a trap to me - it’s:

A.) Asking three questions and only get 1/3 answered.

B.) Waiting for a suitable period of time to elapse.

C.) Confronting them while expecting an explanation.

Letting time go by, “confronting them” and expecting an explanation is a trap. It assumes that they can even remember the conversation! Why not send a follow up email immediately and politely ask again? Heck, that’s a good excuse to use “circle back” in conversation. :)

If you missed that first read, no worries because so did I. I had to read the comment three times and then I kind of shaked my head because they are so measured and precise, and that’s an awfully big statement to make about colleagues.


I feel like you are reading way to much into it. To the point that this is almost appropriate https://ludic.mataroa.blog/blog/the-violent-role-of-relentle...

Confronted isn't necessarily a hostile word. It is a very apt word to use for the action off asking someone about the other two points. They even made it clear that it was in a constructive manner.

May I ask, do you often feel like you are operating in a hostile environment?


It was just a poor choice of word. Should have said “asked them about”.


You’ve admitted that you’re the kind of person who will set traps for your colleagues

We were all close and could discuss “meta” from time to time, in a friendly constructive manner. You’re probably reading more into this aspect than there is.


Giving people a bullet point action plan at the end of an update helps with this.

## Action Plan

- Read my comment

- Try it

- Comment on your experience


> You need to develop a polite but curt tone of voice for customer support

If this makes you uneasy, it can be easier if you sign initial support replies under another name.

  Hey, this is John, I'll be happy to help you with that.
  
  <Blah blah blah.>
  
  Let me know if that helps.
  --John


I worked at a tiny startup with a single customer support plus sales person—she had an array of fake names that she'd use for different purposes (billing, sales, tech support, etc) to try to simulate a larger org. She actually kept them all straight and apparently it worked.


   - Hey, this is John, I'll be happy to help you with that.
   + Hello Xxx,
No need to fake being happy (or sorry). Just provide an actual answer.


Is this very specific to the culture? In many cultures, there are standard written greetings that always appear at the start of a letter or even email response.


Recently, I canceled a subscription for a newspaper, they make you go through chat to cancel. The agent was so nice that it was annoying.

I don’t mind waiting in silence, but when they keep asking about weather, vacation plans, etc, I find it hard to not respond. This might part retention technique though.


Outsourced call centers obsessing over dumb metrics like "dead air" and "hold time". They think you are gratified by obsequious groveling and fawning reassurance. There is always some guy in management who gives pep talks about improving outcomes by avoiding words like "can't" or "impossible". He demands improvement to an already satisfactory situation, and so they scramble to out-customer-service themselves.


It’s not necessarily fake. I do like helping people.


Or in some cases, be "Ed Chambers" from Silicon Valley.

https://m.youtube.com/watch?v=y-CA2EW4Z_U


"I'm escalating you to tier seven..."


"- Invest in good docs..."

In my experience, end users don't read the docs or FAQ's or help search - they send you a question.


I think in the era of LLMs good docs/FAQ are of an even greater value.

You can write a support bot that sends a user's question + docs/FAQ to an LLM to automatically deal with the basic questions and only involve a human in the loop once a question goes beyond what's in the docs.


For a side project?

Not even the big giants manage to create LLM bots that work.


Even if users don't read them of their own volition, they're still valuable. You can copy/paste responses from them, link to them, or hell just use them to remember the answer yourself later without having to confirm it or even think about it.


Run stats on support requests and make canned/auto replies for the common ones?


Do you have an example of “polite but curt” tone? I’m struggling to see what you mean.


Both xyproto and Gustomaximus have solid examples.

Here's more:

- Be direct, Hi, the xyz feature is available on the PRO plan. You can upgrade to the PRO plan at app.saas.com/billing

- Be brutal, Hi xyz, your card couldn't be charged for your Saas subscription, and hence your subscription has been deactivated. To reactivate, enter your card details app app.saas.com/billing

- Be honest, Hello xyz, thanks for the feature request. We'll put it in our wish list but can't guarantee it will make the cut.

- Be generous, Hey xyz, thanks for pointing that out. We have identified that as a bug and have pushed a fix for it. In the meanwhile, I've extended your trial by 7 days, on the house.

Couple of other tips:

- Dumb down your reply as much as possible. If you can't, throw your reply through chatgpt and make it dumb down.

- Unless a support issue is very basic, reply after a few minutes if you're near your computer. Usually users figure out things on their own if given some time.

- But don't allow issues to go stale. To really wow customer service, reply as humanely quick as possible, especially for existing customers.

- Make your support timelines clear somewhere in your product, eg: Our support will respond within max 48 hours, but most responses take 2-3 hours.

- Make your terms and privacy policy pages clear. People do read this. getharvest.com is a gold standard in this area.


Just wanted to say thanks, I think you've given great advice. In particular this bullet point:

> But don't allow issues to go stale. To really wow customer service, reply as humanely quick as possible, especially for existing customers.

As a customer, the absolute worst possible thing for me is to be left in limbo, not knowing if my problem will be fixed in the next minute, hour, day, or never. While I may not be thrilled if the answer is "never", at least at that point I can move on and know that I'll need to solve the problem some other way.


But if you respond consistently quickly, then some lazy customers will email you rather than bothering to look in the documentation. So there can be a downside to being too responsive.


> Make your support timelines clear somewhere in your product, eg: Our support will respond within max 48 hours, but most responses take 2-3 hours.

This is the biggest thing I struggle with. I have a couple of semi-successful side projects. They bring in some money, but not enough to hire someone to help with support. I have never been at a place in my life where something like "I will response to all support requests within 48 hours" is remotely realistic for me. I'm lucky if I get to a support request within a week or two.

I don't know what the answer is beyond just "don't sell products", because I hate dealing with support more than I enjoy making stuff to sell.


Sometimes it's valuable to receive a (clearly non-automated) support response indicating that the message was received and a proper response is in the works, just to confirm that the support channel is actually still functional.

Even just confirmation that the website form isn't a black hole and that support tickets aren't now exclusively accepted through Twitter, Instagram, or a secret discord server can be very reassuring.


A large part of my job is end user support in a corporate environment. I always do this - even if I know an issue is going to take a while due to me having to reach out to other departments/a vendor, wait for an answer, and potentially go back and forth, I always reach out to let people know I got the email, that I'm working on it, and that I'll reach back out when I know more. If possible, I also suggest workarounds/alternatives for them to use/do in the time while I'm working on the problem.


> - Dumb down your reply as much as possible. If you can't, throw your reply through chatgpt and make it dumb down.

or just pass all support responses through "business support LLM" for uniform “polite but curt” tone


Thanks for reaching out. The issue you’ve described seems to be on your end. Please check your settings or consult our docs for further guidance. If the problem persists, feel free to get in touch.


Would it be worth putting a price to investigating? Message like:

"Our premium support can investigate this for $XYhr. If the fault is at our end we will waive any fees. Please let us know if you wish to proceed."


Take my advice with a grain of salt, as I am a customer rather than someone running a product with customer support.

I would say this would only feel justified if the product pricing page already had clear tiers outlined for paid support. Putting a price per hour on customer support otherwise would make me feel like I am just being milked behind closer doors for more money, and non-paying customers are getting shafted. If a paid customer support tier is something you offer, imo it should be clearly outlined on publicly available pages with explicit explanation about the differences between free vs paid customer support. You suggesting it in private communications only would feel suspicious and shady to me as a customer.

However, if the customer themselves suggested to pay you extra for that personal support, that’s a different story.


That's fair, but also: sometimes the customer going away and not using the product anymore is the correct result for both sides.


Oooh, the Microsoft approach! :)


I'd 100% expect that to be a template from someone who either has no clue and can't investigate, or has 200 other tickets to get to and couldn't be bothered to look into a case that isn't in the FAQ. It also does not say what makes you have this assumption and so it works only as a brick wall to alienate any customer goodwill you may have built up. Please never write this unless it's self evident why it's on the customer's side and you have good reason to think they're just trying to annoy you by reaching out despite that


I hate this type of communication too, including templates and chatbots.

It was just an example, though.


From the sound of it, the politeness is the shallow politeness that you can easily get with ChatGPT. The curtness is defending from the users expecting too much, which can include delaying handling issues before properly checking if they're real. I experienced this with Vercel and it probably makes economic sense for them. (BTW I really should cancel my Vercel account but haven't decided to take the time to migrate yet.) https://x.com/search?q=vercel%20benjaminatkin_&src=typed_que...

The reason it can be framed as curtness is because they're being curt about the expectations, and the real expectations are pretty low. "Sure, I can delay really addressing the issue for a couple weeks. You're only paying me 40 bucks a month, why would you expect more? The goal of responding within two days is just for a canned response." See, they were curt and didn't let me demand something more than I deserved, like being able to use the product I'm paying for in the next several days!


"Check yourself before you wreck yourself"


> - Once your core product is built, its worthwhile spending some time automating the heck out of everything. This will save a TON of time in the near future.

Interesting. Anything you've automated successfully that you can share? I've heard so many times that you should hold off on automating too early because constant pivoting and refining can end up making you spend more time fixing the automation than actually doing the work itself, so I kinda paused on it. I can see how it would make a big impact on my marketing outreach, which I'm doing manually right now with not much success.


Docs... And a technical writer that'll tend to them.

https://passo.uno/signs-need-tech-writer/


Spending some time to learn technical writing (if you want to bootstrap a saas) is worth its weight in gold (same with marketing, business admin, accounting).


> automating the heck out of everything

What kinda things did you automate?


Make sure not to apply this polite but curt tone to consumer apps.


Wow! This is a great blog. Thanks for putting it out :)


Ive had tremendous success submitting files to AI and just having it produce a structured readme.md for the logic within the code, I'll do a thing where I say Give me a readme, include description of functions, logic, how its invoked, dependencies, monitoring and give me a mermaid and swim diagram of the workflow.

Its great.

Another thing I do with an AI helper is when I have it write out a function for me I have it write out the descriptor that can go in the readme for that function. I also have it write a header with version description path etc.

It was an experiment which started with the goal is to have all the code for a simple project with its associated readme functions loaded into a textai workflow and postgres DB and I can dynamically call the readme functions for everything by having a bot yank all the MD table for all the functions and just put together a real-time readme. As I add txtAI workflow scripts, they put their MDs into the DB, I try having it spit a JSON of its MD to a mongo?

The point is playing with ways to have the system self document as I/it develops.

Because one of the ways I have been using Claude to learn is through a F-ton of iterating on an initial thought and bird-walking through implementing a tool wrapped around it.

This way, as I iterate through many many version of a concept or script/function/api/crawler - it keeps a reminder readme for when I want to know what the heck was I thinking (I have had super awesome moments of brilliance, and then after a sleep or lengthy distraction - totally loose the Mode and have no idea what I was doing, or how I came up with BrilliantIdea(TM)

ADHD is a helluva drug :-(


EDIT: One thing I attempted was to have claude keep a running artifact for a readme while I worked out a problem - but that didnt work so well. Also, as it hallucinates, one of the first indicators that its losing context is that I keep a header section on artifacts it makes and a version and description ad path for the artifact...

when iterating and the header gets stripped in the response, the bot is taking a turn...

Sometimes ask it to spit out the full context and its understandings in a manner I can use to re-prompt itself for best efficiency, and it gives a nice summary of the concept I am thinking through, and I use that with vary degrees of satifying results.


Very candid experience - I love it.

I've been in a similar boat running a small B2B Saas over the last 2 years. Over the years I've learnt a lot of tricks in this area.

- You need to develop a polite but curt tone of voice for customer support.

- Once your core product is built, its worthwhile spending some time automating the heck out of everything. This will save a TON of time in the near future.

- Invest in good docs, even if you're not running a api saas. Good docs + consistent ux + rock solid support will solve most of your support issues.

I think a lot of literature around running a online biz has been boiled down to rather basic advice and its hard to find anything solid in this area. I've been running a small blog where I document these issues(operational.co) if anyone wants to check it out.


Whoa this is like fine sand. Amazing!


Technically speaking, Stripe has nothing to do with this(since they are the middle man). I'll telling you this because I recently won 2 chargebacks against amex bank.

In the appeal process, Stripe will give you a rating of how likely you are to win this dispute.

Ignore this rating.

When disputing, you need to provide solid evidence of:

- Whether said customer read tos

- Login logs with ip addresses

- Terms and service

- Communications(emails, chat logs, etc)

- A simple brief on your business and why this chargeback was in error(I do this)

This will 90% of the time make you win the chargeback.

However in the longer run, I've found you're better off focusing on avoiding suspect users. Here's another article on how you can avoid them:

https://operational.co/articles/how-to-get-high-quality-user...


I run a scraper tool and I built this tool to analyze and edit complex url structures(think of multiple query params, paths, etc) simply because something like this didn't exist for my needs.

Let me know if you have any questions!


This advice is absolutely on the spot for B2B Saas businesses. For B2C? not really.


Had the same question. Moved to useplunk afterwards.


Yep all pricing is available when you click “view all pricing tiers” on the primary highlighted card.

Sorry that wasn’t more clear!


Why not just make it $x amount per email? Way simpler imho. This whole contact stuff feels very nickle and dimey.


Depends on who you're talking about in organic context.

For instance, if you're talking about the Instagram Explore page or the Tiktok For you page, its all marketing. Literally nothing is real, everything is made to maximize engagement.

If you're talking about your followers who you know in person, that will be 80% authentic at least.


It seems to be an error on Cloudflare's site. Render seems to be using Cloudflare in some integral capacity which has turned it toast.

As a render customer, its affecting us too. Hope Cloudflare fixes this asap.


As a Render customer, I wish I had the option to not use Cloudflare in any way.


Why is that? Are these issues common?


Some don't like them on ideological grounds (centralization of a sizable portion of the internet), some don't like how Cloudflare can make your browsing experience miserable if you use TOR or turn on Firefox's anti-fingerprinting features (and Cloudflare is s major part of the reason these features are off by default)


I don't like Cloudflare skirting the responsibility of a hosting provider by claiming to be a neutral third party similar to an ISP instead of a company paid by their customers to distribute their content on the web.

Also them not taking a stance on housing despicable stuff like KF that literally bully people to their deaths.


Don't show the product, show the end result.

For instance, you could shot AI generate content, images, text, etc.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: