Manual QA is time-consuming—Auto QA does the heavy lifting. It frees up team leads by automatically reviewing conversations with accuracy and consistency, so they can focus on improving support.
Auto QA scores 100% of private text conversations, whether handled by a human or AI Agent. It evaluates support quality based on Resolution Completeness, Communication, and Language Proficiency.
Auto QA supports multiple languages but provides feedback in English. It can assess tickets in any language supported by OpenAI’s GPT-4, ensuring global teams can benefit from automated QA.
Start with individual meetings before a team-wide rollout of Auto QA. One-on-one conversations help address specific agent concerns and ensure a smooth transition.
Customer satisfaction scores (CSAT) have long been the go-to metric for measuring support quality, with 53% of customer experience leads relying on them. However, CSAT only tells you part of the story.
When customers rate their experience 3 out of 5, what does it really mean? Did they rate the agent’s actions or the company’s policies? Was an agent helpful or inefficient? Did they take unnecessary steps to get to the answer?
Quality assurance checks can fill these gaps, but manual QA is a heavy lift. Team leads often struggle to review more than a small sample of conversations, leaving many issues unchecked.
Auto QA redefines quality assurance for today’s support teams. It transforms QA from a manual task into an automated feedback engine that helps your team deliver excellent support, every single time.
Let's dive into how Auto QA works, how accurate its scoring is, and how you can add it to your support workflow to start improving customer conversations today.
What is Auto QA?
Gorgias Auto QA upgrades the customer service QA process by automatically evaluating 100% of private text conversations, whether handled by a human or AI Agent.
Each message is scored on metrics like Resolution Completeness, Brand Voice, and Accuracy, helping teams fix and address areas of improvement.
With an automated QA process, brands can:
Save time: Automated quality checks help team leads focus on the most critical tickets.
Ensure consistency: Both human agents and AI agents are evaluated with a unified, comprehensive quality score.
Boost performance: Agents can receive targeted coaching to provide more consistent customer experiences.
Meet customer expectations: Customers benefit from higher-quality support with quicker resolutions and accurate responses.
How Auto QA works
Let's explore a real-life scenario: A customer reaches out about a product issue, seeking troubleshooting help. Here’s how the interaction unfolds:
Customer: "Hi, my device broke, and I bought it less than a month ago. -Kelly"
Support Agent: "Hi Kelly, please send us a photo or a video so we can determine the issue with your device. -Michael"
The ticket is eventually closed, but the customer doesn't leave a CSAT score.
In this case, Auto QA would provide the following insights:
Communication Score: 3/5. Reason: The agent's wording could benefit from more empathy.
Resolution Score: "Complete". Reason: The agent effectively addressed the customer's concerns.
Access Auto QA right within the ticket view. Find it on the right-hand side of customer conversations.
How accurate is Auto QA’s scoring?
Auto QA uses a comprehensive scoring system that evaluates conversations on communication proficiency and knowledge accuracy.
To ensure accuracy, Auto QA only scores interactions with at least 250 characters and messages from both agents and customers. It's also smart enough to filter out automated responses, spam, and bot messages.
Auto QA automatically scores three main aspects:
Resolution Completeness: Did the agent solve everything the customer asked about? This area is scored with a "Complete" or "Incomplete.” For instance, it correctly marks a ticket as "Complete" when a customer resolves their issue or when there's no clear question to address.
Communication Quality: How well did the agent listen and show empathy? Uses a 1-5 scale, looking at how well your agents acknowledged a customer’s concerns and communicated the solution.
Language Proficiency: Did the agent communicate properly? Uses a 1-5 scale to check spelling, grammar, and syntax.
For deeper feedback, certain criteria require manual scoring from team leads:
Accuracy: How accurate was the information provided by the agent?
Efficiency: How quickly did the agent handle the ticket? How well did they minimize the number of follow-ups?
Internal Compliance: How closely did the agent follow your team’s internal processes and brand guidelines?
Brand Voice: How well did the agent use brand vocabulary, greetings, sign-offs, and tone of voice?
Improve Auto QA scoring by clicking the triangle to expand each category and entering feedback into the textbox.
How to integrate Auto QA into your workflow
Whether you're just starting with quality checks or transitioning from manual QA, Auto QA can seamlessly fit into your existing processes. Here's how to get started.
1. Set your standards
What does “good” look like for your team? Review Auto QA's scoring system and decide which metrics matter most for your brand, from Resolution Completeness to Brand Voice. This will help you set realistic targets for your team to work toward.
Tip: Start by prioritizing a couple of areas. This could look like prioritizing a 5/5 Resolution Completeness score while deprioritizing Brand Voice. As your team gets comfortable with Auto QA, you can ramp up to improving Brand Voice.
2. Agree on a scoring system
Since some criteria—Accuracy, Efficiency, Internal Compliance, and Brand Voice—require manual scoring, it’s best to agree on how your team will use the scoring scale.
For example, each score from 1 to 5 receives a distinct piece of feedback. Here’s what that would look for the Efficiency criteria:
1/5 stars: Excessive back-and-forth that could have been avoided
2/5 stars: Resolution took longer than necessary due to poor process
3/5 stars: Average handling time with some unnecessary steps
4/5 stars: Quick resolution with minimal back-and-forth
5/5 stars: One-touch resolution
3. Prepare your agents
Start rolling out Auto QA through individual meetings with agents rather than overwhelming your team with a general training session. One-on-one conversations allow you to better address each agent's specific questions and concerns. Make sure to cover the following:
Explain that Auto QA is meant to help make conversations consistent, not police agents
Explain the scoring criteria and what each score means
Highlight which criteria agents should prioritize
If regular one-on-one meetings aren't part of your routine, consider introducing Auto QA during your weekly team meetings or through a dedicated training session. Just remember to leave plenty of time for questions and walk through multiple examples to ensure everyone is comfortable with the system.
4. Establish a review schedule
To solidify QA checks, create a simple routine for reviewing Auto QA insights with the Auto QA Report (navigate to Statistics > Auto QA).
Weekly: Do a quick check of automated scores.
Monthly: Analyze trends and patterns across conversations.
Quarterly: Review and adjust quality benchmarks.
Monitor the number of tickets Auto QA has reviewed, your average resolution completeness rate, and your communication score.
5. Act on insights
Once you’ve collected a substantial amount of Auto QA data, there are a few follow-up actions you can take to continue having high-quality conversations:
Set the example by sharing high-scoring conversations in your team meetings.
Coach agents individually by reviewing their tickets together. Celebrate high-scoring conversations and provide targeted feedback on areas for improvement. This immediate, personalized approach helps agents grow faster than general training sessions.
Increase product and policy knowledge by refining internal guidelines on brand voice, escalation processes, and more.
Remember, Auto QA works alongside your existing processes—it doesn't replace them. Start small, focus on the metrics that matter most to your team, and scale up as you get comfortable with Auto QA.
Brands are excited about the power of Auto QA
We invited leading ecommerce brands to beta test Auto QA, and their feedback highlights how it's transforming quality assurance across support teams of all sizes.
amika's support team values the complete visibility beyond CSAT: "Auto QA dramatically widens the volume of tickets we can review," they share. "A 5-point scale only tells you so much, and relying on consumers providing feedback limits what you're able to learn from."
Peachybbies' CX team enjoys real-time improvement: "Being able to give real-time feedback is pivotal, especially during peak times," their team explains. "Auto QA catches pretty much everything I'd want a human QA agent to catch."
OSEA Malibu's managers discovered operational insights: "It helps managers understand when a macro or process is leading to incomplete conversations versus when an agent made a mistake," their support lead shares.
Bring quality into every conversation with Auto QA
By prioritizing QA, your team can identify potential problems early, reduce errors, and improve overall performance, leading to a smoother, more reliable experience for customers––and your CX team.
In the long run, brands focusing on QA can gain a competitive edge. Book a demo now to see what Auto QA can do for you.
There are tons of CX metrics you could be tracking. But where you spend your time is crucial as a customer experience leader.
According to recent data, these are the top five CX metrics for you to prioritize and improve on in 2025.
{{lead-magnet-1}}
Why CX metrics are essential for success
Not tracking CX metrics is like putting a loaf of bread in the oven but leaving baking time to chance. Without a set timer, you could end up with an underbaked bowl of dough or a burnt mess. Unless you have a sixth sense, it’s going to be really challenging to end up with something good.
In the same vein, metrics provide clear parameters for success. Meet or exceed them and your team is doing well; fall short and you’ll be better equipped to identify pain points and solve them.
Measure success and ROI. By tracking KPIs like resolution time, first response time, and CSAT, you can gauge the health of your customer support program and potentially justify investments in CX initiatives in the future.
Identify customer and team pain points. Metrics help uncover areas where customers or your team is struggling. For example, high resolution times or low CSAT scores signal friction in the experience that you can address.
Create accountability within your team. When everyone on your team understands what success looks like, it aligns efforts and keeps everyone focused on shared goals.
Prioritize resources. Metrics guide CX leaders on where to allocate resources—for example, leveraging AI and automation to tackle repetitive tickets when ticket volume adds up or resolution times are getting high.
Get proactive. Metrics reveal trends in customer behavior which can help you predict customer needs and make proactive adjustments in your CX strategy. By monitoring customer sentiment and acting on feedback, CX leaders can create more personalized and positive experiences.
Tip 💡: AI and automation can be valuable sidekicks as you look to optimize and improve on metrics. That’s especially true for busy periods: in 2024, 70% of CX leaders relied on AI and automation during peak seasons.
70% of CX teams use AI and automation to handle support inquiries during the holiday season. Gorgias
Resolution time should be your main focus for 2025
In our 2024 customer expectations survey, we asked CX leads and agents which metric they used to track success. Here’s what they said:
Resolution Time (71%)
First Response Time (59%)
CSAT (53%)
Revenue or Sales Impact (41%)
Ticket Volume (41%)
Resolution time is going to be a key differentiator for your team this year. It should be your primary focus when it comes to optimizing different facets of your customer service strategy.
71% of CX teams used resolution time to measure success during the holiday season in 2024. Gorgias Customer Expectations Survey
Top 5 CX metrics for 2025 & how to improve them with AI
1) Resolution time
Resolution time is the average time it takes to resolve a customer request from start to finish.
How do you calculate resolution time?
To calculate resolution time, you’ll take the total resolution time within a set period and divide it by the total number of customer interactions your team tackled within that same time frame.
Average resolution time = Total resolution time in a defined period / Total number of customer interactions resolved in that period
How to use AI & automation to improve it
According to a 2023 study from Statista, 70% of support leaders noted that the customer support metrics that AI had the greatest positive effect on was resolution time.
You can use automation tools to send Macros to answer common questions, or leverage AI to interact as an agent via email or chat. The instant nature of these tools means that customers won’t have to wait in a queue for your team to get to them.
For example, Wildride implemented Gorgias's AI Agent to manage an influx of 1,000 tickets per week. After AI Agent took over 33% of email inquiries, the team saw a 24% decrease in resolution time. That allowed the team to focus on more complex issues, streamline their support process, and make their customers happier.
2) First Response Time (FRT)
First response time is the length of time it takes for a customer service team to send the initial reply to a customer inquiry.
How do you calculate first response time?
To calculate average first response time, take the total amount of time it took for your team to respond to initial customer requests and divide by the total number of tickets within a set time frame.
How to use AI & automation to improve it
Your team is busy––when they’re not tackling repetitive questions, they’re helping customers with complicated or high-effort requests. All of that work is going to bog down your FRT, especially during more buzzy periods like sales, new releases, or over the holidays.
By using AI to jump in to handle those more routine requests, you can significantly reduce your FRT and give your team time back to tackle more heavy-lift needs.
For example, AI Agent helped Glamnetic achieve a 91% improvement in first response time during Black Friday Cyber Monday (BFCM) 2024. They got FRT down from their pre-AI Agent time of eight minutes to 40 seconds.
Here’s what that looked like in practice:
AI Agent helped Glamnetic reduce first response time by tackling repetitive tickets like change of address requests. Gorgias
3) Customer Satisfaction Score (CSAT)
CSAT scores show how satisfied customers are with a product, service, or interaction, typically gathered through surveys.
How is CSAT calculated?
CSAT is calculated via a five-point rating scale survey sent to customers after a support interaction, where one is the worst experience and five is the best. While it can be calculated in different ways, at Gorgias the average of all survey responses is your CSAT score.
How to use AI & automation to improve it
When customers reach out for support, they’re expecting a fast response––regardless if they have an issue or are contemplating their next purchase.
That’s why using automation or AI tools to provide that lightning quick response, even if it directs shoppers to a self-service resource, can be extremely effective in raising CSAT scores. These responses could be sent by an AI agent that responds like a human agent would or an automated Macro built to fire off pre-crafted templates to common questions.
In luxury golf brand VESSEL’s case, customers felt that the AI responses were helpful and seemed on-par with the level of support they’d expect from a human agent.
“Our customers expect almost immediate responses, and so being able to automate that, even if it's not necessarily the exact answer that they're looking for, but being able to send over information to give them the reassurance that we're looking into it or trying to find an answer, whatever it may be, that's been a huge help to our team,” says Lauren Reams, the Customer Experience Manager at VESSEL.
4) Revenue or sales impact
The direct or indirect effect of customer service or business activities on generating sales or revenue.
How do you calculate it?
There are different ways to calculate revenue generated and the sales impact of customer support, and quantifying the indirect impact can be difficult. But generally, the formula looks like this:
ROI = [ (Money earned - Money spent) / Money spent ] x 100
Leveraging AI and automation can provide significant cost savings because it acts as an additional agent who can tackle repetitive questions, translating to money saved on the time it would take for human agents to manually answer those questions.
The results are tangible: by automating 48% of inquiries, Dr. Bronner's saved $5,248 in the first month, and $100K in the first year.
Jonas Paul Eyewear saw revenue influenced by AI Agent as well: the team tracked $600 of sales revenue directly to the tool after it effectively answered pre-sales support questions from shoppers.
AI Agent supports pre-sales questions by offering detailed responses, like which glasses would work best for a customer’s 8 year old son. Gorgias
5) Ticket volume
Ticket volume is the total number of customer service inquiries that a team receives over a specific period of time.
How do you calculate it?
The customer support tool you use will be able to calculate ticket volume for you, as it’s the total number of tickets that have come in within a set amount of time. If you don’t use a CX platform yet and are still using something like Gmail or Excel, you’ll perform this count manually.
How to use AI & automation to improve it
Set rules to trigger automated responses to common questions, or ask an AI agent to completely take them off your team’s plate.
Arcade Belts, for example, saw a 50% reduction in ticket volume by using Gorgias’s AI Agent.
How to get buy in to improve your CX program
Tracking CX metrics is valuable for more than just gauging your program's effectiveness. The more you improve upon your CX metrics, the more you can leverage them to prove your support function’s value within your company.
Tie CX to revenue. Show how improvements in customer satisfaction or repeat purchase rates directly impact revenue growth.
Show industry benchmarks. Compare your team’s stats to competitors or industry averages to demonstrate how well your support strategy is working.
Demonstrate your team’s impact on sales and retention. Use the metrics you’ve collected to show support’s impact on converting customers asking pre-sales questions and getting repeat customers.
Ask to expand your team’s budget. Pitch acquiring additional buy in and resources by presenting revenue generated, costs saved through tools like AI and automation, and happy customers created.
How to use metrics to evaluate AI performanceIf you want to transform customer experience for the long term, the AI tools you use should never be “set it and forget it” solutions. Just as you do with your human agents, you can use metrics to evaluate your AI agent to make sure it’s performing well. If you use Gorgias, you’ll find these metrics under the AI Agent dashboard.
Review AI Agent’s performance within the Statistics view. Gorgias If you’d like to change the metrics you see here, select “Edit Columns.”
Navigate to the ‘Performance’ section to switch out the metrics you track for AI Agent. Gorgias
It’s also easy to retrain your AI's performance by adjusting settings like Guidance, refining the internal documents it draws from, setting up brand voice, or creating a Handover topic list to escalate certain types of tickets to human agents.
Start tracking top CX metrics
Whether you’re new to being a CX leader or you’re a seasoned pro, tracking and improving on your CX metrics will help your team stand out among the rest. A key way to improve them is to leverage AI and Automation tools, and Gorgias is here to help you do it.
AI Agent on Chat automates up to 50% of chat conversations. It ensures customers get fast, context-aware answers, product recommendations, and seamless handovers to human agents when needed.
AI Agent goes beyond automated tools like Flows and article recommendations. Unlike pre-set FAQ flows or suggested Help Center articles, AI Agent can handle complex inquiries like modifying orders and providing personalized product recommendations.
Setting up AI Agent on Chat is quick. Brands can activate AI Agent with a few clicks, improving efficiency during peak seasons and reducing the need for follow-ups.
Updating AI Agent’s knowledge and behavior ensures the best customer experience. Businesses should refine their Help Center, set Guidance instructions, personalize AI Agent’s tone, and test responses before going live.
It’s clear that shoppers want answers fast—chat accounts for 20% of all customer support tickets.
The appeal is obvious: Chat is an easy-to-access customer service channel for quick questions and a convenient and subtle way to cross-sell complementary products.
But without the right chat tool, brands risk losing these valuable opportunities.
Introducing AI Agent on Chat, a conversational AI assistant that can automate up to 50% of chat conversations. This new feature upgrades chat by combining agent knowledge with superhuman efficiency and response times.
Now, customers can guarantee personalized interactions at any point of the shopping journey—whether they’re looking for a quick answer or a tailored recommendation.
With AI powering every interaction, one-to-one conversations become a seamless part of every customer experience.
Why Chat is better with AI Agent
Before AI Agent, customers reaching out through chat outside business hours had two options: following pre-set Flows (automated FAQ conversations) or browsing through suggested Help Center articles.
These features are great for quick answers to basic questions, but AI Agent takes support to the next level by handling more complex needs like modifying orders or offering personalized product recommendations.
With AI Agent in Chat, customers enjoy dynamic, real-time conversations available on multiple channels. AI Agent generates personalized responses that match exactly what customers ask for, automating 50% of chat interactions so agents get time back to upsell, create stronger relationships, and craft better experiences.
Upgrade your chat support from a basic Q&A tool into an intelligent assistant that handles customer inquiries 24/7. Here's how AI Agent makes that possible:
Real-time conversations
AI Agent responds within 15 seconds or less, offering fast responses that result in frictionless conversations. Unlike traditional chatbots, AI Agent also adapts to your brand’s unique tone of voice to enhance the customer experience and assure shoppers their questions will be taken care of.
AI Agent is context-aware and uses information from its knowledge sources to respond to customers in real time.
24/7 availability
Today’s shoppers expect instant responses regardless of time zone or business hours. AI Agent on Chat means customers get the help they need, when they need it. This availability leads to higher customer satisfaction and fewer abandoned carts.
Instant product recommendations
AI Agent understands context and customer intent. Whether a shopper needs help finding the right product size or changes their mind and wants to compare features, AI Agent customizes its recommendations for each person.
Intelligent handovers
Some conversations, like technical issues or complaints, need a human touch. AI Agent recognizes these situations and smoothly transfers them to the right agent.
Using Handover topics, you can choose which types of inquiries should go straight to human agents. Then, if AI Agent lacks the confidence to provide an answer or can’t locate relevant knowledge in its database, it automatically escalates the conversation.
Based on Hiver’s 2024 study, 62% of customers prefer live chat to other support channels. With AI Agent in Chat, agents can cut down average response times while customers get the answers they need in one conversation with zero wait times or follow-ups.
Easy setup
AI Agent on Chat is ready to use in a few clicks. Simply connect your Shopify store and Chat widget to AI Agent, and you’re ready to resolve questions asked by visitors and loyal customers faster than you ever have.
Capture the growing demand for live support
Chat is often a customer’s first touchpoint with your brand, whether they’ve just discovered your brand or are on their third order. Meet customer expectations by being available with AI Agent on Chat. The faster you can ease their concerns, the faster they can head to checkout.
Maximize team efficiency
AI Agent makes scaling support effortless, especially during peak seasons like Black Friday. While it handles repetitive support tickets like order status and shipping questions, your team can focus on high-priority tasks like requests from VIP customers.
Onboard, Automate, Observe, and Coach AI Agent to flawlessly integrate it into your team.
Eliminate the need for follow-ups
Drawing from knowledge sources like your Help Center and policy pages means AI Agent can often resolve inquiries within one conversation. No more unnecessary back-and-forths. Quick resolutions = happier and more loyal customers.
How to activate AI Agent on Chat
Ready to get started? Here’s how to activate AI Agent on Chat:
Click Automate in the top left menu.
Select your store from the sidebar, then click on AI Agent.
In the Settings tab, under Chat Settings, select one or more Chat from the dropdown menu.
Toggle Enable AI Agent on Chat on.
Select Save Changes at the bottom of the page.
Already use AI Agent for email? No need to set up Guidance and Handover topics all over again—AI Agent will behave the same way in Chat.
Best practices for setting up AI Agent on Chat
Get the most out of AI Agent on Chat by following these best practices.
1. Prepare and optimize your knowledge base
The Help Center is AI Agent’s brain. This customer knowledge database is the key to AI Agent’s accurate and on-brand responses. To ensure your AI Agent is as trained as your human agents, include important topics in your Help Center like shipping, returns, cancellations, and account management.
No articles yet? No problem! Gorgias has 20+ article templates for you to use and modify. Or, even better, check out the AI Library for AI-generated articles based on your customer tickets.
The AI Library recommends pre-written articles based on what your customers ask you.
2. Set restrictions with Guidance
AI tools perform best when you set limitations. A Guidance is the main way to control AI Agent’s behavior. It is a set of written instructions that outline how AI Agent should interact with customers, handle certain requests, and more.
We recommend publishing a Guidance on the top five questions you receive from customers.
Tip: AI Agent prioritizes Guidance above Help Center articles. Unlike Help Center articles, the content in your Guidance will not be customer-facing.
Access premade Guidance templates or make your own customer Guidance for AI Agent.
3. Personalize AI Agent's voice
The beauty of AI Agent is its ability to speak like one of your agents. Select from Friendly, Professional, or Sophisticated presets—or create a custom tone that aligns with your brand.
AI Agent’s tone of voice can be altered with preset voices or custom instructions.
Use test scenarios to see how AI Agent responds to common customer questions, such as order status, shipping questions, and return policies. To cover all your bases, test AI Agent as both a new and returning customer to make sure it delivers accurate responses no matter the customer's need.
Test AI Agent’s responses to ensure accurate answers.
5. Improve AI Agent’s behavior
AI Agent becomes smarter as it learns from you. Like a human agent, give your AI Agent feedback on its responses, from how it speaks, which topics it escalates, and what actions it takes in certain scenarios.
There are multiple ways to give AI Agent feedback on a ticket:
Mark AI Agent’s message or any of the resources it used as correct or incorrect.
Suggest that AI Agent use a different resource if a better or more correct piece of knowledge exists.
Report an issue to the Gorgias Product team.
AI Agent’s answers improve as you provide feedback.
Coming soon: Actions on Chat
Soon, AI Agent will be able to perform actions like accessing Shopify order details and executing third-party app actions, such as updating shipping addresses and order cancellations, directly in Chat.
Excited to deliver an elevated chat experience? Book a demo now to experience the power of AI Agent on Chat.
{{lead-magnet-1}}
Newsletter Signup
The best in CX and ecommerce, right to your inbox
Registered! Get excited, some awesome content is on the way! 📨
Oops! Something went wrong while submitting the form.
See how Gorgias’s Shopify integration makes customer support easier—fewer tabs, faster replies, happier customers, and more revenue.
By Holly Stanley
0 min read . By Holly Stanley
Managing customer support as a Shopify store owner can feel like juggling too many tools at once.
Constantly switching tabs to look up orders, update customer information, or track returns wastes valuable time. Plus, it prevents your team from focusing on what really matters––delivering quick, personalized customer service.
Gorgias’s Shopify integration solves this. It keeps all your Shopify data in one place, so your team spends less time toggling tabs and more time helping customers. The result? Faster responses, better service, and more revenue.
Below, we break down the eight key capabilities of this integration, each paired with practical use cases to showcase its real-world value.
{{lead-magnet-1}}
1. View Shopify data in tickets
What it does: Shopify order data is displayed directly within support tickets, allowing agents to view essential details like order status, customer information, and transaction history without leaving the helpdesk.
Use case: An agent handling a “Where’s my order?” request can instantly check tracking information and update the customer.
The fashion retailer Princess Polly improved their customer experience team’s efficiency by using Gorgias's deep integration with Shopify. Agents can view and update customer and order data directly within Gorgias, eliminating the need to switch between multiple tabs.
Taking a streamlined approach led to a 40% increase in efficiency, an 80% decrease in resolution time, and a 95% decrease in first response time.
Customer order data, including their shipping address and product details, can be found directly in the ticket.
2. Perform Shopify Actions
What it does: Agents can update Shopify order and customer data with Shopify Actions right in Gorgias.
Key features:
Create a new order: Add existing products or custom items, apply discounts, modify quantities, add notes and tags, and choose to charge taxes. Then set the order as Paid or Pending and email the invoice to the customer.
Duplicate an order: Replicate an existing order and make adjustments as needed.
Cancel/refund an order: Cancel or refund orders by setting quantities to refund, specifying shipping amounts to refund, providing reasons for cancellation, restocking items, and notifying the customer.
Edit shipping address: Update the shipping address for an order.
Insert product links: Add product links or product cards from tickets so customers can add the product to their cart quickly.
Display the customer’s cart: View the exact items the customer has in their cart at the moment they reach out via Chat.
Use case: Agents can perform Shopify actions directly from Gorgias, such as adding products, applying discounts, updating quantities, or issuing refunds.
Agents can perform Shopify Actions like duplicate an order directly from Gorgias.
3. Embed customer-specific Shopify data in Macros
What it does: Create templated responses called Macros with dynamic Shopify variables to automatically incorporate customer-specific information.
Key features:
Dynamic variables: Macros can include variables that pull real-time data from Shopify, such as order status, tracking numbers, and customer details.
Automated actions: Beyond inserting dynamic content, Macros can perform actions like tagging tickets, setting statuses, or assigning conversations to specific agents. The automation streamlines workflows and ensures consistent handling of similar inquiries.
Use case: A customer inquires about their order. With one click, the agent uses a Macro that pulls in the order status and expected delivery date, creating a faster and more personalized response.
Take Try The World, a gourmet subscription service, needed a robust Shopify integration to handle an increasing volume of customer inquiries. By switching to Gorgias, they gained the ability to unify conversations and embed Shopify data directly into Macros. Now, agents could quickly generate personalized responses that included order details, tracking links, and customer-specific information.
Try the World’s support team’s efficiency skyrocketed, enabling them to handle 120 tickets per day, up from 80, and reduce response times to just one business day.
Shopify data lets agents create Macros, templated responses with personalized data.
4. Provide product information with Macros
What it does: Macros with embedded Shopify data let agents quickly and accurately share pre-sale information like product links, stock availability, and discount codes, helping to convert prospective customers into buyers.
Key features:
Dynamic Shopify variables in Macros: Agents can use dynamic variables to pull real-time product information.
Pre-built responses for common questions: Macros can include templated responses tailored for pre-sale inquiries, such as providing direct links to products or applying discount codes.
Use case: A customer asks if a specific product is available in their size and color. The agent can apply a Macro that automatically pulls the product's inventory details and includes a discount code, sending a response like this:
“Hi {{ticket.customer.firstname}}, Great news! The product {{ticket.customer.integrations.shopify.products[0].title}} is currently in stock in the size and color you’re looking for. You can check it out here: [Product Link]. Use the code WELCOME10 at checkout for 10% off your first order! Let me know if you have any other questions!”
How it helps:
Eliminates manual search and typing for agents.
Ensures accurate, real-time product information for customers.
Improves the likelihood of converting inquiries into sales.
5. Enable self-serve order management in Chat
What it does: Using Gorgias’s chat widget, customers can track orders or manage their purchases on their own with no agent assistance needed.
Key feature:
Order management automation: Customers can access real-time order information, including status updates and tracking details, through the chat interface. This automation reduces the volume of live chat inquiries by up to 30%.
Use case: A customer wants to check the status of their recent purchase. By accessing the Chat widget on your website, they can enter their email and order number and receive instant updates on their order's progress, including shipping and delivery information, without waiting for an agent's response.
How it helps:
Automates routine inquiries and frees up your support team to handle more complex issues.
Enhances customer satisfaction thanks to immediate responses.
Reduces the need for multiple communication channels, consolidating support interactions in one place.
6. Use Shopify variables in Rules
What it does:Rules paired with Shopify variables can automate various support tasks, such as identifying specific customer segments or tagging tickets, to boost efficiency and consistency.
Key features:
Automated tagging: Rules can automatically tag tickets based on specific Shopify data. For instance, you can set up a Rule to tag tickets from customers with high order counts or significant total spending as "VIP."
Prioritization of tickets: Rules can prioritize tickets that meet certain criteria, such as high-value orders or repeat customers.
Use case: A customer with a history of substantial purchases contacts support. A rule detects that the customer's total spending exceeds a predefined threshold and automatically tags the ticket as "VIP."
This tag can then trigger other workflows, such as assigning the ticket to a senior support agent or escalating its priority.
How it helps:
Improves customer experience by prioritizing high-value customers.
Maintains consistent service quality.
Rules let you identify VIP customers using Shopify variables.
7. Track revenue with reporting
What it does: Gorgias offers comprehensive reporting that allows you to measure how your support interactions influence sales.
Key features:
Tickets converted: Tracks the number of support tickets that led to a sale within five days of the ticket's creation.
Conversion rate: Calculates the percentage of created tickets that resulted in sales, helping you assess the effectiveness of your support team's interactions.
Total sales from support: Sums the revenue generated from orders associated with converted tickets, accounting for refunds and order adjustments to provide accurate figures.
These metrics are accessible under Statistics → Support Performance → Revenue in your Gorgias dashboard. You can filter the data by integration, ticket channel, tags, or specific time periods to gain detailed insights.
Use case: By analyzing Revenue Statistics, you can identify which support channels or agents are most effective in driving sales. For example, if live chat interactions have a higher conversion rate, you might allocate more resources to that channel.
Additionally, recognizing top-performing agents can inform training programs to elevate overall team performance.
For example, One Block Down, a Milan-based streetwear brand, struggled to manage a growing volume of customer inquiries across multiple platforms. By integrating Gorgias with Shopify, they centralized all customer interactions into a single platform, giving agents instant access to crucial information like order history and returns directly within tickets.
The setup allowed the team to measure the direct impact of their support efforts on revenue.
The result? An impressive 1,000% increase in support-generated revenue and a 1-hour average first response time. By connecting the dots between customer service and sales performance, One Block Down demonstrated how proactive, data-driven support can directly influence the bottom line.
How it helps:
Quantifies the revenue generated from support interactions.
Faster team optimization with data-driven insights.
Understanding the correlation between support interactions and sales can help refine customer service strategies.
Revenue Statistics highlight which support channels and agents are best at generating sales.
8. AI Agent integration
What it does:AI Agent automates Shopify actions like canceling orders, editing order details, and reshipping items.
Key features:
Cancel Shopify order: AI Agent can automatically cancel unfulfilled orders upon customer request, restocking the items and issuing a full refund. A confirmation email is sent to the customer once the cancellation is complete.
Edit order shipping address: When a customer needs to update their shipping address, AI Agent verifies if the order is unfulfilled, confirms the new address with the customer, and updates it in Shopify accordingly.
Replace order item: AI Agent facilitates item replacements in orders by confirming the item to be removed and the new item to be added, checking stock availability, adjusting payments if necessary, and sending an updated order confirmation to the customer.
Reship order for free: In cases where an order is lost in transit or arrives damaged, AI Agent can duplicate and resend the order at no additional charge.
Remove order item: If a customer decides to remove an item from their order, AI Agent can handle the removal, restock the item in Shopify, process the refund for the removed item, and notify the customer of the updated order details.
Use case: A customer realizes they've entered an incorrect shipping address shortly after placing an order. They contact support, and AI Agent promptly verifies that the order is unfulfilled, confirms the correct address with the customer, updates the shipping information in Shopify, and sends a confirmation email—all without human intervention.
How it helps:
Automating routine order management tasks reduces the workload on human agents.
Quick and accurate responses to order modification requests lead to a better customer experience.
Automated processes ensure consistency and accuracy in handling order changes, reducing the likelihood of human error.
Using Gorgias’s AI Agent you can customize multiple Shopify actions with Gorgias.
"Since day one, Gorgias has been dedicated to helping ecommerce brands deliver exceptional customer experiences. We started with a helpdesk to centralize support, then introduced AI Agent to instantly resolve support questions,” says Romain Lapeyre, CEO of Gorgias.
“Now, we're taking the next leap forward with an AI Agent that powers the entire customer journey—anticipating buyer needs, boosting sales, and automating high-quality support. Today, I'm happy to announce Gorgias as the Conversational AI platform for ecommerce.”
Gorgias’s Conversational AI platform will let teams provide fast, scalable, and cost-effective support while helping them drive revenue growth. From automatic order changes and refunds to product recommendations and cross-sells, brands will be able to flawlessly combine their support and sales efforts.
The end result is an AI-powered customer journey where every customer interaction feels complete, personal, and connected, both before and after purchase.
Questions in Chat, resolved in seconds
Last year, we introduced AI Agent for email.
Some brands call their AI Agent Lisa, some call it Wally, and most treat it like a real member of the team. But this reliable support sidekick was only available to answer customers on email—until now.
Get ready for instant responses that tackle support inquiries of all sizes. Now, your customers can enjoy fast responses that keep their shopping experience as smooth as possible.
On top of improving first response times, AI Agent can play an even more critical role in unblocking sales, suggesting products, and driving upsells and cross-sells.
With responses sent in 15 seconds or less, brands can delight customers with near-instant resolutions.
AI Agent can autonomously respond to customers on email and chat.
Let your AI Agent take action
Actions let AI Agent perform customer requests on behalf of your support team. This includes changing shipping addresses, fetching fulfillment status, canceling orders, adding discounts, and more.
You can use a library of pre-configured Actions for popular apps like Shopify, Rebuy, Loop, and more. And you don’t need any technical skills to set them up.
With almost half of queries requiring some kind of update, Actions is your go-to for complete resolutions so you can get more accomplished.
AI Agent can perform actions on ecommerce apps, right from the Gorgias platform.
Quality built into every support ticket
Quality checks have traditionally been manual, time-consuming, and inconsistent. Our brand new Auto QA feature changes that by automatically scoring 100% of conversations on resolution completeness and communication quality—whether from a human or AI agent.
With Auto QA, team leads can:
Scale quality consistently and easily. Both human and AI agents follow the same quality standards, allowing for consistent, high-quality customer experiences.
Coach smarter. Use real-time QA ratings in tickets to give agents targeted feedback.
Track team performance. The dashboard highlights metrics by agent, showing what’s working and where to improve.
Receive automatic QA checks on all customer conversations with Auto QA.
Gain clarity on your AI Agent’s impact
Support teams should be in complete control of their AI. That’s why the AI Agent Report and AI Agent Insights were created—to help you know exactly how your AI Agent is performing and contributing to your customer service operations.
The AI Agent Report provides full visibility into AI Agent’s performance, covering metrics like First Response Time, CSAT, and one-touch ticket resolutions. Fully integrated into your Support Performance Statistics dashboard, the report includes:
The percentage of tickets automated by AI Agent
The number of tickets closed by AI Agent
Success rates for one-touch resolutions
How satisfied customers are with AI Agent’s responses
Monitor AI Agent’s performance with a glimpse into metrics like automation rate, closed tickets, and customer satisfaction.
AI Agent Insights takes it a step further. It analyzes AI Agent’s performance data and provides you with a dashboard of recommendations, including potential automation opportunities, popular ticket intents to optimize, and knowledge base improvements.
Find out which areas of your support workflow could benefit from automation with AI Insights.
Meet your new AI sales assistant
Soon, we’ll be expanding our AI capabilities with the launch of AI Agent for Sales, a tool designed to assist customers on their shopping journey.
AI Agent for Sales helps brands boost their sales capabilities through smart product recommendations, on-page checkout assistance, and personalized conversations. Now it's easier to reduce cart abandonment, suggest complementary products to boost average order value, and overcome pre-sale objections.
This new tool will bridge the gap between marketing and CX, ensuring brands can scale personalized interactions 24/7 without increasing headcount.
AI Agent for Sales is coming to chat soon.
Looking ahead with conversational AI
As we continue to innovate with conversational AI, our focus remains on helping you succeed.
By combining smarter tools with valuable insights, we’re creating opportunities for you to put your customers first and build deeper connections at every touchpoint.
Join us as we pave a new way for the future of ecommerce.
Help your CX team deliver better service with AI quality assurance for fair feedback and consistent customer support.
By Christelle Agustin
0 min read . By Christelle Agustin
TL;DR:
The landscape of QA is moving from manual to AI-powered, where AI can analyze every customer interaction, uncover patterns, and suggest data-driven changes at scale.
Automating QA allows ticket reviews to be routine. This means customers will always receive high-quality support.
Every customer interaction is reviewed with AI QA — not just a sample. This gives support leaders full visibility into performance and service quality.
AI QA saves time and improves agent and AI Agent feedback. By automating ticket reviews, agents receive instant, unbiased feedback, and leaders can focus on big-picture CX improvements.
But answering tickets isn't enough. Responses must also be high-quality, whether from humans or AI. And while customer satisfaction (CSAT) is the standard measure of how successful these interactions are, they have major limits.
CSAT scores don’t tell the full story about whether agents were helpful or if they used on-brand language. These gray areas in quality lead to missed sales, higher return rates, and frustrated customers during peak periods.
AI quality assurance (QA) is changing that. In this article, we’ll see what QA looks like today, how AI can simplify the process, and how CX teams can use tools like Auto QA to improve quality across all conversations.
{{lead-magnet-1}}
Traditional customer support QA is falling by the wayside
Today, QA in customer support is a largely manual responsibility. Customer conversations are reviewed by CX team leads to ensure customer satisfaction and identify areas for agent coaching. Team leads evaluate agent responses against a checklist of best practices, including the proper use of language, product knowledge, consistency, and helpfulness.
However, reviewing tickets takes a long time.
QA is important, but it's hard to prioritize when customers are actively waiting for help with refunds, urgent order edits, or negative reviews. And when CX teams are under-resourced and short-staffed, it’s easy to put QA on the back burner.
What’s more, as AI plays a bigger role in responding to customers, quality assurance must evolve to ensure the quality of AI-generated responses, not just human responses.
Over time, the lack of QA in CX can hold back support teams for three reasons:
Delayed feedback makes it harder for agents and AI tools to improve.
Leaders have less time to train agents and refine workflows.
Inconsistent service risks losing customer trust and loyalty.
What is AI-powered QA in CX?
AI-powered quality assurance (QA) uses AI to automate the process of reviewing customer interactions for resolution completeness, communication, language proficiency, and more.
Instead of team leads spending hours manually sifting through tickets, AI takes over and evaluates how well tickets were resolved by agents.
Shifting this traditionally manual work to an automated process pulls teams out of the weeds and into more beneficial work like speaking to customers and upselling.
Manual QA is prone to inconsistent checks and fewer tickets reviewed compared to AI-powered QA.
With AI QA, routine ticket reviews are not just an optional part of your customer service strategy, they become a permanent part of it. The road to greater customer trust, resolution times, and stronger product knowledge becomes easier.
Manual QA is like trying to review a handful of tickets during a flood of new customer requests. Team leads can only focus on a small sample, leaving most interactions unchecked. Without complete visibility, creating a standard across all interactions is challenging.
Now, switch over to AI QA. You don’t have to choose between QA duty or answering tickets — QA checks are automatically done. You’ll still need to monitor AI’s performance, but now there’s more time to focus on creating strategies that improve the customer experience.
Here’s how AI QA and manual QA measure up to each other:
Feature
AI QA
Manual QA
Number of Tickets Reviewed
All tickets are reviewed automatically.
Only a small sample of tickets can be reviewed.
Speed of Reviews
Reviews are completed instantly after responses.
Reviews are time-consuming and delayed.
Consistency
Feedback is consistent and unbiased across all tickets.
Feedback varies depending on the reviewer.
Scalability
Scales, regardless of ticket volume.
Struggles to keep up with high ticket volumes.
Agent Feedback
Provides instant, actionable feedback for every resolved ticket.
Feedback is delayed and limited to a few cases.
Leader Advantage
Frees up leaders to train the team and improve workflows.
Disadvantageous, as leaders spend most time manually reviewing tickets.
7 benefits of using AI quality assurance in CX
AI quality assurance helps CX leaders move beyond manual reviews by offering fast, thorough insights into performance and customer needs. Here are seven key benefits it brings to your team.
1. Improved visibility into customer interactions
AI QA reviews every ticket, giving CX leaders a complete view of agent performance and customer trends. Nothing slips through the cracks, so you can act on real data each and every single time.
What the team wins: Key areas to focus on to improve the customer experience.
What the customer wins: A consistent support experience where their concerns are fully addressed.
AI QA feedback can highlight confusing policies or common product issues that lead to unhappy customers. With instant feedback, teams can quickly make changes and create better, consistent customer experiences.
What the team wins: Faster fixes for recurring issues.
What the customer wins: A smoother, frustration-free experience.
3. Faster identification of process gaps
Agents can receive feedback that instantly highlights gaps in workflows or unclear escalation steps. This is an efficient way to resolve issues within the wider team before they become more significant problems.
What the team wins: Process issues are solved quickly.
What the customer wins: Faster resolutions with little to no delays.
4. Standardized scoring for AI and human agents
AI QA evaluates both AI Agent and human agent interactions using the same criteria. This creates a level playing field and ensures all customer interactions meet the same quality standards.
What the team wins: Fair evaluations for both AI and human responses.
What the customer wins: High-quality support, no matter who handles the ticket.
5. More time for coaching and training
With less time spent on manual reviews, leaders can dedicate more energy to team development. Training sessions guided by AI insights help agents improve quickly and ensure the team delivers support that aligns with protocols.
What the team wins: More focused skill-building based on data.
What the customer wins: Clearer and more accurate support.
6. Drives continuous knowledge for the entire team
AI QA is helpful for showing agents which areas they need more training on, whether it's being better about using brand voice or polishing up on product knowledge. This leads to better support processes and stronger product understanding across the team.
What the team wins: Better support tactics and product expertise.
What the customer wins: Faster resolutions due to knowledgeable agents.
7. Enhanced customer experience through consistently high-quality support
Since all tickets are reviewed, teams can feel confident they’re delivering high-quality support on a regular basis. Customers get clear, helpful answers, while agents gain insights from every ticket with AI feedback.
What the team wins: Consistent support performance.
What the customer wins: Reliable support they can trust.
How accurate is AI QA?
AI QA analyzes tickets using predefined categories to evaluate how complete and helpful agent responses are. Let’s take a closer look at how it maintains accurate ticket reviews with an AI QA tool like Gorgias’s Auto QA.
It measures multiple metrics
Auto QA evaluates tickets based on three key areas: Resolution Completeness, Communication, and Language Proficiency.
For Resolution Completeness, it checks if all customer concerns were fully addressed. For example, if an agent resolves only one of two issues raised, the ticket is marked incomplete. Tickets where customers resolve issues on their own or don’t respond to follow-ups can still be graded as complete if handled appropriately.
Communication quality is scored on a scale of 1 to 5, assessing clarity, professionalism, and tone. Agents earn higher scores when they provide clear solutions and remain positive throughout the interaction.
Finally, Language Proficiency evaluates whether an agent displayed high proficiency in the language of the conversation. The score considers how well spelling, grammar, and syntax were employed.
Gorgias’s Auto QA scores agent responses based on communication and completeness.
Teams can improve AI with their own feedback
Auto QA isn’t set in stone. Team leads can expand on AI-generated feedback by adding their comments. For example, if a resolution is graded as ‘Incomplete,’ a team lead can explain why and provide additional context. This helps clarify the evaluation for the agent and also helps the AI model improve over time.
How to get started with AI quality assurance using Auto QA
Ready to bring the benefits of AI QA to your team? Here’s how to get started with Auto QA:
Audit your current QA process to identify gaps. How do you currently review tickets? Pinpoint areas where manual QA falls short, such as inconsistent feedback or missed interactions.
Pilot Auto QA with a small team. Introduce Auto QA to a small group of agents to test its impact. This allows you to find out how the new QA process fits into your workflow and how it affects agent performance.
Use AI insights to refine processes. Analyze the feedback Auto QA provides to identify process gaps or recurring issues. Use these insights to update your workflow, improve training, and address root causes of customer pain points.
Gradually scale adoption across the team. Once the pilot is successful, roll out Auto QA to more agents. Make sure everyone is trained on how to use its insights and integrate the tool into daily operations.
Monitor and provide feedback to improve AI accuracy. Review Auto QA’s evaluations to ensure accuracy. Add manual feedback as needed to fine-tune its scoring on future tickets.
Measure the impact on performance and satisfaction. Track key metrics like ticket close rates, resolution times, and customer satisfaction scores. Use this data to understand how Auto QA transforms your QA process and drives better results.
Make high-quality responses a standard with Auto QA
AI QA isn’t just about automating ticket reviews — it empowers CX leaders to focus on what truly matters: training and improving processes.
Leave spot-checking and inconsistent application of policies and brand voice in the past. As a built-in feature of Gorgias Automate, Auto QA makes high-quality customer interactions your brand’s standard.
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.
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 explicitsolutions toimplicit 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.
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 aftersession.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.
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:
Compensation should be based on data
Compensation should reflect everyone’s ownership, meaning everyone should have equity
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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 iframeelement had a display: none property set.
Then, we moved to the Profiler tab, where we found that the browser was using a lot of CPU, as reported:
Here's what happens if you defer rendering of this component, as originally intended:
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:
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
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.
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.
And here’s the full chart inclusive of all chat assets, including the static assets.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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:
Managing phone calls in Gorgias, with both new and existing phone numbers
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.
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 in16 countries around the globe and speak 18 different languages.
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.
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.
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
Recognize that tensions were high
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.”
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.”
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.
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. 😅