Search our articles
Search

Featured articles

Stop Chargebacks Before They Start: The Power of Fast Customer Support

Chargeflow's report reveals 80% of chargebacks stem from poor communication, not fraud.
By Jodi Lifschitz
0 min read . By Jodi Lifschitz

TL;DR:

  • Most chargebacks occur due to poor merchant communication rather than fraud. Customers choose this path when they feel ignored or frustrated.
  • 80% of customers report never being contacted by merchants after filing a chargeback. 23% file immediately after an issue and 38% file within 1-3 days if unresolved.
  • The most common chargeback reason is "product not received" (35%). 79% of all chargebacks are actually "friendly fraud" filed for invalid claims.
  • Prevention requires fast customer support and automated chargeback management. Combining Gorgias for AI-powered support with Chargeflow for automated dispute management provides a comprehensive solution with faster resolutions and higher win rates.

Chargebacks are more than a thorn in a merchant’s side — they’re a growing financial and operational threat. According to Ethoca, chargebacks are projected to more than double, from $7.2 billion in 2019 to $15.3 billion by 2026 in the U.S. alone. And while fraud plays a role, the primary reason customers file chargebacks is simpler: they feel ignored. 

Chargeback volume in 2026 is projected to be $146 millino
Chargeback volume is expected to reach $146 million in 2026.

At Chargeflow, we recently published a comprehensive report analyzing why customers dispute chargebacks. The findings were eye-opening. While it’s true that fraud is a real concern, most chargebacks happen for a different reason: a lack of communication between merchants and customers.  

Top stats from Chargeflow’s report:

  • 23% of customers file a chargeback immediately after an issue.
  • 38% file a chargeback within 1-3 days if unresolved.
  • 80% report never being contacted by the merchant.
  • 52% are likely to dispute if the response is too slow.

When customers feel ignored or frustrated, they often turn to their bank for a solution instead of reaching out to the merchant first. Understanding these behaviors is key to preventing disputes before they escalate and cause chaos. 

So, what actually drives customers to dispute charges? Here’s what the data says.

Why customers file chargebacks

While chargebacks are often the cost of doing business, the truth is that many disputes are preventable — but only if merchants understand the root causes. We identified five key drivers behind chargebacks.

1. Customers take immediate action

According to our research, most customers file a dispute right away after encountering an issue, leaving no opportunity to resolve the problem. Another 38% file within one to three days if they don’t receive a timely response. 

Why? Customers assume the fastest way to get their money back is by filing a chargeback, especially if they receive no response from the merchant.

2. Lack of communication leads to disputes

We found that 80% of customers never receive a follow-up after filing a chargeback. Additionally, 64% of customers state immediate communication is crucial, yet many businesses fail to reach out.

  • 90% of customers tried to reach out to the merchant first.
  • If they don’t receive a response, they quickly file a dispute. 

Why? Customers expect businesses to be proactive. When they don’t hear back quickly, they assume the merchant won’t help, making a chargeback seem like the best option.

3. Chargebacks are too easy for customers

98% of customers report a neutral to highly satisfactory experience when filing chargebacks, and only 12% are denied. 

A pie chart showing that 45% of customers are satisfied with the chargeback process.
45% of customers are Very Satisfied with the process of initiating chargebacks through their banks and credit card companies.

Why? Many customers believe chargebacks are faster and easier than dealing with merchants directly, especially if return policies are unclear. 

4. Transaction issues drive chargebacks

The most common reason for filing a chargeback is “product not received” (35% of the cases). Other common reasons included:

  • Fraudulent transaction claims - 16%
  • Product significantly not as described - 15%
  • Unauthorized transaction - 15%

Why? When customers don’t receive clear shipping updates or experience delivery delays, they assume their order won’t arrive and file a chargeback rather than waiting.

5. Friendly fraud is a major problem

Friendly fraud occurs when a cardholder makes a legitimate purchase but later disputes the charge as fraudulent or unauthorized, leading their card issuer to reverse the payment. 

Our research found that:

  • 21% of customers admitted to not fully understanding the chargeback process. 
  • Another 20% aren’t even aware of what a chargeback is. 
  • 97% of consumers believe they’ve never filed a chargeback incorrectly, while only 3% admit they have.
97.14% of customers have initiated a false chargeback
Nearly all customers (97%) have initiated a false chargeback at one point.

According to our State of Chargebacks report, 79% of chargebacks are actually friendly fraud, meaning they were filed for invalid reasons.

Why? Many customers mistakenly believe that a chargeback is just another way to request a refund, rather than a process intended for fraud or merchant failure. 

📌 The takeaway: Most chargebacks aren’t actual fraud, but rather a result of customer confusion, impatience, or poor communication from merchants.

The solution: how to stop chargebacks before they happen

Merchants who want to stop chargebacks before they happen need a two-part strategy:

  • Fast, customer-focused support to resolve issues before customers dispute charges. 
  • Automated chargeback management to detect and fight disputes efficiently, so merchants don’t lose revenue to invalid claims.

Chargebacks result from slow response times, poor communication, and unresolved issues, not fraud. Adopting AI-driven customer support and chargeback automation allows businesses to significantly reduce disputes and retain more revenue. 

How AI-powered support & chargeback automation work together

Instant responses prevent frustration-driven chargebacks

Many chargebacks happen because customers don’t receive a fast enough response. In fact, 52% say they will dispute a charge if the response time is too slow. AI-powered chatbots provide real-time support, resolving issues before they escalate. 

Proactive communication reduces uncertainty

Customers expect updates regarding orders and refunds, but often don’t receive them. 80% of customers report never hearing from a merchant after filing a chargeback. 

Automated order updates, refund confirmations, and proactive notifications keep customers informed, reducing unnecessary disputes.

24/7 availability ensures no issues go unanswered

Customers expect round-the-clock support, but most businesses can’t provide live assistance. AI-powered ticketing and automation ensure every customer receives help, regardless of the time zone or urgency.

The result? Fewer chargebacks, faster resolutions, and increased customer satisfaction.

Actionable strategies for improving response times

Prioritize long-term clients

It’s impossible to please every customer. On average, chargebacks take 50 days to resolve successfully. Focus your energy on retaining high-value, long-term customers.

Prioritize high-risk inquiries

Lost inquiries take on average 15 days to resolve, and lost chargebacks take 38 days. Prioritize cases based on impact. 

Build efficient escalation systems

Advanced automated ticketing systems can route inquiries and prioritize urgent cases.

Use pre-approved resolution templates

Ensure customer service teams have quick-response templates to speed their resolutions.

Work closely with shipping carriers

“Product not received” was the most cited reason for delivery-related chargebacks. Work closely with carriers and third-party suppliers to improve fulfillment and reduce disputes.

Leverage chargeback management tools

Use automated tools for real-time analytics, enhanced communication, and proactive alerts, which will reduce response times. 

Gorgias & Chargeflow: A fully automated chargeback prevention system

Successfully tackling chargebacks requires both proactive customer support and automated dispute management. That’s why Gorgias and Chargeflow work so well together to give merchants a comprehensive defense against disputes.

Post-purchase automation isn’t just about reducing customer support workload or quick replies. It's about finding the most effective ways to increase customer loyalty and prevent disputes.

Learn more about how AI-driven automation enhances post-purchase experiences here.

How Gorgias prevents chargebacks with conversational AI

  • Automated real-time responses engage customers before they decide to dispute charges.
  • Proactive customer communication ensures customers receive updates on their orders, refunds, and transactions.
  • 24/7 availability ensures customers receive the support they need without increasing overhead. 

How Chargeflow automates chargeback prevention & recovery

  • Pre-dispute alerts notify merchants before a chargeback is finalized and provide proactive intervention.
  • AI-powered chargeback responses to automate evidence collection and improve win rates. 
  • Smart analytics to help merchants understand why disputes happen and how they can prevent them. 

Final thoughts: Stop chargebacks before they start

As you know, chargebacks are costly, frustrating, but most importantly, preventable. Our research shows that most chargebacks don’t stem from fraud, but from poor communication, slow response times, and customer uncertainty.

By prioritizing fast, AI-driven customer support and automated chargeback management, merchants can resolve issues before they escalate, improve customer experience, and protect their revenue. 

With Gorgias handling proactive customer support and Chargeflow managing chargeback disputes, merchants get a powerful, end-to-end prevention system that ensures fewer chargebacks, higher dispute win rates, and, at the end of the day, happier customers. 

Don’t let chargebacks drain your revenue. Take control today with faster, smarter automation.

Download Chargeflow’s full Psychology of Chargebacks Report to dive deeper into the data and start preventing disputes before they happen.

min read.

9 Ways to Use AI to Personalize the Customer Journey

Use AI to segment behavior, predict intent, and personalize CX across chat, email, and support touchpoints.
By Tina Donati
0 min read . By Tina Donati

TL;DR:

  • Use AI across both support and sales. Ecommerce brands are using AI to drive revenue and efficiency by combining automation in chat, email, and customer data with personalized product guidance and upsells.
  • Analyze post-purchase surveys with AI to uncover customer insights. AI quickly identifies themes, sentiment, and trends from open-ended feedback to inform product, shipping, and support decisions.
  • Predict customer intent with AI before they take action. By analyzing behavior like cart activity or page views, AI can engage high-intent shoppers with personalized nudges in real time.
  • Automate QA and proactive support with AI. AI reviews 100% of conversations, flags quality issues, and triggers outreach for known problems — all before customers even ask.

Shoppers aren’t just open to AI — they’re starting to expect it.

According to IBM, 3 in 5 consumers want to use AI as they shop. And a McKinsey study found that 71% expect personalized experiences from the brands they buy from. When they don’t get that? Two-thirds say they’re frustrated.

But while most brands associate AI with support automation, its real power lies in something bigger: scaling personalization across the entire customer journey. 

We’ll show you how to do that in this article.

AI for customer data 

Before AI can personalize emails, recommend products, or answer support tickets, it needs one thing: good data.

That’s why one of the best places to start using AI isn’t in sales or support — but in enriching your customer data. With a deeper understanding of who your customers are, what they want, and how they behave, AI becomes a personalization engine across your entire business.

Enriching surveys with AI

Post-purchase surveys are gold mines for understanding customers — but digging through the data manually? Not so fun.

AI can help by analyzing survey responses at scale, identifying trends, and categorizing open-ended customer feedback into clear, actionable insights. Instead of skimming thousands of answers to spot what customers are saying about your shipping times, AI can surface those insights instantly — along with sentiment and behavior signals you might’ve missed.

Try this prompt when doing this: "Analyze 500 open-ended post-purchase survey responses. Identify the top 5 recurring themes, categorize customer sentiment (positive, neutral, negative), and surface any trends related to product quality, delivery experience, or customer support."

Predicting customer intent before they even say a word

One of AI’s biggest strengths? Spotting intent.

By analyzing things like page views, cart activity, scroll behavior, and previous purchases, AI can identify which shoppers are ready to buy, which ones are likely to churn, and which just need a little nudge to move forward.

This doesn’t just apply to email and retargeting. It also works on live chat, in real time.

Take TUSHY, for example.

To eliminate friction in the buying journey, TUSHY introduced AI Agent for Sales — a virtual assistant designed to guide shoppers toward the right product before they drop off. 

Instead of letting potential customers bounce with unanswered questions, the AI Agent steps in to offer:

  • Personalized product recommendations based on shopper questions
  • Compatibility guidance (especially for customers unsure which bidet works with their toilet)
  • Real-time installation tips and links to helpful how-to articles
TUSHY uses AI Agent to answer customers on live chat.
TUSHY removes pre-sales friction with Gorgias's AI Agent to answer product questions, resolve compatibility concerns, and deliver personalized recommendations.

With a growing product catalog, TUSHY realized first-time buyers were overwhelmed with options — and needed help choosing what would work best for their home and hygiene preferences.

“What amazed us most is that the AI Agent doesn’t just help customers choose the perfect bidet for their booty — it also provides measurement and fit guidance, high-level installation support, and even recommends all the necessary spare parts for skirted toilet installations. It’s ushering in a new era of customer service — one that’s immediate, informative, and confidence-boosting as people rethink their bathroom habits.”

—Ren Fuller-Wasserman, Sr. Director of Customer Experience at TUSHY

Forecasting revenue by segment

AI also helps you see the road ahead.

Instead of looking at retention and loyalty metrics in isolation, AI can help you forecast what’s likely to happen next and where to focus your attention.

By segmenting customers based on behaviors like average order value, order frequency, and churn risk, AI can identify revenue opportunities and weak spots before they impact your bottom line.

All you need is the right prompt. Here’s an example you can run using your own data in any AI tool:

Prompt: “Analyze my customer data to forecast revenue by segment. Break customers into at least three groups based on behavior patterns like average order value, purchase frequency, and churn risk. 

For each segment, provide:

  1. A projected revenue trend for the next quarter
  2. A key insight about their behavior
  3. One actionable recommendation to either grow or retain revenue from that segment.”

Here’s what a result might look like:

  • VIPs (Top 5% by LTV): Predicted 15% growth next quarter based on repeat behavior
  • One-time Buyers: 70% churn risk flagged—time to trigger a win-back campaign
  • Discount-Only Shoppers: Revenue likely to dip unless incentive strategy changes

Instead of flying blind, you’re making decisions with clarity — and backing them with data that scales.

AI for sales 

When used strategically, AI becomes a proactive sales agent that can identify opportunities in real-time: recommending the right product to the right shopper at the right moment.

