FeaturesPricingBlogDownload

Support Center

Customer Support Research Dataset

Log support tickets, collect CSAT scores from customers, and download one CSV row per agent per day with Snipset usage, productivity, and satisfaction.

This page is for a customer support team that wants to measure three things for each agent on each day: how much the agent uses Snipset for support work, how productive the agent is with tickets, and how satisfied the customers are. In research terms, the usage columns are X, the ticket columns are M, and the satisfaction columns are Y.

Snipset gives you four tools for this, all in Statistics > Customer Support:

  • Agent settings: who you are in the dataset and on the survey page.
  • Ticket log: record tickets, replies, handle time, and resolutions inside Snipset. Useful when your company has no helpdesk.
  • CSAT survey: a link you send to the customer, and a button that fetches the answers.
  • Import helpdesk CSV: bring in tickets from a helpdesk export such as Zendesk or osTicket.

At the end, Download agent-day dataset (CSV) puts everything into one file with one row per day, and Download survey responses (CSV) gives one row per answered survey.

Before you start

  • Research Mode must be on. It is off by default. While it is off, every command on this page refuses to run and returns RESEARCH_MODE_DISABLED. The existing Download JSON and Download CSV reports in the same tab need it too.
  • One Snipset install per agent. Snipset treats the computer as the agent. Each agent sets up their own install and downloads their own file. To compare agents, put the files side by side: every row carries the agent code.
  • Support snippets are marked, and personal AI use stays off the work machine. Snippet expansions count only when Snipset marks them as support work, but every AI response counts (see Which usage counts).

Turn on Research Mode

  1. Open Settings > System & Diagnostics.
  2. Turn on Customer support metrics. This switch is Research Mode.
  3. Open Statistics > Customer Support. The agent settings, ticket log, import, and dataset controls appear in this tab.

Which usage counts

The snippet columns (expansions and chars_inserted) count only expansions marked as support work, so personal or unrelated snippets do not inflate the numbers. A snippet expansion is marked as support work when:

  • Track as customer support group is turned on in the edit dialog of the snippet's group (see Groups & Organization) and Research Mode is on, or
  • the expanded text contains a common support word, for example "customer", "ticket", or "refund".

The AI columns (ai_inserted and ai_copied) work differently: they count every AI response you insert or copy, whether or not the conversation was support work. Snipset does not mark AI responses as support work, so a filter would leave both columns at zero. Snipset records these responses even while Research Mode is off, so AI use from before the study counts too and can make the file start on an earlier day. Keep only the rows of your study dates when you analyze the file. During the study, keep personal use of AI Chat and AI Companion off the work machine.

Agent settings

Fill these in once per install, then press Save settings.

FieldWhat to enterHow Snipset keeps it
Agent codeA short code shown in the dataset, for example A1. 1 to 16 characters: letters, digits, _, or -. Required before you can download the dataset.Plain text on this computer.
Your name in the helpdesk exportYour name exactly as the helpdesk CSV writes it in the agent column. Letter case and spaces before or after the name do not matter, but spaces inside the name must match the export exactly. Needed only for CSV import.Only a hash (agent: followed by a SHA-256 value). The name itself is never saved.
Work hours per dayThe hours you work on a normal day, from 0.5 to 24. The default is 8. Used for the irph column.A number on this computer.
Company name on the survey pageThe name the customer sees on the survey page. At most 80 characters. Leave it empty to show no name.Text on this computer, added to each survey link you copy.

After you save a helpdesk name, the field shows empty again with the note "A helpdesk name is saved. Leave empty to keep it." To change it, type the new name and save.

Ticket log

Use the ticket log when your company has no helpdesk, or when you want timestamps taken from your own computer. You never type customer data into it. Each ticket gets a number such as T-0001.

The log shows the columns Ticket, Status, Type, Handle time, CSAT, and Actions.

