Platform Provisioning: Low-Level Design¶
Executive Summary¶
This chapter provides step-by-step configuration instructions for deploying KidsWear India's greenfield Webex Contact Center solution. Every configuration step incorporates the security and compliance requirements defined in Chapter 3. This is a cookbook-style guide designed for an MSME with limited IT expertise, ensuring nothing is missed during implementation.
Provisioning Phases: 1. Webex Control Hub and Tenant Setup (with security baseline) 2. Webex Calling Configuration (India Cloud Connect) 3. Webex Contact Center Provisioning (Entry Points, Queues, Flows) 4. Security Configuration (Authentication, RBAC, API security) 5. Google Cloud Platform Setup (Dialogflow CX, Vertex AI) 6. Zendesk CRM Integration (CTI connector) 7. Agent Desktop Deployment (WebRTC with security) 8. Digital Channel Configuration (WhatsApp, Web Chat) 9. Monitoring and Dashboard Setup 10. Pre-Go-Live Validation
1. Prerequisites and Pre-Provisioning Checklist¶
1.1 Vendor Contracts and Access¶
Before starting provisioning, ensure the following are complete:
| Prerequisite | Owner | Status | Notes |
|---|---|---|---|
| Cisco Partner Contract Signed | KidsWear India | [ ] PENDING | Includes Webex Calling + CC licenses |
| Cloud Connect Partner Agreement | Cisco Partner | [ ] PENDING | Airtel/Tata Communications/Tata Tele Business Services for PSTN |
| Toll-Free DIDs Allocated | Telco Partner | [ ] PENDING | 2 x 1800-XXX-XXXX numbers |
| GCP Account Created | KidsWear India | [ ] PENDING | Billing enabled, project created |
| Zendesk Tenant Provisioned | KidsWear India | [ ] PENDING | Suite Professional licenses |
| Domain Verified | KidsWear India | [ ] PENDING | kidswearindia.com or similar |
| Admin Email Accounts | KidsWear India | [ ] PENDING | admin@kidswearindia.com |
| Agent Email Accounts | KidsWear India | [ ] PENDING | 50 x agent emails (agent01@...) |
1.2 Technical Prerequisites¶
| Item | Requirement | Verification |
|---|---|---|
| Webex Control Hub Access | Full admin account from Cisco partner | Login successful |
| GCP Console Access | Owner or Editor role on project | Console accessible |
| Zendesk Admin Access | Admin user credentials | Login successful |
| DNS Management | Ability to add TXT/CNAME records | Access verified |
| SSL Certificate | For custom domains (if used) | Certificate obtained |
| Agent Laptop Specs | Min: i5, 8GB RAM, Chrome browser | Sample tested |
| Internet Speed | 25 Mbps minimum at each location | Speed test completed |
1.3 Information Gathering Template¶
Complete this before starting provisioning:
KIDSWEAR INDIA - PROVISIONING INFORMATION SHEET
Organization Details:
- Legal Name: KidsWear India Pvt Ltd
- Primary Domain: kidswearindia.com
- Admin Email: __________________
- Technical Contact: __________________
- Phone: __________________
Webex Tenant Information:
- Org ID (from partner): __________________
- Control Hub URL: admin.webex.com
- Region: India (Mumbai/Chennai)
PSTN Details:
- Cloud Connect Partner: __________________
- Toll-Free 1 (Sales): 1800-___-____
- Toll-Free 2 (Support): 1800-___-____
- SIP Trunk Credentials: (from partner)
GCP Project:
- Project ID: __________________
- Project Name: kidswear-ccai-prod
- Region: asia-south1 (Mumbai)
- Service Account Email: __________________
Zendesk:
- Subdomain: kidswearindia.zendesk.com
- Admin Email: __________________
- API Token: __________________
Agent Information:
- Total Agents: 50
- Sales Team: 30 agents
- Support Team: 20 agents
- Supervisors: 2
- IT Admin: 2
- Compliance Officer: 1
2. Webex Control Hub and Tenant Setup¶
2.1 Initial Tenant Access¶
Step 1: Access Control Hub
1. Open browser: https://admin.webex.com
2. Login with admin credentials provided by Cisco partner
3. First login will prompt for password change
- Old password: [temporary from partner]
- New password: [minimum 12 characters, uppercase, lowercase, number, special]
- Example: KidsWear@2024Secure!
4. Enable MFA immediately (next step)
Step 2: Enable Multi-Factor Authentication (SECURITY CRITICAL)
1. Navigate: Control Hub > Organization Settings > Security
2. Find: "Multi-factor Authentication"
3. Click: "Enable MFA"
4. Configuration:
- Require MFA for: "All administrators"
- Authentication methods: "Authenticator app" (recommended)
- Allow: "Google Authenticator" or "Microsoft Authenticator"
5. Save changes
6. Each admin must:
a. Install authenticator app on phone
b. Scan QR code from Control Hub
c. Enter 6-digit code to verify
d. Save backup codes securely
Step 3: Verify Organization Settings
1. Navigate: Control Hub > Organization Settings
2. Verify/Update:
- Organization Name: KidsWear India Pvt Ltd
- Country: India
- Timezone: Asia/Kolkata (IST)
- Language: English (India)
- Date Format: DD/MM/YYYY
3. Click "Save"
2.2 Domain Verification¶
Step 4: Add and Verify Domain
1. Navigate: Control Hub > Organization Settings > Domains
2. Click: "Add Domain"
3. Enter: kidswearindia.com
4. Choose verification method: "DNS TXT Record"
5. Copy the TXT record value (example):
cisco-site-verification=xxxxxxxxxxxxxx
6. Add to DNS:
- Login to domain registrar (GoDaddy, Namecheap, etc.)
- Add TXT record:
Host: @ (or blank)
Type: TXT
Value: cisco-site-verification=xxxxxxxxxxxxxx
TTL: 3600
7. Wait 15-30 minutes for DNS propagation
8. Click "Verify" in Control Hub
9. Status should change to "Verified"
2.3 Security Baseline Configuration¶
Step 5: Configure Session Security
1. Navigate: Control Hub > Organization Settings > Security
2. Configure:
Session Timeout:
- Idle Timeout: 30 minutes
- Maximum Session Duration: 12 hours
- Click "Save"
Password Policy:
- Minimum Length: 12 characters
- Require uppercase: Yes
- Require lowercase: Yes
- Require numbers: Yes
- Require special characters: Yes
- Password expiry: 90 days
- Password history: 12 (cannot reuse last 12)
- Click "Save"
Login Restrictions:
- Failed login attempts before lockout: 5
- Lockout duration: 30 minutes
- Click "Save"
Step 6: Configure Audit Logging
1. Navigate: Control Hub > Troubleshooting > Audit Logs
2. Verify: Audit logging is enabled by default
3. Configure alerts:
- Navigate: Control Hub > Alerts Center
- Create alert rule:
Name: "Admin Access Alert"
Event: "Administrator login"
Notify: admin@kidswearindia.com
- Create alert rule:
Name: "Security Setting Change"
Event: "Security settings modified"
Notify: admin@kidswearindia.com
4. Test: Make a small change and verify email received
2.4 User Provisioning¶
Step 7: Create User Accounts
METHOD 1: Manual Entry (for small number of users)
1. Navigate: Control Hub > Users
2. Click: "Add Users"
3. Choose: "Manually Add Users"
4. Enter user details:
- Email: agent01@kidswearindia.com
- First Name: [Agent Name]
- Last Name: [Agent Surname]
- Display Name: Agent 01
5. Assign licenses:
- [ ] Webex Calling Professional
- [ ] Webex Contact Center Premium Agent
6. Click "Add"
7. Repeat for all 50 agents + 2 supervisors
METHOD 2: CSV Import (Recommended for 50+ users)
1. Navigate: Control Hub > Users
2. Click: "Add Users"
3. Choose: "Import CSV"
4. Download template CSV
5. Fill in Excel:
email,firstName,lastName,displayName,licenses
agent01@kidswearindia.com,Priya,Sharma,Agent 01,webex_calling_professional;webex_cc_premium_agent
agent02@kidswearindia.com,Rahul,Kumar,Agent 02,webex_calling_professional;webex_cc_premium_agent
...
supervisor01@kidswearindia.com,Anil,Gupta,Supervisor 01,webex_calling_professional;webex_cc_supervisor
supervisor02@kidswearindia.com,Sunita,Patel,Supervisor 02,webex_calling_professional;webex_cc_supervisor
6. Save as CSV (UTF-8)
7. Upload to Control Hub
8. Review mapping
9. Click "Import"
10. Verify all users created successfully
Step 8: Configure User Groups
1. Navigate: Control Hub > Users > User Groups
2. Create Group 1:
- Name: "Sales_Agents"
- Description: "B2C and B2B Sales Team"
- Add members: [Select 30 sales agents]
- Click "Create"
3. Create Group 2:
- Name: "Support_Agents"
- Description: "Order Status and Complaints Team"
- Add members: [Select 20 support agents]
- Click "Create"
4. Create Group 3:
- Name: "Supervisors"
- Description: "Team Supervisors"
- Add members: [Select 2 supervisors]
- Click "Create"
5. Create Group 4:
- Name: "Admins"
- Description: "System Administrators"
- Add members: [Select admin users]
- Click "Create"
3. Webex Calling Configuration (India Region)¶
3.1 Webex Calling Service Activation¶
Step 9: Enable Webex Calling
1. Navigate: Control Hub > Services > Calling
2. If not already enabled:
- Click "Get Started"
- Select Location: India
- PSTN Option: "Cloud Connected PSTN"
- Confirm Cisco partner has provisioned
3. Verify service status: "Active"
Step 10: Configure Location
1. Navigate: Control Hub > Services > Calling > Locations
2. Click: "Add Location"
3. Enter details:
- Location Name: "KidsWear India - Main"
- Address: [Company registered address]
- City: [City]
- State: [State]
- Country: India
- Postal Code: [PIN Code]
- Time Zone: Asia/Kolkata (UTC+5:30)
4. Emergency Services:
- Emergency Number: 112 (India)
- Note: Configure as per local requirements
5. Click "Create"
3.2 Cloud Connect PSTN Setup¶
Step 11: Configure Cloud Connected PSTN
1. Navigate: Control Hub > Services > Calling > PSTN
2. Select: "Cloud Connected PSTN"
3. Choose Provider:
- Select from list: [Airtel/Tata Communications/Tata Tele Business Services - as per contract]
- If not listed, Cisco partner must add
4. Enter SIP Trunk details (from Cloud Connect partner):
- Trunk Group Name: "KidsWear_India_Trunk"
- Primary SBC: [Partner provided IP/FQDN]
- Secondary SBC: [Partner provided IP/FQDN]
- Protocol: SIP over TLS (SIPS)
- Port: 5061
- Concurrent Sessions: 50
5. Authentication:
- Username: [From partner]
- Password: [From partner]
- Realm: [From partner]
6. Codecs (in priority order):
- G.711 A-law (India standard)
- G.711 U-law
- G.729
- Opus (for WebRTC)
7. Click "Save"
8. Verify trunk status: "Online"
Step 12: Add Toll-Free Numbers (DIDs)
1. Navigate: Control Hub > Services > Calling > Numbers
2. Click: "Add Numbers"
3. Source: "Cloud Connected PSTN"
4. Enter numbers:
- Number 1: 18001234567 (Sales)
- Number 2: 18001234568 (Support)
5. Assign to location: "KidsWear India - Main"
6. Click "Add"
7. Verify numbers appear in list with status "Active"
3.3 Call Routing Configuration¶
Step 13: Create Auto Attendant (Fallback)
NOTE: Primary IVR will be in Webex Contact Center.
This is a fallback in case CC is unavailable.
1. Navigate: Control Hub > Services > Calling > Features > Auto Attendant
2. Click: "Create Auto Attendant"
3. Settings:
- Name: "KidsWear Main AA"
- Location: KidsWear India - Main
- Phone Number: [Leave blank - CC will handle]
- Language: English (India)
- Time Zone: Asia/Kolkata
4. Business Hours Greeting:
- Upload audio or use Text-to-Speech:
"Welcome to KidsWear India. Please hold for the next available agent."
5. After Hours Greeting:
- Upload audio or use Text-to-Speech:
"Thank you for calling KidsWear India. Our office is currently closed.
Please call back during business hours, 9 AM to 9 PM IST."
6. Click "Create"
4. Webex Contact Center Provisioning¶
4.1 Webex CC Tenant Setup¶
Step 14: Activate Webex Contact Center
1. Navigate: Control Hub > Services > Contact Center
2. If first time:
- Click "Get Started"
- Region Selection: CRITICAL - Choose "India (Mumbai)"
- Confirm data residency
- Accept terms and conditions
3. Wait for provisioning (can take 30-60 minutes)
4. Status should show: "Active"
5. Note the Webex CC tenant ID: ________________
Step 15: Configure Tenant Settings
1. Navigate: Contact Center > Tenant Settings
2. Configure:
General Settings:
- Tenant Name: KidsWear India Contact Center
- Time Zone: Asia/Kolkata
- Date Format: DD/MM/YYYY
- Default Language: English (India)
Recording Settings (SECURITY - Chapter 3):
- Recording: Enabled
- Recording Scope: All Calls (100%)
- Recording Storage: Webex Cloud (India DC)
- Retention Period: 90 days
- Auto-Delete: Enabled
- Encryption: AES-256 at rest
- PCI Pause/Resume: Enabled
Desktop Settings:
- Idle Timeout: 30 minutes
- Wrap-up Timeout: 120 seconds (2 minutes max)
- Auto Wrap-up: Disabled (agent must manually end)
3. Click "Save"
4.2 User and Team Configuration¶
Step 16: Create Teams
1. Navigate: Contact Center > Provisioning > Teams
2. Create Team 1:
- Click "New Team"
- Name: "Sales_Team"
- Site: Default
- Type: Agent-based
- Capacity: 30
- Click "Save"
3. Create Team 2:
- Click "New Team"
- Name: "Support_Team"
- Site: Default
- Type: Agent-based
- Capacity: 20
- Click "Save"
4. Create Team 3:
- Click "New Team"
- Name: "Supervisor_Team"
- Site: Default
- Type: Supervisor
- Capacity: 5
- Click "Save"
Step 17: Configure User Profiles (Agent Desktop)
1. Navigate: Contact Center > Provisioning > User Profiles
2. Create Profile 1 (Agents):
- Click "New User Profile"
- Name: "Agent_Profile"
- Description: "Standard agent desktop profile"
Module Settings:
[x] Agent Desktop
[x] Buddy Teams (view team members)
[x] Address Book
[ ] Campaign Management (NO - not needed initially)
[ ] Outdial ANI (NO - not needed initially)
Desktop Layout:
- Use Default Layout (or customize later)
Timeout Settings:
- Session Timeout: 1800 seconds (30 minutes)
- Wrap-up Auto-close: 120 seconds
Click "Save"
3. Create Profile 2 (Supervisors):
- Click "New User Profile"
- Name: "Supervisor_Profile"
- Description: "Supervisor monitoring profile"
Module Settings:
[x] Agent Desktop
[x] Buddy Teams
[x] Address Book
[x] Team Performance Monitoring
[x] Agent State Monitoring
[x] Call Monitoring (Listen/Whisper/Barge)
[x] Recording Access
Click "Save"
Step 18: Assign Users to CC Profiles
1. Navigate: Contact Center > Provisioning > Users
2. For each agent:
- Click on user name
- Contact Center Settings:
- Site: Default
- Team: Sales_Team or Support_Team
- User Profile: Agent_Profile
- Multimedia Profile: (default)
- Click "Save"
3. For supervisors:
- Click on user name
- Contact Center Settings:
- Site: Default
- Team: Supervisor_Team
- User Profile: Supervisor_Profile
- Click "Save"
BULK UPDATE (if available):
1. Export user list to CSV
2. Add columns: Site, Team, UserProfile
3. Fill in assignments
4. Import updated CSV
4.3 Skills and Skill Profiles¶
Step 19: Create Skills
1. Navigate: Contact Center > Provisioning > Skills
2. Create Skill 1:
- Click "New Skill"
- Name: "B2C_Sales"
- Description: "Retail direct customer sales"
- Type: Text (enumeration not needed)
- Click "Save"
3. Create Skill 2:
- Name: "B2B_Bulk"
- Description: "School bulk order handling"
- Click "Save"
4. Create Skill 3:
- Name: "Order_Status"
- Description: "Order tracking and status"
- Click "Save"
5. Create Skill 4:
- Name: "Complaints"
- Description: "Customer complaint handling"
- Click "Save"
6. Create Skill 5:
- Name: "Hindi"
- Description: "Hindi language support"
- Click "Save"
7. Create Skill 6:
- Name: "English"
- Description: "English language support"
- Click "Save"
8. Create Skill 7:
- Name: "Digital_Channels"
- Description: "WhatsApp, Chat, Email handling"
- Click "Save"
Step 20: Create Skill Profiles
1. Navigate: Contact Center > Provisioning > Skill Profiles
2. Create Profile 1:
- Click "New Skill Profile"
- Name: "Sales_B2C_Hindi"
- Skills:
- B2C_Sales: Yes
- Hindi: Yes
- English: Yes
- Click "Save"
3. Create Profile 2:
- Name: "Sales_B2B_Hindi"
- Skills:
- B2B_Bulk: Yes
- B2C_Sales: Yes (backup)
- Hindi: Yes
- English: Yes
- Click "Save"
4. Create Profile 3:
- Name: "Support_Orders"
- Skills:
- Order_Status: Yes
- Complaints: Yes (backup)
- Hindi: Yes
- English: Yes
- Click "Save"
5. Create Profile 4:
- Name: "Support_Complaints"
- Skills:
- Complaints: Yes
- Order_Status: Yes (backup)
- Hindi: Yes
- English: Yes
- Click "Save"
6. Create Profile 5:
- Name: "Digital_Support"
- Skills:
- Digital_Channels: Yes
- Order_Status: Yes
- Complaints: Yes
- Hindi: Yes
- English: Yes
- Click "Save"
Step 21: Assign Skills to Agents
1. Navigate: Contact Center > Provisioning > Users
2. For each sales agent:
- Click user
- Skill Profile: Sales_B2C_Hindi (or Sales_B2B_Hindi)
- Click "Save"
3. For each support agent:
- Click user
- Skill Profile: Support_Orders (or Support_Complaints)
- Click "Save"
Create a mapping spreadsheet:
Agent Name | Email | Team | Skill Profile | Notes
Agent 01 | agent01@... | Sales | Sales_B2C_Hindi | Primary B2C
Agent 02 | agent02@... | Sales | Sales_B2B_Hindi | School orders specialist
...
Agent 31 | agent31@... | Support | Support_Orders | Order tracking
Agent 32 | agent32@... | Support | Support_Complaints | Complaints specialist
...
4.4 Entry Points and Queues¶
Step 22: Create Entry Points
1. Navigate: Contact Center > Provisioning > Entry Points
2. Create Entry Point 1 (Sales):
- Click "New Entry Point"
- Name: "Sales_Voice_EP"
- Description: "Inbound sales voice calls"
- Channel Type: Telephony
- Asset Name: "Sales_Voice_Asset"
- Service Level Threshold: 30 seconds
- Click "Save"
- Note Entry Point ID: _______________
3. Create Entry Point 2 (Support):
- Click "New Entry Point"
- Name: "Support_Voice_EP"
- Description: "Inbound support voice calls"
- Channel Type: Telephony
- Asset Name: "Support_Voice_Asset"
- Service Level Threshold: 30 seconds
- Click "Save"
- Note Entry Point ID: _______________
4. Create Entry Point 3 (Digital):
- Click "New Entry Point"
- Name: "Digital_EP"
- Description: "WhatsApp, Chat, Email"
- Channel Type: Chat (generic digital)
- Asset Name: "Digital_Asset"
- Service Level Threshold: 15 seconds
- Click "Save"
- Note Entry Point ID: _______________
Step 23: Create Queues
1. Navigate: Contact Center > Provisioning > Queues
2. Create Queue 1:
- Click "New Queue"
- Name: "Sales_B2C_Queue"
- Description: "Retail customer sales inquiries"
- Channel Type: Telephony
- Queue Type: Inbound
- Service Level Threshold: 30 seconds
- Maximum Time in Queue: 300 seconds (5 min)
- Skills-Based Routing: Yes
- Skill Requirements:
- B2C_Sales: Required
- Team: Sales_Team
- Click "Save"
3. Create Queue 2:
- Name: "Sales_B2B_Queue"
- Description: "School bulk orders"
- Service Level: 20 seconds (higher priority)
- Maximum Time: 180 seconds
- Skill Requirements:
- B2B_Bulk: Required
- Team: Sales_Team
- Click "Save"
4. Create Queue 3:
- Name: "Support_Orders_Queue"
- Description: "Order status inquiries"
- Service Level: 30 seconds
- Maximum Time: 300 seconds
- Skill Requirements:
- Order_Status: Required
- Team: Support_Team
- Click "Save"
5. Create Queue 4:
- Name: "Support_Complaints_Queue"
- Description: "Customer complaints"
- Service Level: 20 seconds (priority)
- Maximum Time: 240 seconds
- Skill Requirements:
- Complaints: Required
- Team: Support_Team
- Click "Save"
6. Create Queue 5:
- Name: "Digital_Chat_Queue"
- Description: "WhatsApp and web chat"
- Channel Type: Chat
- Service Level: 15 seconds
- Maximum Time: 120 seconds
- Skill Requirements:
- Digital_Channels: Required
- Team: Support_Team (or create Digital_Team)
- Click "Save"
Step 24: Map Entry Points to Numbers
1. Navigate: Contact Center > Provisioning > Entry Point Mapping
2. Map Sales:
- Click "New Mapping"
- Entry Point: Sales_Voice_EP
- Dial Number: 18001234567
- Click "Save"
3. Map Support:
- Click "New Mapping"
- Entry Point: Support_Voice_EP
- Dial Number: 18001234568
- Click "Save"
4. Verify:
- Both toll-free numbers mapped to entry points
- Status: Active
4.5 IVR Flow Design¶
Step 25: Access Flow Designer
1. Navigate: Contact Center > Flows
2. Click: "Create Flow"
3. Select: "Start from blank"
4. Flow Name: "Sales_IVR_Flow_v1"
5. Description: "Sales hybrid IVR with Dialogflow integration"
6. Click "Create"
7. Flow Designer canvas opens
Step 26: Design Sales IVR Flow
FLOW: Sales_IVR_Flow_v1
START
|
v
+----------------------------------+
| Activity: NewPhoneContact |
| (Automatically added) |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Set Variable |
| Name: "Set_Consent_Status" |
| Variable: consent_given |
| Value: "pending" |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Play Message |
| Name: "Welcome_Consent" |
| Text-to-Speech: |
| "Welcome to KidsWear India. |
| This call may be recorded for |
| quality and training purposes. |
| By continuing, you consent to |
| data processing as per our |
| privacy policy. |
| Press 1 to continue. |
| Press 2 to opt out of recording."|
| Language: en-IN |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Collect Digits |
| Name: "Collect_Consent" |
| Variable: consent_choice |
| Min Digits: 1 |
| Max Digits: 1 |
| Timeout: 10 seconds |
+----------------------------------+
|
+-------+--------+
| |
v v
[1 pressed] [2 pressed]
| |
v v
+-------------+ +------------------+
| Set Variable| | Set Variable |
| consent= | | consent= |
| "enabled" | | "disabled" |
+-------------+ +------------------+
| |
v v
+-------------+ +------------------+
| Start | | Pause Recording |
| Recording | | (or skip start) |
+-------------+ +------------------+
| |
+--------+-------+
|
v
+----------------------------------+
| Activity: Play Message |
| Name: "Main_Menu" |
| Text-to-Speech: |
| "You can say what you need, |
| or press 1 for new order, |
| press 2 for bulk school order, |
| press 3 to speak with an agent."|
| Language: en-IN |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Collect Digits |
| Name: "Menu_Choice" |
| Variable: menu_selection |
| Min Digits: 1 |
| Max Digits: 1 |
| Timeout: 5 seconds |
| Speech Input: ENABLED |
+----------------------------------+
|
+-------+-------+-------+
| | | |
v v v v
[1] [2] [3] [Speech]
| | | |
v v v v
Set Set Set HTTP
intent= intent= intent= Request
"New_ "Bulk_ "Agent" to
Order" Order" Dialogflow
| | | |
+-------+-------+-------+
|
v
+----------------------------------+
| Activity: HTTP Request |
| Name: "Call_Dialogflow" |
| (Only if speech detected) |
| Method: POST |
| URL: https://dialogflow. |
| googleapis.com/v3/ |
| projects/{{PROJECT_ID}}/ |
| locations/asia-south1/ |
| agents/{{AGENT_ID}}/ |
| sessions/{{SESSION_ID}}: |
| detectIntent |
| Headers: |
| Authorization: Bearer {{TOKEN}}|
| Content-Type: application/json |
| Body: (see next step) |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Set Variable |
| Parse Dialogflow Response |
| intent = response.intent |
| sentiment = response.sentiment |
+----------------------------------+
|
v
+----------------------------------+
| Activity: HTTP Request |
| Name: "Call_VertexAI_Router" |
| Method: POST |
| URL: https://asia-south1- |
| aiplatform.googleapis.com/ |
| v1/projects/{{PROJECT_ID}}/ |
| locations/asia-south1/ |
| endpoints/{{ENDPOINT_ID}}: |
| predict |
| Body: { |
| "instances": [{ |
| "intent": "{{intent}}", |
| "sentiment": {{sentiment}}, |
| "customer_id": "{{ANI}}" |
| }] |
| } |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Set Variable |
| Parse Vertex AI Response |
| skill = response.skill |
| priority = response.priority |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Condition |
| Name: "Route_By_Intent" |
| IF intent = "New_Order" |
| -> Queue: Sales_B2C_Queue |
| ELSE IF intent = "Bulk_Order" |
| -> Queue: Sales_B2B_Queue |
| ELSE |
| -> Queue: Sales_B2C_Queue |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Queue Contact |
| Name: "Queue_to_Sales" |
| Queue: {{selected_queue}} |
| Priority: {{priority}} |
| Skills: {{skill}} |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Play Music |
| Name: "Hold_Music" |
| File: Default hold music |
| Loop: Yes |
+----------------------------------+
|
v
END FLOW (Agent answers)
Step 27: Save and Publish Flow
1. Click "Save" button (top right)
2. Review for errors (red indicators)
3. Fix any missing configurations
4. Click "Validate"
5. If validation passes:
- Click "Publish"
- Version: 1.0
- Notes: "Initial sales IVR with consent and Dialogflow"
6. Assign to Entry Point:
- Navigate: Contact Center > Provisioning > Entry Points
- Select: Sales_Voice_EP
- Routing Flow: Sales_IVR_Flow_v1
- Click "Save"
Step 28: Create Support IVR Flow (Similar Process)
FLOW: Support_IVR_Flow_v1
Same structure as Sales flow, but:
- Menu options:
Press 1: Order Status
Press 2: Complaints
Press 3: General Support
- Queues:
Order Status -> Support_Orders_Queue
Complaints -> Support_Complaints_Queue
General -> Support_Orders_Queue (default)
- Dialogflow intents:
Order_Tracking, Return_Request, Payment_Issue, Complaint
Follow same steps as Sales flow to create and publish.
4.6 Global Variables and Secure Settings¶
Step 29: Configure Global Variables (SECURITY)
1. Navigate: Contact Center > Flows > Global Variables
2. Create secure variables for API credentials:
Variable 1:
- Name: GCP_PROJECT_ID
- Type: String
- Value: kidswear-ccai-prod
- Reportable: No
- Secure: Yes
Variable 2:
- Name: GCP_AGENT_ID
- Type: String
- Value: [Your Dialogflow CX Agent ID]
- Secure: Yes
Variable 3:
- Name: GCP_AUTH_TOKEN
- Type: String
- Value: [Service Account Token - Base64 encoded]
- Secure: Yes
- Note: This should be refreshed programmatically
Variable 4:
- Name: VERTEX_ENDPOINT_ID
- Type: String
- Value: [Your Vertex AI Endpoint ID]
- Secure: Yes
Variable 5:
- Name: ZENDESK_API_TOKEN
- Type: String
- Value: [Base64 encoded email/token:api_token]
- Secure: Yes
3. Click "Save" for each variable
5. Google Cloud Platform Configuration¶
5.1 GCP Project Setup¶
Step 30: Create GCP Project
1. Access: https://console.cloud.google.com
2. Click: "Select a project" dropdown
3. Click: "New Project"
4. Enter:
- Project Name: kidswear-ccai-prod
- Project ID: kidswear-ccai-prod (auto-generated or custom)
- Organization: [Your organization or leave blank]
- Location: No organization (for MSME)
5. Click "Create"
6. Wait for project creation
7. Select the new project from dropdown
Step 31: Enable Required APIs
1. Navigate: APIs & Services > Library
2. Search and Enable each API:
a. Dialogflow API
- Search: "Dialogflow"
- Click: "Dialogflow API"
- Click: "Enable"
b. Cloud Speech-to-Text API
- Search: "Speech"
- Click: "Cloud Speech-to-Text API"
- Click: "Enable"
c. Cloud Text-to-Speech API
- Search: "Text-to-Speech"
- Click: "Cloud Text-to-Speech API"
- Click: "Enable"
d. Vertex AI API
- Search: "Vertex AI"
- Click: "Vertex AI API"
- Click: "Enable"
e. BigQuery API
- Search: "BigQuery"
- Click: "BigQuery API"
- Click: "Enable" (usually pre-enabled)
f. Cloud Storage API
- Search: "Cloud Storage"
- Click: "Cloud Storage JSON API"
- Click: "Enable"
3. Verify all APIs enabled:
- Navigate: APIs & Services > Enabled APIs
- Confirm all 6 APIs listed
Step 32: Create Service Account (SECURITY)
1. Navigate: IAM & Admin > Service Accounts
2. Click: "Create Service Account"
3. Enter:
- Name: kidswear-ccai-prod-sa
- ID: kidswear-ccai-prod-sa
- Description: Service account for Webex CC integration
4. Click: "Create and Continue"
5. Grant IAM Roles (PRINCIPLE OF LEAST PRIVILEGE):
- Click "Select a role"
- Add: "Dialogflow API Client" (NOT Admin)
- Click "Add another role"
- Add: "Vertex AI User" (NOT Admin)
- Click "Add another role"
- Add: "BigQuery Data Viewer" (for reports only)
6. Click: "Continue"
7. Skip "Grant users access" (not needed)
8. Click: "Done"
9. Create Key:
- Click on the service account you just created
- Navigate to "Keys" tab
- Click: "Add Key" > "Create new key"
- Key type: JSON
- Click: "Create"
- JSON file downloads automatically
- SAVE THIS FILE SECURELY (NEVER share via email)
10. Store key securely:
- Option A: Store in GCP Secret Manager
- Option B: Base64 encode and store in Webex secure variable
- Delete local copy after storing
5.2 Dialogflow CX Agent Configuration¶
Step 33: Create Dialogflow CX Agent
1. Navigate: Dialogflow CX Console
- URL: https://dialogflow.cloud.google.com/cx
2. Select project: kidswear-ccai-prod
3. Click: "Create Agent"
4. Configure:
- Display Name: KidsWear India Voice Agent
- Location: asia-south1 (Mumbai, India) - CRITICAL for data residency
- Default Language: English (India) - en-IN
- Time Zone: Asia/Kolkata
5. Click: "Create"
6. Note Agent ID from URL: projects/PROJECT/locations/asia-south1/agents/AGENT_ID
Step 34: Add Language Support (Hindi)
1. In Dialogflow CX console
2. Navigate: Agent Settings (gear icon)
3. Click: "Languages" tab
4. Click: "Add Language"
5. Select: "Hindi (India)" - hi-IN
6. Click: "Save"
7. Agent now supports English and Hindi
Step 35: Create Intents
1. Navigate: Manage > Intents
2. Create Intent 1:
- Click: "Create"
- Display Name: "New_Order"
- Training Phrases (English):
- "I want to place an order"
- "I need to buy clothes"
- "Can I order kids clothes"
- "I want to purchase"
- "New order please"
- Add 20-30 more variations
- Training Phrases (Hindi):
- "मुझे ऑर्डर करना है"
- "मुझे कपड़े खरीदने हैं"
- "मैं बच्चों के कपड़े खरीदना चाहता हूं"
- Add 20-30 more variations
- Click: "Save"
3. Create Intent 2:
- Display Name: "Bulk_Uniform_Order"
- Training Phrases:
- "I want to order school uniforms"
- "Bulk order for school"
- "School uniform inquiry"
- "We need uniforms for 500 students"
- "Wholesale uniform order"
- Click: "Save"
4. Create Intent 3:
- Display Name: "Order_Status"
- Training Phrases:
- "Where is my order"
- "Order status check"
- "When will my order arrive"
- "Track my order"
- "मेरा ऑर्डर कहां है"
- Click: "Save"
5. Create Intent 4:
- Display Name: "Complaint"
- Training Phrases:
- "I have a complaint"
- "I want to complain"
- "I am not happy with my order"
- "Wrong product received"
- "मुझे शिकायत है"
- Click: "Save"
6. Create Intent 5:
- Display Name: "Return_Request"
- Training Phrases:
- "I want to return"
- "Return my order"
- "I need a refund"
- "Exchange this product"
- Click: "Save"
Step 36: Create Entities
1. Navigate: Manage > Entity Types
2. Create Entity 1:
- Click: "Create"
- Display Name: "school_name"
- Entries:
- Delhi Public School, DPS
- Kendriya Vidyalaya, KV
- DAV School, DAV
- (Add common school names in your region)
- Fuzzy Matching: Yes
- Click: "Save"
3. Create Entity 2:
- Display Name: "quantity"
- Entries:
- 100, hundred
- 200, two hundred
- 500, five hundred
- (Add common quantities)
- Click: "Save"
4. Create Entity 3:
- Display Name: "product_type"
- Entries:
- School uniform, uniform
- Casual wear, casual clothes
- Shirt, shirts
- Pants, trousers
- Click: "Save"
Step 37: Create Flows
1. Navigate: Build > Flows
2. Default Start Flow:
- This is your main entry point
- Page: Start Page
3. Create Pages:
a. Start Page (Default):
- Entry Fulfillment: None (handled by Webex CC)
- Routes:
- Intent: New_Order -> Transition to: Order_Confirmation
- Intent: Bulk_Uniform_Order -> Transition to: Bulk_Order_Details
- Intent: Order_Status -> Transition to: Order_Tracking
- Intent: Complaint -> Transition to: Complaint_Handling
b. Create Page: Order_Confirmation
- Entry Fulfillment:
- Agent Says: "I'll help you place an order."
- Parameters:
- product_type (entity)
- quantity (entity)
- Routes:
- Condition: All parameters filled -> End session
c. Create Page: Bulk_Order_Details
- Entry Fulfillment:
- Agent Says: "I can help with bulk school orders."
- Parameters:
- school_name (entity)
- quantity (entity)
- Routes:
- Condition: All parameters filled -> End session
4. Click: "Save" for each page
Step 38: Enable Sentiment Analysis
1. Navigate: Agent Settings (gear icon)
2. Click: "Advanced" tab
3. Enable:
[x] Sentiment Analysis
4. Click: "Save"
Now every detectIntent response will include:
- sentimentAnalysisResult.queryTextSentiment.score (-1 to 1)
- sentimentAnalysisResult.queryTextSentiment.magnitude (0 to infinity)
Step 39: Test Dialogflow Agent
1. Click: "Test Agent" (chat bubble icon)
2. Test conversation:
You: "I want to order school uniforms"
Agent: [Should detect Bulk_Uniform_Order intent]
You: "मुझे ऑर्डर करना है"
Agent: [Should detect New_Order intent in Hindi]
3. Check intent detection accuracy
4. Check sentiment scores
5. Refine training phrases if needed
5.3 Vertex AI Predictive Routing Model¶
Step 40: Create BigQuery Dataset
1. Navigate: BigQuery Console
- URL: https://console.cloud.google.com/bigquery
2. Select project: kidswear-ccai-prod
3. Click: "Create Dataset"
4. Configure:
- Dataset ID: contact_center_analytics
- Location: asia-south1 (Mumbai)
- Default Table Expiration: Never
- Encryption: Google-managed key
5. Click: "Create Dataset"
Step 41: Create Training Data Table
1. In BigQuery Console
2. Select dataset: contact_center_analytics
3. Click: "Create Table"
4. Source: Empty table
5. Table Name: routing_training_data
6. Schema (Add fields):
- interaction_id (STRING)
- timestamp (TIMESTAMP)
- customer_intent (STRING)
- customer_sentiment (FLOAT)
- customer_tier (STRING)
- customer_ltv (FLOAT)
- call_hour (INTEGER)
- call_day (INTEGER)
- agent_id (STRING)
- queue_name (STRING)
- outcome (STRING) - "conversion", "fcr", "escalation", etc.
- handle_time (INTEGER)
- csat_score (FLOAT)
7. Click: "Create Table"
8. For initial training:
- Insert synthetic data or
- Wait for real data from first month of operations
- Minimum 1000 rows for basic model
Step 42: Create Vertex AI Model (Simplified)
NOTE: Full ML model creation requires data scientist expertise.
For MSME, start with rule-based routing in Webex CC Flow.
Use Vertex AI as Phase 2 after collecting 3-6 months of data.
SIMPLIFIED APPROACH FOR GO-LIVE:
1. Create a simple Vertex AI endpoint that returns rule-based decisions
2. Navigate: Vertex AI > Endpoints
3. For Phase 1, use Webex CC Flow conditions instead of ML:
In Webex CC Flow:
+----------------------------------+
| Activity: Condition |
| Name: "Simple_Routing_Rules" |
| IF sentiment < -0.5 |
| -> priority = 10 (highest) |
| -> skill = "Complaints" |
| ELSE IF intent = "Bulk_Order" |
| -> priority = 8 |
| -> skill = "B2B_Bulk" |
| ELSE |
| -> priority = 5 |
| -> skill = "B2C_Sales" |
+----------------------------------+
PHASE 2 (After 3-6 months):
- Collect interaction outcome data in BigQuery
- Train XGBoost or AutoML model
- Deploy to Vertex AI endpoint
- Replace Flow conditions with HTTP Request to Vertex AI
5.4 GCP Security Configuration¶
Step 43: Configure IAM and Access Controls
1. Navigate: IAM & Admin > IAM
2. Review default roles
3. Add principle of least privilege:
Service Account: kidswear-ccai-prod-sa@...
- Dialogflow API Client (NOT Admin)
- Vertex AI User (NOT Admin)
- BigQuery Data Viewer (NOT Editor)
Human Admins: admin@kidswearindia.com
- Owner (only 1-2 people)
Compliance Officer: compliance@...
- BigQuery Data Viewer (reports only)
- Logging Viewer
4. Remove any overly permissive roles
5. Enable organization policies if applicable
Step 44: Configure Cloud Audit Logs
1. Navigate: IAM & Admin > Audit Logs
2. Enable audit logs for:
[x] Admin Read
[x] Admin Write
[x] Data Read
[x] Data Write
3. Services to audit:
- Dialogflow API
- Vertex AI API
- BigQuery
- Cloud Storage
- IAM
4. Click: "Save"
5. View logs:
- Navigate: Logging > Logs Explorer
- Filter: protoPayload.serviceName="dialogflow.googleapis.com"
- Monitor API calls and access patterns
Step 45: Set Up Cost Alerts
1. Navigate: Billing > Budgets & Alerts
2. Click: "Create Budget"
3. Configure:
- Name: KidsWear CCAI Monthly Budget
- Projects: kidswear-ccai-prod
- Budget Amount: [Set based on estimate, e.g., $1500/month]
- Alert Thresholds:
- 50% of budget -> Email admin
- 80% of budget -> Email admin + SMS
- 100% of budget -> Email admin + SMS + auto-disable (optional)
4. Click: "Finish"
This prevents unexpected cost overruns.
6. Zendesk CRM Integration¶
6.1 Zendesk Tenant Configuration¶
Step 46: Access Zendesk Admin
1. URL: https://kidswearindia.zendesk.com/admin
2. Login with admin credentials
3. Verify: Suite Professional license activated
4. Navigate: Admin Center
Step 47: Create Custom Fields for Contact Center
1. Navigate: Admin Center > Objects and rules > Tickets > Fields
2. Create Field 1:
- Click: "Add field"
- Type: Drop-down
- Name: "Contact Channel"
- Options:
- Voice - Sales
- Voice - Support
- WhatsApp
- Web Chat
- Email
- Required: Yes
- Click: "Save"
3. Create Field 2:
- Type: Drop-down
- Name: "Customer Consent"
- Options:
- Consent Given - Recording Enabled
- Consent Given - Recording Disabled
- Consent Not Collected
- Required: Yes
- Click: "Save"
4. Create Field 3:
- Type: Text
- Name: "Webex Interaction ID"
- Description: Link to Webex CC recording
- Required: No
- Click: "Save"
5. Create Field 4:
- Type: Drop-down
- Name: "Detected Intent"
- Options:
- New_Order
- Bulk_Order
- Order_Status
- Complaint
- Return_Request
- General
- Required: No
- Click: "Save"
6. Create Field 5:
- Type: Decimal
- Name: "Sentiment Score"
- Description: AI-detected sentiment (-1 to 1)
- Required: No
- Click: "Save"
Step 48: Configure API Access (SECURITY)
1. Navigate: Admin Center > Apps and integrations > APIs > Zendesk API
2. Settings:
- Token Access: Enabled
- Password Access: Disabled (more secure)
3. Generate API Token:
- Click: "Add API token"
- Description: "Webex_CC_Integration_Prod"
- Click: "Create"
- COPY THE TOKEN IMMEDIATELY (shown only once)
- Store securely (not in email!)
4. API Authentication Format:
{email}/token:{api_token}
Example: api_user@kidswearindia.com/token:xxxxxxxx
Base64 encode this for HTTP Basic Auth:
echo -n "api_user@kidswearindia.com/token:xxxxxxxx" | base64
Result: YXBpX3VzZXJAa2lkc3dlYXJpbmRpYS5jb20vdG9rZW46eHh4eHh4eHg=
5. Store in Webex CC Global Variable:
- Variable: ZENDESK_API_TOKEN
- Value: YXBpX3VzZXJAa2lkc3dlYXJpbmRpYS5jb20vdG9rZW46eHh4eHh4eHg=
- Secure: Yes
Step 49: Create Dedicated API User
1. Navigate: Admin Center > People > Team members
2. Add Team Member:
- Name: API Integration User
- Email: api_integration@kidswearindia.com
- Role: Custom role (next step)
3. Create Custom Role:
- Navigate: Admin Center > People > Roles
- Create role: "API_Integration"
- Permissions:
[x] Tickets: Create
[x] Tickets: Update
[x] Tickets: View
[x] Users: View
[x] Organizations: View
[ ] Settings: Access (NO)
[ ] People: Manage (NO)
4. Assign role to API user
5. Generate API token under this user (more secure than admin)
6.2 CTI Connector Setup¶
Step 50: Install Webex CC CTI Connector for Zendesk
1. Navigate: Zendesk Marketplace
- URL: https://www.zendesk.com/marketplace
2. Search: "Webex Contact Center" or "Cisco CTI"
3. If official connector available:
- Click "Install"
- Follow installation wizard
- Enter Webex CC credentials
- Configure screen pop
4. If no official connector (build custom):
- Use Zendesk App Framework
- Build custom sidebar app
- Use Webex CC Desktop SDK
- This requires developer expertise
5. Alternative: Use HTTP Requests in Webex CC Flow
- No Zendesk app installation needed
- Screen pop via embedded browser in Agent Desktop
Step 51: Configure Screen Pop via Webex CC Flow
In Webex CC Flow Designer, add before Queue Contact:
+----------------------------------+
| Activity: HTTP Request |
| Name: "Zendesk_Customer_Lookup" |
| Method: GET |
| URL: https://kidswearindia. |
| zendesk.com/api/v2/search. |
| json?query=phone:{{ANI}} |
| Headers: |
| Authorization: Basic |
| {{ZENDESK_API_TOKEN}} |
| Content-Type: application/json |
| Response Variable: zendesk_resp |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Set Variable |
| Name: "Parse_Zendesk_Response" |
| customer_id = zendesk_resp. |
| results[0].id |
| customer_name = zendesk_resp. |
| results[0].name |
| organization = zendesk_resp. |
| results[0].org |
+----------------------------------+
|
v
+----------------------------------+
| Activity: HTTP Request |
| Name: "Zendesk_Create_Ticket" |
| Method: POST |
| URL: https://kidswearindia. |
| zendesk.com/api/v2/tickets |
| Headers: |
| Authorization: Basic |
| {{ZENDESK_API_TOKEN}} |
| Content-Type: application/json |
| Body: { |
| "ticket": { |
| "subject": "Inbound Call - |
| {{intent}}", |
| "requester_id": {{customer_id}},|
| "custom_fields": [ |
| {"id": FIELD_ID_CHANNEL, |
| "value": "voice_sales"}, |
| {"id": FIELD_ID_CONSENT, |
| "value": "{{consent}}"}, |
| {"id": FIELD_ID_INTENT, |
| "value": "{{intent}}"}, |
| {"id": FIELD_ID_SENTIMENT, |
| "value": {{sentiment}}} |
| ] |
| } |
| } |
| Response Variable: ticket_resp |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Set Variable |
| ticket_id = ticket_resp.ticket.id|
| ticket_url = "https://kidswear |
| india.zendesk.com/ |
| agent/tickets/" + |
| ticket_id |
+----------------------------------+
|
v
+----------------------------------+
| Activity: Queue Contact |
| CAD Variables (passed to agent): |
| - ticket_url: {{ticket_url}} |
| - customer_name: {{customer_name}}|
| - intent: {{intent}} |
| - sentiment: {{sentiment}} |
+----------------------------------+
Agent Desktop will display these CAD variables.
Agent clicks ticket_url to open Zendesk ticket.
6.3 Agent Desktop Widget Configuration¶
Step 52: Configure Agent Desktop Layout with Zendesk Widget
1. Navigate: Contact Center > Agent Desktop > Desktop Layouts
2. Create New Layout:
- Click: "Create Layout"
- Name: "KidsWear_Agent_Layout"
3. Add Zendesk Widget:
- In Layout Designer canvas
- Add: "IFrame Widget"
- Configuration:
- Widget Name: Zendesk CRM
- URL: https://kidswearindia.zendesk.com/agent/tickets/${ticket_id}
- Height: 600px
- Width: 100%
- Position: Right panel
- Auto-open on call: Yes
4. Add Additional Widgets:
- Customer Info Panel (CAD variables display)
- Wrap-up Codes Panel
- Team Chat (if needed)
5. Save Layout
6. Assign Layout to User Profile:
- Navigate: Contact Center > Provisioning > User Profiles
- Edit: Agent_Profile
- Desktop Layout: KidsWear_Agent_Layout
- Click: "Save"
7. Agent Desktop Deployment¶
7.1 WebRTC Configuration¶
Step 53: Verify WebRTC Settings
1. Navigate: Contact Center > Tenant Settings > Desktop Settings
2. Verify:
- Voice Channel: WebRTC (not SIP)
- WebRTC Gateway: Auto-configured
- Codec: Opus (preferred for WebRTC)
- Echo Cancellation: Enabled
- Noise Suppression: Enabled
- Auto-Gain Control: Enabled
3. These settings are global for all agents
Step 54: Agent Browser Configuration Guide
AGENT BROWSER SETUP GUIDE (Provide to each agent)
STEP 1: Install Google Chrome
- Download: https://www.google.com/chrome
- Install latest version
- Enable auto-updates
STEP 2: Allow Microphone Access
1. Open Chrome
2. Click three dots (menu) > Settings
3. Privacy and security > Site settings
4. Microphone
5. Add: https://desktop.wxcc-*.cisco.com
6. Set: "Allow"
STEP 3: Disable Pop-up Blocker for Webex
1. Settings > Privacy and security > Site settings
2. Pop-ups and redirects
3. Add: https://*.webex.com
4. Set: "Allow"
STEP 4: Test WebRTC
1. Visit: https://test.webrtc.org
2. Click "Start"
3. Verify:
- Microphone: Working
- Camera: Working (if needed)
- Network: UDP and TCP connectivity
- All green checkmarks
STEP 5: Install USB Headset
1. Plug in USB headset
2. Chrome should detect automatically
3. Test in Chrome settings:
- Settings > Privacy and security > Site settings > Microphone
- Select your USB headset as default
4. Test audio:
- Visit: https://webcammictest.com
- Test microphone input and speaker output
STEP 6: First Login to Agent Desktop
1. URL: https://desktop.wxcc-us1.cisco.com (or region-specific)
2. Login: agent01@kidswearindia.com
3. Password: [Initial password]
4. Change password on first login
5. Complete MFA setup (if enabled)
6. Select: Station Type = "WebRTC"
7. Click: "Sign In"
8. Set status: "Available"
9. Make test call to verify audio
Step 55: Agent Desktop Security Settings
1. Navigate: Control Hub > Security > Settings
2. Configure for Agent Desktop:
Session Security:
- Auto-logout on browser close: Yes
- Single session per user: Yes (prevent credential sharing)
- Session recording of desktop: No (privacy)
Browser Requirements:
- Minimum Chrome version: 90+
- Block outdated browsers: Yes
- HTTPS only: Yes (enforced automatically)
3. Agent Activity Monitoring:
- Idle detection: 30 minutes
- Auto-set to "Not Ready" after idle
- Supervisor alert on extended idle
4. Click "Save"
7.2 Agent Onboarding Checklist¶
Step 56: Create Agent Onboarding Checklist
AGENT ONBOARDING SECURITY CHECKLIST
Agent Name: ____________________
Agent ID: ____________________
Onboarding Date: ____________________
PRE-ONBOARDING (IT Admin completes):
[ ] User account created in Control Hub
[ ] Licenses assigned (Calling + CC)
[ ] Assigned to team and skill profile
[ ] Email sent with temporary password
[ ] Home/Store network assessment completed
[ ] Laptop meets minimum specs
FIRST DAY (Agent completes with IT support):
[ ] Changed initial password (12+ chars, complex)
[ ] MFA configured (authenticator app)
[ ] Chrome browser installed and updated
[ ] Microphone permissions granted
[ ] USB headset configured and tested
[ ] Pop-up blocker disabled for Webex
[ ] First login to Agent Desktop successful
[ ] WebRTC audio test passed
[ ] Zendesk login successful
[ ] Screen pop tested with sample call
SECURITY TRAINING (Complete within first week):
[ ] Data Protection Basics module (1 hr)
[ ] PCI-DSS Awareness module (30 min)
[ ] DPDP Customer Rights module (1 hr)
[ ] Password Security module (30 min)
[ ] Phishing Awareness module (1 hr)
[ ] Home Network Security module (1 hr - remote agents)
[ ] Quiz passed (minimum 80%)
[ ] Training certificate issued
ACKNOWLEDGEMENTS (Agent signs):
[ ] Security policy read and understood
[ ] Data handling agreement signed
[ ] Remote work policy signed (if applicable)
[ ] Confidentiality agreement signed
SUPERVISOR VERIFICATION:
[ ] Agent made 5 test calls successfully
[ ] Agent handled 1 sample customer interaction
[ ] Wrap-up codes used correctly
[ ] Screen pop working properly
[ ] Agent status changes verified
Onboarding Completed: ____________________
IT Admin Signature: ____________________
Supervisor Signature: ____________________
Agent Signature: ____________________
8. Digital Channel Configuration¶
8.1 Webex Connect Setup¶
Step 57: Access Webex Connect
1. URL: https://connect.webex.com (or partner-provided URL)
2. Login with Webex credentials
3. If not provisioned:
- Contact Cisco partner to provision Webex Connect
- Requires separate subscription
4. Dashboard should show:
- Channels available
- Message logs
- Bot configuration
Step 58: WhatsApp Business Setup
PRE-REQUISITES:
- Facebook Business Manager account
- Business verification completed
- WhatsApp Business API approved
STEPS:
1. In Webex Connect:
- Navigate: Channels > WhatsApp
- Click: "Configure"
2. Facebook Business Manager Setup:
- Login: https://business.facebook.com
- Navigate: Business Settings > Accounts > WhatsApp Accounts
- Click: "Add"
- Follow WhatsApp Business API setup wizard
- Phone number: [Indian business number, not toll-free]
- Display name: "KidsWear India Support"
- Business category: Retail
- Complete verification (may take 1-7 days)
3. Connect to Webex Connect:
- In Facebook Business Manager
- WhatsApp account settings
- Partner connection: Webex Connect
- Generate API credentials
- Copy: Phone Number ID, Business Account ID, Access Token
4. In Webex Connect:
- Enter credentials from Facebook
- Test connection: Send test message
- Configure webhook URL (Webex Connect provides this)
- Set up message templates (for outbound)
5. Routing to Webex CC:
- In Webex Connect Flow Builder
- On message received -> Route to Webex CC queue
- Entry Point: Digital_EP
- Queue: Digital_Chat_Queue
Step 59: Web Chat Widget Setup
1. Navigate: Webex Connect > Channels > Live Chat
2. Create Chat Widget:
- Name: "KidsWear Website Chat"
- Appearance:
- Primary Color: [Brand color]
- Chat Icon: [Upload icon]
- Position: Bottom right
- Welcome Message: "Hi! How can we help you today?"
3. Pre-chat Form:
- Enable: Yes
- Fields:
- Name (required)
- Email (required)
- Phone (optional)
- Subject (dropdown: Order, Support, General)
4. Behavior:
- Business Hours: 9 AM - 9 PM IST
- Outside Hours Message: "We're offline. Leave a message."
- File Attachments: Allow images, PDFs
- Typing Indicators: Show
5. Routing:
- Connect to: Webex Contact Center
- Entry Point: Digital_EP
- Queue: Digital_Chat_Queue
6. Generate Embed Code:
- Click: "Get Code"
- Copy JavaScript snippet
- Provide to web developer
7. Install on Website:
- Add script before </body> tag
```html
<script src="https://connect.webex.com/widget/v1/kidswearindia/chat.js"></script>
<script>
WebexChat.init({
widgetId: 'YOUR_WIDGET_ID',
brandName: 'KidsWear India',
agentWait: true
});
</script>
```
8. Test:
- Visit website
- Chat widget should appear
- Start chat should create task in Webex CC
- Agent receives in unified desktop
8.2 Bot Integration (Dialogflow CX to Chat)¶
Step 60: Connect Dialogflow CX to Chat Widget
1. In Webex Connect Flow Builder:
2. Create new flow: "Chat_Bot_Flow"
3. Flow:
On Message Received
|
v
+----------------------------------+
| Send to Dialogflow CX |
| (Same agent as voice) |
| Method: POST detectIntent |
| Body: { text input instead of |
| audio } |
+----------------------------------+
|
v
+----------------------------------+
| Parse Intent |
| If intent = "Complaint" AND |
| sentiment < -0.3 |
| Then: Escalate to human agent |
| Else: Reply with bot message |
+----------------------------------+
|
+----+----+
| |
v v
Bot Escalate
Reply to Queue
| |
v v
Continue Transfer to
Chat Digital_Chat_Queue
4. Save and activate flow
5. Test: Chat with bot on website
6. Bot handles simple queries
7. Complex issues escalate to human agent
9. Monitoring and Dashboard Setup¶
9.1 Webex CC Analyzer Configuration¶
Step 61: Access Analyzer
1. Navigate: Contact Center > Analyzer
2. URL: https://analyzer.wxcc-*.cisco.com
3. Login with admin credentials
4. First time setup:
- Select Tenant: KidsWear India
- Configure timezone: Asia/Kolkata
Step 62: Create Supervisor Dashboard
1. In Analyzer:
2. Click: "Create Dashboard"
3. Name: "KidsWear Real-Time Dashboard"
4. Add Widgets:
Widget 1: Queue Performance
- Metric: Average Speed of Answer (ASA)
- Queue: All queues
- Visualization: Gauge
- Threshold: Green < 30s, Yellow < 60s, Red > 60s
Widget 2: Agent States
- Metric: Agent availability by state
- Team: All teams
- Visualization: Pie chart
- States: Available, On Call, Wrap-up, Not Ready
Widget 3: Calls in Queue
- Metric: Current calls waiting
- Queue: All queues
- Visualization: Number
- Alert: If > 10, flash red
Widget 4: Service Level
- Metric: % calls answered in threshold
- Target: 80% in 30 seconds
- Visualization: Line chart
- Time: Last 4 hours
Widget 5: Abandonment Rate
- Metric: % calls abandoned
- Target: < 5%
- Visualization: Gauge
- Alert: If > 5%, send email
Widget 6: Agent Performance Table
- Columns: Agent Name, Calls Handled, AHT, Status
- Rows: All agents
- Sort: By calls handled (descending)
5. Save Dashboard
6. Share with supervisors
7. Set as default view
Step 63: Configure Real-Time Alerts
1. Navigate: Analyzer > Alerts
2. Create Alert 1:
- Name: "High Queue Depth"
- Condition: Queue depth > 15 calls
- Duration: 5 minutes sustained
- Action: Email supervisor@kidswearindia.com
- Message: "Queue depth critical. Consider adding agents."
3. Create Alert 2:
- Name: "Abandonment Spike"
- Condition: Abandonment rate > 10%
- Duration: 15 minutes
- Action: Email + SMS to supervisor
- Message: "High abandonment. Check queue staffing."
4. Create Alert 3:
- Name: "Agent Long Idle"
- Condition: Agent in "Not Ready" > 30 minutes
- Action: Email supervisor
- Message: "Agent {{agent_name}} idle for extended period."
5. Save all alerts
6. Verify email/SMS delivery working
9.2 Security Monitoring Dashboard¶
Step 64: Create Security Monitoring View
1. In Webex Control Hub:
2. Navigate: Troubleshooting > Audit Logs
3. Create saved filters:
Filter 1: Failed Logins
- Event: Authentication failed
- Time: Last 24 hours
- Frequency: Daily review
Filter 2: Admin Actions
- Event: All admin activities
- Time: Last 7 days
- Frequency: Weekly review
Filter 3: Recording Access
- Event: Recording playback/download
- Time: Last 30 days
- Frequency: Monthly audit
4. Export to CSV for compliance records
5. Set up regular review schedule:
- Daily: Failed logins
- Weekly: Admin actions, security changes
- Monthly: Full audit log review
6. In GCP Cloud Monitoring:
- Create dashboard for CCAI
- Metrics: API calls, errors, latency
- Alerts: Unusual API patterns, quota exceeded
10. Pre-Go-Live Validation¶
10.1 End-to-End Testing Checklist¶
Step 65: Complete System Test
TEST CASE 1: Inbound Sales Call (Voice)
[ ] Dial toll-free number 1800-XXX-XXX (Sales)
[ ] Hear consent prompt
[ ] Press 1 to consent
[ ] Hear main menu
[ ] Press 2 for bulk order
[ ] Hold music plays
[ ] Agent receives call (WebRTC working)
[ ] Screen pop shows customer info (Zendesk)
[ ] Intent detected correctly (Dialogflow)
[ ] Call recorded (verify in Analyzer)
[ ] Wrap-up completed
[ ] Ticket created in Zendesk
TEST CASE 2: Support Call with Hindi Speaker
[ ] Dial toll-free number 1800-XXX-XXX (Support)
[ ] Consent prompt plays
[ ] Speak in Hindi: "मुझे ऑर्डर की स्थिति जाननी है"
[ ] System detects Hindi and Order_Status intent
[ ] Routes to Support_Orders_Queue
[ ] Agent with Hindi skill receives call
[ ] Interaction logged
TEST CASE 3: Payment Collection (PCI-DSS)
[ ] Agent transfers to payment IVR
[ ] Recording pauses (verify in Analyzer)
[ ] Customer enters card via DTMF (masked)
[ ] Agent hears only flat tones
[ ] Payment processed via gateway API
[ ] Recording resumes
[ ] Agent sees only "Authorized" status
[ ] No card data in recording
TEST CASE 4: WhatsApp Message
[ ] Send WhatsApp message to business number
[ ] Bot responds (Dialogflow CX)
[ ] Request human agent
[ ] Escalated to Digital_Chat_Queue
[ ] Agent receives in desktop
[ ] Two-way conversation works
[ ] Ticket created in Zendesk
TEST CASE 5: Web Chat
[ ] Visit website
[ ] Click chat widget
[ ] Fill pre-chat form
[ ] Start conversation
[ ] Bot handles initial query
[ ] Escalate to human
[ ] Agent receives chat
[ ] Conversation flows properly
TEST CASE 6: Supervisor Monitoring
[ ] Supervisor logs in
[ ] Real-time dashboard displays correctly
[ ] Queue metrics accurate
[ ] Agent states update in real-time
[ ] Supervisor listens to live call (monitoring)
[ ] Supervisor whispers to agent (coaching)
[ ] Supervisor barges into call (if needed)
TEST CASE 7: Security Validation
[ ] Failed login after 5 attempts -> Lockout works
[ ] Session timeout after 30 min idle -> Works
[ ] MFA required for admin login -> Works
[ ] API calls using service account -> Successful
[ ] GCP audit logs show API activity -> Yes
[ ] Zendesk API token works -> Yes
[ ] Recording access restricted to authorized roles -> Yes
TEST CASE 8: Data Subject Request (DPDP)
[ ] Simulate deletion request
[ ] Identify all data locations
[ ] Execute deletion (test account)
[ ] Verify deletion complete
[ ] Document audit trail
10.2 Performance Baseline¶
Step 66: Establish Performance Baselines
RUN THESE TESTS AND RECORD RESULTS:
Network Performance:
- Latency to Webex DC: _____ ms (target < 100ms)
- Packet loss: _____ % (target < 0.5%)
- Jitter: _____ ms (target < 10ms)
Call Quality:
- MOS score (test calls): _____ (target > 4.0)
- Audio clarity: Excellent / Good / Fair / Poor
- Echo detected: Yes / No
- Delay noticeable: Yes / No
System Response:
- Screen pop time: _____ seconds (target < 3s)
- Dialogflow API response: _____ ms (target < 500ms)
- Zendesk ticket creation: _____ seconds (target < 2s)
- Agent desktop login: _____ seconds (target < 10s)
Routing Accuracy:
- Intent detection accuracy: _____ % (target > 85%)
- Correct queue routing: _____ % (target > 95%)
- Skill matching: _____ % (target > 98%)
SAVE THESE BASELINES FOR COMPARISON AFTER GO-LIVE
10.3 Final Security Checklist¶
Step 67: Security Sign-Off
FINAL SECURITY VALIDATION BEFORE GO-LIVE
AUTHENTICATION & ACCESS:
[ ] All admin accounts have MFA enabled
[ ] Password policy enforced (12 chars, complexity)
[ ] Session timeout configured (30 min)
[ ] Single session per user enforced
[ ] RBAC configured correctly (all roles verified)
[ ] API service accounts use minimal permissions
ENCRYPTION:
[ ] TLS 1.2+ for all connections (verified)
[ ] SRTP for voice media (verified)
[ ] WebRTC DTLS-SRTP working (verified)
[ ] Data at rest encrypted (Webex confirmation)
[ ] GCP encryption enabled (verified)
COMPLIANCE:
[ ] DTMF masking functional (PCI-DSS)
[ ] Recording pause/resume working
[ ] Consent prompt in IVR (DPDP)
[ ] Data retention set to 90 days
[ ] Data erasure workflow documented
[ ] Privacy policy published on website
API SECURITY:
[ ] GCP service account key secured
[ ] Zendesk API token encrypted
[ ] Token rotation schedule documented
[ ] API rate limits configured
[ ] No credentials in code/logs
MONITORING:
[ ] Audit logging enabled (all platforms)
[ ] Security alerts configured
[ ] Failed login monitoring active
[ ] Recording access audit in place
[ ] Incident response plan documented
TRAINING:
[ ] All agents completed security training
[ ] Training records documented
[ ] Security policy acknowledged
SIGNED OFF BY:
IT Admin: _____________________ Date: _________
Security/Compliance: ____________ Date: _________
Management: ____________________ Date: _________
11. Post-Provisioning Steps¶
11.1 Documentation Package¶
Step 68: Create System Documentation
DOCUMENTATION DELIVERABLES:
1. System Configuration Document
- All settings documented
- Architecture diagrams
- Integration details
- Version: 1.0
2. User Guides
- Agent Quick Start Guide
- Supervisor Guide
- Admin Guide
3. Security Documentation
- Security policy
- Access control matrix
- Incident response plan
- Audit procedures
4. Runbooks
- Daily operations checklist
- Password reset procedure
- User provisioning procedure
- Emergency escalation contacts
5. Vendor Contact Information
- Cisco Partner: _______________
- GCP Support: _______________
- Zendesk Support: _______________
- Cloud Connect Partner: _______________
11.2 Handover to Operations¶
Step 69: Operations Handover
HANDOVER MEETING AGENDA:
1. System Overview (1 hour)
- Architecture review
- Component interactions
- Data flows
2. Daily Operations (2 hours)
- Monitoring dashboards
- Alert management
- User provisioning
- Password resets
- Reporting
3. Security Procedures (2 hours)
- Audit log review
- Incident response
- Token rotation
- Compliance reporting
4. Troubleshooting (2 hours)
- Common issues
- Escalation paths
- Vendor support contacts
- Log analysis
5. Change Management (1 hour)
- Configuration changes
- Flow updates
- User modifications
- Approval process
6. Q&A and Practice (2 hours)
Total: 10 hours (2-day session recommended)
Document Information¶
Document Title: Chapter 4: Platform Provisioning (Low-Level Design)
Project: KidsWear India - Cisco Webex Contact Center Greenfield Deployment
Version: 1.0
Author: Rajmohan M, Principal Consultant
AI-Assisted: Claude (Anthropic)
DISCLAIMER: This document contains AI-assisted content. All configuration steps, security settings, and integration procedures should be validated in a test environment before production deployment. Specific UI elements, menu paths, and options may vary based on product version and updates. Always refer to official Cisco, Google Cloud, and Zendesk documentation for the most current procedures. Test all security configurations thoroughly before go-live. This is a guide and not a substitute for professional implementation services.
End of Chapter 4