# Guidelines

Awesome product attracts new customers, awesome support keeps them.

  • 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 #team-cs channel.
  • Raise the discussion of the issues that were solved incorrectly and talk about all the possible solutions to the question.

# How to process dialogs

  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.
  1. 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.
  1. 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.

  2. 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 colleagues 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 a 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.
  1. 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.
  1. 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 discussion and #team-cs channel

During the communication with the customers, everyone may have situations when they need help with the answer. In this case, begin with the #team-cs 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 #team-cs, 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 we work with proposals

TODO: need to describe the new process with RFC + Roadmap.

# Tags in CarrotQuest

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, research 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.

# 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.


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 information, 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 new 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 influences 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.
Last Updated: 11/2/2021, 10:13:12 AM