Tickets you import from a helpdesk CSV appear in the same list, but they are read-only. The Ticket column shows the first 8 characters of their hash, because Snipset does not keep the helpdesk id. Their times, status, type, and handle time come only from the CSV, and their CSAT comes from the CSV or from a survey link. The only action on them is Copy survey link. First reply, Start handling, Pause, Resolve, Reopen, and changing the type work only on tickets created with New ticket. To update an imported ticket, export it again from your helpdesk and import the new file.

Log a ticket

  1. When a customer contacts you, pick the Channel they used and the Ticket type, then press New ticket. Either can stay empty when you do not know it yet. Snipset gives the ticket the next number (T-0001, T-0002, and so on) and records the current time as its creation time.
  2. Press First reply when you send your first answer. Only the first press counts.
  3. Press Start handling while you actively work on the ticket and Pause when you stop.
  4. Press Resolve when the issue is solved.
  5. If the customer comes back about the same problem, press Reopen. The reopen count goes up by one. When you press Resolve again, the new resolved time replaces the old one.

Channels: WhatsApp, Email, Chat, Phone, Social media, Web form, and Other.

Ticket types: Question, Complaint, Service request, Technical issue, Billing or payment, and Other.

Statuses:

  • Open: no reply recorded yet.
  • Replied: First reply was pressed.
  • Resolved: Resolve was pressed and the ticket was not reopened since.

Change the ticket type

  • On a logged ticket that is not resolved (Open or Replied), the Type column is a list. Pick another type to change it, or the empty choice to clear it. Snipset saves the change right away.
  • A resolved ticket and an imported ticket show their type as plain text. Snipset refuses a type change for them, so set the type before you press Resolve.
  • The dataset counts each ticket under its type on the day the ticket was created (see Columns).

The handle timer

Handle time measures the time you actually work on a ticket. The dataset uses it for average handle time instead of resolution time, because resolution time also includes the hours a ticket sits waiting.

  • Only one ticket can be active at a time. Pressing Start handling on a ticket pauses the one that was running, and that ticket keeps the time it collected.
  • Pause adds the time since Start handling to the ticket's handle time, in whole seconds.
  • Resolve stops the ticket's timer first.
  • A resolved ticket cannot be started. Press Reopen first.
  • The timer is saved in Snipset's database, not in the window. It keeps counting when you switch tabs, close the window, or quit Snipset. Press Pause whenever you stop working on the ticket.
  • A ticket you never started has no handle time. It is left out of the average instead of counting as zero.

CSAT survey

CSAT (customer satisfaction) is measured on a page of the Snipset website. The customer rates five questions from 1 to 5 and can also answer one recommendation question (NPS, Net Promoter Score) from 0 to 10. The fifth question, overall satisfaction, is the CSAT score: the one the CSAT column shows and csat_avg averages.

  1. Press Copy survey link on the ticket row. Snipset copies the link and shows "Survey link copied."
  2. Paste the link into your message to the customer, for example on WhatsApp or by email.

The link looks like https://snipset.belajarcarabelajar.com/csat/<code>/. When Snipset's interface language is Indonesian, the link opens the Indonesian page (/id/csat/<code>/). When you set a company name, the link ends with ?org= and that name. The code is 32 random characters made for that ticket. Pressing Copy survey link again for the same ticket copies the same link.

What the customer sees

  • A short page asking how satisfied they are with the help they received. When you set a company name, the page names your company.
  • Five required questions: Speed of service, Quality of the solution, Accuracy of the information, Friendliness and empathy of the agent, and Overall satisfaction. Each one is a row of five numbered boxes, from 1 (Very dissatisfied) to 5 (Very satisfied).
  • One question marked "(optional)": how likely the customer is to recommend your company to a friend or colleague. The question uses the company name from Agent settings, or "us" when you set none. The scale runs from 0 (Not at all likely) to 10 (Extremely likely). Skip is selected at the start, so the customer can leave the question out, or pick Skip again to undo a choice.
  • One Send answers button. No account, no login, and no JavaScript needed.
  • If one of the five questions has no answer when the form is sent, the page opens again with "Please rate all five questions, then send again. The recommendation question is optional." Nothing is stored until all five are answered.
  • After sending, a thank-you message. Only the first answer counts. Sending again from the same link shows that answers were already recorded and changes nothing.
  • A broken or incomplete link shows a message that the survey link is not valid.

