customer-support-integration

Connect your helpdesk (Gorgias, Zendesk, Intercom) to your store so support agents see full order history and customer details without switching tools

11 stars

Best use case

customer-support-integration is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Connect your helpdesk (Gorgias, Zendesk, Intercom) to your store so support agents see full order history and customer details without switching tools

Teams using customer-support-integration should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/customer-support-integration/SKILL.md --create-dirs "https://raw.githubusercontent.com/finsilabs/awesome-ecommerce-skills/main/skills/customer-crm/customer-support-integration/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/customer-support-integration/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How customer-support-integration Compares

Feature / Agentcustomer-support-integrationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Connect your helpdesk (Gorgias, Zendesk, Intercom) to your store so support agents see full order history and customer details without switching tools

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Customer Support Integration

## Overview

Connecting your helpdesk to your store automatically surfaces order history, tracking information, and customer spend inside every support ticket — reducing average handle time by 40–60% because agents don't switch between systems. For Shopify, Gorgias is the purpose-built helpdesk that's native to the platform. For other platforms and for Zendesk/Intercom users, dedicated integration apps connect the systems. Only build a custom integration if you need deep two-way automation (auto-create tickets from order events, VIP routing, CSAT sync back to CRM) that off-the-shelf apps don't provide.

## When to Use This Skill

- When support agents repeatedly ask customers for their order number because it doesn't auto-populate in the ticket
- When implementing Zendesk Sunshine Apps or Intercom Canvas Kit to show order details inside the agent interface
- When automating ticket creation from order events (failed delivery, fraud hold, backorder)
- When routing tickets by order value to prioritize VIP customers
- When syncing support CSAT scores back to your CRM for customer health scoring

## Core Instructions

### Step 1: Determine platform and choose the right helpdesk

| Platform | Best Helpdesk | Why |
|----------|--------------|-----|
| **Shopify** | Gorgias | Purpose-built for Shopify; deep order data access, macro variables that pull order info, 1-click actions (refund, cancel, reorder) from within the ticket |
| **Shopify** | Zendesk | Good for teams that already use Zendesk; install the Shopify app for Zendesk from the App Store |
| **WooCommerce** | Gorgias or Freshdesk | Gorgias supports WooCommerce; Freshdesk + WooCommerce plugin for teams on Freshdesk |
| **BigCommerce** | Gorgias or Zendesk | Both have BigCommerce integrations in their app marketplaces |
| **Custom / Headless** | Zendesk or Intercom with custom integration | Build a sidebar app to inject order context into tickets |

---

### Step 2: Platform-specific setup

---

#### Shopify

**Option A: Gorgias (recommended for Shopify)**

Gorgias is the most widely-used Shopify support helpdesk with the deepest platform integration.

1. Install **Gorgias** from the Shopify App Store
2. Authorize Gorgias to access your Shopify store data
3. Gorgias automatically pulls order history, customer details, and shipping status into every ticket when a customer emails from the address on their Shopify account

**What Gorgias shows agents automatically:**
- Customer name, email, total spent, order count
- All past orders with status, items, and tracking
- Live chat history across all channels

**Setting up automation rules:**
1. Go to **Gorgias → Automation → Rules**
2. Create rules like:
   - Auto-tag tickets with "VIP" when customer lifetime value > $500
   - Auto-assign VIP tickets to a senior support team
   - Auto-reply with order status when ticket contains "where is my order"

**1-click actions from within Gorgias:**
- Refund, cancel, or duplicate an order directly from the ticket sidebar
- Apply discount codes to orders without leaving Gorgias
- Create a draft order for a replacement

**Gorgias macros (template responses with dynamic variables):**
- Create macros that pull in order data automatically: `Your order {{order.name}} is currently {{order.fulfillment_status}}`
- Go to **Settings → Macros** to create and manage macros

---

#### WooCommerce

**Gorgias for WooCommerce:**

1. Install the **Gorgias** WooCommerce plugin from WordPress.org or connect via Gorgias integrations
2. Connect your WooCommerce store — Gorgias pulls order history automatically

**Freshdesk for WooCommerce:**
1. Install **Freshdesk Help Desk for WooCommerce** from the WordPress plugin directory
2. The plugin creates Freshdesk tickets from WooCommerce order events
3. Freshdesk agents see customer order details in the ticket sidebar via the integration

