Problem statement

A B2B telecom service operation was handling a growing volume of cases through a familiar pattern: every request — from "where is my order?" to a genuine provisioning failure — landed in the same queue and waited for a human to read it, work out what it was, and then open three or four other systems to find the answer.

  • Most cases were repetitive. Order status, quote clarifications and account changes made up the bulk of volume, yet each one consumed the same agent effort as a complex issue.
  • Context lived elsewhere. Quoting/pricing, order management and customer data sat in separate systems. Agents were the integration layer.
  • Complex cases waited behind simple ones. The customers with real problems got the slowest experience.

Leadership wanted to scale service without scaling headcount — but without handing customers to a chatbot that couldn't actually do anything.

Business outcome

60%of service cases deflected — resolved end-to-end by the AI agent
40%reduction in human agent handling time
100%of escalated cases arrive classified and summarised for the human agent

The win wasn't just fewer cases. Human agents now spend their time on the work that needs judgement, and they start every escalated case already knowing what's been tried.

Current state

Every channel fed one queue. Triage, lookup and response were all manual, and the agent's browser tabs were the integration architecture.

flowchart LR
  C([Customer]) -->|Email · Portal · Phone| Q[Shared case queue]
  Q --> T[Agent reads & triages manually]
  T --> L{Look up context}
  L --> S1[(Quoting / Pricing)]
  L --> S2[(Order Management)]
  L --> S3[(Customer Management)]
  S1 & S2 & S3 --> R[Agent drafts response]
  R --> C
Figure 1 · Current state — humans as the integration layer

Future state architecture

We introduced an agentic layer in front of the queue, with Salesforce as the orchestration hub. The AI agent handles intent, retrieves context through governed actions, and either resolves the case or hands it over with a summary.

flowchart TB
  subgraph CH[Channels]
    direction LR
    P[Portal / Messaging]
    E[Email]
  end
  subgraph SF[Salesforce · Service Cloud · orchestration hub]
    direction LR
    AG[AI service agent] --> TA[Topics & actions]
    TA -->|escalate + summary| OC[Omni-Channel routing] --> HA[Human agent + AI assist]
    PB[Prompt templates]
  end
  subgraph ENT[Enterprise systems]
    direction LR
    ORD[(Order Mgmt)]
    QP[(Quoting / Pricing)]
    CM[(Customer Mgmt)]
  end
  subgraph TR[Trust boundary]
    direction LR
    TL[Trust layer · masking · audit] --> LLM[LLM via secure API]
  end
  P & E --> AG
  TA -->|Flow · Apex · API actions| ORD & QP & CM
  AG & HA -.-> PB -.-> TL
Figure 2 · Future state — agentic layer with governed actions and a clear trust boundary

How a case flows now

sequenceDiagram
  participant Cu as Customer
  participant Ag as AI agent
  participant Tl as Trust layer / LLM
  participant Om as Order API
  participant Hu as Human agent
  Cu->>Ag: "Where is my order?"
  Ag->>Tl: Classify intent (PII masked)
  Tl-->>Ag: Topic: Order status
  Ag->>Om: getOrderStatus(orderId)
  Om-->>Ag: Shipped · ETA 2 days
  Ag-->>Cu: Status + tracking details
  alt Unresolved, sensitive or low confidence
    Ag->>Tl: Summarise conversation
    Ag->>Hu: Route with summary + classification
    Hu-->>Cu: Resolves with full context
  end
Figure 3 · Sequence — resolve when safe, escalate with context when not

Key architecture decisions

DecisionWhyTrade-off accepted
Start with narrow, high-volume topicsFast, measurable deflection; easy to test exhaustivelyLong-tail requests still escalate in phase one
Actions call existing APIs via Salesforce, not direct from the LLMEvery action is governed, logged and permission-checkedMore upfront integration work
Mask PII before any model callCustomer data never leaves the trust boundary unprotectedSome prompts needed redesign to work with masked values
Escalation always carries a summaryHumans never restart the conversationExtra model call per escalation
Salesforce as orchestration layer for quote, order and customer systemsOne place for process, security and auditSalesforce becomes a critical dependency — NFRs had to reflect that

Learnings summary

What worked
  • Defining "resolved" with the service team before building anything.
  • Treating topics like product features — each with an owner, tests and a success metric.
  • Shipping AI assist for humans alongside deflection, so agents saw the AI as help, not threat.
What I'd change
  • Invest in the test conversation library even earlier — it became our most valuable asset.
  • Bring the data-quality owners in at week one, not week six.
  • Instrument cost per resolved case from day one, not just deflection rate.
An AI agent is only as good as the actions it can take and the data it can trust. The model is the easy part.
AgentforceService CloudPrompt BuilderIntegration
Pranav Sanvatsarkar

Pranav Sanvatsarkar is a Solution Architect with 14+ years across telecom, healthcare, public sector and non-profit, focused on AI, agentic automation and Salesforce architecture. Say Hello!