Fetch the results

Press Fetch CSAT results. Snipset sends the codes of your tickets that have a survey link but no score yet, and stores the answers that came back: the five questions and, when the customer answered it, NPS. It then shows how many new scores arrived. Tickets still waiting for an answer show Waiting in the CSAT column.

  • Nothing is fetched automatically. Press the button before you download the dataset or the survey responses.
  • Fetching needs an internet connection.
  • The answers count in the dataset on the day the ticket was resolved. Answers for a ticket that is never resolved do not appear in the dataset, but they do appear in the survey responses file with an empty resolved_date.

Import a helpdesk CSV

Use this when your team already works in a helpdesk. The import adds the exported tickets to the same local table as the ticket log, where they appear as read-only rows.

  1. Save Your name in the helpdesk export in Agent settings. Without it, the import stops with RESEARCH_HELPDESK_AGENT_MISSING.
  2. Export tickets from your helpdesk as a CSV file: UTF-8, comma separated, with a header row.
  3. Press Import helpdesk CSV and pick the file.
  4. Read the result, for example "Imported 40, updated 0, skipped 112 rows from other agents." When rows were rejected, Snipset also shows how many and the first problem.

Template

If you build the file yourself, use this header. Only ticket_id, agent, and created_at are required. Leave a cell empty when you have no value.

ticket_id,agent,created_at,first_response_at,resolved_at,handle_time_sec,reopen_count,channel,ticket_type,csat_score
1001,Rani,2026-10-05 09:00,2026-10-05 09:12,2026-10-05 10:30,840,0,whatsapp,question,5
1002,Rani,2026-10-05T13:20:00+07:00,,,,0,email,complaint,

Accepted column names

Header names match without regard to letter case or spaces before or after them. A header must match a whole name, so Requester ID is not read as ID. Columns not listed here, such as subject, requester, or tags, are ignored and never stored.

FieldTemplate nameAlso acceptedRequired
Ticket idticket_idid, ticket number, #Yes
Agentagentassignee, agent assigned, ownerYes
Createdcreated_atcreated at, date createdYes
First responsefirst_response_atfirst response atNo
First reply minutesnonefirst reply time in minutes (Zendesk)No
Resolvedresolved_atsolved at, closed at, closed dateNo
Handle time in secondshandle_time_secnoneNo
Reopensreopen_countreopensNo
Channelchannelvia, sourceNo
Ticket typeticket_typetype, ticket typeNo
CSAT scorecsat_scorenoneNo

A Zendesk export with ID, Assignee, Created at, First reply time in minutes, Solved at, Reopens, and Via, or an osTicket export with Ticket Number, Agent Assigned, Date Created, Closed Date, and Source, imports as it is. When the export also has a Type or Ticket type column, Snipset reads the ticket type from it.

Values

  • Dates and times with a time zone keep their own zone: 2026-10-05T09:00:00+07:00 or 2026-10-05T02:00:00Z.
  • Dates and times without a time zone are read in your computer's current time zone: 2026-10-05 09:00, 2026-10-05 09:00:00, 2026-10-05T09:00, or 2026-10-05T09:00:00.
  • Fractions of a second are accepted and dropped, with or without a time zone and with a space or a T: 2026-10-05T09:00:00.123+07:00, 2026-10-05 09:00:00.123, and 2026-10-05T09:00:00.123 all work.
  • Not accepted: a date without a time (2026-10-05), other date orders (10/05/2026 09:00), and Unix timestamps.
  • First reply minutes must be a whole number, 0 or more. Snipset adds it to the created time. It is used only when the file has no first response column.
  • handle_time_sec must be whole seconds, 0 or more. Snipset never works out handle time from other columns, so imported tickets without this column have no handle time.
  • reopen_count must be a whole number, 0 or more. Empty means 0.
  • csat_score must be a whole number from 1 to 5. It fills only the overall score: a helpdesk export has no answers to the other four questions or to NPS.
  • Ticket type never rejects a row. An empty cell or - means no type. Any other value is matched by the words it contains (see the table below).

