# Customer support

# Customer support schedule

  1. On weekdays we work in two shifts:
    • First shift is from 9 am to 6 pm.
    • Second shift is from 10 am to 7 pm.
    • Lunch break is 1 hour, not at the same time.
  2. On Saturdays and Sundays we work on duty. See Weekend duties for more detail.
    • Create tasks, take access, be sure to inform the user that we will only start the task on Monday-Tuesday, for example: Пришлите, пожалуйста, доступы в трекер, на сервер (WP блог, регистратор доменов). До вторника все проверим..
    • On Friday, before the weekend, we remind who is on duty on the weekend.
  3. At the end of the working day we tell users that the task / question is in progress, and we will continue the communication tomorrow after 9am Moscow time. Or on Monday if it's Friday.

# The beginning

  1. You will receive an invitation to the service to your corporate email.
  2. Upload your photo and use your first name (without the last name). The customer is more comfortable communicating with a real person.
  3. Disable notifications in your profile settings.
  4. Explore the service, especially the "Dialogues" section, because communication with users is held through it.
  5. Imagine yourself our customer. See how everything looks from the user's side.
  6. There is a customer card on the right from the dialogue. It consists of the information on account, license, and notes about the user. Notes are written by our team and are visible only to us.
  7. On the right under the notes there is a field for entering tags. This tag will be attached to the customer (not to dialoguess). You can search these tags.

# Recommendations

  1. Identify the customer.

    • Check if the customer has a license. Check the notes on the right, your teammates may have already left their comments, start with them.
  2. Rate the complexity.

    • Simple. Answer right away if the question is simple.
    • Complex. Such questions take time to figure them out. We do not block on them, answer the customer that we have received the request and we will get back as soon as we have any results.
    • Critical (Blocking). The customer has serious problems with the tracker. We remove the block, answer the customer that we have received the request and try to resolve it as quickly as possible. Write to # tech-questions, create a task in Jira, invite teammates.
    • Proposals. Add a tag to the dialog, i.e. domains-ssl-recheck.
  3. Put the tag to the dialogue. Above the operator's chat window in a dialogue there's a field for adding tags. Begin typing the name of the tag, and then select the existing tag from the list clicking on it.

  4. Do not block yourself.

    • Reply to the client immediately. Take them off the wait. Answer the customer that we have received the request and we will get back as soon as we have any results.
    • Delay the issues solving from Friday to Monday, if possible. Save the energy for the weekend to respond to critical messages.
    • Search Slack or knowledge database before asking collegues for help.
    • If the problem is of a technical nature, request access to the tracker and server. You will save time for yourself and your teammate who will help you.
    • If the solution to the problem can be postponed, put a bug or issue to the SUPPORT project. Try to describe the problem in the task and attach all access and keys. First check all the accesses yourself.
    • Refuse to correspond through your personal messenger. You will have difficulty transferring the dialogue to teammates.
    • If a customer asks for your public SSH key, ask the user to create a new key pair and use our public key (can be found in pinned messages in tech-questions in the slack). Otherwise, you run the risk of blocking the solution on yourself, because none of the colleagues can log into the server.
    • If the weekend is coming, warn the customer that the decision will be ready in the beginning of the next week.
    • If there are lot of dialogues, ask for help in a #workspace channel writing @here нужна помощь на карроте.
    • Remember Remote by Default value in our company. Everyone is ready to help, just keep in mind that the response will not be instant.
  5. Dig deeper into the matter.

    • If you don’t understand the customer's problem, then your colleagues probably won’t. Ask the customer for details and a description of what they want to do.
    • If you received a reply in # tech-questions from a colleague, but do not understand the meaning, feel free to ask for a more detailed answer. Don't worry, we have an agreement that we write briefly and, if necessary, in detail.
  6. Exceed expectations.

    • Write the customer the estimate for solving the issue 3 times longer than you think is necessary. Exceed the customer's expectations by solving the problem faster than he expected.
    • If the problem can be fixed without distracting the client, don't distract him. Ask for access and solve the issue yourself.

# Issues duscussion and #support-workflow channel

During the communication with the customers, everyone may have situations when they need help with the answer. In this case, begin with the #support-workflow channel. Asks any questions you need help with, exchange knowledge, and help others.

Search Slack for possible answers.

If the solution can't be found in #support-workflow, start a thread in #tech-questions.

If it is important that everyone participates in the discussion, mention everybody with @here.

# #tech-questions channel

Describe the issue and what caused it, attach the task created in jira. Add to a task as many details as possible as well as the accesses.