Here’s how ecommerce brands are using AI to drive revenue across every part of the funnel.

Dynamic pricing that responds to the market (and the shopper)

Your prices shouldn’t be static — especially when your competitors, inventory, and customer behavior are anything but.

AI-powered pricing tools like AI Agent for Sales help brands automatically adjust pricing based on shopper behavior. The goal is to make the right offer to the right customer.

For example:

  • Show a discount to a price-sensitive shopper who’s hesitating at checkout
  • Recommend premium add-ons to high-LTV customers who are more likely to spend

With dynamic pricing, you can protect your margins and boost conversions — without relying on blanket sales.

Turning chat into a personal shopper (that never sleeps)

AI-powered chat is no longer just a glorified FAQ. Today, it can act as a real-time shopping assistant — guiding customers, boosting conversions, and helping your team reclaim time.

That’s exactly what Pepper did with “Penelope,” their AI Agent built on Gorgias.

With a rapidly growing product catalog (22 new SKUs in 2024 alone), Pepper knew shoppers needed help discovering the right products. Customers often had questions about styles, materials, or sizing, and if they didn’t get answers right away, they’d abandon carts and move on.

Instead of hiring more agents to keep up, Pepper deployed Penelope to live chat and email.

Her job?

  • Instantly answer questions about fit, fabric, or product differences
  • Guide shoppers toward the best option for their needs
  • Recommend complementary products (like matching panties or bottoms)
  • Free up agents to focus on higher-value 1:1 moments, like virtual fit sessions
“With AI Agent, we’re not just putting information in our customer’s hands; we’re putting bras in their hands... We’re turning customer support from a cost center to a revenue generator.”
—Gabrielle McWhirter, CX Operations Lead at Pepper
Pepper uses Gorgias's AI Agent on their website via chat.
Pepper uses AI Agent to provide proactive sales support on chat, handling objections and encouraging customers to make informed purchases.

Let’s look at how Penelope performs on the floor:

Real-time recommendations

A shopper asked about the difference between two wire-free bras. Penelope broke down the styles, support level, and fabric in plain language — then followed up with personalized suggestions based on the shopper’s preferences.

Proactive engagement

Using Gorgias Convert chat campaigns, Pepper triggers targeted messages to shoppers based on behavior. If someone is browsing white bras? Penelope jumps in and offers assistance, often leading to faster decisions and fewer abandoned carts.

Intelligent upsells

If a customer adds a swimsuit top to their cart, Penelope suggests matching bottoms. No full-screen popups, no awkward sales scripts — just thoughtful, helpful guidance.

Support and sales in one

Penelope also handles WISMO tickets and return inquiries. If a shopper is dealing with a sizing issue, Penelope walks them through the return process and links to Pepper’s Fit Guide to make sure the next purchase is spot on.

Pepper uses AI Agent to automatically answer product questions.
A customer asks about the fabric used in her Pepper bra. AI Agent successfully responds with the proper details in a natural tone of voice.

By implementing AI into chat, Pepper saw a 19% conversion rate from AI-assisted chats, an 18% uplift in AOV, and a 92.1% decrease in resolution time.

With Penelope handling repetitive and revenue-driving tasks, Pepper’s team now has more time to offer truly personalized touches — like virtual fit sessions that have turned refunds into exchanges and even upsells.

Curating bundles with AI-powered sales data

Bundling is a proven tactic for increasing AOV — but most brands still rely on subjective judgment calls or static reports to decide which products to group.

AI can take this a step further.

Instead of just looking at what’s bought together in the same cart, AI can analyze purchase sequences. For example, what people tend to buy as a follow-up 30 days after their first order. This gives you powerful clues into natural buying behavior and bundling opportunities you might’ve missed.

If you’re looking to explore this at scale, you can use anonymized sales data and feed it into AI tools to surface patterns in:

  • Frequently bundled items
  • Follow-up purchases within a set time frame
  • High-value product pairings with repeat potential

Try this prompt:

 "Analyze this spreadsheet of order data and identify product bundle opportunities. Look for: (1) products frequently purchased together in the same order, (2) items commonly bought as a second purchase within 30 days of the first, and (3) patterns in high-value or high-frequency product pairings. Provide insights on the most promising bundles and why they might work well together."

Just make sure you’re keeping customer data anonymous — and always double-check the insights with your team.

Related: Ecommerce product categorization: How to organize your products

AI for support

AI isn’t just here to deflect tickets. From quality assurance to proactive outreach, AI can elevate the entire support experience — on both sides of the conversation.

Quality checks powered by AI

Manual QA is slow, selective, and often feels like it’s chasing the wrong tickets.

That’s where Auto QA comes in. Instead of reviewing just a handful of conversations each week, Auto QA evaluates 100% of private messages, whether they’re handled by a human or an AI agent.

Every message is scored on key metrics like:

  • Resolution completeness
  • Brand voice
  • Empathy and tone
  • Accuracy

It gives support leaders a full picture of how their team is performing, so they can coach with clarity, not just gut feeling.

Here’s what brands can do with automated QA:

  • Save time by focusing only on the conversations that need attention
  • Ensure consistency across agents and AI with a single scoring standard
  • Improve agent performance with targeted coaching and feedback
  • Deliver higher-quality support that customers actually notice

Let’s walk through a real example.

Customer: “Hi, my device broke, and I bought it less than a month ago.”

Agent: “Hi Kelly, please send us a photo or a video so we can determine the issue with your device.”

Auto QA flags this interaction with:

  • Communication Score: 3/5 — The agent was clear, but could have shown more empathy in tone.
  • Resolution Score: Complete — The issue was addressed effectively.

Proactive support that reaches out first

Reactive support is table stakes. AI takes it a step further by anticipating issues before they happen — and proactively helping customers.

Let’s say login errors spike after a product update. AI detects the surge and automatically triggers an email to affected customers with a simple fix. No need for them to dig through help docs or wait on chat — support meets them right where they are.

Proactive AI can also be used for:

  • Order delay notifications with live tracking updates
  • Subscription renewal reminders
  • Back-in-stock alerts with support follow-up for next steps

This saves the time of your agents because the AI will spot problems before they turn into tickets.

Understanding sentiment at scale

Your customers are telling you what they think. AI just helps you hear it more clearly.

By analyzing reviews, support tickets, post-purchase surveys, and social comments, AI can spot sentiment trends that might otherwise fly under the radar.

For example:

  • Multiple reviews mention “runs small”? AI flags it, so your team can update the product description or add a sizing chart.
  • A sudden rise in “frustrated” language in support tickets? Time to check if something’s off with your shipping or product quality.

Related: 12 ways to upgrade your data and trend analysis with Ticket Fields 

Personalization at scale starts with the right AI stack

Whether you’re enriching customer data, making smarter product recommendations, triggering dynamic pricing, or proactively resolving support issues, AI gives your team the power to scale personalization without sacrificing quality.

With Gorgias, you can bring many of these use cases to life — from AI-powered chat that drives conversions to automated support that still feels human. 

And with our app store, you can tap into additional AI tools for data enrichment, direct mail, bundling insights, and more.

Personalized ecommerce doesn’t have to mean more work. With the right AI tools in your corner, it means smarter work — and better results.

{{lead-magnet-1}}

min read.

Should Brands Disclose AI in Customer Interactions? A Guide for CX Leaders

Explore the risks, benefits, and best practices for AI transparency in customer support. Plus, a framework to help you decide whether or not to disclose AI.
By Tina Donati
0 min read . By Tina Donati