Channels are matched by the words they contain, checked from top to bottom:

The channel value containsIt becomes
whatsappWhatsApp
mailEmail
chat, messag, messenger, or widgetChat
phone, voice, or callPhone
facebook, instagram, twitter, or socialSocial media
web, form, or portalWeb form
anything else that is not emptyOther

Because of the order, "Web Widget" and "Facebook Messenger" both become Chat.

Ticket types are matched the same way, in English or Indonesian, checked from top to bottom:

The type value containsIt becomes
question, pertanyaan, inquiry, or infoQuestion
complaint, keluhan, or komplainComplaint
billing, payment, invoice, refund, pembayaran, or tagihanBilling or payment
incident, problem, technical, teknis, bug, or errorTechnical issue
request, permintaan, or taskService request
anything else that is not empty and not -Other

The four Zendesk types map like this: Question becomes Question, Incident and Problem become Technical issue, and Task becomes Service request. Because of the order, "Refund request" becomes Billing or payment and "Technical request" becomes Technical issue.

Which rows are kept

  • Snipset compares the agent in each row with your saved helpdesk name, ignoring letter case and spaces before or after the name. Spaces inside the name must match exactly: Rani Putri with two spaces does not match Rani Putri. Rows for other agents, rows with an empty agent, and rows with - as the agent are skipped and counted as "rows from other agents". They are not checked for errors.
  • Each ticket id you keep is stored only as a hash.
  • Importing the same file again updates the same tickets instead of adding copies.
  • An import never overwrites a ticket from the ticket log. If a helpdesk ticket id equals a log number such as T-0001, the logged ticket stays as it is and the row is skipped.

Rejected rows

Rejected rows are not imported. The other rows are. Row numbers count the header as row 1, and only the first problem in each row is reported. The message never includes what the cell contained.

CodeMeaning
missing_ticket_idThe ticket id cell is empty.
missing_created_atThe created cell is empty.
bad_created_atThe created value is not a supported date and time.
bad_first_response_atThe first response value is not a supported date and time.
bad_resolved_atThe resolved value is not a supported date and time.
bad_first_reply_minutesFirst reply minutes is not a whole number of 0 or more.
bad_handle_timehandle_time_sec is not a whole number of 0 or more.
bad_reopen_countreopen_count is not a whole number of 0 or more.
bad_csat_scorecsat_score is not a whole number from 1 to 5.
first_response_before_createdThe first response is earlier than the created time.
resolved_before_createdThe resolved time is earlier than the created time.
duplicate_ticket_idAn earlier row in the file has the same ticket id. The first row is kept.

File limits

A file can be at most 5 MB (5,242,880 bytes) and 50,000 rows. These messages stop the whole import:

MessageMeaning
RESEARCH_IMPORT_EMPTYThe file is empty.
RESEARCH_IMPORT_TOO_LARGEThe file is larger than 5 MB. Split it into smaller files.
RESEARCH_IMPORT_TOO_MANY_ROWSThe file has more than 50,000 rows. Split it into smaller files.
RESEARCH_IMPORT_MISSING_COLUMN:<name>A required column (ticket_id, agent, or created_at) has no matching header. The message names the first one missing.
RESEARCH_HELPDESK_AGENT_MISSINGNo helpdesk name is saved in Agent settings.

The agent-day dataset

Press Download agent-day dataset (CSV). Snipset saves a file named agent-day-<agent code>-<date>.csv, where the date is the local day you download it, for example agent-day-A1-2026-10-10.csv. Any character in the agent code other than A to Z, a to z, 0 to 9, _, and - becomes _ in the file name. Without an agent code, Snipset shows "Set an agent code first." instead.

  • The file has one row per local day, from the first day with a ticket, a support snippet expansion, or an AI response up to today.
  • Days with no activity still appear, with zero counts and empty averages.
  • With no data at all, the file holds only the header line.
  • The file is calculated fresh at every download. A reopened ticket moves from its old resolved day to the day it is resolved again.

