GENYS · Use Cases

Support Copilot

Resolve tickets in your brand voice with provable facts. GENYS turns policies, macros, product docs, and past resolutions into Capsules that every reply can cite and learn from.

The same memory engine that powers DesignAdvertise.ai now accelerates support teams.

Simple

  • Answers match your voice and policy—no prompt gymnastics.
  • Replies cite sources (docs, past tickets) so agents can trust and ship.
  • Learns from resolved tickets; suggests better macros over time.
  • Compliance guardrails catch risky wording and restricted offers.

Technical

  • Capsules: policies, tone vectors, product truth, macro library with provenance, scope, retention.
  • RAG++: planner retrieves top‑k facts + similar resolutions; compacts a minimal context bundle.
  • ToneGuard & PII: brand drift, claim checks, and PII redaction before sending.
  • Ephemeral vs. persistent: scratchpad stays transient; only promoted learnings become long memory.

What Support Copilot does

Suggested replies

Drafts brand‑safe responses with citations and optional macros.

Knowledge gap detection

Flags missing/contradictory docs; opens a doc task capsule.

Thread summarization

Summarizes long threads, preserving commitments & SLAs.

Tool actions

Create tickets, refund, schedule callbacks, escalate—with audit.

Redaction & safety

Masks PII by policy; blocks risky/abusive outputs; crisis scripts.

Telemetry

Tracks FCR, AHT, CSAT, drift, token burn to tune retrieval.

Minimal API: /api/copilot/reply

// app/api/copilot/reply/route.ts
import { NextResponse } from 'next/server';

export const runtime = 'nodejs';

export async function POST(req: Request) {
  const body = await req.json();
  const { thread, channel, userId } = body; // thread: { messages: [...] }

  // 1) Retrieve relevant memory: policies, product facts, similar resolutions
  const plan = await genys.plan({
    subject: 'support:brand:acme',
    input: thread,
    retrieve: {
      k: 12,
      from: ['capsules','docs','tickets'],
      filters: { channel }
    },
    guards: ['toneguard:brand_voice_prime','facts:capsule_consistency','pii:redact'],
  });

  // 2) Generate draft with citations and macro suggestions
  const draft = await genys.generate({ plan, cite: true, suggestMacros: true });

  // 3) Optional: run actions (e.g., refund, create_ticket) in a sandbox
  const acted = await genys.act(draft.actions);

  // 4) Audit + minimal learning (promote useful macros or new FAQs)
  await genys.audit.append({ subject: 'support:brand:acme', event: 'reply', meta: { channel, tokens: draft.tokens, drift: draft.drift } });
  if (draft.learn?.faq) {
    await genys.capsules.patch({ subject: 'support:brand:acme:faq', data: { items: genys.merge(draft.learn.faq) } });
  }

  return NextResponse.json({ ok: true, reply: acted.reply, cites: draft.cites, actions: acted.actions });
}

Redaction & Guardrails

Policy checks

ToneGuard enforces banned phrases, claim limits, and crisis scripts; risky outputs are blocked or auto‑edited with rationale.

PII redaction

Masks emails, phone numbers, addresses, card tails by policy before model calls; preserves placeholders for downstream tools.

// lib/redact.ts
export function redact(input: string) {
  return input
    .replace(/([w.-]+)@([w.-]+).[A-Za-z]{2,}/g, '[email]')
    .replace(/+?d{1,3}[s.-]?(?d{2,3})?[s.-]?d{3}[s.-]?d{4}/g, '[phone]')
    .replace(/d{1,4} [A-Za-z0-9 .'-]+, [A-Za-z .'-]+/g, '[address]');
}

Implementation in 5 steps

  1. Ingest policies, macros, product docs, and 6–12 months of solved tickets → normalize into Capsules.
  2. Wire retrieval (RAG++) into your helpdesk UI (Zendesk, Intercom, Front, custom) with cites.
  3. Guard outputs via ToneGuard + PII redaction; define escalation criteria and crisis scripts.
  4. Ship with audit on; human‑in‑the‑loop approves until metrics stabilize.
  5. Learn from outcomes (FCR, CSAT); promote new FAQs/macros; retire stale ones.

Agent Assist (live demo)

Feed a short ticket thread and generate a brand‑safe reply with cites.

How to wire Zendesk/Intercom

  1. Create a webhook pointing to /api/integrations/zendesk/webhook (or /api/integrations/intercom/webhook).
  2. Add header X-Webhook-Token: $TOKEN and set the same value in env (ZENDESK_WEBHOOK_TOKEN or INTERCOM_WEBHOOK_TOKEN).
  3. Choose events (ticket/comment created) and set JSON body to include the thread.
  4. Optional: send {"action":"suggest"} to get a draft reply in the webhook response.

Measuring success

FCR ↑

First‑contact resolution rate per queue/segment.

AHT ↓

Average handle time and tokens per reply vs. baseline.

CSAT ↑

Survey lift after launch; regression alerts on drift.

FAQ

Is Support Copilot fully autonomous?

You choose the mode: suggest‑only, auto‑draft with human send, or auto‑send for low‑risk queues. Audit and guardrails stay on in all modes.

Does it work with my helpdesk?

Yes. We provide adaptors for Zendesk/Intercom/Front and a simple HTTP interface for custom systems.

How do we keep replies on‑brand?

Brand Capsules + ToneGuard enforce phrasing, disclaimers, and restricted claims. Drift is measured and blocked when necessary.