TL;DR:

  • Check legal requirements. Some regions mandate AI disclosure—stay compliant.
  • Transparency impacts trust. Some customers appreciate honesty; others may disengage.
  • Frame AI as helpful. Position it as a support tool, not a human replacement.
  • Refine your approach over time. Monitor feedback and adjust AI disclosure as needed.
  • AI is everywhere in customer service—powering live chats, drafting responses, and handling inquiries faster than ever. 

    But as AI takes on more of the customer experience, one question keeps coming up: Should brands tell customers when they’re talking to AI?

    Legally, the answer depends on where you operate. Ethically? That’s where things get interesting. Some argue that transparency builds trust. Others worry it might undermine confidence in support interactions. 

    So, what’s the right move?

    This guide breaks down the debate and gives CX leaders a framework to decide when (and how) to disclose AI—so you can strike the right balance between innovation and trust.

    The legal landscape: What are the disclosure requirements?

    Depending on where your business operates, disclosure laws may be strict, vague, or nonexistent. Some laws, such as the California Bolstering Online Transparency Act, prohibit misleading consumers about the use of automated artificial identities.

    For maximum legal protection, it’s best to proactively disclose AI use—even when not explicitly required. 

    A simple disclaimer can go a long way in avoiding legal headaches down the line. Here’s how to disclose AI use in customer interactions:

    • In email: Use your email signature to indicate that AI has assisted in generating the response.
    • In chat: Update your Privacy Policy to clarify when AI is involved in customer interactions.

    Truthfully, AI laws are evolving fast. That’s why we recommend consulting legal counsel to ensure your disclosure practices align with the latest requirements in your region.

    But beyond avoiding legal trouble, transparency around AI usage can reinforce customer trust. If customers feel deceived, they may question the reliability of your brand, even if the AI delivers great service.

    Related reading: How AI Agent works & gathers data

    How does disclosure impact trust and satisfaction?

    Research shows that 85% of consumers want companies to share AI assurance practices before bringing AI-driven products and experiences to market.

    But what does “transparency” actually mean in this context? An article in Forbes broke it down, explaining that customers expect three key things:

    1. Clear disclosure: They want to know when AI is (and isn’t) used in customer interactions.
    2. Simple, non-technical language: AI disclosures shouldn’t feel like reading a terms-of-service agreement. Keep it digestible.
    3. Easy-to-find information: AI disclosures should be visible—not buried in fine print. A chatbot notification, a banner on your site, or a brief message before an AI-powered chat begins can make a big difference.

    How you disclose AI matters just as much as whether you disclose it. At the end of the day, AI isn’t inherently good or bad—it’s all about how it’s implemented and trained. 

    The business perspective: Risks and benefits of AI transparency

    The way a brand approaches AI disclosure can impact trust, satisfaction, and even conversion rates—making it a decision that goes beyond simple legal requirements.

    While some customers appreciate honesty, others may hesitate if they prefer human support. Brands must weigh the pros and cons to determine the best approach for their audience.

    Risks of disclosure

    Let’s be honest: AI in customer service still carries baggage. While some consumers embrace AI-driven support, others hear "AI" and immediately picture frustrating, robotic chatbots that can’t understand their questions.

    This is one of the biggest risks of transparency: customers who’ve had bad AI experiences in the past may assume the worst and disengage the moment they realize they’re not speaking to a human.

    For brands that thrive on personal connection and high-touch service, openly stating that AI is involved could create skepticism or drop-off rates before customers even give it a chance.

    Another challenge? The perception gap

    Even if AI is handling inquiries smoothly, some customers may assume it lacks the empathy, nuance, or problem-solving skills of a live agent. Certain industries may find that transparency about AI use leads to more escalations, not fewer, simply because customers expect a human touch.

    Benefits of disclosure

    Despite the risks, transparency about AI can actually be a trust-building strategy when handled correctly.

    Customers who value openness and ethical business practices tend to appreciate brands that don’t try to disguise AI as a human. 

    Being upfront also manages expectations. If a customer knows they’re speaking to AI, they’re less likely to feel misled or frustrated if they encounter a limitation. Instead of feeling like they were "tricked" into thinking they were talking to a human, they enter the conversation with the right mindset—often leading to higher satisfaction rates.

    And then there’s the long-term brand impact

    If customers eventually realize (through phrasing, tone, or inconsistencies) that they weren’t speaking with a human when they thought they were, it can erode trust. 

    Deception—whether intentional or not—can backfire. Proactively disclosing AI use prevents backlash and reinforces credibility, especially as AI becomes a bigger part of the customer experience.

    Example: How Arcade Belts used AI transparency without losing the human touch

    Arcade Belts, known for its high-quality belts, wanted to improve efficiency without compromising customer experience. By implementing Gorgias Automate, they reduced their reliance on manual support, creating self-service flows to handle common inquiries.

    Arcade Belts' website uses Gorgias Chat to automate FAQs
    Arcade Belts uses Gorgias Automate to automatically answer common questions.

    Initially, automation helped manage routine questions, such as product recommendations and shipping policies. But when they integrated AI Agent, they cut their ticket volume in half. 

    The transition was so seamless that customers often couldn’t tell they were interacting with AI. “Getting tickets down to just a handful a day has been awesome,” shares Grant, Ecommerce Coordinator at Arcade Belts. ”A lot of times, I'll receive the response, ‘Wow, I didn't know that was AI.”

    You can read more about how they’re using AI Agent here.

    Decision-making framework: Should you disclose AI?

    We mentioned it earlier, but deciding whether or not to disclose your use of AI in customer support depends on compliance, customer expectations, and business goals. That said, this four-part framework helps CX leaders evaluate the right approach for their brand:

    Step 1: Assess legal requirements

    Before making any decisions, ensure your brand is compliant with AI transparency regulations.

    • Research regional laws governing AI disclosure, as requirements vary by jurisdiction.
    • Consult legal counsel to confirm whether your AI usage falls under any mandated disclosure policies.
    • Stay informed on evolving AI governance frameworks that could introduce new compliance obligations.

    Step 2: Review customer expectations and brand positioning

    AI transparency should align with your brand’s values and customer experience strategy.

    • Consider whether transparency supports your brand’s messaging—does your audience expect openness, or do they prioritize seamless interactions?
    • Analyze customer sentiment through surveys and engagement data to determine if they prefer knowing when they’re speaking with AI.
    • Review past AI interactions to identify patterns in customer reactions and adjust your approach accordingly.

    Step 3: Test both approaches and measure the impact on CSAT

    Rather than making assumptions, run controlled tests to see how AI disclosure affects customer satisfaction.

    • Conduct A/B tests comparing interactions with and without AI disclosure.
    • Track key support metrics like response time, CSAT scores, and AI resolution rates to measure effectiveness.
    • Experiment with different positioning strategies—does framing AI as a helpful assistant improve customer perception?

    Step 4: Adjust based on customer feedback and industry trends

    AI strategies shouldn’t be static. As customer preferences and AI capabilities evolve, brands should refine their approach accordingly.

    • Regularly collect customer feedback to understand how AI disclosure impacts their experience.
    • Monitor industry trends to see how competitors and market leaders are handling AI transparency.
    • Stay flexible—if sentiment shifts, be ready to adjust your disclosure strategy to maintain trust and efficiency.

    Best practices for AI disclosure (if you choose to disclose)

    If you decide to be transparent about AI in customer interactions, how you communicate it is just as important as the disclosure itself. Let’s talk about how to get it right and make AI work with your customer experience, not against it.

    First, make AI part of your brand voice

    AI doesn’t have to sound like a corporate FAQ page. Giving it a personality that aligns with your brand makes interactions feel natural and engaging. Whether it’s playful, professional, or ultra-efficient, the way AI speaks should feel like a natural extension of your team, not an out-of-place add-on.

    Instead of:
    "I am an automated assistant. How may I assist you?"

    Try something on-brand:
    "Hey there! I’m your AI assistant, here to help—ask me anything!"

    A small tweak in tone can make AI feel more human while still keeping transparency front and center.

    AI Agent responding to good customer feedback with a discount
    AI Agent uses an outgoing, enthusiastic, and approachable tone.

    Read more: AI tone of voice: Tips for on-brand customer communication

    Clarify the AI’s role

    One of the biggest mistakes brands make? Leaving customers guessing whether they’re speaking to AI or a human. That uncertainty leads to frustration and distrust.

    Instead, be clear about what AI can and can’t do. If it’s handling routine questions, product recommendations, or order tracking, say so. If complex issues will be escalated to a human agent, let customers know upfront.

    Framing matters. Instead of making AI sound like a replacement, position it as a helpful extension of your support team—one that speeds up resolutions, but hands off conversations when needed.

    Blend human and AI seamlessly

    Even the best AI has limits—and customers know it. Nothing is more frustrating than a bot endlessly looping through scripted responses when a customer just needs a real person to step in.

    AI should be the first line of defense, but human agents should always be an option, especially for high-stakes or emotionally charged interactions.

    A smooth handoff can sound like:
    "Looks like this one needs a human touch! Connecting you with a support expert now."

    Frame AI messaging positively

    AI disclosure doesn’t have to feel like an apology. Instead of focusing on limitations, highlight the benefits AI brings to the experience:

    • Faster responses
    • 24/7 availability
    • Instant answers to common questions

    It’s the difference between:

    "This is an AI agent. A human will follow up later."

    vs.

    "I’m your AI assistant! I can answer most questions instantly—but if you need extra help, I’ll connect you with a team member ASAP."

    The right framing makes AI feel like an advantage, not a compromise.

    Monitor customer feedback and adjust messaging

    AI perception isn’t static. Regularly analyzing sentiment data and customer feedback can help refine AI messaging over time—whether that means adjusting tone, improving explanations, or updating how AI is introduced.

    When you follow these best practices, AI can be a real gamechanger for your customer support. Just take it from Jonas Paul… 

    When AI is done right: Jonas Paul’s success story

    Jonas Paul Eyewear, a direct-to-consumer brand specializing in kids' eyewear, needed a way to manage high volumes of tickets during the back-to-school season without overwhelming their customer care team. 

    AI Agent responding to a customer asking about what eyeglass lenses to choose
    AI Agent helps a customer with the lens selection process.

    To streamline these conversations, Jonas Paul implemented AI Agent to provide instant responses to FAQs. This allowed human agents to focus on more complex cases that required personalized attention.

    “Being able to automate responses for things like prescription details and return policies has allowed us to focus more on the nuanced questions that require more time and care. It’s been a game changer for our team,” said Lynsay Schrader, Lab and Customer Service Senior Manager and Jonas Paul.

    Jonas Paul saw a 96% decrease in First Response Time and a 2x ROI on Gorgias’s AI Agent with influenced revenue. You can dive in more here.

    Make AI transparency work for you with AI Agent

    Whether or not your brand chooses to disclose AI in customer interactions, the key is to ensure AI enhances the customer experience without compromising transparency, accuracy, or brand identity.

    So how can you get started? Gorgias AI Agent was built with both effectiveness and transparency in mind. 

    For every interaction, AI Agent provides an internal note detailing:

    • The Guidance, Articles, or Macros it referenced
    • The source of any account information it used
    • A prompt for your feedback to continually refine and improve responses

    Excited to see how AI Agent can transform your brand? Book a demo.

    {{lead-magnet-1}}

    min read.
    Create powerful self-service resources
    Capture support-generated revenue
    Automate repetitive tasks
    Create powerful self-service resources
    Capture support-generated revenue
    Automate repetitive tasks

    Further reading

    Prevent Idle In Transaction

    Avoiding idle-in-transaction connection states with SQLAlchemy

    By Gorgias Engineering
    10 min read.
    0 min read . By Gorgias Engineering

    As you work with SQLAlchemy, over time, you might have a performance nightmare brewing in the background that you aren’t even aware of.

    In this lesser-known issue, which strikes primarily in larger projects, normal usage leads to an ever-growing number of idle-in-transaction database connections. These open connections can kill the overall performance of the application.

    While you can fix this issue down the line, when it begins to take a toll on your performance, it takes much less work to mitigate the problem from the start.

    At Gorgias, we learned this lesson the hard way. After testing different approaches, we solved the problem by extending the high-level SQLAlchemy classes (namely sessions and transactions) with functionality that allows working with "live" DB (database) objects for limited periods of time, expunging them after they are no longer needed.

    This analysis covers everything you need to know to close those unnecessary open DB connections and keep your application humming along.

    The problem: your database connection states are monopolizing unnecessary resources

    Leading Python web frameworks such as Django come with an integrated ORM (object-relational mapping) that handles all database access, separating most of the low-level database concerns from the actual user code. The developer can write their code focusing on the actual logic around models, rather than thinking of the DB engine, transaction management or isolation level.

    While this scenario seems enticing, big frameworks like Django may not always be suitable for our projects. What happens if we want to build our own starting from a microframework (instead of a full-stack framework) and augment it only with the components that we need?

    In Python, the extra packages we would use to build ourselves a full-fledged framework are fairly standard: They will most likely include Jinja2 for template rendering, Marshmallow for dealing with schemas and SQLAlchemy as ORM.

    Request-response paradigm vs. background tasks

    Not all projects are web applications (following a request-response pattern) and among web applications, most of them deal with background tasks that have nothing to do with requests or responses.

    This is important to understand because in request-response paradigms, we usually open a DB transaction upon receiving a request and we close it when responding to it. This allows us to associate the number of concurrent DB transactions with the number of parallel HTTP requests handled. A transaction stays open for as long as a request is being processed, and that must happen relatively quickly — users don't appreciate long loading times.

    Transactions opened and closed by background tasks are a totally different story: There's no clear and simple rule on how DB transactions are managed at a code level, there's no easy way to tell how long tasks (should) last, and there usually isn't any upper limit to the execution time.

    This could lead to potentially long transaction times, during which the process effectively holds a DB connection open without actually using it for the majority of the time period. This state is known as an idle-in-transaction connection state and should be avoided as much as possible, because it blocks DB resources without actively using them.

    The limitations of SQLAlchemy with PEP-249

    To fully understand how database access transpires in a SQLAlchemy-based app, one needs to understand the layers responsible for the execution.

    Layers of execution in an SQLAlchemy app

    At the highest level, we code our DB interaction using high-level SQLAlchemy queries on our defined models. The query is then transformed into one or more SQL statements by SQLAlchemy's ORM which is passed on to a database engine (driver) through a common Python DB API defined by PEP-249. (PEP-249 is a Python Enhancement Proposal dedicated to standardizing Python DB server access.) The database engine communicates with the actual database server.

    At first glance, everything looks good in this stack. However there's one tiny problem: The DB API (defined by PEP-249) does not provide an explicit way of managing transactions. In fact, it mandates the use of a default transaction regardless of the operations you're executing, so even the simplest select will open a transaction if none are open on the current connection.

    SQLAlchemy builds on top of PEP-249, doing its best to stay out of driver implementation details. That way, any Python DB driver claiming PEP-249 compatibility could work well with it.

    While this is generally a good idea, SQLAlchemy has no choice but to inherit the limitations and design choices made at the PEP-249 level. More precisely (and importantly), it will automatically open a transaction for you upon the very first query, regardless whether it’s needed. And that's the root of the issue we set out to solve: In production, you'll probably end up with a lot of unwanted transactions, locking up on DB resources for longer than desired.

    Also, SQLAlchemy uses sessions (in-memory caches of models) that rely on transactions. And the whole SQLAlchemy world is built around sessions. While you could technically ditch them to avoid the idle-in-transactions problem with a “lower-level” interface to the DB, all of the examples and documentation you’ll find online uses the “higher-level” interface (i.e. sessions). It’s likely that you will feel like you are trying to swim against the tide to get that workaround up and running.

    Postgres and the different types of autocommits

    Some DB servers, most notably Postgres, default to an autocommit mode. This mode implies atomicity at the SQL statement level — something developers are likely to expect. But they prefer to explicitly open a transaction block when needed and operate outside of one by default.

    If you're reading this, you have probably already Googled for "sqlalchemy autocommit" and may have found their official documentation on the (now deprecated) autocommit mode. Unfortunately this functionality is a "soft" autocommit and is implemented purely in SQLAlchemy, on top of the PEP-249 driver; it doesn't have anything to do with DB's native autocommit mode.

    This version works by simply committing the opened transaction as soon as SQLAlchemy detects an SQL statement that modifies data. Unfortunately, that doesn't fix our problem; the pointless, underlying DB transaction opened by non-modifying queries still remains open.

    When using Postgres, we could in theory play with the new AUTOCOMMIT isolation level option introduced in psycopg2 to make use of the DB-level autocommit mode. However this is far from ideal as it would require hooking into SQLAlchemy's transaction management and adjusting the isolation level each time as needed. Additionally, "autocommit" isn't really an isolation level and it’s not desirable to change the connection's isolation level all the time, from various parts of the code. You can find more details on this matter, along with a possible implementation of this idea in Carl Meyer's article “PostgreSQL Transactions and SQLAlchemy.”

    At Gorgias, we always prefer explicit solutions to implicit assumptions. By including all details, even common ones that most developers would assume by default, we can be more clear and leave less guesswork later on. This is why we didn't want to hack together a solution behind the scenes, just to get rid of our idle-in-transactions problem. We decided to dig deeper and come up with a proper, explicit, and (almost) hack-free method to fix it.

    Visualizing an idle-in-transaction case

    The following chart shows the profile of an idle-in-transaction case over a period of two weeks, before and after fixing the problem.

    Visualizing idle-in-transaction, before and after

    As you can see, we’re talking about tens of seconds during which connections are being held in an unusable state. In the context of a user waiting for a page to load, that is an excruciatingly long period of time.

    The solution: expunged objects and frozen models

    Expunging objects to prevent long-lasting idle connections

    SQLAlchemy works with sessions that are, simply put, in-memory caches of model instances. The code behind these sessions is quite complex, but usage boils down to either explicit session reference...

    ...or implicit usage.

    Both of these approaches will ensure a transaction is opened and will not close it until a later ***session.commit()***or session.rollback(). There's actually nothing wrong with calling session.commit() when you need to explicitly close a transaction that you know is opened and you’re done with using the DB, in that particular scope.

    To address the idle-in-transaction problem generated by such a line, we must keep the code between the query and the commit relatively short and fast (i.e. avoid blocking calls or CPU-intensive operations).

    It sounds simple enough, but what happens if we access an attribute of a DB model after session.commit()? It will open another transaction and leave it hanging, even though it might not need to hit the DB at all.

    While we can't foresee what a developer will do with the DB object afterward, we can prevent usage that would hit the DB (and open a new transaction) by expunging it from the session. An expunged object will raise an exception if any unloaded (or expired) attributes are accessed. And that’s what we actually want here: to make it crash if misused, rather than leaving idle-in-transaction connections behind to block DB resources.

    Building an expunging context manager to handle transactions and connections

    When working with multiple objects and complex queries, it’s easy to overlook the necessary expunging of those objects. It only takes one un-expunged object to trigger the idle-in-transaction problem, so you need to be consistent.

    Objects can't be used for any kind of DB interaction after being expunged. So how do we make it clear and obvious that certain objects are to be used in within a limited scope? The answer is a Python context manager to handle SQLAlchemy transactions and connections. Not only does it allow us to visually limit object usage to a block, but it will also ensure everything is prepared for us and cleaned up afterwards.

    The construct above normally opens a transaction block associated to a new SQLAlchemy session, but we've added a new expunge keyword to the begin method, instructing SQLAlchemy to automatically expunge objects associated with block's session (the tx.session). To get this kind of behavior from a session, we need to override the begin method (and friends) in a subclass of SQLAlchemy's Session.

    We want to keep the default behavior and use a new ExpungingTransaction instead of SQLAlchemy's SessionTransaction, but only when explicitly instructed to by the expunge=True argument.

    You can use the class_ argument of sessionmaker to instruct it to build am ExpungingSession instead of a regular Session.

    The last piece of the puzzle is the ExpungingTransaction code, which is responsible for two important things: committing the session so the underlying transaction gets closed and expunging objects so that we don't accidentally reopen the transaction.

    By following these steps, you get a useful context manager that forces you to group your DB interaction into a block and notifies you if you mistakenly use (unloaded) objects outside of it.

    Using frozen models to deal with expunged objects

    What if we really need to access DB models outside of an expunging context?

    Simply passing models to functions as arguments helps in achieving a great goal: the decoupling of models retrieval from their actual usage. However, such functions are no longer in control of what happens to those models afterwards

    We don't want to forbid all usage of models outside of this context, but we need to somehow inform the user that the model object comes “as is,” with whatever loaded attributes it has. It's disconnected from the DB and shouldn't be modified.

    In SQLAlchemy, when we modify a live model object, we expect the change to be pushed to the DB as soon as commit or flush is called on the owning session. With expunged objects this is not the case, because they don't belong to a session. So how does the user of such an object know what to expect from a certain model object? The user needs to ensure that she:

    • Doesn't access an unloaded attribute of a live DB object, as it may open an unwanted transaction
    • Doesn't modify attributes of an expunged object, as it won't be saved

    To safely and explicitly pass along these kind of model objects, we introduced frozen objects. Frozen objects are basically proxies to expunged models that won't allow any modification.

    To work with these frozen objects, we added a freeze method to our ExpungingSession:

    So now our code would look something like this:

    Now, what if we want to modify the object outside of this context, later on, (e.g. after a long-lasting HTTP request)? As our frozen object is completely disconnected from any session (and from the DB), we need to fetch a warm instance associated to it from the DB and make our changes to that instance. This is done by adding a helper fetch_warm_instance method to our session...

    ...and then our code that modifies the object would say something like this.

    When the second context manager exits, it will call commit on tx.session, and changes to my_model will be committed to the DB right away.

    Frozen Relationships

    We now have a way of safely dealing with models without generating idle-in-transaction problems, but the code quickly becomes a mess if we have to deal with relationships: We need to freeze them separately and pass them along as if they aren’t related. This could be overcome by telling the freeze method to freeze all related objects, recursively walking the relationships.

    We'll have to make some adjustments to our frozen proxy class as well.

    Now, we can fetch, freeze, and use frozen objects with any preloaded relationships.

    Additional recommendations and caveats

    • Don't call session.commit() inside an expunging context manager's block. In fact, avoid using session at all and use tx.session instead. The context manager will take care of flushing and committing the session when exited.
    • Avoid nested sessions inside the context block.
    • Try to use one single query inside a context manager. If you need multiple queries, it often makes sense to use separate context blocks for each one.
    • If you don't need to pass along an entire model object, you don't need to freeze it. Imagine that you only need an object's id or name attribute; you can simply store it in a variable while inside the expunging context block.

    Avoid idle-in-transaction connection states to preserve DB resources

    While the code to access the DB with SQLAlchemy may look simple and straightforward, one should always pay close attention to transaction management and the subtleties that arise from the various layers of the persistence stack.

    We learned this the hard way, when our services eventually started to exhaust the DB resources many years into development.

    If you recently decided to use a software stack similar to ours, you should consider writing your DB access code in such a way that it avoids idle-in-transaction issues, even from the first days of your project. The problem may not be obvious at the beginning, but it becomes painfully apparent as you scale.

    If your project is mature and has been in development for years, you should  consider planning changes to your code to avoid or to minimize idle-in-transaction issues, while the situation is still under control. You can start writing new idle-in-transaction-proof code while planning to gradually update existing code, according to the capacity of your development team.

    International SaaS Salary Calculator

    How We Built an International SaaS Salary Calculator for Our Distributed Team

    By Adeline Bodemer
    5 min read.
    0 min read . By Adeline Bodemer

    Like any major topic in your company, your compensation policy should reflect your organizational values.

    At Gorgias, we created a compensation calculator that reflected ours, setting salaries across the organization based on 3 key principles:

    1. Compensation should be based on data
    2. Compensation should reflect everyone’s ownership, meaning everyone should have equity
    3. Compensation should be transparent

    Since the beginning, we applied the first two: Each of our employees was granted data-driven stock options that beat the market average.

    However, we were challenged internally: Our team members asked how much they would make if they switched teams or if they got promoted.

    This led to the implementation of our third key principle, as we shared the compensation calculator with everyone at Gorgias and beyond: See the calculator here.

    This was not a small challenge. We’re sharing our process in hopes that we can help other companies arrive at equitable, transparent compensation practices.

    We built our compensation calculator using four key indicators

    First, let’s get back to how we built the tool. We had to decide which criteria we wanted to take into account. Based on research articles and benchmarks on what other companies did before, we decided that our compensation model would be based on 4 factors: position, level, location, and strategic orientation.

    If we had to sum it up all briefly, our formula looks like this:

    Average of Data (for the position at defined percentile & Level) x Location index

    Salaries are based on four criteria: position, level, location, and strategic orientation.

    Position

    This is the job title someone has in the company. It looks simple, but it can be challenging to define! Even if the titles don’t really vary from one company to another, people might have different duties, deal with much bigger clients or have more technical responsibilities. Sometimes your job title or position doesn’t match the existing databases.

    For some of these roles, when we thought that our team members were doing more than average in the market, we crossed some databases to get something closer to fairness.

    Level

    To assess a level we defined specific criteria in our growth plan for each job position. It is, of course, linked to seniority, but that is not the primary factor. When we hire someone, we evaluate their skills using specific challenges and case studies during our interview processes.

    Depending on the databases you’ll find beginner, intermediate, expert, which we represent as   L1, L2, L3, etc.We decided to go with six levels from L1 to L6 for individual contributors and six levels in management from team lead to C-level executive.

    Location

    Our location index is based on the cost of living in a specific city (we rely on Numbeo for instance) and on the average salary for a position we hire (we use Glassdoor). Some cities are better providers of specific talents. By combining them, we get a more accurate location index.

    When we are missing data for a specific city, we use the nearest one where we have data available.

    Our reference is San Francisco, where the location index equals 1, meaning it’s basically the most expensive city in terms of hiring. For others, we have an index that can vary from 0.29 (Belgrade, Serbia) to 0.56 (Paris, France) to 0.65 (Toronto, Canada) etc. We now have 50+ locations in our salary calculator — a necessary consideration for our quickly growing, global team of full-time employees and contractors.

    Strategic orientation

    We rely on our strategic orientation to select which percentile we want to use in our databases. When we started Gorgias we were using the 50th percentile. As we grew (and raised funds), we wanted to be 100% sure that we were hiring the best people to build the best possible company.  

    High quality talent can be expensive (but not as expensive as making the wrong hires)! Obviously, we can’t pay everyone at the top of the market and align with big players like Google, but we can do our best to get close.

    Since having the best product is our priority we pay our engineering and product team at the 90th percentile, meaning their pay is in the top 10% of the industry. We pay other teams at the 60th percentile.

    Some other companies take into account additional criteria, such as company seniority. We believe seniority should reflect in equity, rather than in salary. If you apply seniority in the company index on salaries, eventually some of your team members will be inconsistent with the market. Those employees may stay in your company only because they won’t be able to find the same salary elsewhere.

    By crossing several databases, we arrived at a more accurate dataset

    Data is at the heart of our company DNA.

    Where should you find your data? Data is everywhere! What matters most is the quality.

    We look for the most relevant data on the market. If the database is not robust enough, we look elsewhere. So far we have managed to rely on several of them: Opencomp, Optionimpact, Figures.hr, and Pave are some major datasets we use for compensation. We’re curious and always looking for more. We’ll soon dig into Carta, Eon, and Levels. The more data we get, the more confident we are about the offers we make to our team.

    Once we have the data, we apply our location index. It applies to both salaries and equity.

    To build our equity package, we use the compensation and we then apply a “team” multiplier and a “level” multiplier. Those multipliers rely on data, of course. We’re using the same databases mentioned above and also on Rewarding Talent documentation for Europe.

    Internal communication is key

    As we mentioned above, once our tool was robust enough, we shared it internally.

    To be honest, checking and checking again took longer than expected. But we all agreed that we’d rather release it to good reactions than rush it and create fear. We postponed the release for one month to check and double-check the results..

    For the most effective release, we decided to do two things:

    1. We shared it with one team at a time. This was done to anticipate the flow of questions, though we didn’t receive that many.
    2. We shared it with a lot of humility. . Even if we checked the data many times, we could have missed something, or there could have been something that lacked consistency. We asked everyone to stress-test it and to provide feedback.

    Overall, the reactions have been great. People loved the transparency and we got solid feedback.

    We released the new calculator in September 2021, and overall we’re really happy with the response. We also had positive feedback from the update this month.

    Let’s see how it goes with time.

    Next step: sharing it with the rest of the industry

    Let’s be humble here: It’s only the beginning. It’s a Google Sheet. Of course, we’ll need to iterate on it. 

    In the meantime, you can check out the calculator here.

    So far we’ve made plans to review the whole grid every year. However, now that it’s public within the teams, we can collect feedback and potentially make some changes. Everyone can add comments as they notice potential issues.

    The next step for us is to share it online with everyone, on our website, so that candidates can have a vision of what we offer. We hope we’ll attract more talent thanks to this level of transparency and the value of our compensation packages.

    Engaging Employees in a Hybrid World

    Gorgias’s Playbook for Engaging Employees in a Hybrid World

    By Adeline Bodemer
    6 min read.
    0 min read . By Adeline Bodemer

    I come from the world of physical retail where building a bond was more straightforward. We often celebrated wins with breakfast and champagne (yes, I’m French!) or by simply clapping our hands and making noise of joy.

    We would also have lunch together every day, engaging in many informal discussions.

    Of course, it bonded us! I knew my colleagues’ dog names and their plumber problems, and I felt really close to many of them.

    Employee engagement is one of the primary drivers of productivity, work quality, and talent retention. When I joined Gorgias, where we have a globally distributed team, I wondered how you create the sense of belonging that drives that engagement

    The ingredients for employee engagement

    Like many companies now, our workforce is distributed. But at Gorgias, it’s a truly global affair: Our team lives in 17 countries, four continents, and many different time zones, which can be challenging.

    And yet, I believe Gorgias culture is truly amazing and even better than the one I used to know.

    I realize that we achieved that by relying on the critical ingredients of a strong relationship

    • Strong moments - Simply sharing coffee won’t take you very far in getting to know your colleagues. But creating some great moments together will bring you one step further.
    • Repetition - If you don’t nourish the relationship consistently, it may unravel with time. You won’t feel as connected as before.

    By repeating these strong moments, you can make the connection between people stronger as well. The stronger the connection, the stronger the engagement.

    Speaking of a strong engagement, Gorgias’s eNPS (employee Net Promoter Score) is 50. How is this possible? Well, what’s always quoted as one of our main strengths is the company culture, and how it connects our employees.

    Let’s take it further by exploring five actionable steps we have taken to make that happen.

    Organize virtual summits (quarterly) 

    While some would push back against events like these falling under the purview of the People team, they are important for building strong culture, team cohesion, and employee happiness — all areas that are definitely part of our directive.

    Here’s what you need to know to bring these summits to your organization.

    What is the virtual summit?

    As the name states, it’s a virtual event where the whole company connects.

    It’s not mandatory, but it is highly recommended to attend because it’s fun and you learn many things.

    It’s a mix of company updates, fun moments, and inspiring sessions. Each session is short, to let everyone the opportunity to breathe.

    Typically we have three kinds of sessions:

    • Company updates range from intro sessions with the CEO and team lead presentations, to founder Q&As. During these sessions we have a short retro on the quarter to share strategic vision, which also provides an opportunity for the whole team to challenge the company leadership.
    • Fun moments include activities like scavenger hunts, quizzes, online escape games, and online musical activities.
    • Inspiring sessions covered topics including the benefits of a morning routine, and recruiting tips . These sessions help us to learn and grow, a top priority for our teammates.

    Due to timezones, some sessions don’t include every country.

    What are the key elements to make it work?

    • Teamwork: Pretty obvious, right? But a great team is key to making the virtual summit a success. Identify who can be the owner of this whole event. In our case, it was someone from the People team, our Office and Happiness manager.

    • Delegation: Get help from other teams to build the summit content. Having your team building that all alone would be overwhelming. Delegate! The customer success team can help you build the quiz: “How well do you know our customers?” for instance. The recruiting team can share how to be a good recruiter. And external vendors can help with specific games — we used virtual event contractors for the ones that would’ve been too cumbersome to build.

    • Tools: Look for a solid platform to rely on. We used to rely on Google Meet, but since we have a growing number of employees, we use Bevy to cater to our virtual event needs.

    • Content: A nice video at the beginning of the session as an ice breaker is always a good idea, and plus, it sets up the mood. The same goes for engaging slides. Even though we rarely use slide decks, dynamic slides are more effective than boring written docs for engaging 200 people for half-hour blocks. We share slides to present the company updates and the learning sessions.

    • Anticipation: I think we can all agree that last-minute organization doesn’t work. The more you anticipate, the less stressful it will be. And the bigger your company is, the more things you need to anticipate.

    How much does it cost?

    Our last virtual summit cost us roughly $13,000, which means $65 per head. Here’s the breakdown:

    • Content: $4,000
    • Speakers for learning sessions: $2,000
    • Games/animations: $5,000
    • Food: $2,000

    What are the challenges?

    The first thing you might already have in mind is: It takes time! And you’re right.

    The more we grow, the more challenging it becomes to organize these events.

    I believe we’ll eventually need to have a dedicated event manager for all of our physical and virtual events. I want to have them within my team, and I 100% believe it’s worth it.

    Another challenge can be technical difficulties with your event software choice, so make sure that you find a reliable platform that suits your needs.

    Allow in person gathering at the nearest hub (quarterly) 

    Our team is a mix of hybrid and full-remote workers.

    Since we don’t want the full-remote people to become disconnected, we highly encourage them to join the nearest hub once a quarter.

    And when they do, we organize some happy hours, games or movie nights. Those face-to-face activities help create bonds between employees. It’s simple and doesn’t require a lot of organization, but it creates an incredible moment every time the remote teams join. We call them Gorgias Weeks.

    Organize a company offsite (annually) Of course with the pandemic, that’s not an easy one.

    We were fortunate to be able to organize our company offsite and gather a massive part of the crew together in October 2021. 

    The pandemic created doubt and additional points of stress, but looking back I’m so glad we were able to create an opportunity for everyone to meet in person.

    We asked everyone to bring a health pass — full vaccination or PCR test — and we picked a location that allowed for a lot of outdoor activities.

    We made sure the agenda for the two days was not too busy. As with our virtual summit, it was a balance of company alignment, learning, and fun. We made sure people had enough free time to relax, talk to each other, play games, or play sports.

    This company offsite is surely an essential and strong moment for us and it helps create strong bonds and great memories.

    Encourage team offsites (annually)

    We encourage every team to organize their own offsite for team-building purposes. Since people don’t meet a lot physically, having these once a year is great!

    We let each team lead own it. They pick up the location and the agenda. Then, we provide guidelines with the budget.

    Needless to say, it helps build stronger bonds and great memories.

    Have informal fun moments (weekly) 

    In my experience, it was quite tough to create those moments internally with the team. That’s why we decided to start our team meeting with a fun activity of 10-15 minutes, where we are able to share more than just work. 

    Every week, there is a different meeting owner who has to come up with new fun activities and games. Starting the meeting with this kind of ice-breaking activity brings powerful energy, and people are more engaged and effective in the sessions. I would recommend it to everyone, especially to those who think, “We already have so many things to review in those weekly meetings, we don’t have time for that.” Try it once, you’ll see how the energy and productivity are different afterward. 

    On top of that, I also believe tools that encourage colleagues to randomly meet together are great. On our side we use Donut. It gives a weekly reminder that encourages employees to make it to their meeting with a colleague.

    Team cohesion and employee happiness are worthwhile investments

    Overall, we’ve organized six virtual summits, four company retreats, three Gorgias weeks, and hundreds of virtual coffee and fun meetings. 

    At the beginning there were only 30 people in the company — now there are 200 of them. As I mentioned, it’s becoming more and more challenging to organize these meetups, but it’s also the most exciting part: making sure the next summit is better than the previous one! 

    Of course, I’m aware that employee fulfillment and connection  are not the only ingredients for retention. But they are key ingredients and shouldn’t be forgotten, especially as we all become more remote. 

    It’s a worthy investment to organize these events and allocate resources to them, because it makes everyone at Gorgias feel included and connected. And I have no doubt, now, that it’s part of our responsibilities in People Ops.

    Customer Service Twitter

    10 Best Practices for Providing Exceptional Customer Service on Twitter

    By Ryan Baum
    8 min read.
    0 min read . By Ryan Baum

    When a customer's problem goes unanswered on Twitter, you lose that customer and possibly the audience of people who watched it happen. 

    It’s hard to come back from that, which is why customer care is so important on social media platforms. In fact, Shopify found 57% of North American consumers are less likely to buy if they can’t reach customer support in the channel of their choice

    Your customers want to talk to you — and you should want the same, before they head to a competitor. But first, you need to build a customer support presence on Twitter that lives up to your broader customer experience.

    We've helped over 8,000 brands upgrade their customer support and seen the best and worst of social media interactions. Here are our top 10 battle-tested best practices for providing exceptional Twitter support.

    1. Promptly and accurately respond to tweets

    Prompt response time is one of the most important pillars of great customer service, and according to data from a survey conducted by Twitter, 75% of customers on Twitter expect fast responses to their direct messages. 

    Of course, responding with accurate and helpful information is ultimately even more important than responding in real time, so be sure that you don't end up providing inaccurate information in a rush to reduce your response times. 

    Promptly and accurately responding to customer service issues that are sent to your company's Twitter account is often easier said than done. To do both, you need an efficient system and a well-trained customer support team. 

    This is where a helpdesk is critical, to bring your Twitter conversations into a central feed with all your other tickets. 

    tweets in a helpdesk feed

    If you’re trying to manage Twitter natively in a browser, or through copy-paste discussions with your social media manager, you’re not going to see the first-response times you need to succeed. 

    As data from Twitter's survey shows, speed is a necessity in order to meet customer expectations and provide a positive experience.

    2. Move conversations out of the public space

    There may be instances where customers contact your Twitter support account via a mention in a tweet as opposed to a direct message. In fact, one in every four customers on Twitter will tweet publicly at brands in the hopes of getting a faster response according to data from Twitter. In these instances, it is important to move the conversation out of the public space as soon as possible by moving the conversation to the DMs.

    There are a couple of reasons you would want to avoid resolving customer service issues on a public forum. For one, keeping customer service conversations private allows you to maintain better control over your brand voice and image since customer service conversations can often get a little messy and may not be something you want to broadcast to your entire audience. 

    Moving conversations out of the public space also enables you to collect more personal data from the customer such as their phone number or other contact information, details about their order and their credit card information without having to worry about privacy concerns.

    In Gorgias, you can set up an auto-reply rule that responds to public support questions and directs them to send a DM for further help. This can ensure that people feel heard immediately, even if it takes a while for your team to get to their DM.

    3. Don’t get into emotional arguments

    Regardless of whether you are discussing an issue with a customer via your Twitter account or any other medium, it is never a good idea for your reps to get into arguments with the customer. 

    Social media platforms such as Twitter tend to have a much more informal feel than other contact methods, and they also tend to sometimes bring out the worst in the people who hide behind the anonymity that they provide. You may end up finding that customers who contact you via Twitter are sometimes a little more argumentative than customers who contact you via more formal channels. 

    Nevertheless, it is essential for your Twitter support reps to maintain professionalism and avoid engaging in emotional arguments with customers. It may even help to establish guidelines for your team, to help deal with this type of customer tweet. You can include rules on emoji use, helpful quick-response scripts, and whatever other priorities you have.

    Recommended reading: How to respond to angry customers

    4. Have a direct way for your support agent to reply to tweets

    It is certainly possible to use Twitter alone when providing customer support via the platform. However, this isn't always the most efficient way to go about it. 

    Keep in mind that, like other social networks, Twitter wasn't necessarily designed to be a customer support channel. There aren't a lot of Twitter features beyond basic notifications that will be able to help your team organize support tickets. 

    Thankfully, there are third-party solutions that you can use that allow your support agents to respond to tweets and Twitter direct messages from your company website in a way that is much more organized and efficient. At Gorgias, for example, we offer a Twitter integration that will automatically create support tickets anytime someone mentions your brand, replies to your brand's tweets, or direct messages your brand. (By the way, we also offer integrations for Facebook Messenger and WhatsApp.)

    Agents can then respond to these messages and mentions directly from the Gorgias platform, where they will show up in the same dashboard as the tickets from your other support channels. 

    This integration makes Twitter customer support far more efficient for your team and is one of the most effective ways to take your Twitter customer support services to the next level.

    reply to tweets within your helpdesk

    5. Always respond to feedback (even if it’s negative)

    It is always important to respond to all questions and feedback that customers provide via Twitter, even if that feedback is negative. This is an important part of relationship marketing.

    Many brands shy away from responding to negative feedback on public forums for fear of drawing more attention to the issue. However, this doesn't usually have the desired effect. Failing to respond to negative feedback can make it seem to anyone who happens to see the tweet in question that your brand is dodging the issue. 

    While you may wish to move the conversation out of the public space as soon as possible, you should always provide a public response to public feedback — negative or not. 

    For examples of brands effectively responding to negative tweets, check out this article.

    6. Be as personable as possible

    According to data from Forbes, 86% of customers say that they would rather speak with a real human being than a chatbot. Even if you don't rely on chatbots for providing customer support, though, your customers may not be able to tell the difference unless you train your reps to be as personable as possible. 

    When your reps tailor their responses and connect on a personal level, it provides a much more positive support experience that provides a halo effect to your brand. Customers will remember that the next time they arrive at the checkout button, and they might even be open to upsell opportunities at that very moment.

    7. Create a tracking strategy for brand mentions

    Small businesses may not struggle to keep up with brand mentions, given that there are less to track. For larger companies, though, keeping up with brand mentions can often be a difficult task. This is especially true when some users tag brands with hashtags instead of handles.

    This makes it important to create an effective strategy for tracking brand mentions in an efficient and organized manner. One of the best ways to go about this is to utilize integrations that will create a support ticket anytime a customer mentions your brand in a tweet. You can even create custom views in Gorgias to centralize all of these mentions.

    By tracking these brand mentions, you can also retweet positive posts for brand awareness.

    Brand mentions view in Gorgias

    8. Create guidelines to explain which issues you support via Twitter

    Not every customer service issue can be handled via Twitter. If there are certain types of issues that fall into that category for your brand, it's a good idea to keep your customers in the loop by providing concise FAQ guidelines that explain which issues you do and don't support via Twitter. 

    These guidelines can come in the form of a pinned Tweet at the top of your Twitter support account or an off-Twitter link that you provide to customers when they contact you on Twitter with an issue that requires a different medium for resolution. You could even have a visual you add when you respond to questions that don’t fit your guidelines. 

    Simply responding to customers and requesting that they direct message you for further assistance is another option for addressing issues that you don't want to handle on Twitter. If you set up the auto-reply we mentioned in the second tip, above, it could even include a link to these guidelines.

    Check out what this brand did when contacted on Twitter with a problem that needed to be taken off-platform in order to be resolved.

    9. Consider having multiple Twitter handles for sales, marketing, and customer support

    If it makes sense for your brand, it may be a good idea to create multiple Twitter handles that are designated for sales, marketing, and customer support. Creating multiple Twitter handles that serve different purposes allows you to better organize your direct messages and mentions by breaking them down into different categories. 

    Having a designated customer support Twitter account can also better encourage customers to contact you via Twitter with their customer support issues since it reassures them that this is the purpose that the account serves. 

    But even then, some customers will still tweet at your main account with issues. When this happens, you can use intent and sentiment analysis in Gorgias to automatically route those issues to the correct agent or team.

    detect the intent behind tweets with Gorgias

    10. Understand the full context of every Twitter interaction

    When a customer takes the time to reach out to you on Twitter, whether it’s via direct message or a mention, it’s likely not the first time that customer has interacted with your brand. 

    If you respond on Twitter, you can see the direct message history on that platform, but that’s where the context ends. With Gorgias’s Twitter integration, you can see the full customer journey, including all social media engagement, support tickets across all of your channels and even past orders.

    This context is crucial to understanding the conversation you’re walking into, so you can deal with the situation appropriately. If the person is a long-time customer who engages frequently, you’re going to treat that conversation differently than that of a customer who bashes you on social networks and returns products frequently.

    Break down your Twitter customer service silo

    Any customer support you provide through Twitter will make things more convenient and accessible for your audience. 

    But to make the experience faster and more pleasant on both sides of the conversation, you should consider handling all of your social media customer support in one platform, alongside all your other tickets. 

    Gorgias ties social handles to customer profiles from your Shopify, BigCommerce or Magento store, uniting relevant conversations from across all of your support channels. All of that info is automatically pulled into your response scripts, and you can even automate the process for no-touch ticket resolution.

    Check out our social media features to learn more.

    Reduce Chat Widget Lighthouse Score

    How We Reduced Our Chat Widget’s Lighthouse Impact From -15 Points to -1 With Simple Bundle Fixes

    By Roman Fayzullin
    10 min read.
    0 min read . By Roman Fayzullin

    Strong website performance is no longer a “nice to have” metric — it’s a critical part of your user experience.

    Slow loading times and laggy pages tank conversion rates. They serve up a negative first impression of your brand and can push even your most loyal customers to greener pastures.

    When we found out our chat widget had started negatively impacting our customers’ Google Lighthouse scores — an important performance metric — we immediately started searching for a solution.

    Live chat is a notoriously resource-intensive category, but we were able to cut our entry point bundle in half using the process I lay out in this article. As a result, we reduced the Lighthouse score impact to just one point, compared with a control.

    Here’s what we’ll cover:

    Form and function of live chat widgets

    Chat widgets are small apps that allow visitors to get quicker results without leaving the webpage they’re on. The chat window usually sits in the bottom corner of the screen, when open.

    Here is an example:

    Live chat widget example

    Live chat is especially helpful on ecommerce websites, because retail shoppers expect quicker responses. Repetitive questions involving order status, return policies, and similar situations are easily resolved in chat, and it can also provide a starting point for more complex inquiries.

    Because merchants make up the bulk of our customers at Gorgias, our live chat feature is a major part of our product offering.

    Our live chat feature is a regular React Redux application rendered in an iframe. It may appear simple and limited, but its features extend beyond simple chat to include campaigns, a self-service portal and widget API.

    We implemented code-splitting from the beginning to reduce bundle size, leaving us with the following chunks:

    • An entry point chunk, which contained React, Redux and other essential modules
    • A chat window chunk
    • A chunk with a phone number input component

    Unfortunately, that initial action wasn’t enough to prevent performance issues.

    Initial negative impact of our chat widget

    We started hearing from merchants that the chat widget was impacting their Google Lighthouse scores, essentially decreasing page performance. As I previously mentioned, chat widgets generally have a bad reputation in this regard. But we were seeing unacceptable drops of 15 points or more.

    To put those 15 points in context, here are the Google Lighthouse ranges:

    • 0 to 49 - Poor
    • 50 to 89 - Needs improvement
    • 90 to 100 - Good

    So if you had a website with 95 performance points, it was considered to be “good” by Lighthouse, but the chat could take it down to “needs improvement”.

    Of course, we immediately set out to find and fix the issue.

    Analysis and bundle reorganization

    There were several potential causes for these performance issues. To diagnose them and test potential solutions, we prioritized the possible problem areas and worked our way down the list. We also kept an open mind and looked in other areas, which allowed us to find some fixes we didn’t initially expect.

    The initial entrypoint file was 195kB gzipped and the entire bundle was 343kB gzipped. By the end, we had reduced those numbers to 109kB and 308kB respectively.

    Here’s what we found.

    Checking for unnecessary rendered DOM elements

    First, we opened a test shop with chat installed and tried to find something unusual.

    It didn’t take long: The chat window chunk was loaded and the corresponding component was rendered, even if you didn't interact with the chat. It wasn't visible, because the main iframe element had a display: none property set.

    The user sees a small button, but there are a lot of DOM elements from a browser's point of view

    Then, we moved to the Profiler tab, where we found that the browser was using a lot of CPU, as reported:

    Chat widget CPU in Profiler tab before deferring the rendering

    Here's what happens if you defer rendering of this component, as originally intended:

    Chat widget CPU in Profiler tab after deferring the rendering

    However, this deferral introduced another issue. After clicking the button to open the chat, this window starts to appear with some delay. It's easy to explain: Previously, the JS chunk with this component was downloaded and executed immediately, while these changes caused the chunk to load only after interaction.

    This problem is easily fixable by using resource hints. These special HTML tags tell your browser to proactively make connections or download content before the browser normally would. We needed a resource hint called prefetch, which asks the browser to download and cache a resource with a low priority.

    It looks like this:

    There's a similar resource hint called preload which basically does the same thing, but with higher priority. We chose prefetch, because chat assets are not as important as the resources of the main site.

    Since we're using webpack to bundle the app, it's very easy to add this tag dynamically. We just added a special comment inside dynamic import, so it looked like this:

    Though this solution didn’t affect bundle size, it significantly increased the performance score by only loading the chat when necessary.

    Analyzing bundle size

    Once the rendering was working as intended, we started to search for opportunities to reduce the bundle size.

    Bundle size doesn’t always affect performance. For example, here you can see almost the same amount of JS, although execution times are very different:

    Similar Javascript with different load times

    In most cases, however, there is a correlation between bundle size and the performance. It takes the browser longer to parse and execute the additional lines of code in larger bundle sizes.

    This is especially true if the app is bundled via webpack, which wraps each module with a function to execute. This isn’t a problem with just a couple of modules, but it can add up — especially once you start getting up into the hundreds.

    We used a few tools to find opportunities to reduce bundle size.

    The webpack-bundle-analyzer plugin created an interactive treemap, visualizing the content in all bundles

    Chat widget interactive treemap with webpack-bundle-analyzer

    The Coverage tab inside Google Chrome DevTools helped us see which lines were loaded, but not used. The minified code made it more difficult to use, but it was still insightful.

    Coverge tab in Google Chrome DevTools

    Checking that tree-shaking is working properly

    Next, we discovered the client bundle included the yup validation library, which was unexpected. We use this library on the backend, but it’s not a part of the widget.

    It turns out the intended tree-shaking didn't work in this situation — we had a shared file which was used by the JS client and backend. It contained a type declaration and validation object, and for some reason webpack didn't eliminate the second one.

    After moving type declaration to its own file, bundle size was reduced dramatically - 48kB gzipped

    Lazy loading big libraries

    We also discovered the Segment analytics SDK took 37.8 kB gzipped.

    Since we don't use this SDK on initial load, we created a separate chunk for this library and started to load it only when it's needed.

    Separating certain libraries out of the main chunk

    By looking into the chart from webpack-bundle-analyzer, we realized that it was possible to move React Router's code from the main chunk to the chunk with the chat window component. It reduced entrypoint size by 3.7kB and removed unnecessary render cycles, according to React Profiler.

    We also found that the Day.js library was included in the entrypoint chunk, which we found odd. We actively use this library inside the Chat Window component, so we expected to see this library only inside the chunk related to this component.

    In one of the initialization methods, we found usage of utc() and isBefore() from this library, functionality that is already present in native Date API. To parse date string in ISO format you can run new Date() and for comparison just add the < sign. By rewriting this code, we were able to reduce entrypoint size by 6.67kB gzipped. Not a lot, but it’s all starting to add up.

    Finding alternatives for big libraries

    Another offender was the official client of Sentry (23.4kB gzip). It is a known issue which has not been resolved yet.

    One option is to lazy load this SDK. But in this case, there was a risk that we could miss errors occurring before the SDK fully loaded. We followed another approach, using an alternative called micro-sentry. It’s only 2kB and covered all functionality that we needed.

    We also tried to replace React with Preact, which worked really well and decreased the bundle size by 33kB in gzip. However, we couldn't find a big difference in the final performance score.

    After further discussion with the team, we decided not to use it for now. We think the React team could introduce some interesting features in new versions (for example, concurrent mode looks very promising), while it would take some time for the Preact team to adopt it there. It happened before with hooks: The stable Preact version of the React feature followed a full year later.

    Finding more compression opportunities

    From further inspection, we found the mp3 file used for the notification sound could be compressed using FFmpeg without a noticeable difference in sound, saving 17.5kB gzipped.

    We also found that we used a TTF format for font files, which is not a compression format. We converted them to WOFF2 and WOFF formats, which reduced size by 23kb in gzip for each font file — 115kB in total.

    We didn't notice any differences in performance score after these changes, but it was not a redundant exercise. With these changes, we transfer less information, using less network resources. This could be beneficial for customers with bad network connection.

    Delivering chat assets from the browser cache

    We already used a content delivery network (CDN) to improve the loading time, but we were able to reconfigure its cache policies to make it more efficient. Instead of downloading chat every time user visits the page, chat is downloaded via network only on a first visit, while all subsequent requests will use a version from the browser cache.

    A CDN is a very good way to deliver assets to clients, because CDN providers store a cached version of chat application assets in multiple geographical locations. Then, these assets are served based on visitor's location. For example, when someone in London accesses the website with our chat, chat assets are downloaded from a server in the United Kingdom.

    Results and impact of the bundle reorganization

    Below, you can see how the bundle composition changed after applying the fixes we’ve mentioned. The entrypoint file was halved in size, and the total amount of JS was reduced by 35kB gzipped.

    Chat widget bundle (Javascript only) after reorganization

    And here’s the full chart inclusive of all chat assets, including the static assets.

    Chat widget bundle overall after reorganization

    To see the impact of these reductions, we performed Google Lighthouse audits on our Shopify test store using three configurations:

    • Without chat (as a control)
    • With unoptimized chat
    • With optimized chat.

    We also used the mobile preset to tighten up the conditions. In this mode Lighthouse simulates mobile network and applies CPU throttling.

    Here are the results:

    • Without any chat, the performance score was around 97-98 points
    • With unoptimized chat, the score dropped to around 83-85 points
    • With optimized chat, the score jumped back up to around 96-97 points
    Google Lighthouse score improvements after updating chat widget

    Not only did we improve on the original penalties, but we were able to get the performance score almost to the same level as when there is no chat enabled at all.

    This is either in line with, or outperforming most other chat widgets we have analyzed.

    Preventing future regression

    To maintain the current levels of performance and impact, we added a size-limit check to our continuous integration pipeline. When you open a pull request, our CI server builds the bundle, measures its size and raises an error if it exceeds the defined limit.

    When you import a function, it’s not always obvious what kind of code would be added under the hood — sometimes it's just a few bytes of code, but other times it could import a large library.

    This new step makes it possible to detect these regressions in a timely manner.

    Size-limit check

    It's also possible to define a time limit using this tool. In this case, the tool runs a headless version of Chrome to track the time a browser takes to compile and execute your JS.

    While it sounds nice, in theory, we found results from this method very unstable. There's an open issue with a suggestion on how to make measurements more stable, so hopefully we can take advantage of the time limit functionality in the future.

    Think about performance before it becomes an issue

    It turns out there is a lot of low-hanging fruit when it comes to performance optimization.

    Just by using built-in developer tools in the browser and a plugin to generate a visual representation of the bundle, you might find a lot of opportunities to optimize performance without refactoring the whole codebase. In our case, we reduced entrypoint file size by 49% and reduced impact on the client's website significantly.

    If you work on a new project, we strongly advise you to think about performance before it's too late. You can prevent the accumulation of technical debt by taking simple steps like checking bundlephobia before installing a library, adding size-limit to your build pipeline and running Lighthouse audits from time to time.

    Gorgias 2021 Year in Review

    Gorgias in 2021: 8,000 ecommerce brands turned support challenges into $1.1 billion

    By Ryan Baum
    7 min read.
    0 min read . By Ryan Baum

    As ecommerce grew this year, we continued to work toward a decentralized vision of commerce — a model where merchants take back their customer relationships from colossal marketplaces and connect one-to-one with the people who buy their products.

    Our merchants had a record-breaking number of these personal interactions in 2021 and that’s worth celebrating. So we’ve collected all the firsts, upgrades and proudest moments to share with you.

    Since January 2021 feels like 10 years ago (and also 10 minutes ago, somehow), let’s take a walk down memory lane.

    1. 8,000 brands with one thing in common
    2. 75 million chances to improve customer experience
    3. Our merchants met shoppers wherever they were
    4. Assembling the ecommerce A-Team
    5. Customer feedback drove our product roadmap
    6. Gorgias grew alongside our merchants
    7. Looking ahead to 2022

    8,000 brands with one thing in common

    This year, we helped 8,000 brands support over 290 million shoppers, bringing in customers like Bidabo, Biketart, Lillie's Q and Livinguard.

    All together, our customers generated $1.1 billion from their customer support functions in 2021.

    Those companies varied in size, from single entrepreneurs still proving their products to enterprise companies scaling beyond their wildest dreams. Differences aside, they united in prioritizing customer experience to grow their businesses.

    image

    Some industries came up again and again on our roster, including: 

    And because Gorgias powered growth across 110 industries, our customers’ customers were purchasing everything from medical supplies to maritime essentials.

    image

    75 million chances to improve customer experience

    Every minute of 2021, Gorgias customers closed out an average of 179 tickets. In more relatable terms, they helped more than 10,000 shoppers in the time it took to watch a new episode of Shark Tank.

    At the peak of support volume — the five-day period from Thanksgiving and Black Friday through Cyber Monday (BFCM) — our merchants answered 2.5 million tickets. Their support teams drove $25.6 million in sales during that time.

    With tools made for that moment, they were able to stay on top of the ticket pile and turn the holiday rush into a gold rush.

    image

    The impact didn’t stop there. On average, our merchants received a 4/5 satisfaction rating from their customers in 2021. The 75 million tickets they answered reinforced their brands, one loyal customer at a time.

    After all, when your team has a million fires to extinguish, the only flames in customer support should be the emoji reactions to your five-star ratings.

    And that’s exactly what you’ll be chasing as your performance metrics approach those from our top quartile of merchants. The top-performing teams clocked first-response times under two hours and resolution times under 8 hours, on average.

    image

    Our merchants met shoppers wherever they were

    As ecommerce becomes more decentralized, so do the channels that provide your customer feedback.

    Still, it’s no surprise that email remains the most popular support channel, used by 92% of our brands. Together, they answered 64 million emails in 2021 (85% of all tickets). 

    This next stat may be more of a revelation: 78% of our brands have brought Facebook, Instagram, and/or Twitter interactions into their Gorgias workspace. They answered 3.7 million comments across those three channels, with almost two-thirds coming from Facebook.

    image

    These social channels were used even more than our live chat, phone, and SMS integrations. And Gorgias helped merchants meet their customers in all of the above, without ever leaving their dashboard.

    Assembling the ecommerce A-Team

    2021 also saw the launch of our long-awaited Gorgias App Store. This hub features 75 apps to extend the power of our helpdesk and centralize the information support agents rely on. 

    image

    62% of our merchants are using at least one of our partner apps, and we’re exploring new partnerships all the time to continue streamlining the customer support process. 

    This allows us, and all of our partners, to stay focused on being the absolute best at what we do.

    Some of our merchants’ favorite integrations include: 

    • Klaviyo: An email and SMS marketing automation platform
    • Recharge: For subscriptions and recurring payments
    • Attentive: A comprehensive text message marketing solution 
    • Postscript: SMS marketing for growing ecommerce stores
    • Yotpo: For customer reviews, loyalty, referrals, and more

    image

    So go ahead and close those 20 tabs out — you won’t need them where we’re headed.

    Customer feedback drove our product roadmap

    We released 91 features this year, 42 of which were led by your requests on our public roadmap

    Our most requested features (that are all available today!) were: 

    The quick adoption of our 2021 social media updates made it clear these channels were critical to our merchants’ success this year. We expect that to continue into 2022. (TikTok, anyone? Give it an upvote here!) 

    And while voice support didn’t see the same volume of requests as the social channels, we knew it was essential for certain brands. To better serve these merchants, we built a native phone integration that’s easily set up for new and existing numbers.

    Merchants responded by taking more than 4,000 calls from shoppers this year. As a result, resolution times were up to 34% faster than others who left phone service out of their strategies.

    image

    And while we want to give our merchants a variety of tools to provide help, sometimes it's best to empower shoppers to help themselves. 

    Our new Help Center feature provides FAQ hubs on merchant websites, to work toward this goal. The first 100 Help Centers that went live attracted over 100,000 views, answering inquiries before they could turn into tickets.

    Another contribution is perhaps our most exciting release: Our Automate product allows for customization of self-service flows and deflects even more tickets to boost team efficiency. 

    Hundreds of merchants used the add-on in 2021 to automate their tickets, increasing efficiency across their support teams.

    Our self-service portal alone deflected up to another 33% of tickets specific to shoppers (like order status). This freed up agent time to provide a more personal touch to important conversations. 

    Gorgias grew alongside our merchants

    We tripled the size of our team in 2021 to continue building the best possible helpdesk for the specific needs of ecommerce brands. There are now 185 employees who work in 16 countries around the globe and speak 18 different languages.

    image

    That means there’s more Gorgians building out integrations, furthering the product roadmap, and contributing to our merchants’ success.

    And our customers have let us know how much these improvements impacted their businesses. We currently hold top marks among the helpdesk categories on G2, Capterra and the Shopify app store.

    image

    Looking ahead to 2022 

    2021 was a year to remember for the Gorgias team and our customers, but 2022 is shaping up to be even better. It might even be the year people learn to pronounce our name. (470 people asked how during this year’s demos; think “gorgeous.”) 

    Fingers crossed.

    Either way, we have some key new features on the roadmap and several surprises up our sleeves. We’ll continue building and optimizing channels so you can meet your customers where they are (including a much-requested Whatsapp integration). We’re also going to renew our focus on automation tools to increase efficiency across your team. 

    Make sure you subscribe to our newsletter, below, to beam all of our updates directly to your inbox.

    As for the rest of the ecommerce industry, we have high hopes for 2022 (and plenty of predictions). We’re expecting continued shift of support tickets to social channels, a bigger emphasis on self-service options and a sharper focus on app integrations across the ecommerce ecosystem. 

    Until then, thanks for a great year!

    Customer Service Interview Questions

    17 Customer Service Interview Questions to Help Build Your Dream Customer Support Team

    By Ashley Kimler
    15 min read.
    0 min read . By Ashley Kimler

    Building an incredible customer support team at your company starts with finding the right people. But once you attract a pool of applicants, distinguishing between an excellent candidate and a so-so one isn’t always simple.

    Why does this matter? Research from Harvard Business Review concluded that positive customer experiences can create as much as a 140% spread in how much customers spend at transactional businesses. And a massive part of that customer experience rides on your customer service team.

    And for subscription-based businesses, that same study found a 31% spread in churn: quality of the experience was a significant driver of recurring membership and revenue.

    This adds up over time, as well. Forbes found a cumulative loss of $75 billion yearly across all businesses pegged to a single source: poor customer service.

    So, in the big picture, a great hire in customer service or support makes you more money. A bad one hurts the bottom line, and so much more.

    As a hiring manager, it’s never been more important to get the most out of your interviews. The needs of customer service teams are more technically complex than before, with numerous channels for meeting customer needs. Working with an ecommerce helpdesk support partner like Gorgias can ease some of the pressure, but the interview itself remains highly strategic.

    Major Traits and Characteristics to Look for in Customer Service Job Interviews

    Before we get into specific questions, it’s worth noting that not every candidate has the right disposition for customer service work. Many customer service skills are crucial, and these traits and characteristics rise to the top of the list. As you work through the selection and interview process, look for these elements.

    The Interviewee Is Familiar with Your Brand and Tone of Voice

    This isn’t an all-out dealbreaker, but interviewees that are already familiar with your brand and tone of voice will assimilate much more quickly into your organization. This is true whether this familiarity is natural (because the candidate is already a fan of your brand) or learned (because the candidate took the time to prepare before the interview).

    The Interviewee Has Strong Communication Skills

    Your customer service representatives spend all day communicating directly with customers, so you want to hire people with great communication skills for customer service roles. Your customer service team forms the face of your company for many customers, so the ability to communicate clearly about a customer’s problem is essential

    Customer service reps will inevitably deal with angry customers as well as difficult customers, so hiring managers should look for candidates that can keep those communication skills up even under pressure.

    The best candidates for customer service roles will pair strong communication skills with superior problem-solving ability, as well.

    The Interviewee Has the Ability to Communicate Via Specific Service Channels

    The days of single-channel customer service departments that existed solely as phone-based call centers are long gone. Most businesses rely on a multichannel customer service strategy that could involve face-to-face assistance, phone communication, or any of a wide range of web-based platforms. Today's agents need to apply customer service best practices to many channels.

    A customer service candidate that can speak empathetically and clearly but cannot navigate social media or a customer service platform may not be a good fit for your current needs.

    Conversely, you may find candidates that struggle with over-the-phone communication but can tirelessly plow through online tickets with superior skill. 

    If your team is large enough to differentiate, both types of candidates could succeed in clearly defined roles.

    Still, it’s a good idea to get a sense of which service channels a candidate is likely to succeed in. Do this during the interview if you don’t do it earlier in the process.

    17 Customer Support Interview Questions and Answers

    If you’re a hiring manager in customer service or customer support, you already know that crafting the perfect customer service job interview questions is difficult. And if you’re an aspiring or current customer service representative, you may be looking for advice on how to answer customer service interview questions.

    No matter your role, this list of 17 customer service interview questions and answers will give you some new approaches to the customer service job interview. Consider adding several of these questions to your interview process so you can hone your interview process and get better results.

    (And if you’re a job seeker, these sample answers should give you insight into what interviewers might be expecting to hear. Adapt them to fit your situation, of course! You might also benefit from 5 Tips to Find Your Next Job in Support.)

    1) How Familiar Are You with Our Brand, Products, and Services?

    You don’t have to hire someone with prior knowledge of your brand, but it sure helps. The more the prospect knows about you, the less you have to teach them. So it’s worth asking how familiar the prospective hire is with your brand and what they think about it.

    If your interviewee is familiar with your brand, go ahead and ask if they’ve ever interacted with your customer service team. If they have, their answers could be illuminating — about the candidate and about the customer service experience.

    Listen for an honest, enthusiastic response. It’s OK if a candidate doesn’t know much about the brand, but finding someone with the skills AND who is a big fan of your brand can lead to the ultimate customer service prospect.

    Pro Tip: Watch out for a response in which a candidate wants to change too much: some constructive criticism is healthy, but customer service is not the place from which to spearhead major company-wide change.

    Sample Answer

    “I’ve been using your [specific product/service] for some time now. I use it to [use case], and my appreciation for your [brand/culture/products] is a big part of why I applied for this job!”

    Or

    “I hadn’t heard of your company before I saw this job post, but as I began to research the company, I resonated with [product or aspect of mission]. I believe it’s something I can get behind and contribute to!”

    2) Have You Ever Worked with the Software We Use?

    Customer service is more software-oriented than ever before, and this question does double (maybe triple) duty: first, it tells you the obvious (whether the interviewee is familiar with your software). Second, it also often reveals a candidate’s overall comfort level with software. You’ll usually get a sense in their answer of whether they’re worried about the prospect of learning new software.

    Third, assuming your job listing indicated which software solutions you use, this question will reveal how closely the applicant studied the job listing. If they seem confused by the question or don’t know which software solution you’re asking about, that might be a red flag.

    As you listen to the applicant’s answer, don’t settle for a blunt “yes.” Follow up with a question or two that will reveal whether the person has actual knowledge of the software. And if the applicant isn’t familiar with your chosen software, listen for confidence about the ability to learn.

    Sample Answer

    “At my previous company, we used [competitor software solution], and I can tell based on my own research that the two are pretty similar. I’m sure there may be some slight gaps, but I’m eager to learn those differences and get up to speed in [your software solution].”

    3) How Long Were You with Your Last Company and Why Did You Leave?

    Behavioral interview questions can be powerful because they give you insight into an interviewee’s thought processes and ways of engaging with the world. Length of employment at the previous company is merely factual, but the “why did you leave” portion is deeply behavioral.

    Tenure at a previous employer isn’t always important, though a resume filled with a series of three- to six-month gigs could be a red flag. More important is the stated reason for leaving. Did the candidate struggle with a previous manager? Did they leave over scheduling issues (that are likely to be an issue at your company as well)?

    To be clear, leaving a previous company isn’t always a bad thing. But the reasons why — and the way the candidate explains those reasons — can teach you a lot about the person’s approach to working on a team.

    Sample Answer

    “I’m still employed at [current employer], but I see a better future for myself with your company. I’m happy enough at [current employer], but I’m more passionate about your company for [give a reason or two].”

    Or

    “I worked at [previous employer] for [time period] but had to leave due to [reason]. That said, I know [reason] won’t be an issue here because [explanation].”

    4) What Were the Most Common Problems with the Products and Services You Supported in the Past and How Did You Help Solve Them?

    This question helps you keep developing a profile of the candidate’s experience. At the most basic level, you want to learn whether they are familiar with the most common customer service questions that your team deals with.

    While the key to delivering great customer service is the ability to use problem-solving skills to navigate especially difficult situations, those everyday types of questions make up the bulk of the actual work. Finding an employee that’s already well-versed in your most common customer issues (and who already has good responses to those issues) makes your job a lot easier.

    Also, this is another behavioral interview question that can give you deeper insight into what makes a candidate tick. Listen carefully to how the person describes their activity helping various types of customers. You’ll learn at least as much about how the person thinks as how they solved a specific problem.

    Sample Answer

    “Issues with account logins made up around 15 percent of my customer service interactions at my last job. We had a script to follow for this kind of issue, and I used it when I could. But over time I noticed that many users were getting tripped up on the same problem that wasn’t covered by the script. I helped them resolve it by [x] and recommended we add this step to the script.”

    5) Describe a Previous Situation at Work When You Recognized an Emotionally Tense Situation and Were Able to Turn it Around to Delight the Customer.

    This is the first of several classic behavior-based questions. You’re listening for soft skills here, those intangibles that differentiate truly excellent customer service reps from the rest.

    With this question, you’re looking at conflict resolution skills surrounding customer issues like public complaints or angry customer emails. Does the candidate have a handy example of being able to 

    1. Recognize that tensions were high 
    2. Defuse the situation enough that the customer left the interaction delighted?

    You’re also looking at the ability to follow instructions and think outside the box. You don’t want renegades and mavericks, but you do want folks that can think beyond provided customer support scripts.

    Push the interviewee to be specific with their answer to questions like these.

    Sample Answer

    “Once I dealt with a customer with [stated problem]. I could tell the customer was upset before we ever started talking because of [verbal/written cues]. I kept my cool, sidestepped that anger, and determined that the customer’s core problem was [actual problem]. Once I identified that I made sure to empathize with the customer as I guided them to a solution to [actual problem.”

    [Image source: Me.me]

    6) Can You Give Examples of Methods You Have Used in the Past to Increase Revenue, Save Time, or Increase Procedural Efficiency at Work?

    Hiring for customer service is a delicate balance. You don’t want a cadre of people constantly trying to reinvent the wheel (or, worse, the company itself). And you also don’t want mindless followers. This question helps you gauge a candidate’s ownership mindset.

    If they don’t have an answer at all, they might not be thinking enough about the big picture. Conversely, if their answer sounds a little too revolutionary, you’ll be aware that this candidate might need guidance in what’s appropriate.

    As the candidate responds, listen for actionable ideas and methods that seem genuinely useful. Vague feedback with no clear outcomes isn’t what you’re looking for here.

    Sample Answer

    “I noticed we were getting tons of customer support calls about one of the company’s products. The product was fine, but the included instructions left out a crucial step that was leading to the calls. I was able to point this out and escalate it to the proper team, who corrected the instructions for the next printing. In the meantime, I created an email template to help agents respond to customer questions about the issue faster. By getting the instructions fixed, I reduced these calls so the team could focus on more important customer issues.”

    7) Aside from Customer Service Positions, Have You Had Any Other Professional Roles That Helped You Build Relevant Skills for the Position You Are Applying For?

    Sometimes, the best agents have experience from other roles with complementary skillsets. For example, wait staff at restaurants have a ton of insights about human interactions and communication since they serve people in person for hours on end.

    Or, if the company products are highly technical or industry-specific, you’ll benefit from finding customer service reps with relevant tech or industry backgrounds as well.

    Find out if your prospect has other experience they can bring to the table. Maybe they can even teach your team a thing or two.

    Sample Answer

    “I’ve worked for ‘x’ years in foodservice, including ‘y’ years as a server. In those years I developed the ability to read verbal and nonverbal cues. And have found creative ways to meet customer needs. My time in restaurants has prepared me to excel in customer service by giving me a keen sense of customers’ needs, proactive tactics to keep them happy, and multiple strategies for resolving their complaints.”

    8) Do You Have Any Formal Education That Pertains to Communication or Communication Technology?

    You already know a candidate’s formal education as it is listed on their resume, but this question gives them a chance to expand upon that. Perhaps they took a specific course that’s relevant to this job or additional training certifications that didn’t make it on the resume. 

    Give them a chance to explain how some of their formal education enhances their abilities for this job.

    This is also a great place to explore whether a candidate has experience in the systems you use, such as these:

    Of course, reliance on formal training varies from company to company. Some brands focus more exclusively on skills and traits. Use your judgment with this question (but make sure you don’t imply that a degree is required unless it is).

    Sample Answer

    “My degree was in [field], and as a part of my coursework, I took several courses in communication as well as a technology course. In these courses, I learned [two or three high-level lessons], which will help me in this role [explain how].”

    9) At Work, What Are Your Three Core Values? For Example Honesty, Trust, Patience, Etc.

    You want agents that are hard-working and have excellent time management skills. But you also want a support team filled with healthy people. Learning about workplace morals and values will indicate to you how much of a team player the candidate is or what their ethical point of view looks like.

    Sample Answer

    “My top three core values in the workplace are [list three]. These core values permeate every aspect of my work: how I interact with customers, how I work with other team members, and more. If you ask [reference at previous employer] about this, I believe you’ll hear that I lived this out there, and I’ll do the same here.”

    10) Can You Provide an Example of a Time When You Had to Deny a Customer’s Request? How Did You Handle It?

    You want customer service agents that can, in most cases, get your customer what they want. But sometimes customers are wrong, demanding things that can’t be done. An experienced customer service rep will certainly have run into this scenario and learning how they handled it will give you great insight into their abilities.

    Were they able to salvage a customer relationship? Show the customer a better way? Or did they just blow up the situation and provide no alternatives?

    Sample Answer

    “I always do my best to meet customer requests, but of course this isn’t always possible. One time, a customer [describe illegitimate request scenario]. He was convinced I could do this for him, but it was out of scope. However, instead of just flat-out denying him, I was able to guide him to an alternative that was in scope. He didn’t get everything he wanted, but I did keep him as a customer.”

    11) As an Agent, What Was the Most Difficult Customer Service Situation You Have Ever Experienced?

    For interviewees with previous customer service experience, this question gives you insight into how far they’ve been stretched — as well as their emotional intelligence after the fact.

    Look for how serious or difficult the described situation is (compared to what’s typical in your organization), and pay attention to how calmly — or not — the candidate can recount the scenario.

    Sample Answer

    “In my current/previous position, I’ve had a few encounters in a class all their own. Probably the most challenging one was [describe the scenario]. It was challenging for sure, but I’m glad I went through it because I learned [lesson/insight]. I also really appreciated the support I got from my leadership team throughout the situation.”

    12) As a Representative, What Was the Best Customer Service Situation You Have Experienced?

    If a candidate has a quality answer to this question, it will likely reveal the sorts of situations that motivate the individual. You should look for excitement, interest, and perhaps even joy as the individual answers this question. And knowing the kinds of situations that motivate an individual can give insight into whether they’ll be a good fit for your team.

    Sample Answer

    “I once had a customer call in who was incredibly angry, but it was an issue that I knew I could solve. As I worked with the customer to unpack the layers of the issue, I heard her tone gradually soften. By the end of the encounter, I’d not only solved her problem, but I’d also managed to upsell her to a higher tier of service — and she was happy about it!”

    13) What Would You Do If You Couldn’t Find the Answer to a Customer’s Question?

    The stock answer here is “contact my supervisor,” of course, but see if you can get a little more. What avenues (official and unofficial) would the candidate pursue before escalating to a manager? Will this prospect solve problems independently, or will the individual create an unending cascade of manager escalations?

    Sample Answer

    “When I didn’t know an answer, I’d quickly search our internal knowledge base/wiki. If I didn’t find the answer there, I might search Google, our company Slack, or a more knowledgeable peer. I tried to minimize the number of escalations since I know that solving the problem myself is always the ideal outcome. But of course, I escalated issues to my manager when needed.”

    14) How Would You Handle a Situation Wherein You Knew the Customer Was Wrong?

    “The customer is always right” only goes so far. Sometimes the customer is quite wrong, and your customer support teams know this. The real question is what a prospective team member will do when this happens.

    This is another question that explores soft skills. There are countless ways to say “you’re wrong” without coming out and saying it. Can the prospect guide a customer to a better understanding without insulting them along the way? That’s the kind of customer service rep you need.

    Sample Answer

    “I never take a confrontational approach when this happens. Instead, I assume that the customer isn’t willfully wrong, and I try to find a gentle way to guide them to a better understanding. 

    If there’s documentation or fine print that the customer missed, I’ll guide them to that information. I might also ask questions to get a better sense of where the customer got the incorrect understanding.”

    15) As an Online Shopper, What Was the Best Customer Support Experience You Ever Received from a Brand You Did Not Work For?

    Every one of us brings experiences from our personal lives into our professional work, and great customer service reps are no exception. We’ve all been the customer in need of service at some point, and there are great lessons to learn from the good experiences.

    A prospect’s answer to this question should demonstrate their insightfulness and awareness. It will also likely reveal more about a person’s priorities in customer service encounters.

    Sample Answer

    “I had an experience with [company] that impressed me as a customer and gave me some great ideas for how to solve customer challenges in my work. [Describe scenario and lessons learned.]”

    16) Describe a Time When You Received Poor Customer Service as a Consumer.

    Asking the opposite question gives you similar insights: whatever got under the skin of your interviewee is an aspect of customer service that they’re passionate about. And, of course, having been a frustrated consumer can build empathy when working with other frustrated consumers.

    Sample Answer

    “I had an encounter with one company where the agents were working from scripts, and it didn’t seem like they took the time to process what I’d said in my complaint. It was deeply frustrating, but I learned from the experience that scripts can only get you so far and that I need to make sure I always understand the customer’s concern before I start trying to solve it.”

    17) How Flexible Is Your Schedule and How Many Hours Do You Hope to Work Each Week?

    If you’ve gotten to this point and expect that you’ll offer the candidate a job, it’s time to get this crucial information. If your only needs are second shift and the candidate can’t or won’t work it, you need to know now.

    Sample Answer

    Simply be honest. “I’m looking for full-time work, and normal business hours are my preference. I could work the second shift if necessary, but no overnights. That said, let me know what you’re looking for, and let’s talk about it.”

    [Image source: IMC]

    Up Your Support Offerings with the Best Ecommerce Customer Service Solution

    Getting the right team in place is a crucial component of your customer service strategy and so is giving your new team members the best in ecommerce customer service technology.

    Find out why Gorgias is the #1 rated helpdesk for ecommerce merchants. See how Gorgias integrates with Shopify, Magento, and BigCommerce.

    And, if you need help with the technology portion of your customer service strategy, schedule a Gorgias demo today.

    Live Statistics

    Live Statistics for teams who want to perform

    By Ilke Akcasoy
    6 min read.
    0 min read . By Ilke Akcasoy

    Do you switch multiple screens and views to understand what’s going on with your team? If you do, we’re happy to report that there is now a shortcut. 🪄 Live Statistics on Gorgias is your destination to get a quick overview of ticket volume, agent activity and active channels in real-time.   

    Where is it? 

    It’s up top! Once you navigate to Statistics, you will see Live Statistics conveniently placed at the top. Click on Overview to see a snapshot of all customer support activity over all channels and agents.

    Ok, what am I looking at?

    In Live Overview, you will see the number of Agents Online and offline. Next to these, you will find the numbers of Open Tickets in two sections (to indicate whether they’re assigned or unassigned).


    Pro tip: Hover over the tooltip to see a quick list of the actual agents who are online and offline. ⬇️


    Consider the number of Agents Online compared to Open Tickets

    Say it’s late afternoon and you’re seeing a spike in open tickets. In Live Overview, you read 60 Open Tickets, and only 2 Agents Online. 30 tickets per person 😱 

    With this information, you can immediately make decisions and take action on how to handle the higher volume your team is experiencing. For example, you may consider:

    • Going to Live Agents Statistics to see the number of Chat tickets

    • Creating a macro and a rule for your Chat customers who are waiting for longer than 1 minute ⌛️

    • Creating a macro and a rule to set expectations around the delay

    • Check internally to see if there is a problem with your delivery ops

    • Stepping in to answer tickets with the Urgent tag

    Knowing exactly what’s going on as it happens live, later observing fluctuations in First Response Time or Resolution Time won’t catch you by surprise. You can make a better assessment on your team’s performance by being fully aware of the circumstances around your metrics.  

    In Live Statistics, we simplify and organize information so you can be fully aware without needing to contact your team personally or be physically there.

    Monitor Support Volume live

    In Live Overview, you will see a nice graph to inform you on the hourly Support Volume. Use this graph to see how your team is responding to inquiries as they emerge. 


    Looking at this graph, you can quickly grasp the volume you’re getting by the number of Tickets Created, Tickets Replied and Tickets Closed separately, but on the same timeline so you can compare. 

    Observe when Tickets Created see a spike, compare it to Tickets Replied

    When do you receive the bulk of inquiries? Does it happen before business hours? 


    You can see above an example where a lot of customers decided to contact the support team throughout the night. As a manager, you can monitor to see if this is a consistent pattern over time, and develop strategies on the support and operations side to improve experience. Looking at this graph, and seeing this type of pattern, you may want to ask: 

    • Are these tickets urgent? Are we properly auto-tagging to identify urgency?

    • Are my agents ready to tackle this ticket volume at the beginning of their shift?

    • Are these tickets auto-assigned?

    • If these inquiries are urgent, should we set autoresponders?

    • Is it worth getting additional staffing or how can I leverage self-service?

    Monitoring the Support Volume graph, you can start to detect patterns that are connected to the entire customer experience. Anticipating problems or delays before they can occur, you can take measures to improve CSAT despite the predicaments due to international shipping challenges or a mix-up on a batch of orders etc. You can use the visibility and insights from Live Statistics to inform your overall operations.

    Live means real-time 

    Live Statistics is designed to inform you on an hourly basis. It gathers the right metrics and combines them strategically so you can get the right information and react quickly without being there.

    All metrics in Live Statistics reflect your current day from 12:00 am to 11:59 pm in your time zone. If you need to change the time zone, you can easily do this in Business Hours under Settings.

    Who is working?

    In Live Agents, you will see whether each team member is currently online or offline, indicated by a green dot if they’re online - 💪 working away, or an orange dot indicating that  💤 they’re offline. 


    Pro Tip: Hover over these dots to see when they signed in (on the green dot), and when they were last seen that day (on the orange dot). 


    Live Agents Statistics will show you the exact amount of time each team member has been online in hours and minutes (e.g. 2h 6m). On this table, you will also see the number of Tickets Closed and Messages Sent. The ability to see this exact combination of data per agent will really help you monitor your team’s efficiency and know which agents to coach to improve performance.


    Have all of your team use this, so everyone can self-check 🩺 and have their sense of achievement for the day based on data - 😉 not just feelings. Reviewing Live Statistics as a team, you can collaborate to come up with effective strategies to reduce the rate of messages sent per ticket closed.

    Who is working  on what?

    Located in the far right column, Open Tickets 🤩 feature makes Live Statistics whole. This is where you can clearly see who’s working on what. You can see the total number of open tickets currently being helped by each team member. Placed immediately next to this number is the breakdown by channel.


    You can read above how Jenny has 15 open tickets, with 3 from Chat, 7 from Email, 3 from Facebook and 2 from Instagram.

    Click on this number to see just exactly what Jenny’s working on. Each of the numbers provided under Open Tickets, the total and by channel, is clickable and it will bring you to a readily filtered view where you can take a closer look at what your agent has at hand.

    This experience will help you review your team’s activity in microscopic detail as you desire, without needing to interfere or navigate to different Views.

    Help your team on the spot

    Check out the full combination of Online Time, Tickets Closed, Messages Sent and Open Tickets. Let’s bring back Jenny and look closer to see that she has 3 Tickets Closed, 12 Messages Sent and 15 Open Tickets. Under Online Time, it reads 6h 12m so she is approaching the end of her shift. 


    Right away, we can notice that she’s approaching the end of her shift with a lot (15) more tickets to go. There’s no need to get alarmed, but it’s better to take a quick look at what’s going on. Clicking on the number listed under Open Tickets, we can easily review the tickets she’s working on. Taking a quick look at her tickets, we notice a shipping problem on multiple orders - all large items shipping internationally with a third party. Knowing Jenny’s not familiar with third party shipping, we can remove these tickets from Jenny’s queue and make sure that we mark our calendar to train her on this topic before BFCM hits. ✅

    All of these features in Live Statistics, Overview and Agents are designed to give you full visibility and control so you can take timely action to remove stress from work and from your team. 😅 

    Still waiting to give it a try? Go to Live Statistics now ➡️

    📞 Let’s get on a call to have a quick chat.
    ✏️ We love hearing your insights, please drop us a note here.

    Building delightful customer interactions starts in your inbox

    Registered! Get excited, some awesome content is on the way! 📨
    Oops! Something went wrong while submitting the form.
    A hand holds an envelope that has a webpage coming out of it next to stars and other webpages