Which day a ticket counts on

  • tickets_created, frt_avg_min, and the channel and type counts (ch_ and type_ columns) use the day the ticket was created.
  • tickets_resolved, resolution_avg_min, aht_avg_min, fcr_rate, reopened_resolved, the three CSAT columns, the four question averages, the csat_items_ columns, and the three NPS columns use the day the ticket was resolved. This keeps a ticket's outcome on the same day as the work that closed it.
  • The usage columns use the day each event happened.
  • A day is a calendar day in your computer's current time zone at the moment you download (for example WIB). A ticket resolved at 00:30 WIB on 7 October counts on 7 October, even though it is still 6 October in UTC.

Columns

The file has 43 columns, in the order below. Empty means "no data", never zero. Counts are whole numbers; minutes, irph, csat_avg, work_hours, expansions_per_resolved, the four question averages, csat_items_avg, nps_avg, and nps_net have two decimals; rates are between 0 and 1 with four decimals.

ColumnMeaningEmpty when
dateThe local day, YYYY-MM-DD.Never
agentYour agent code.Never
tickets_createdTickets created that day.Never
tickets_resolvedTickets resolved that day.Never
work_hoursWork hours per day from Agent settings at download time, the same on every row.Never
irphIssues resolved per hour: tickets_resolved / work_hours.Never (0.00 on a day with nothing resolved)
frt_avg_minAverage first response time in minutes (first reply minus creation), over tickets created that day that have a first reply.No ticket created that day has a first reply
resolution_avg_minAverage minutes from creation to resolution, over tickets resolved that day.Nothing resolved
aht_avg_minAverage handle time in minutes, over tickets resolved that day that have a handle time. Handle time comes from the timer or from the imported handle_time_sec.No resolved ticket has a handle time
fcr_rateFirst contact resolution: the share of tickets resolved that day that were never reopened. Snipset uses "resolved without a reopen" because the common one-business-hour rule needs office hours that Snipset does not know.Nothing resolved
reopened_resolvedTickets resolved that day that were reopened at least once.Never
csat_nTickets resolved that day that have a CSAT score (the overall satisfaction answer).Never
csat_avgAverage score of those tickets, 1 to 5.csat_n is 0
csat_positive_rateShare of those tickets that scored 4 or 5.csat_n is 0
expansionsSnippet expansions marked as support work.Never
chars_insertedCharacters inserted by those expansions.Never
ai_insertedEvery AI response inserted that day, support work or not.Never
ai_copiedEvery AI response copied that day, support work or not.Never
expansions_per_resolvedexpansions / tickets_resolved.Nothing resolved
csat_speed_avgAverage answer to Speed of service, 1 to 5, over tickets resolved that day that have this answer.No ticket resolved that day has this answer
csat_quality_avgThe same for Quality of the solution.No ticket resolved that day has this answer
csat_accuracy_avgThe same for Accuracy of the information.No ticket resolved that day has this answer
csat_courtesy_avgThe same for Friendliness and empathy of the agent.No ticket resolved that day has this answer
csat_items_nTickets resolved that day that have all five answers (the four questions above plus the CSAT score).Never
csat_items_avgAverage over those tickets of each ticket's five-answer mean: (speed + quality + accuracy + courtesy + overall) / 5.csat_items_n is 0
nps_nTickets resolved that day that have an NPS answer.Never
nps_avgAverage NPS answer of those tickets, 0 to 10.nps_n is 0
nps_netNet Promoter Score: the share of those answers that are 9 or 10, minus the share that are 0 to 6, times 100. From -100 to 100.nps_n is 0
ch_whatsapp, ch_email, ch_chat, ch_phone, ch_social, ch_web, ch_otherTickets created that day with that channel: WhatsApp, Email, Chat, Phone, Social media, Web form, and Other.Never
ch_unsetTickets created that day without a channel.Never
type_question, type_complaint, type_request, type_technical, type_billing, type_otherTickets created that day with that type: Question, Complaint, Service request, Technical issue, Billing or payment, and Other.Never
type_unsetTickets created that day without a type.Never