**Manual integration with Zendesk:**
1. Install **Zendesk for WooCommerce** from the Zendesk App Marketplace
2. Agents can search for customers by email and see their order history in the ticket sidebar

---

#### BigCommerce

**Gorgias for BigCommerce:**
1. Install **Gorgias** from the BigCommerce App Marketplace
2. Connect your store — same deep integration as Shopify

**Zendesk for BigCommerce:**
1. Install the BigCommerce app from the Zendesk App Marketplace
2. Agents see customer details and order history in the ticket sidebar

---

#### Custom / Headless

Build a Zendesk Sunshine App (sidebar panel) or Intercom Canvas Kit app that injects order context into every ticket:

**Zendesk sidebar app — data endpoint:**

```typescript
// GET /api/support/zendesk-context?email=customer@example.com
export async function getZendeskContext(req: Request, res: Response) {
  const customerEmail = (req.query.email as string)?.toLowerCase();
  if (!customerEmail) return res.json({ customer: null, orders: [] });

  const [customer, recentOrders] = await Promise.all([
    db.customers.findByEmail(customerEmail, { include: ['segmentScore'] }),
    db.orders.findMany({
      where: { customerEmail },
      orderBy: { createdAt: 'desc' },
      take: 5,
      include: { lineItems: { include: { product: true } }, shipments: true },
    }),
  ]);

  res.json({
    customer: customer ? {
      lifetimeValue: customer.totalSpentCents / 100,
      orderCount: customer.orderCount,
      segment: customer.segmentScore?.segment,
      tags: customer.tags,
    } : null,
    orders: recentOrders.map(o => ({
      number: o.orderNumber,
      status: o.status,
      total: o.totalCents / 100,
      createdAt: o.createdAt,
      trackingUrl: o.shipments[0]?.trackingUrl,
      items: o.lineItems.map(i => ({ name: i.product.name, quantity: i.quantity })),
    })),
  });
}
```

**Route high-value tickets to VIP queue:**

```typescript
// Called when a new Zendesk ticket is created (via Zendesk webhook)
export async function applyTicketRouting(ticketId: string) {
  const ticket = await fetchZendeskTicket(ticketId);
  const customerEmail = ticket.requester?.email?.toLowerCase();
  if (!customerEmail) return;

  const customer = await db.customers.findByEmail(customerEmail, { include: ['segmentScore'] });
  if (!customer) return;

  const isVIP = ['champions', 'cannot_lose_them'].includes(customer.segmentScore?.segment ?? '');
  const isHighValue = customer.totalSpentCents >= 100000;  // $1,000+

  if (isVIP || isHighValue) {
    await fetch(`https://${process.env.ZENDESK_SUBDOMAIN}.zendesk.com/api/v2/tickets/${ticketId}.json`, {
      method: 'PUT',
      headers: { Authorization: getZendeskAuthHeader(), 'Content-Type': 'application/json' },
      body: JSON.stringify({
        ticket: {
          priority: 'urgent',
          group_id: process.env.ZENDESK_VIP_GROUP_ID,
          tags: [...(ticket.tags ?? []), 'vip-customer'],
        },
      }),
    });
  }
}

