{"id":351,"date":"2026-10-25T13:08:19","date_gmt":"2026-10-25T13:08:19","guid":{"rendered":"https:\/\/vectalk.com.br\/blog\/whatsapp-customer-service-metrics\/"},"modified":"2026-10-25T13:08:22","modified_gmt":"2026-10-25T13:08:22","slug":"whatsapp-customer-service-metrics","status":"publish","type":"post","link":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/","title":{"rendered":"WhatsApp customer service metrics: response time, handling time, CSAT and how to measure them"},"content":{"rendered":"\n<p><em>Updated on October 25, 2026<\/em><\/p>\n\n\n\n<p>The core WhatsApp customer service metrics are first response time, average response time, average handling time and CSAT (customer satisfaction). With the official WhatsApp Business API, all of them can be calculated from the timestamps in your webhooks: the time of each customer message and the time each reply was sent. The WhatsApp Business app does not give you this level of detail per agent; with the API, the data sits in your database and you measure it the way your operation needs.<\/p>\n\n\n\n<p>In Brazil these metrics often go by their Portuguese acronyms, TMR (<em>tempo m\u00e9dio de resposta<\/em>, average response time) and TMA (<em>tempo m\u00e9dio de atendimento<\/em>, average handling time), so you may see them in Brazilian dashboards and tools.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The metrics that matter<\/h2>\n\n\n\n<p>Names vary from company to company. What matters is fixing one definition and always using it:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Metric<\/th><th>Question it answers<\/th><th>Calculation<\/th><\/tr><\/thead><tbody><tr><td>First response time (FRT)<\/td><td>How long does the customer wait for the first reply?<\/td><td>First business reply \u2212 first customer message in the conversation<\/td><\/tr><tr><td>Average response time (TMR)<\/td><td>How long does the customer wait on each message?<\/td><td>Average gap between a customer message and the next reply<\/td><\/tr><tr><td>Average wait time<\/td><td>How long does the chat sit in the queue?<\/td><td>Assignment to an agent \u2212 entering the queue<\/td><\/tr><tr><td>Average handling time (TMA)<\/td><td>How long does a conversation last?<\/td><td>Closing \u2212 start of the conversation<\/td><\/tr><tr><td>CSAT<\/td><td>Was the customer satisfied?<\/td><td>Positive ratings \u00f7 total ratings<\/td><\/tr><tr><td>First contact resolution<\/td><td>Did we solve it without the customer coming back?<\/td><td>Chats closed with no reopening within X days \u00f7 chats closed<\/td><\/tr><tr><td>Chats unanswered for 24 h<\/td><td>Did we miss the window?<\/td><td>Chats where the customer waited 24 h with no reply \u00f7 total<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The last one is specific to WhatsApp. Under the 24-hour customer service window rule, if the business does not reply within that period, it can only resume with an approved template. A chat that misses the window is an unhappy customer and an extra cost.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where the timestamps come from<\/h2>\n\n\n\n<p>On the official API, two kinds of event feed your metrics:<\/p>\n\n\n\n<p><strong>Incoming message.<\/strong> The webhook includes <code>messages[].timestamp<\/code>, in Unix seconds (UTC), with the time the customer sent it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"from\": \"5511999999999\",\n  \"id\": \"wamid.HBgLNTUx...\",\n  \"timestamp\": \"1792929600\",\n  \"type\": \"text\",\n  \"text\": { \"body\": \"My order hasn't arrived\" }\n}<\/code><\/pre>\n\n\n\n<p><strong>Status of a sent message.<\/strong> The API response to a send returns only the <code>wamid<\/code>, with no time. The send time arrives later, in the <code>sent<\/code> status webhook, with the same <code>id<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"id\": \"wamid.HBgLNTUx...\",\n  \"status\": \"sent\",\n  \"timestamp\": \"1792929735\",\n  \"recipient_id\": \"5511999999999\"\n}<\/code><\/pre>\n\n\n\n<p>The following statuses (<code>delivered<\/code>, <code>read<\/code>, <code>failed<\/code>) arrive with their own timestamps. The article on <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-message-status-webhook\/\">message status webhooks<\/a> covers each one.<\/p>\n\n\n\n<p>Three precautions to keep the numbers honest:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use the event timestamp, not the webhook arrival time.<\/strong> Meta retries unacknowledged events for up to 7 days, and they may arrive late or duplicated.<\/li>\n\n\n<li><strong>Separate bot from human.<\/strong> Store who originated each outgoing message (<code>bot<\/code>, <code>agent<\/code>, <code>automation<\/code>). An automatic welcome sent in 2 seconds should not count toward the team&#8217;s FRT.<\/li>\n\n\n<li><strong>Account for business hours.<\/strong> A message at 11pm answered at 8am is 9 clock hours and zero working hours. Calculate both and make clear which one the dashboard shows.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Minimum data model<\/h2>\n\n\n\n<p>To calculate everything above, each message needs these fields:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Field<\/th><th>Source<\/th><\/tr><\/thead><tbody><tr><td><code>wamid<\/code><\/td><td><code>messages[].id<\/code> or the send response<\/td><\/tr><tr><td><code>conversation_id<\/code><\/td><td>Your system<\/td><\/tr><tr><td><code>direction<\/code><\/td><td><code>inbound<\/code> or <code>outbound<\/code><\/td><\/tr><tr><td><code>author<\/code><\/td><td><code>customer<\/code>, <code>bot<\/code>, <code>agent<\/code>, <code>automation<\/code><\/td><\/tr><tr><td><code>agent_id<\/code><\/td><td>Your system<\/td><\/tr><tr><td><code>sent_at<\/code><\/td><td><code>messages[].timestamp<\/code> (inbound) or the <code>sent<\/code> status (outbound)<\/td><\/tr><tr><td><code>delivered_at<\/code>, <code>read_at<\/code><\/td><td><code>delivered<\/code> and <code>read<\/code> statuses<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>And each conversation: <code>opened_at<\/code>, <code>queued_at<\/code>, <code>assigned_at<\/code>, <code>closed_at<\/code>, and the CSAT score if any.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Calculating response time and FRT in SQL<\/h2>\n\n\n\n<p>With messages in PostgreSQL, the <code>LAG<\/code> function finds the previous customer message for each reply. The query below returns, per agent, the median and 90th percentile response time over the last 30 days:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-sql\">WITH turns AS (\n  SELECT\n    conversation_id,\n    author,\n    agent_id,\n    sent_at,\n    LAG(author)  OVER w AS prev_author,\n    LAG(sent_at) OVER w AS prev_at\n  FROM messages\n  WHERE sent_at &gt;= now() - interval '30 days'\n  WINDOW w AS (PARTITION BY conversation_id ORDER BY sent_at)\n)\nSELECT\n  agent_id,\n  COUNT(*) AS replies,\n  percentile_cont(0.5) WITHIN GROUP (ORDER BY sent_at - prev_at) AS response_median,\n  percentile_cont(0.9) WITHIN GROUP (ORDER BY sent_at - prev_at) AS response_p90\nFROM turns\nWHERE author = 'agent' AND prev_author = 'customer'\nGROUP BY agent_id\nORDER BY response_median;<\/code><\/pre>\n\n\n\n<p>For first response time, take the first customer message and the first agent message in each conversation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-sql\">SELECT\n  c.id,\n  MIN(m.sent_at) FILTER (WHERE m.author = 'agent')\n    - MIN(m.sent_at) FILTER (WHERE m.author = 'customer') AS first_response\nFROM conversations c\nJOIN messages m ON m.conversation_id = c.id\nWHERE c.opened_at &gt;= now() - interval '30 days'\nGROUP BY c.id;<\/code><\/pre>\n\n\n\n<p>Why median and 90th percentile instead of just the average? Because a handful of chats forgotten over the weekend push the average up and hide normal behavior, and the average alone also hides the customers who waited far too long. The median shows what is typical; the p90 shows who is being poorly served.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Measuring CSAT inside WhatsApp<\/h2>\n\n\n\n<p>CSAT is the &#8220;from 1 to 5, how was your support?&#8221; question sent when a conversation closes. On WhatsApp, the best format is an interactive message: the customer taps instead of typing and the answer arrives structured. Reply buttons allow up to three options; for a 1-to-5 scale, use a list. The <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/messages\/interactive-list-messages\" target=\"_blank\" rel=\"noreferrer noopener\">list messages documentation<\/a> allows up to 10 rows, row titles up to 24 characters and button text up to 20.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-json\">{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"5511999999999\",\n  \"type\": \"interactive\",\n  \"interactive\": {\n    \"type\": \"list\",\n    \"body\": { \"text\": \"Your support chat is closed. How would you rate the help you received?\" },\n    \"action\": {\n      \"button\": \"Rate\",\n      \"sections\": [{\n        \"title\": \"Your rating\",\n        \"rows\": [\n          { \"id\": \"csat_5\", \"title\": \"5 - Excellent\" },\n          { \"id\": \"csat_4\", \"title\": \"4 - Good\" },\n          { \"id\": \"csat_3\", \"title\": \"3 - Fair\" },\n          { \"id\": \"csat_2\", \"title\": \"2 - Poor\" },\n          { \"id\": \"csat_1\", \"title\": \"1 - Very poor\" }\n        ]\n      }]\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<p>The answer arrives as <code>type: \"interactive\"<\/code> with <code>interactive.list_reply.id<\/code> set to the <code>id<\/code> of the selected row. Store the score on the conversation.<\/p>\n\n\n\n<p>Details that make a difference:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Send it right after closing.<\/strong> The 24-hour window is still open, so no template is needed.<\/li>\n\n\n<li><strong>Ask one question.<\/strong> If the score is 1 or 2, ask for the reason next and route it to a supervisor.<\/li>\n\n\n<li><strong>Calculate CSAT as the percentage of 4 and 5 ratings.<\/strong> And track the response rate: a high CSAT with few responses says little.<\/li>\n\n\n<li><strong>Cost.<\/strong> Since October 1, 2026, service messages are charged from the 1,001st delivered per month, per number, according to <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/pricing\" target=\"_blank\" rel=\"noreferrer noopener\">Meta&#8217;s pricing page<\/a>. Factor the survey in.<\/li>\n\n<\/ul>\n\n\n\n<p>For NPS and surveys after the product is delivered, when the window has already closed, see <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-nps-survey\/\">post-sale and NPS on WhatsApp<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to set targets<\/h2>\n\n\n\n<p>This article deliberately does not quote &#8220;industry benchmarks&#8221;: generic numbers say little about your operation. A more useful path:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Measure for two to four weeks without changing anything.<\/strong> That is your baseline.<\/li>\n\n\n<li><strong>Set targets on percentiles, not averages.<\/strong> For example: &#8220;90% of first responses within X minutes during business hours&#8221;.<\/li>\n\n\n<li><strong>Treat the 24-hour window as a hard ceiling.<\/strong> The target for &#8220;chats unanswered for 24 h&#8221; should be close to zero.<\/li>\n\n\n<li><strong>Split by queue and time of day.<\/strong> Sales and support move at different speeds; Monday morning is not Thursday afternoon.<\/li>\n\n\n<li><strong>Review monthly.<\/strong> A target you beat comfortably becomes the new baseline.<\/li>\n\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Indicators on Meta&#8217;s side<\/h2>\n\n\n\n<p>Besides support metrics, track two indicators that Meta calculates itself:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Phone number quality rating.<\/strong> Green, yellow or red, based on recent blocks and reports. Slow support and out-of-context messages make it worse. See <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-phone-number-quality-rating\/\">number quality on the API<\/a>.<\/li>\n\n\n<li><strong>Delivery and read rates.<\/strong> Share of sent messages that reach <code>delivered<\/code> and <code>read<\/code>. A sudden drop usually points to a problem with the number, a template or a list.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How to do this with Vectalk<\/h2>\n\n\n\n<p>With Vectalk, message and status webhooks are Meta&#8217;s, with the same <code>timestamp<\/code> fields used above; register your URL with <code>POST \/api\/webhooks<\/code> and store the events in your database. To check or rebuild data, <code>GET \/api\/messages<\/code> lists history with filters for date, status, direction and <code>messageId<\/code>. For aggregate indicators (sent, delivered, read, failed, rates and number quality), use <code>GET \/api\/analytics\/instances\/{instanceId}\/stats<\/code>, grouped by day, week or month. Per-agent support metrics (response time, handling time, CSAT) depend on your own system&#8217;s data, as in the example. Details at <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/analytics\/instance-stats\">docs.vectalk.com.br<\/a>; sign up at <a href=\"https:\/\/apps.vectalk.com.br\/register\">apps.vectalk.com.br\/register<\/a>.<\/p>\n\n\n\n<p>To build the operation that produces these numbers, see <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-multi-agent-api\/\">multi-agent support with the API<\/a> and <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-welcome-away-message\/\">welcome and away messages<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What is the difference between response time and handling time?<\/h3>\n\n\n\n<p>Average response time measures how long the customer waits on each message for a reply. Average handling time measures the full length of the conversation, from start to close. An operation can have a low response time and a high handling time, for example when a problem takes many back-and-forth messages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do bot replies count toward response time?<\/h3>\n\n\n\n<p>It depends on what you want to measure. For customer experience, they do. For evaluating the team, they do not. That is why you should store the author of each message and calculate both versions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I use the API response time instead of the status webhook?<\/h3>\n\n\n\n<p>The send response has no timestamp, only the <code>wamid<\/code>. You can use your server&#8217;s clock at send time as an approximation, but the <code>sent<\/code> status is Meta&#8217;s record and is more consistent.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do I measure CSAT if customers do not answer the survey?<\/h3>\n\n\n\n<p>Track the response rate separately and do not fill in missing scores. If few people respond, test a different send time or question wording.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I get these metrics from the WhatsApp Business app?<\/h3>\n\n\n\n<p>Not at this level of detail. The app does not record who replied or how long each agent took. Per-agent metrics require the API and a system that stores the events.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Official sources consulted on October 25, 2026:<\/strong> <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/webhooks\/reference\/messages\" target=\"_blank\" rel=\"noreferrer noopener\">Messages webhook<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/webhooks\/overview\" target=\"_blank\" rel=\"noreferrer noopener\">Webhooks overview<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/messages\/interactive-list-messages\" target=\"_blank\" rel=\"noreferrer noopener\">Interactive list messages<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/pricing\" target=\"_blank\" rel=\"noreferrer noopener\">Platform pricing<\/a>, <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/analytics\/instance-stats\">Vectalk docs: instance stats<\/a>, <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/messages\/list\">Vectalk docs: list messages<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What to measure in WhatsApp support and how to calculate response time, handling time and CSAT from the timestamps the official API already sends in webhooks.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-351","post","type-post","status-publish","format-standard","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WhatsApp customer service metrics | Vectalk<\/title>\n<meta name=\"description\" content=\"WhatsApp customer service metrics: first response, response time, handling time and CSAT, calculated from API webhook timestamps.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WhatsApp customer service metrics | Vectalk\" \/>\n<meta property=\"og:description\" content=\"WhatsApp customer service metrics: first response, response time, handling time and CSAT, calculated from API webhook timestamps.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Vectalk\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-25T13:08:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-25T13:08:22+00:00\" \/>\n<meta name=\"author\" content=\"wanderleyfcunha\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"wanderleyfcunha\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-customer-service-metrics\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-customer-service-metrics\\\/\"},\"author\":{\"name\":\"wanderleyfcunha\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"headline\":\"WhatsApp customer service metrics: response time, handling time, CSAT and how to measure them\",\"datePublished\":\"2026-10-25T13:08:19+00:00\",\"dateModified\":\"2026-10-25T13:08:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-customer-service-metrics\\\/\"},\"wordCount\":1383,\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-customer-service-metrics\\\/\",\"url\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-customer-service-metrics\\\/\",\"name\":\"WhatsApp customer service metrics | Vectalk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-25T13:08:19+00:00\",\"dateModified\":\"2026-10-25T13:08:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"description\":\"WhatsApp customer service metrics: first response, response time, handling time and CSAT, calculated from API webhook timestamps.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-customer-service-metrics\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-customer-service-metrics\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-customer-service-metrics\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WhatsApp customer service metrics: response time, handling time, CSAT and how to measure them\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/\",\"name\":\"Blog Vectalk\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\",\"name\":\"wanderleyfcunha\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"caption\":\"wanderleyfcunha\"},\"sameAs\":[\"https:\\\/\\\/vectalk.com.br\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WhatsApp customer service metrics | Vectalk","description":"WhatsApp customer service metrics: first response, response time, handling time and CSAT, calculated from API webhook timestamps.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/","og_locale":"en_US","og_type":"article","og_title":"WhatsApp customer service metrics | Vectalk","og_description":"WhatsApp customer service metrics: first response, response time, handling time and CSAT, calculated from API webhook timestamps.","og_url":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/","og_site_name":"Blog Vectalk","article_published_time":"2026-10-25T13:08:19+00:00","article_modified_time":"2026-10-25T13:08:22+00:00","author":"wanderleyfcunha","twitter_card":"summary_large_image","twitter_misc":{"Written by":"wanderleyfcunha","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/#article","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/"},"author":{"name":"wanderleyfcunha","@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"headline":"WhatsApp customer service metrics: response time, handling time, CSAT and how to measure them","datePublished":"2026-10-25T13:08:19+00:00","dateModified":"2026-10-25T13:08:22+00:00","mainEntityOfPage":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/"},"wordCount":1383,"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/","url":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/","name":"WhatsApp customer service metrics | Vectalk","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/#website"},"datePublished":"2026-10-25T13:08:19+00:00","dateModified":"2026-10-25T13:08:22+00:00","author":{"@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"description":"WhatsApp customer service metrics: first response, response time, handling time and CSAT, calculated from API webhook timestamps.","breadcrumb":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-customer-service-metrics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vectalk.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"WhatsApp customer service metrics: response time, handling time, CSAT and how to measure them"}]},{"@type":"WebSite","@id":"https:\/\/vectalk.com.br\/blog\/#website","url":"https:\/\/vectalk.com.br\/blog\/","name":"Blog Vectalk","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vectalk.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b","name":"wanderleyfcunha","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","caption":"wanderleyfcunha"},"sameAs":["https:\/\/vectalk.com.br\/blog"]}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/comments?post=351"}],"version-history":[{"count":1,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/351\/revisions"}],"predecessor-version":[{"id":354,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/351\/revisions\/354"}],"wp:attachment":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/media?parent=351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/categories?post=351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/tags?post=351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}