The eight ch_ columns add up to tickets_created, and so do the seven type_ columns. A CSAT score imported from a helpdesk CSV has no answers to the other questions, so it counts in csat_n, csat_avg, and csat_positive_rate, but not in the question averages, the csat_items_ columns, or the NPS columns.

Two example rows, a busy day and an empty day:

date,agent,tickets_created,tickets_resolved,work_hours,irph,frt_avg_min,resolution_avg_min,aht_avg_min,fcr_rate,reopened_resolved,csat_n,csat_avg,csat_positive_rate,expansions,chars_inserted,ai_inserted,ai_copied,expansions_per_resolved,csat_speed_avg,csat_quality_avg,csat_accuracy_avg,csat_courtesy_avg,csat_items_n,csat_items_avg,nps_n,nps_avg,nps_net,ch_whatsapp,ch_email,ch_chat,ch_phone,ch_social,ch_web,ch_other,ch_unset,type_question,type_complaint,type_request,type_technical,type_billing,type_other,type_unset
2026-10-06,A1,2,1,7.50,0.13,15.25,60.00,10.00,1.0000,0,1,5.00,1.0000,2,150,0,0,2.00,4.00,5.00,5.00,5.00,1,4.80,1,9.00,100.00,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1
2026-10-08,A1,0,0,7.50,0.00,,,,,0,0,,,0,0,0,0,,,,,,0,,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Survey responses