// Auto-create ticket on delivery failure
export async function onDeliveryFailed(shipmentId: string) {
  const shipment = await db.shipments.findById(shipmentId, { include: ['order.customer'] });
  await fetch(`https://${process.env.ZENDESK_SUBDOMAIN}.zendesk.com/api/v2/tickets.json`, {
    method: 'POST',
    headers: { Authorization: getZendeskAuthHeader(), 'Content-Type': 'application/json' },
    body: JSON.stringify({
      ticket: {
        subject: `Delivery failed — Order #${shipment.order.orderNumber}`,
        comment: { body: `Delivery attempt failed on ${new Date().toDateString()}. Carrier: ${shipment.carrier}. Tracking: ${shipment.trackingNumber}.` },
        requester: { email: shipment.order.customer.email },
        priority: 'high',
        tags: ['delivery-failure', 'auto-created'],
      },
    }),
  });
}
```

---

### Step 3: Set up ticket routing rules for VIP customers

Ensure your most valuable customers get faster responses by routing their tickets to your best agents.

**Gorgias routing rules:**
1. Go to **Automation → Rules → Create Rule**
2. Condition: `Customer → Total spent → is greater than → $500`
3. Actions: `Add tag → vip`, `Assign to → VIP Support Team`, `Set priority → Urgent`

**Zendesk trigger:**
1. Go to **Admin → Business Rules → Triggers → Add trigger**
2. Conditions: ticket tag contains "vip-customer"
3. Actions: assign to group (VIP Support), set priority to Urgent

**Define SLA targets:**
- VIP customers: first response within 1 hour
- Standard customers: first response within 24 hours
- Set these in **Gorgias → Settings → Business hours and SLAs** or **Zendesk → Admin → SLAs**

## Best Practices

- **Use Gorgias for Shopify stores** — it's the purpose-built solution; the time saved on setup and the depth of integration are worth the subscription cost
- **Never store helpdesk API tokens in client-side code** — Zendesk and Intercom API tokens have write access to all tickets; always proxy requests through your server
- **Attach the order ID to every ticket** — this is the key that links your support system to your commerce database and enables two-way sync and automation
- **Keep order context fresh in the sidebar** — cache data for 60 seconds maximum; an agent seeing stale order status is worse than a loading spinner
- **Log every agent action taken on an order** — maintain an audit trail of refunds, order changes, and status updates initiated from within the helpdesk

## Common Pitfalls

| Problem | Solution |
|---------|----------|
| Agent sees wrong customer because email lookup is case-sensitive | Normalize all emails to lowercase before lookup; `Jane@example.com` and `jane@example.com` must resolve to the same customer |
| Webhook payload not verified | Implement HMAC signature verification using the Zendesk/Gorgias webhook signing secret before processing any payload |
| CSAT sync creates duplicate customer records | Always look up by email first; never create a new customer record from a support webhook — link to existing or skip |
| Auto-created tickets missing order context | Set the order ID in a custom ticket field at creation time; this enables bidirectional sync and accurate routing |

## Related Skills

- @live-chat-commerce
- @customer-segmentation
- @customer-lifetime-value

Related Skills

stripe-integration

11
from finsilabs/awesome-ecommerce-skills

Build secure payment flows with Stripe — Payment Intents, subscription billing, webhook handling, and European SCA compliance for card payments

paypal-integration

11
from finsilabs/awesome-ecommerce-skills

Add PayPal, Venmo, and Pay Later buttons to your store using the PayPal Commerce Platform SDK with Express Checkout for one-tap buying

video-commerce-integration

11
from finsilabs/awesome-ecommerce-skills

Enable shoppable video experiences with live shopping events, interactive product hotspots, and one-click checkout directly from video and livestream content

tiktok-shop-integration

11
from finsilabs/awesome-ecommerce-skills

Sync your product catalog to TikTok Shop, manage orders and inventory, and enable shoppable content with live shopping and affiliate creator programs

tiktok-ads-integration

11
from finsilabs/awesome-ecommerce-skills

Launch TikTok ad campaigns for ecommerce with Events API server-side tracking, Spark Ads, catalog sync, and shopping ads for product discovery

meta-ads-integration

11
from finsilabs/awesome-ecommerce-skills

Set up and optimize Meta (Facebook/Instagram) ad campaigns with Conversions API server-side tracking, dynamic product ads, and catalog sync for ecommerce

influencer-marketplace-integration

11
from finsilabs/awesome-ecommerce-skills

Connect to influencer networks to discover creators, manage campaign briefs, track deliverables, and measure ROI across Instagram, TikTok, and YouTube

customer-retention-engine

11
from finsilabs/awesome-ecommerce-skills

Build automated retention campaigns targeting at-risk customers with behavioral triggers, personalized offers, and churn prevention workflows

pos-integration

11
from finsilabs/awesome-ecommerce-skills

Connect your physical point-of-sale system to your online store for unified inventory, shared customer records, and omnichannel order management

erp-integration

11
from finsilabs/awesome-ecommerce-skills

Sync orders, inventory, and customer data between your store and ERP systems like SAP, NetSuite, or Odoo using middleware and async queues

email-service-integration

11
from finsilabs/awesome-ecommerce-skills

Send reliable transactional emails (order confirmations, shipping updates) via SendGrid, SES, or Postmark with templates and deliverability best practices

analytics-integration

11
from finsilabs/awesome-ecommerce-skills

Implement GA4, Meta Pixel, and server-side tagging with a proper data layer so you capture accurate conversion events for ad campaigns