Documentation Index
Fetch the complete documentation index at: https://docs.kibocommerce.com/llms.txt
Use this file to discover all available pages before exploring further.
This guide provides complete instructions for implementing and configuring the Kibo Shopper Agent on your commerce storefront. It covers live chat widget setup, Admin UI configuration, and storefront integration.
The Kibo Shopper Agent automates common customer service tasks such as order status lookups, return processing, and product inquiries. The system handles these requests programmatically without requiring human agent involvement. For requests that require human assistance, conversations can be escalated to live agents with full context preserved.
Table of Contents
- Overview
- Architecture
- Prerequisites
- Live Chat Widget Setup
- Shopper Agent Admin UI
- Storefront Widget Integration
- Testing Your Implementation
- API Reference
- Troubleshooting
Quick Start
Implementation involves three main areas of configuration:
| Step | What You Do | Time Estimate |
|---|
| 1. Live Chat Widget Setup | Create inbox, configure webhook to Kibo backend, get site token | 15-30 minutes |
| 2. Admin UI Configuration | Review/customize playbooks, enable tools, configure safety settings | 30-60 minutes |
| 3. Storefront Integration | Add environment variables, create widget component, deploy | 1-2 hours |
Workflow Summary:
Overview
Kibo Shopper Agent is an AI-powered conversational platform that provides intelligent customer service and shopping assistance. The platform enables:
- Customer Service Agents: Handle order inquiries, returns, cancellations, and complaints
- Shopper Assistants: Guide customers through product discovery and purchases
- Live Agent Handoff: Seamlessly escalate to human agents via Kibo Helpdesk
- Multi-Tenant Support: Configure different agents per tenant and site
Key Components
| Component | Purpose |
|---|
| Kibo Helpdesk | Customer messaging platform for live chat and bot integration |
| Shopper Agent Admin | Web UI for managing agents, playbooks, and tools |
| Storefront Widget | Customer-facing chat interface embedded in storefronts |
| Tool Runtime | Backend APIs that execute commerce operations |
Architecture
Message Flow
- Customer sends message via Kibo Helpdesk widget
- Kibo Helpdesk forwards message to webhook endpoint
- Chat Middleware routes to the AI engine
- AI engine determines intent and calls appropriate tools
- Tool Runtime executes commerce operations (orders, products, etc.)
- Response flows back through the chain to customer
Prerequisites
Before starting, ensure you have:
Accounts and Access
| Item | Description | Where to Get It |
|---|
| Kibo Tenant ID | Your Kibo tenant identifier | Kibo Admin Console |
| Kibo Site ID | Target site identifier | Kibo Admin Console |
| Kibo API Credentials | Client ID and Shared Secret | Kibo Developer Portal |
| Shopper Agent Admin URL | URL for the Admin UI | Provided by Kibo |
| Shopper Agent Backend URL | Webhook endpoint URL | Provided by Kibo |
| Kibo Helpdesk Instance | Helpdesk URL and credentials | Provided by Kibo |
What Kibo Provides
The following are managed by Kibo and pre-configured for your tenant:
- Cloud infrastructure
- AI agents and configuration
- Backend services (Chat Middleware, Tool Runtime)
- Agent definitions and base playbooks
Kibo Helpdesk serves as the messaging platform that connects customers with your AI agents. Your Kibo Helpdesk instance will be provisioned and configured by Kibo.
Step 1: Access Your Kibo Helpdesk Instance
Your Kibo representative will provide you with access credentials and the URL for your Helpdesk instance.
Step 2: Create an Inbox
- Log into Kibo Helpdesk
- Go to Settings > Inboxes
- Click Add Inbox
- Select Website as the channel type
- Configure:
- Website Name: Your storefront name
- Website Domain: Your storefront domain
- Widget Color: Match your brand
- Click Create Inbox
Step 3: Get Your Site Token
After creating the inbox:
- Go to Settings > Inboxes
- Click on your inbox
- Navigate to Configuration tab
- Copy the Website Token (this is your
HELPDESK_SITE_TOKEN)
This connects Kibo Helpdesk to the Kibo Agentic backend.
- Go to Settings > Integrations > Webhooks
- Click Add Webhook
- Configure:
- Webhook URL:
https://your-agentic-backend.com/webhook/chat/helpdesk
- Events to Subscribe:
message_created
conversation_updated
conversation_status_changed
- Click Add Webhook
- Go to Settings > Integrations > Agent Bots
- Create a new agent bot:
- Name:
Kibo AI Assistant
- Outgoing URL:
https://your-agentic-backend.com/webhook/chat/helpdesk
- Assign the bot to your inbox
Step 6: Enable Custom Attributes
Custom attributes allow session tracking between Kibo Helpdesk and Kibo Commerce.
- Go to Settings > Custom Attributes
- Create a new attribute:
- Name:
kibo-session-id
- Display Name:
Kibo Session ID
- Type:
Text
- Applies To:
Conversation
Kibo Helpdesk Configuration Summary
| Setting | Value | Where to Find |
|---|
| Site Token | HELPDESK_SITE_TOKEN | Inbox > Configuration |
| Base URL | Your Kibo Helpdesk URL | Provided by Kibo |
| Account ID | Number shown in URL | Settings page |
| Inbox ID | Number shown in inbox settings | Inbox > Settings |
Shopper Agent Admin UI
The Admin UI is used to configure agents, playbooks, tools, and safety settings.
Accessing the Admin UI
Navigate to your Shopper Agent Admin deployment:
https://your-admin-url/_agentadmin/
Step 1: Authentication
- Log in with your credentials
- Your user context will determine which GCP project and agents you can access
Step 2: Agent Selection
- From the Dashboard, click Agents
- Your configured agents will be listed
- Select the agent you want to configure
Step 3: Playbook Configuration
Playbooks define the conversational behavior of your agent.
Creating a Playbook
- Navigate to Playbooks in the agent menu
- Click Create Playbook
- Configure:
- Display Name: Descriptive name (e.g., “Order Status Handler”)
- Goal: What the playbook accomplishes
- Instructions: Step-by-step conversation flow
Playbook Instruction Syntax
Goal: Help customers check their order status
Instructions:
- Greet the customer warmly
- Ask for their order number or email address
- Use ${TOOL:GetOrderStatus} to retrieve order information
- Present the order status clearly including:
- Current status
- Shipping information
- Estimated delivery date
- Ask if they need help with anything else
- If they want to make changes, transfer to ${PLAYBOOK:Order Modifications}
Key Playbook Features
| Feature | Syntax | Description |
|---|
| Tool Reference | ${TOOL:ToolName} | Calls a configured tool |
| Playbook Reference | ${PLAYBOOK:PlaybookName} | Transfers to another playbook |
| Parameters | Input/Output definitions | Pass data between steps |
Tools connect your agent to backend functionality.
| Type | Use Case |
|---|
| OpenAPI | REST APIs with OpenAPI specification |
| Function | Custom functions with schema |
| Data Store | RAG-based document retrieval |
| Connector | Pre-built integrations |
- Navigate to Tools in the agent menu
- Click Create Tool
- Select OpenAPI as the type
- Configure:
- Display Name: Tool name (e.g., “Get Order Status”)
- OpenAPI Spec: Paste your OpenAPI/Swagger specification
- Authentication: Configure as needed
| Method | Configuration |
|---|
| API Key | Key name and value |
| OAuth 2.0 | Client ID, Secret, Token URL, Scopes |
| Bearer Token | Token value |
| Service Agent | GCP service account |
Step 5: Safety Settings
Configure content safety to protect users and your brand.
- Navigate to Settings in the agent menu
- Configure Safety Filters:
| Filter | Recommended Level |
|---|
| Hate Speech | Block Some |
| Dangerous Content | Block Few |
| Sexually Explicit | Block Some |
| Harassment | Block Some |
-
Configure Banned Phrases:
- Add phrases that should never appear in responses
- Choose partial or exact match
-
Enable Prompt Security (recommended):
- Protects against prompt injection attacks
Step 6: Set Start Playbook
- From the Playbooks list, find your main entry playbook
- Click the menu and select Set as Start Playbook
- This playbook will be the first to handle conversations
The widget embeds Kibo Helpdesk into your storefront for customer interactions.
Step 1: Environment Configuration
Add to your storefront’s .env.local file:
# Kibo Helpdesk Configuration
HELPDESK_SITE_TOKEN=your_site_token_from_helpdesk
HELPDESK_BASE_URL=https://your-helpdesk-url.kibocommerce.com
Step 2: Next.js Configuration
Ensure next.config.js exposes the variables:
module.exports = {
publicRuntimeConfig: {
helpdeskSiteToken: process.env.HELPDESK_SITE_TOKEN,
helpdeskBaseUrl: process.env.HELPDESK_BASE_URL,
},
}
Create components/core/HelpdeskWidget/HelpdeskWidget.tsx:
import { useEffect, useRef, useCallback } from 'react'
import getConfig from 'next/config'
import { useAuthContext } from '@/context'
declare global {
interface Window {
helpdeskSettings: any
helpdeskSDK: any
$helpdesk: any
}
}
const HelpdeskWidget = () => {
const { publicRuntimeConfig } = getConfig()
const { helpdeskSiteToken, helpdeskBaseUrl } = publicRuntimeConfig
const { isAuthenticated, user } = useAuthContext()
const hasSetUser = useRef(false)
const createKiboSession = useCallback(async () => {
try {
const response = await fetch('/api/create-chat-session', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
})
const data = await response.json()
if (data.id && window.$helpdesk) {
window.$helpdesk.setCustomAttributes({
'kibo-session-id': data.id,
})
}
} catch (error) {
console.error('Failed to create chat session:', error)
}
}, [])
const handleHelpdeskReady = useCallback(() => {
if (user && window.$helpdesk && !hasSetUser.current) {
window.$helpdesk.setUser(user.id, {
email: user.emailAddress,
name: `${user.firstName || ''} ${user.lastName || ''}`.trim(),
})
hasSetUser.current = true
}
}, [user])
const handleStartConversation = useCallback(() => {
createKiboSession()
}, [createKiboSession])
useEffect(() => {
if (!helpdeskSiteToken || !isAuthenticated) return
// Configure Kibo Helpdesk
window.helpdeskSettings = {
hideMessageBubble: false,
position: 'right',
locale: 'en',
type: 'standard',
}
// Load Helpdesk SDK
const script = document.createElement('script')
script.src = `${helpdeskBaseUrl}/packs/js/sdk.js`
script.async = true
script.defer = true
script.onload = () => {
window.helpdeskSDK.run({
websiteToken: helpdeskSiteToken,
baseUrl: helpdeskBaseUrl,
})
}
document.body.appendChild(script)
// Event listeners
window.addEventListener('helpdesk:ready', handleHelpdeskReady)
window.addEventListener('helpdesk:on-start-conversation', handleStartConversation)
return () => {
window.removeEventListener('helpdesk:ready', handleHelpdeskReady)
window.removeEventListener('helpdesk:on-start-conversation', handleStartConversation)
}
}, [helpdeskSiteToken, helpdeskBaseUrl, isAuthenticated, handleHelpdeskReady, handleStartConversation])
if (!helpdeskSiteToken || !isAuthenticated) return null
return null // Widget renders itself via script
}
export default HelpdeskWidget
Step 4: Create the Session API Endpoint
Create pages/api/create-chat-session.ts:
import type { NextApiRequest, NextApiResponse } from 'next'
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method !== 'POST') {
return res.status(405).json({ error: 'Method not allowed' })
}
try {
// Get auth token from your Kibo API client
const authToken = await getKiboAuthToken()
// Get user info from session/cookie
const userInfo = getUserFromRequest(req)
const response = await fetch(
`https://${process.env.KIBO_API_HOST}/api/commerce/chat/sessions/`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${authToken}`,
'Content-Type': 'application/json',
'x-vol-locale': 'en-US',
},
body: JSON.stringify({
userId: userInfo.userId,
accountId: userInfo.accountId,
data: {},
isAnonymous: false,
}),
}
)
const data = await response.json()
return res.status(200).json(data)
} catch (error) {
console.error('Session creation error:', error)
return res.status(500).json({ error: 'Failed to create session' })
}
}
In your DefaultLayout.tsx:
import { HelpdeskWidget } from '@/components/core'
export default function DefaultLayout({ children }) {
return (
<>
<Header />
<main>{children}</main>
<HelpdeskWidget />
<Footer />
</>
)
}
Testing Your Implementation
Test 1: Admin UI Agent Testing
- Log into Shopper Agent Admin
- Select your agent
- Navigate to Agent Testing
- Select your site from the dropdown
- Send test messages:
- “What’s my order status?”
- “I want to return an item”
- “Help me find a product”
- Verify:
- Responses are contextually appropriate
- Tools are being called correctly
- No safety filter blocks on normal queries
Test 2: Kibo Helpdesk Integration
- Open Kibo Helpdesk dashboard
- Go to your inbox
- Trigger a test conversation via the widget
- Verify in Kibo Helpdesk:
- Message appears in inbox
- Bot responds appropriately
- Custom attribute
kibo-session-id is set
- Navigate to your storefront
- Log in as a customer
- Click the chat widget
- Start a conversation
- Verify:
- Widget loads correctly
- Messages send and receive
- Agent responds with relevant information
- Order lookups work with real data
Test 4: End-to-End Verification
Complete this checklist to verify your full implementation:
-
Session Creation
- Open browser Developer Tools (Network tab)
- Start a new conversation in the widget
- Verify
/api/create-chat-session returns a session ID
-
Kibo Helpdesk Custom Attributes
- In Kibo Helpdesk dashboard, open a test conversation
- Check that
kibo-session-id attribute is populated
-
Tool Functionality
- Ask the agent about an existing order
- Verify it returns real order data from your Kibo tenant
-
Safety Filters
- Test that normal queries are not blocked
- Verify banned phrases (if configured) are filtered
Test Scenarios to Try
| Scenario | Example Query | Expected Behavior |
|---|
| Order lookup | ”What’s the status of my last order?” | Returns order details |
| Product search | ”Show me red dresses under $100” | Returns matching products |
| Return request | ”I want to return my recent purchase” | Initiates return flow |
| Store inventory | ”Is this available at a store near me?” | Shows nearby inventory |
| Handoff | ”I want to speak to a human” | Transfers to live agent |
API Reference
This section documents APIs relevant to your storefront integration. The backend Tool Runtime APIs and Admin APIs are used internally and do not require direct integration.
Storefront Session API
Your storefront needs to call the Kibo Chat Session API to create sessions. This is typically done through a proxy endpoint in your Next.js API routes.
Create Session (called by your /api/create-chat-session endpoint)
POST https://{KIBO_API_HOST}/api/commerce/chat/sessions/
Headers:
Authorization: Bearer {kibo-api-token}
Content-Type: application/json
x-vol-locale: en-US
Body:
{
"userId": "string", // From authenticated user
"accountId": number, // From authenticated user
"data": {}, // Optional custom data
"isAnonymous": boolean // false for logged-in users
}
Response:
{
"id": "session-uuid", // Use this as kibo-session-id in Kibo Helpdesk
"userId": "string",
"accountId": number,
"expires": "datetime"
}
Kibo Helpdesk Webhook URL
Configure this URL in Kibo Helpdesk settings (you don’t call it directly):
POST https://{agentic-backend-url}/webhook/chat/helpdesk
This endpoint is provided by Kibo. You configure it as the webhook URL in your Kibo Helpdesk inbox settings.
The following tools are available to agents and can be enabled/disabled in the Admin UI:
| Tool | Description |
|---|
| GetOrderStatus | Retrieve order status and details |
| CancelOrder | Cancel a customer order |
| CreateReturnLabel | Initiate a return process |
| FindOrderByShipmentNumber | Search orders by shipment tracking |
| ProductSearch | Search the product catalog |
| GetProductDetails | Get detailed product information |
| NearbyProductInventory | Check inventory at nearby locations |
| GetCart | Retrieve shopping cart contents |
| AddToCart | Add items to cart |
| InitiateCheckout | Start the checkout process |
Tools are configured and enabled through the Admin UI. The agent automatically uses available tools based on conversation context.
Environment Variables Reference
Storefront Environment Variables
These are the environment variables you need to configure in your headless storefront:
# Kibo Helpdesk Integration (Required for Shopper Agent)
HELPDESK_SITE_TOKEN=your-site-token # From Kibo Helpdesk Inbox Configuration
HELPDESK_BASE_URL=https://your-helpdesk.kibocommerce.com # Provided by Kibo
# Kibo API (You should already have these configured)
KIBO_API_HOST=your-tenant-api-host
KIBO_CLIENT_ID=your-client-id
KIBO_SHARED_SECRET=your-shared-secret
| Variable | Required | Description |
|---|
HELPDESK_SITE_TOKEN | Yes | Website token from your Kibo Helpdesk inbox |
HELPDESK_BASE_URL | Yes | Your Kibo Helpdesk URL (provided by Kibo) |
KIBO_API_HOST | Yes | Your Kibo API host |
KIBO_CLIENT_ID | Yes | Your application client ID |
KIBO_SHARED_SECRET | Yes | Your application shared secret |
Support
For additional assistance, contact your Kibo representative.