Recommendations for messages format in the channel:

  1. Use quotes, a > character or a block with ``` characters in the beginning and the end of the quote.

  2. Start a thread under your message adding to the thread:

  • Jira's task URL if there's any;
  • the link to the CarrotQuest dialogue, accesses, keys;
  • if the user sent any new details, add them to the thread, don't forget to use quotes;
  1. If the reply given by any of the teammates is not clear, ask for details to get more information and explanation.

  2. If you've been mentioned make it clear that you've seen the message and will reply later.

  3. If you've added the screenshot with the error, duplicate the error with the plain text, this will help to find the info or solution for this error in the future.

  4. One thread is for a single issue, even if we are solving the issues for the same user.

  5. When on duty - create the threads only for blocking issues.

# How to create tasks in Jira

If you understand that the issue can't be solved at the moment, create a task in Jira:

  1. Describe the issue in up to 6 words as the task name.

  2. Fill in Carrotquest URL field.

  3. Write a description

    BACKGROUND Some special settings or user permissions. Maybe specific browser version. Keitaro version, and installation version.

    WTR (way to reproduce)

    1. First step
    2. Second step
    3. ...
    4. An actual result.
    5. What was expected as a result
  4. Add all possible accesses according to the situation, e.g.:

  • if there's something wrong with the tracker - ask for access to the tracker and the server;
  • if the issue is with domains - ask for access to the tracker, to the server, and the domain's registrar;
  • affiliate network issue - access to an affiliate network and to the tracker;
  • WordPress - to the tracker and WP admin.

Keep the customer up to date and inform them in case you get any new info from the assignee.

# How we work with proposals

We use tagging system to track demand on new features. On each Roadmap meetings CS Team makes a small presentation and tells what feature is most requested.

# Working with tags

We strive to mark more than 70% of dialogues with tags.

Next, we choose one of the frequently used tags and begin working with it. We investigate the issues connected with the tag, reaseach possible solutions and implement them.

The next step, we compare the tags use before the solution implementation, and after, and see if we can change anything else.

# High-quality support level

  • We try to read the answers of the support team and make sure that users receive the most relevant response to their requests.
  • Pay attention to dialogues that have been held by the same operator for a long time, offer help.
  • Encourage CS-team to ask questions in the # support-workflow channel.
  • Raise the discussion of the issues that were solved incorrectly and talk about all the possible solutions to the question.

# Notification

  • Disable notifications in CarrotQuest.
  • Check your notification preferences in Slack.
  • Set up a reminder to check your mail every 30 minutes or an hour.

# Recommendations for resolving conflicts

  1. If you feel the situation is escalating and you can't cope with it transit the dialogue to Ivan or Artur.

  2. Follow CARP method:

  • Control the situation.
  • Acknowledge the dilemma.
  • Refocus the conversation.
  • Problem-solve so the customer leaves happy.
  1. We do not offer any compensation or discounts, or additional license days.

# Refunds

We do not have refunds. There's info in our license agreement about our money-back policy.

# Developers duty days

  1. On-call mode means to be in touch in Slack during the day, this may be a Slack app on your phone.

  2. Check #tech-questions threads. Only blocking issues are written in this channel on weekends and days off. If you think the issue is not critical and can wait until Monday - tell your colleagues about it.

  3. Respond to the message in half an hour.

# Support team duty days

  1. On-duty mode means we look through the dialogues, and response only to critical issues.
  2. If the question is not critical, we send an autoresponse about weekends or days off.
  3. If the issue is critical - the tracker doesn't work, or there's any other blocking issue that stops the tracker - we solve the customer's problem. Ask for developer-on-duty's help. If you don't get the response in 30 minutes - mention Artur or Timur.
  4. If there's an issue with the payment, extend the license to Friday next week, create a task and tell the customer we will solve everything on Monday.


In the upper right corner of the dialogue, there's a button with the paper clip icon, you can click it and copy the link to the dialogue.

# Should we explain how product works internally?

No. We need freedom to change everything in our product code. If customer builds some sulution based on internal infromation, we can brake their code with the next update.

# How to work with tags in CarrotQuest

  • We put tags to every dialogue. Begin typing the name of the tag and select the necessary one from the drop down menu.
  • If there's a new dialogue with the tag which can be used again in this dialogue, delete the previous tag and add it again to that new dialogue.
  • The list of tags and the percentage of dialogues with the tags can be checked in the Reports > Dialogue analytics menu on the left. We strive for 80% and more dialogues to be marked with tags.

# When to create a task in jira

  • If the issue can't be solved on the go during the conversation with the customer or during the "diagnostic stage" when we check the customer's accesses and try to reproduce the issue.
  • If the assignee differs from the reporter.
  • If this is a task for the future, in order not to forget or lost the task.

We describe all other tasks and issues in the #work-done channel at the end of the day.

# How to work with git

  • Add a public ssh key to your Git profile and save your private key locally.
  • Clone the needed repository with ssh. git clone path
  • Set gitlab configuration, for Git to give you access to editing. git config user.email yourmail@example.com.
  • Open the master branch git checkout master and synchronize your local repository with the server git pull.
  • Create a task in Jira.
  • Create a new branch in Git with same name as the title of your task. git checkout -path name
  • Open and edit the needed page locally.
  • Add your changes to Git git add --all.
  • Commit your branch to merge git commit -m 'comment: task_name, what_is_done' Example: git commit -m ‘CS-1491 Bitdemia.io tr-source added’.
  • Push it git push origin branch_name.
  • Create a merge request in Git. Check the boxes: Delete source branch when merge request is accepted. Squash commits when merge request is accepted.
  • Done.

Alternatively, you can use Fork (opens new window) to work with git more intuitively:

  • Add a public ssh key to your Git profile and save your private key locally.
  • Clone the repository you need with the command git clone path, where path is the link from the git repository's Clone button.
  • Download Fork from here: https://git-fork.com/
  • Install and open it, then click on File - Open Repository and choose the directory you just cloned.
  • Synchronize your local repository with the Pull button.
  • Click New branch and name it after the Jira task you're completing.
  • Go to the repository on your computer and make all necessary changes, then Save File.
  • Go back to Fork, there will be new Changes in the left menu. Double click this word, review changes made and if approved, click Stage.
  • Enter commit subject and commit description, then click Commit.
  • Click the Push button at the top of the screen, confirm.
  • Go to the Apliteni Git main page, there will be an option to request a merge in the top part of the screen.

# What influenced us


  1. "Customers for Life. How to Turn That One-Time Buyer Into a Lifetime Customer." by Carl Sewell and Paul B. Brown.
  2. "Behind every great product is a great support team" by Intercom (ebook (opens new window)).
  3. "Delivering Happiness" by Tony Hsieh.

Awesome product attracts new customers, awesome support keeps them.

Last Updated: 10/6/2021, 12:02:22 PM