The agent-day dataset averages the answers per day. To test the survey questions themselves, for example item validity and reliability (Cronbach's alpha), you need each answer on its own row. Press Download survey responses (CSV), next to the dataset button. Snipset saves a file named survey-responses-<agent code>-<date>.csv, for example survey-responses-A1-2026-10-10.csv. The date and the characters allowed in the file name follow the same rules as the dataset.

  • The file has one row per answered survey, oldest answer first.
  • Only answers given through a survey link are included. A CSAT score imported from a helpdesk CSV has no answer time and no answers to the other questions, so it is left out.
  • Days follow the same time zone rule as the dataset.
  • After the download, Snipset shows how many rows the file has, for example "Survey responses downloaded: 12."
  • When no survey has been answered yet, Snipset shows "No answered surveys yet, so no file was downloaded." and saves nothing.
  • Without an agent code, Snipset shows "Set an agent code first." instead.
  • The file holds only answers Snipset has already fetched. Press Fetch CSAT results first.
ColumnMeaningEmpty when
agentYour agent code.Never
ticketThe first 8 characters of the ticket's hash. Imported tickets show the same reference in the ticket log. Logged tickets appear here by their hash too, not by their T-0001 number.Never
channelwhatsapp, email, chat, phone, social, web, or other.The ticket has no channel
ticket_typequestion, complaint, request, technical, billing, or other.The ticket has no type
resolved_dateThe local day the ticket was resolved, YYYY-MM-DD.The ticket is not resolved
answered_dateThe local day the customer answered, YYYY-MM-DD.Never
speed, quality, accuracy, courtesyThe answers to Speed of service, Quality of the solution, Accuracy of the information, and Friendliness and empathy of the agent, 1 to 5.The answer has no value for that question
overallThe answer to Overall satisfaction, 1 to 5. This is the CSAT score.Never
npsThe recommendation answer, 0 to 10.The customer skipped it

Two example rows, a resolved ticket and an open ticket whose customer skipped NPS:

agent,ticket,channel,ticket_type,resolved_date,answered_date,speed,quality,accuracy,courtesy,overall,nps
A1,3f9a1c2e,whatsapp,question,2026-10-06,2026-10-06,4,5,5,5,5,9
A1,b70d44e1,email,,,2026-10-07,3,4,4,5,4,

Privacy

Research Mode is opt-in and off by default. Turning it off stops every command on this page. Data already recorded stays on your computer.

Stays on your computer: the ticket log, timestamps, timer, channels, ticket types, reopen counts, imported rows, survey answers, agent settings, and usage counts. They live in Snipset's local database. The dataset and survey responses files are created on your computer, and Snipset does not upload them. You decide who receives them.

Never stored by Snipset or the website:

  • Customer names, email addresses, phone numbers, or message text. The ticket log never asks for them, and the import ignores those columns.
  • Your helpdesk name. Snipset keeps only its hash.
  • Helpdesk ticket ids in readable form. Snipset keeps only their hash (ticket: followed by a SHA-256 value).

Leaves your computer:

  • Survey codes, and only when you press Fetch CSAT results. That request carries no agent, ticket, or usage data.
  • The survey link you send to the customer. It holds the code and, if you set one, the company name.

Stored by the website, per answer: a SHA-256 hash of the survey code, the five answers from 1 to 5, the NPS answer from 0 to 10 when the customer gave one, and the time of the answer. No name, email address, message, company name, or IP address is saved with the answer.

The survey code works like a key: whoever has the link can answer once. Send it only to the customer of that ticket.

Limits

  • The numbers are only as good as the button presses. A late First reply makes the first response time longer than it was. A forgotten Pause adds time to the handle time. A missing value stays empty in the dataset. Snipset does not guess.
  • Survey links point at the Snipset website (snipset.belajarcarabelajar.com), not at your company's domain. The page shows the company name from Agent settings so the customer knows who is asking.
  • One answer per link. The first answer counts and cannot be changed. A form sent with one of the five questions unanswered is not stored at all.
  • NPS is optional. Customers can skip it, so nps_n can be lower than csat_n, nps_avg and nps_net can be empty on days that have CSAT scores, and the nps column of the survey responses can have many empty cells.
  • Imported CSAT scores are overall scores only. They count in csat_n and csat_avg, but not in the question, csat_items_, or NPS columns, and not in the survey responses.
  • The type of a resolved ticket cannot change. Set it before you press Resolve. An imported ticket's type comes from the words in the CSV, and a value Snipset does not recognize becomes Other.
  • Scores arrive only when you fetch them, and fetching needs an internet connection.
  • One install is one agent. Two people sharing one computer are counted as one agent.
  • The AI columns are not filtered. They count every AI response inserted or copied on the computer, support work or not.
  • Imported tickets have a handle time only when the CSV has a handle_time_sec column.
  • Days follow the time zone at download time. Download with the same time zone setting for the whole study.
  • CSV only. There is no direct connection to Zendesk, Freshdesk, or other helpdesk services.

Messages

MessageMeaningWhat to do
RESEARCH_MODE_DISABLEDResearch Mode is off.Turn on Customer support metrics in Settings > System & Diagnostics.
RESEARCH_AGENT_CODE_INVALIDThe agent code is empty, longer than 16 characters, or has other characters than letters, digits, _, or -.Use a short code such as A1.
RESEARCH_WORK_HOURS_INVALIDWork hours are outside 0.5 to 24.Enter a value from 0.5 to 24.
RESEARCH_COMPANY_NAME_TOO_LONGThe company name is longer than 80 characters.Shorten it.
Set an agent code first.The dataset needs an agent code.Fill in Agent code and press Save settings.
RESEARCH_TICKET_RESOLVEDYou pressed Start handling on a resolved ticket.Press Reopen first if the customer came back.
RESEARCH_TICKET_NOT_RESOLVEDYou pressed Reopen on a ticket that is not resolved.No action needed.
RESEARCH_CSAT_FETCH_FAILED:networkSnipset could not reach the website.Check your internet connection and try again.
RESEARCH_CSAT_FETCH_FAILED:<number>The website answered with an error.Try again later. If it keeps failing, submit a support ticket.