Skip to content
In2Gravity
AI EngineeringEnterprise customer service · 2024–2025

An omnichannel service agent that knows what it may say

Challenge

An enterprise support team wanted one assistant across voice and chat that could act on customer accounts — read CRM records, open tickets, query SAP — while retrieving only the documents and data each caller was authorized to see.

Approach

We built the agent on LangGraph in Python and TypeScript, with retrieval gated by access-control lists so a query only ever surfaces what the user is cleared for. Streaming speech-to-text and text-to-speech carry the voice channel; typed tool contracts wrap the CRM and SAP ERP so the model calls real APIs with validated arguments rather than free text. The pipeline ships through CI/CD with linting, type checks, unit, integration, and end-to-end tests, plus security and dependency scans.

Architecture

Speech-to-text → LangGraph agent → ACL-filtered retrieval → typed tool calls (CRM, SAP) → grounded reply → text-to-speech

Python · TypeScript · LangGraph — Docker containers, GitHub Actions CI/CD with linting, type checks, unit/integration/E2E tests, security and dependency scans

Results

  • Retrieval scoped to each caller's permissions — no leakage across access boundaries
  • One agent serving both voice and chat over shared tools and retrieval
  • Typed tool contracts into CRM and SAP ERP, validated in the pipeline
PythonTypeScriptLangGraphASR/TTSSAPDocker

← All case studies

Tell us what you're trying to build or fix.

We reply within one business day.

Book a consultation