diff --git a/ai-for-service/apis/agent-ai/api-for-duration-based-conversation-records.mdx b/ai-for-service/apis/agent-ai/api-for-duration-based-conversation-records.mdx index 5050a7a63..ea02e3f54 100644 --- a/ai-for-service/apis/agent-ai/api-for-duration-based-conversation-records.mdx +++ b/ai-for-service/apis/agent-ai/api-for-duration-based-conversation-records.mdx @@ -4,7 +4,7 @@ sidebarTitle: Duration-Based Records API --- [Back to API List](/ai-for-service/apis/agent-ai/api-list) -Retrieves a paginated list of Agent AI conversation records within a specified date range. +Retrieves a paginated list of Agent AI conversation records within a specified date range. Each record includes the conversation transcript, AI-generated summaries, Agentic Copilot interactions, search history, and agent feedback. The maximum duration supported for the date range is 7 days. @@ -42,20 +42,27 @@ Retrieves a paginated list of Agent AI conversation records within a specified d | `page` | Integer | No | Page number for paginated results. Default: `1` | | `limit` | Integer | No | Number of records per page. Maximum: `20`. | | `includeHistory` | Boolean | No | If `true`, includes conversation history. Default: `false` | +| `includeAgenticHistory` | Boolean | No | If `true`, includes Agentic Copilot conversation history. Default: `false`. | +| `includeFeedback` | Boolean | No | If `true`, includes agent feedback on AI suggestions. Default: `false`. | +| `includeSummary` | Boolean | No | If `true`, includes the conversation summary. Default: `false`. | + ## Sample Request ```bash -curl --location 'https://{{host}}/agentassist/api/v1/public/{{botid}}/aaconversation' \ ---header 'accountId: 660aafa0c0971e56e27xxxxx' \ ---header 'auth: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ ---header 'Content-Type: application/json' \ +curl --location --max-time 2000 --request POST 'https://{{host}}/agentassist/api/v1/public/{{botid}}/aaconversation' +--header 'accountId: 6798834e4e94062f75xxxxxx' +--header 'auth: eyJhbGciOiJIUzI1NiIsInR5cxxxxxxXVCJ9.eyJhcHBJZCI6ImNzLWM1M2VjMGZiLTkwYxxxxxxyZC04NTQ1LWRlYTJjMjdlYmFhMCJ9.CC3WptQkOyxxxxxxIVMLNETLchKSOAFMst47xxxxxxx' +--header 'Content-Type: application/json' --data '{ - "from": "2025-10-13", - "to": "2025-10-13", - "page": 2, + "from": "2026-06-07", + "to": "2026-06-07", + "page": 1, "limit": 20, - "includeHistory": false + "includeHistory": true, + "includeAgenticHistory": true, + "includeFeedback": true, + "includeSummary": true }' ``` @@ -65,57 +72,304 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{botid}}/aaconversa { "results": [ { - "_id": "68ececc87a98f960ee0xxxxx", - "convId": "UAT-Master-Bot-1xxxxx", - "botId": "st-841b5cd4-6393-5561-9218-34e3c62xxxxx", - "channelType": "voice", - "isExtAD": true, - "startTime": "2025-10-13T12:12:56.561Z", - "aaSessionId": "68ececc803cec129ea9xxxxx", - "aaUserId": "u-b92404aa-f0cd-541f-ad4a-9ed4dd8xxxxx" - }, - { - "_id": "68ecee337a98f960ee0xxxxx", - "convId": "UAT-Master-Bot-1xxxxx", - "botId": "st-841b5cd4-6393-5561-9218-34e3c62xxxxx", - "channelType": "voice", + "_id": "6a24dfe0b84ec657a31cxxxxx", + "convId": "atesta-xxxxxxxx", + "botId": "st-79a76d65-d540-5b33-96d5-9bf3eebxxxxx", "isExtAD": true, - "startTime": "2025-10-13T12:18:59.357Z", - "aaSessionId": "68ecee3303cec129ea9xxxxx", - "aaUserId": "u-bae3f44c-4523-5eb5-b28e-01b9e24xxxxx" + "startTime": "2026-06-07T03:05:04.755Z", + "summaries": [ + { + "summaryId": "smr-9e7925c-d842-4567-9966-059b23bdxxxxx", + "participant": { + "identity": "a-xxxxxxxx", + "name": "Anonymous", + "type": "agent", + "startTime": [], + "endTime": [] + }, + "summary": "The customer contacted for assistance with an account blocked issue. The agent recommended contacting IT support or the HR department for resolving the account access issue.", + "type": "interim", + "generationTimeInSecs": 1.435, + "feedbackInfo": { + "agentDetails": { + "identity": "a-xxxxxxxx", + "name": "Anonymous" + }, + "feedback": "dislike", + "comment": "Negative feedback to interim summary.", + "feedbackDetails": [ + "Inaccurate Content" + ], + "type": "summary" + } + }, + { + "summaryId": "smr-5112583-ae19-4829-92dd-a348238xxxxx", + "participant": { + "identity": "a-xxxxxxxx", + "name": "Anonymous", + "type": "agent", + "startTime": [], + "endTime": [] + }, + "summary": "The customer contacted for assistance with an account blocked issue. The agent recommended contacting IT support or the HR department for resolving the account access issue.", + "editedSummary": "The customer contacted for assistance with an account blocked issue. The agent recommended contacting IT support or the HR department for resolving the account access issue. Edited final summary.", + "type": "final", + "generationTimeInSecs": 1.468 + } + ], + "mbSessionId": "6a25251017334dc027dxxxxx", + "mbUserId": "u-58c48898-6a0c-589d-aac2-cc75d44xxxxx", + "experience": "chat", + "messages": [ + { + "_id": "ms-10a44a88-a68a-581e-b3c3-02983f5xxxxx", + "botId": "st-79a76d65-d540-5b33-96d5-9bf3eebxxxxx", + "accountId": "6798834e4e94062f7539xxxxx", + "components": [ + { + "_id": "cp-9709e230-3d1b-5960-9217-d21f813xxxxx", + "cT": "text", + "data": { + "text": "hey i am reaching out to get help on my account blocked issue" + }, + "thumbnails": [] + } + ], + "createdOn": "2026-06-07T03:05:39.523Z", + "lmodifiedOn": "2026-06-07T03:05:39.523Z", + "ire": true, + "chnl": "agentassist", + "lang": "en", + "author": { + "type": "USER" + }, + "conversationId": "atesta-xxxxxxxx", + "__lModifiedOn__": "2026-06-07T03:05:39.000Z", + "timestampValue": 1780801539537 + }, + { + "_id": "6a24e003f069946b93210xxx", + "type": "AGENTIC", + "timestampValue": 1780801539892, + "requestId": "aa-2aae1892-1e67-5b93-b46b-6e96866xxxxx", + "conversationId": "atesta-xxxxxxxx", + "botId": "st-79a76d65-d540-5b33-96d5-9bf3eebxxxxx", + "accountId": "6798834e4e94062f7539xxxxx", + "orgId": "o-7b3f9629-5766-578a-af50-7b623c1xxxxx", + "experience": "chat", + "language": "en", + "query": "hey i am reaching out to get help on my account blocked issue", + "components": { + "_id": "cp-07c6759c-41d4-5585-9325-a8176d6xxxxx", + "cT": "text", + "data": { + "text": "I understand you are facing an issue with your account being blocked. For account issues, I recommend reaching out to your IT support or HR department for assistance." + } + }, + "triggeringMessageId": "ms-10a44a88-a68a-581e-b3c3-02983f5xxxxx", + "isSent": true, + "isCopied": false, + "isOverride": false, + "requestedAt": "2026-06-07T03:05:39.730Z", + "respondedAt": "2026-06-07T03:05:41.845Z", + "sessionInfo": { + "status": "idle", + "userId": "u-ebf9cca2-af2c-56fc-b03a-b0ed030xxxxx", + "sessionId": "s-5655da8e-349c-4463-946a-bc7ecccxxxxx", + "runId": "r-73b14de2-b3b2-411a-ba00-7983ce9xxxxx", + "appId": "aa-66266b94-25d5-41e9-99e2-70ec650xxxxx", + "envId": "env-6831da54-81f2-4840-96e6-0684fdexxxxx", + "envName": "demo", + "conversationState": "COMPLETED", + "activeConversationAgent": null, + "source": "AIS-AA" + }, + "feedbackInfo": { + "agentDetails": { + "identity": "a-xxxxxxxx", + "name": "Anonymous" + }, + "feedback": "dislike", + "comment": "Negative feedback to Agentic suggestion.", + "feedbackDetails": [ + "Irrelevant Suggestion" + ], + "type": "agentic" + } + } + ], + "searchHistory": [ + { + "_id": "6a24e116f069946b93210xxx", + "type": "AGENTIC", + "timestampValue": 1780801814890, + "requestId": "ua-1391de93-b386-48aa-9f93-4c30e4cxxxxx", + "conversationId": "atesta-xxxxxxxx", + "botId": "st-79a76d65-d540-5b33-96d5-9bf3eebxxxxx", + "accountId": "6798834e4e94062f7539xxxxx", + "orgId": "o-7b3f9629-5766-578a-af50-7b623c1xxxxx", + "experience": "chat", + "language": "en", + "query": "for IT support what are the details required", + "components": { + "_id": "cp-0c0bd6de-5ad2-5fd6-a686-7b4a402xxxxx", + "cT": "text", + "data": { + "text": "To request IT support, typically you will need to provide the specific issue, device or system involved, and your contact information." + } + }, + "triggeringMessageId": null, + "isSent": false, + "isCopied": false, + "requestedAt": "2026-06-07T03:10:14.887Z", + "respondedAt": "2026-06-07T03:10:16.980Z", + "sessionInfo": { + "status": "idle", + "userId": "u-742f2192-381f-5110-8df2-6d4ba0cxxxxx", + "sessionId": "s-786dcc8e-22b8-45f3-bfe1-bab704axxxxx", + "runId": "r-7ce4c0a9-ab69-4524-8171-89231c3xxxxx", + "appId": "aa-66266b94-25d5-41e9-99e2-70ec650xxxxx", + "envId": "env-6831da54-81f2-4840-96e6-0684fdexxxxx", + "envName": "demo", + "conversationState": "AWAITING_INPUT", + "activeConversationAgent": "leave", + "source": "AIS-AA" + }, + "feedbackInfo": { + "agentDetails": { + "identity": "a-xxxxxxxx", + "name": "Anonymous" + }, + "feedback": "dislike", + "comment": "Feedback to first search result.", + "feedbackDetails": [ + "Duplicate Message" + ], + "type": "agentic" + } + } + ], + "agenticAssistSessionIds": [ + "s-5655da8e-349c-4463-946a-bc7ecccxxxxx" + ], + "agenticSearchSessionIds": [ + "s-786dcc8e-22b8-45f3-bfe1-bab704axxxxx" + ], + "widgetFeedbacks": [ + { + "agentDetails": { + "identity": "a-xxxxxxxx", + "name": "Anonymous" + }, + "feedback": "dislike", + "comment": "Widget feedback comment.", + "feedbackDetails": [ + "Transcript not consistent" + ], + "type": "widget" + } + ] } ], - "skip": 20, + "skip": 0, "limit": 20, "hasMore": false, - "totalPages": 2, - "totalResults": 29 + "totalPages": 1, + "totalResults": 6 } ``` ## Response Body Parameters -| Parameter| Type| Description | -|----------------|-----------|-----------------| +| Parameter | Type | Description | +|---|---|---| | `results` | Array | List of conversation objects retrieved. | | `results._id` | String | Unique identifier of the conversation document. | | `results.convId` | String | Conversation identifier. | | `results.botId` | String | Identifier of the bot handling the conversation. | | `results.isExtAD` | Boolean | Indicates whether the conversation is external. | | `results.startTime` | String (ISO 8601) | Timestamp when the conversation started. | -| `results.experience` | String | Experience type, for example, `chat`. | -| `results.aaSessionId` | String | (Optional) Agent AI session ID. | -| `results.aaUserId` | String | (Optional) Agent AI user ID. | +| `results.experience` | String | Experience type, for example, `chat` or `voice`. | +| `results.summaries` | Array | List of conversation summary objects. | +| `results.summaries.summaryId` | String | Unique identifier of the summary. | +| `results.summaries.participant` | Object | Details of the agent associated with the summary. | +| `results.summaries.participant.identity` | String | Unique identifier of the agent. | +| `results.summaries.participant.name` | String | Name of the agent. | +| `results.summaries.participant.type` | String | Type of participant, for example, `agent`. | +| `results.summaries.summary` | String | AI-generated conversation summary. | +| `results.summaries.editedSummary` | String | (Optional) Edited version of the summary if an agent modified it. | +| `results.summaries.type` | String | Summary type, for example, `interim` or `final`. | +| `results.summaries.generationTimeInSecs` | Number | Time taken to generate the summary, in seconds. | +| `results.summaries.feedbackInfo` | Object | (Optional) Feedback the agent submitted on the summary. | +| `results.summaries.feedbackInfo.agentDetails` | Object | Details of the agent who submitted the feedback. | +| `results.summaries.feedbackInfo.agentDetails.identity` | String | Unique identifier of the agent. | +| `results.summaries.feedbackInfo.agentDetails.name` | String | Name of the agent. | +| `results.summaries.feedbackInfo.feedback` | String | Feedback value, for example, `like` or `dislike`. | +| `results.summaries.feedbackInfo.comment` | String | Free-text comment the agent entered with the feedback. | +| `results.summaries.feedbackInfo.feedbackDetails` | Array | List of feedback reasons the agent selected. | +| `results.summaries.feedbackInfo.type` | String | Feedback type, for example, `summary`. | | `results.mbSessionId` | String | (Optional) Messaging backend session ID. | | `results.mbUserId` | String | (Optional) Messaging backend user ID. | | `results.messages` | Array | List of messages exchanged in the conversation. | +| `results.messages._id` | String | Unique identifier of the message. | +| `results.messages.type` | String | Message type, for example, `AGENTIC`. | | `results.messages.botId` | String | Bot ID associated with the message. | -| `results.messages.type` | String | Type of message, for example, `incoming` or `outgoing`. | -| `results.messages.status` | String | Status of the message, for example, `pending`. | +| `results.messages.accountId` | String | Account identifier associated with the message. | +| `results.messages.orgId` | String | Organization identifier associated with the message. | +| `results.messages.requestId` | String | Unique identifier of the Agentic request. | +| `results.messages.conversationId` | String | Conversation identifier associated with the message. | +| `results.messages.language` | String | Language of the message, for example, `en`. | +| `results.messages.query` | String | Customer query that triggered the Agentic suggestion. | | `results.messages.components` | Array | List of message components, such as text or media. | | `results.messages.components._id` | String | Unique identifier of the message component. | | `results.messages.components.cT` | String | Component type, for example, `text`. | | `results.messages.components.data` | Object | Data of the component, for example, `{ "text": "hi" }`. | | `results.messages.components.thumbnails` | Array | List of thumbnails (if any) associated with the component. | -| `results.messages.sT` | Integer | (Optional) Step or sequence number of the message. | -| `results.messages.author.type` | String | Type of the message author. | +| `results.messages.isSent` | Boolean | Indicates whether the agent sent the suggestion to the customer. | +| `results.messages.isCopied` | Boolean | Indicates whether the agent copied the suggestion. | +| `results.messages.isOverride` | Boolean | Indicates whether the agent overrode the suggestion. | +| `results.messages.requestedAt` | String (ISO 8601) | Timestamp when the Agentic request was sent. | +| `results.messages.respondedAt` | String (ISO 8601) | Timestamp when Agentic Copilot responded. | +| `results.messages.triggeringMessageId` | String | Identifier of the message that triggered the Agentic suggestion. | +| `results.messages.createdOn` | String (ISO 8601) | Timestamp when the message was created. | +| `results.messages.author` | Object | Details of the message author. | +| `results.messages.author.type` | String | Type of the message author, for example, `USER` or `AGENT`. | +| `results.messages.author.id` | String | (Optional) Identifier of the message author. | +| `results.messages.timestampValue` | Integer | Unix timestamp of the message in milliseconds. | +| `results.messages.sessionInfo` | Object | Session details associated with the Agentic interaction. | +| `results.messages.sessionInfo.status` | String | Current session status, for example, `idle`. | +| `results.messages.sessionInfo.sessionId` | String | Unique session identifier. | +| `results.messages.sessionInfo.userId` | String | Unique user identifier for the session. | +| `results.messages.sessionInfo.runId` | String | Unique run identifier for the session. | +| `results.messages.sessionInfo.appId` | String | Identifier of the Agentic app. | +| `results.messages.sessionInfo.envId` | String | Identifier of the environment. | +| `results.messages.sessionInfo.envName` | String | Name of the environment, for example, `demo`. | +| `results.messages.sessionInfo.conversationState` | String | Current state of the conversation, for example, `AWAITING_INPUT` or `COMPLETED`. | +| `results.messages.sessionInfo.activeConversationAgent` | String | Name of the active Agentic conversation agent. | +| `results.messages.sessionInfo.source` | String | Source of the Agentic interaction, for example, `AIS-AA`. | +| `results.messages.feedbackInfo` | Object | (Optional) Feedback the agent submitted on the Agentic suggestion. | +| `results.messages.feedbackInfo.agentDetails` | Object | Details of the agent who submitted the feedback. | +| `results.messages.feedbackInfo.agentDetails.identity` | String | Unique identifier of the agent. | +| `results.messages.feedbackInfo.agentDetails.name` | String | Name of the agent. | +| `results.messages.feedbackInfo.feedback` | String | Feedback value, for example, `like` or `dislike`. | +| `results.messages.feedbackInfo.comment` | String | Free-text comment the agent entered with the feedback. | +| `results.messages.feedbackInfo.feedbackDetails` | Array | List of feedback reasons the agent selected. | +| `results.messages.feedbackInfo.type` | String | Feedback type, for example, `agentic`. | +| `results.searchHistory` | Array | List of Agentic search interactions the agent triggered manually. | +| `results.agenticAssistSessionIds` | Array | List of Agentic Copilot session IDs associated with the conversation. | +| `results.agenticSearchSessionIds` | Array | List of Agentic search session IDs associated with the conversation. | +| `results.widgetFeedbacks` | Array | List of overall widget feedback entries submitted by agents. | +| `results.widgetFeedbacks.agentDetails` | Object | Details of the agent who submitted the widget feedback. | +| `results.widgetFeedbacks.agentDetails.identity` | String | Unique identifier of the agent. | +| `results.widgetFeedbacks.agentDetails.name` | String | Name of the agent. | +| `results.widgetFeedbacks.feedback` | String | Feedback value, for example, `like` or `dislike`. | +| `results.widgetFeedbacks.comment` | String | Free-text comment the agent entered with the feedback. | +| `results.widgetFeedbacks.feedbackDetails` | Array | List of feedback reasons the agent selected. | +| `results.widgetFeedbacks.type` | String | Feedback type, for example, `widget`. | +| `skip` | Integer | Number of records skipped in the current response. | +| `limit` | Integer | Number of records returned per page. | +| `hasMore` | Boolean | Indicates whether more records are available beyond the current page. | +| `totalPages` | Integer | Total number of pages available. | +| `totalResults` | Integer | Total number of conversation records matching the query. | + diff --git a/ai-for-service/contact-center/campaigns.mdx b/ai-for-service/contact-center/campaigns.mdx index 141cdb91a..9b3fd84f0 100644 --- a/ai-for-service/contact-center/campaigns.mdx +++ b/ai-for-service/contact-center/campaigns.mdx @@ -7,7 +7,7 @@ The Campaigns module enables proactive outreach to customers through voice calls To access Campaigns, go to **Contact Center AI** > **Campaigns**. -Campaigns aren't enabled by default. Contact Support to enable them for your account. +Campaigns are available only in the United States (US) and Japan (JP) regions and are not enabled by default. To enable Campaigns for your account, contact [Support](https://support.kore.ai). --- diff --git a/ai-for-service/quality-ai/analyze/agent-dashboard-supervisor-evaluation.mdx b/ai-for-service/quality-ai/analyze/agent-dashboard-supervisor-evaluation.mdx index d91d5e692..90ed07277 100644 --- a/ai-for-service/quality-ai/analyze/agent-dashboard-supervisor-evaluation.mdx +++ b/ai-for-service/quality-ai/analyze/agent-dashboard-supervisor-evaluation.mdx @@ -7,7 +7,7 @@ The Agent Dashboard provides supervisors with a consolidated view of an agent's The Evaluation tab focuses on interaction-level performance analysis. It displays evaluated interactions for the selected agent, including Auto QA scores, manual audit scores, sentiment scores, bookmarks, and audit status. Supervisors can review individual interactions, identify coaching opportunities, and create coaching assignments directly from selected conversations. -The interaction list displays the most recent conversations first, enabling supervisors to quickly review recent performance and quality trends. +The interaction list displays the most recent conversations first, enabling supervisors to review recent performance and quality trends. ### Access to Evaluation Tab @@ -86,7 +86,7 @@ The Evaluation tab supports creating coaching assignments using selected interac ## Create Coaching Assignment -1. Select one or more interactions the **Evaluation** table where improvement is needed. +1. Select one or more interactions in the **Evaluation** table that require improvement. ![Add Coaching Assignments Selection](/ai-for-service/quality-ai/analyze/agent-leaderboard/images/agent-dashboard-sup-eva-selection.png) diff --git a/ai-for-service/quality-ai/configure/taxonomy-builder/overview.mdx b/ai-for-service/quality-ai/configure/taxonomy-builder/overview.mdx index 1338b8b57..26ae92667 100644 --- a/ai-for-service/quality-ai/configure/taxonomy-builder/overview.mdx +++ b/ai-for-service/quality-ai/configure/taxonomy-builder/overview.mdx @@ -15,8 +15,8 @@ Traditional conversation analytics face challenges that affect day-to-day operat | Challenge | Impact | |-----------|--------| -| **Inconsistent labeling** | The same customer issue appears under multiple labels (for example, "card termination," "account closure," "service cancellation"), making trend analysis unreliable | -| **Generic topics** | Broad AI-generated labels like "payment issue" or "service inquiry" don't provide enough specificity for routing and resolution | +| **Inconsistent labeling** | The same customer issue appears under multiple labels (for example, `card termination`, `account closure`, `service cancellation`), making trend analysis unreliable | +| **Generic topics** | Broad AI-generated labels like `payment issue` or `service inquiry` don't provide enough specificity for routing and resolution | | **Flat structure** | Real business operations are hierarchical; flat topic lists make analysis at different strategic levels difficult | Taxonomy Builder solves these problems by enabling you to: @@ -66,20 +66,20 @@ The system uses large language models (LLMs) with custom topic names and detaile ## Topic-Level Resolution (L3) -For Level 3 topics, you can enable resolution tracking to determine whether each customer issue was resolved during the conversation. The system classifies each issue as **Successful**, **Unsuccessful**, or **Overall Resolution**, with customizable criteria per topic. +For Level 3 topics, enable resolution tracking to determine whether the system resolves each customer issue during the conversation. The system classifies each issue as **Successful**, **Unsuccessful**, or **Overall Resolution**, using customizable criteria per topic. ### Resolution Methods -**Topic-Based Resolution (Strict):** -- Marks a contact as resolved only when all L3 topics in the conversation are resolved. -- Use when all issues must be resolved, including minor ones. -- Example: A customer calls about a payment issue and mentions a rewards question. If the payment is resolved but the rewards question isn't, the contact is marked unresolved. +**Topic-Based Resolution (Strict)**: +- Mark a contact as resolved only when the system resolves all L3 topics in the conversation. +- Use this when the system must resolve all issues, including minor ones. +- Example: A customer calls about a payment issue and mentions a rewards question. If the system resolves the payment issue but not the rewards question, it marks the contact as unresolved. **Holistic Resolution Assessment:** - LLM evaluates contact resolution independently of individual topic outcomes. -- Marks a contact as resolved if the customer's **primary** concern is addressed, even if minor issues remain. +- Marks a contact as resolved when it addresses the customer's **primary** concern, even if minor issues remain. - Use when you don't want secondary issues to affect the resolution metrics. -- Example: The customer's payment issue is resolved, but a casual rewards question isn't — the contact is marked resolved. +- Example: The system resolves the customer's payment issue, but not a casual rewards question; it still marks the contact as resolved. Configure your preferred method in **Settings** > **Conversation Intelligence**. @@ -87,7 +87,7 @@ Configure your preferred method in **Settings** > **Conversation Intelligence**. ## Hierarchical Sentiment Analysis -Customer sentiment is captured at the L3 level and automatically rolled up through the hierarchy. The Topic Discovery dashboard shows color-coded sentiment bubbles: +The system captures customer sentiment at the L3 level and automatically rolls it up through the hierarchy. The Topic Discovery dashboard shows color-coded sentiment bubbles: | Color | Sentiment | |-------|-----------| @@ -117,7 +117,7 @@ All taxonomy changes exist as drafts until you explicitly create and deploy a ne | View-only permissions | View configured taxonomies, no edits | | No permissions | No access to Taxonomy Builder | -All changes are tracked through audit logs and changelogs. +The system tracks all changes through audit logs and changelogs. --- @@ -127,7 +127,7 @@ A taxonomy aligned with your organizational reality turns every conversation int - **Quality Teams** — deliver targeted coaching based on specific interaction types. - **Operations Managers** — identify emerging issues early and respond at the right level of detail. -- **Customer Experience Leaders** — track sentiment trends at the touchpoints that matter most. +- **Customer Experience Leaders** — track sentiment trends at the touch points that matter most. To create and configure a taxonomy, see [Setup Taxonomy](/ai-for-service/quality-ai/configure/taxonomy-builder/setup-taxonomy). diff --git a/ai-for-service/quality-ai/connectors/aws-s3-connector-setup-guide.mdx b/ai-for-service/quality-ai/connectors/aws-s3-connector-setup-guide.mdx index 0a493c5a7..b9b883e31 100644 --- a/ai-for-service/quality-ai/connectors/aws-s3-connector-setup-guide.mdx +++ b/ai-for-service/quality-ai/connectors/aws-s3-connector-setup-guide.mdx @@ -15,7 +15,7 @@ Complete the following before you start. |---------------------|--------------------------------------------------------------------------------| | **S3 bucket** | Created in your preferred region with an organized folder structure | | **IAM permissions** | Read-only access (`s3:GetObject`, `s3:ListBucket`) via access keys or IAM role | -| **Audio files** | WAV or MP3 format, maximum 50 MB each, accessible via HTTPS | +| **Audio files** | WAV or MP3 format, maximum 50 MB each, available via HTTPS | | **Chat files** | JSON format | | **Timestamps** | ISO 8601 format with UTC timezone (`YYYY-MM-DDTHH:MM:SSZ`) | | **Test file** | A `test.csv` file with sample data in each configured S3 folder | @@ -72,7 +72,26 @@ Using a single mixed mono file significantly reduces transcription accuracy. ## Data Flow -![Architecture](/ai-for-service/quality-ai/configure/connectors/images/architecture.png) +```text + +[S3 Bucket] +└─ Audio + Metadata Files + │ + ▼ +[S3 Connector] +└─ Validation + Ingestion + │ + ▼ +[Quality AI Express] +├─ Transcription + Analysis│ + │ + ▼ +[Analytics Dashboard] +├─ Quality Score +└─ Sentiment +└─ Topics +``` + --- @@ -287,48 +306,23 @@ Choose a folder structure for your S3 bucket. **Option 1: Unified Path** (voice and chat in one folder): -{/* -
- -┌───────────────────────────────────────────────┐ -│ s3://your-bucket/conversations/ │ -└───────────────────────────────────────────────┘ - │ - ▼ -┌──────────────────────────────┐ -│ metadata.csv │ -│ All interaction metadata │ -└──────────────────────────────┘ - │ - ▼ -┌──────────────────────────────┐ -│ audio/ │ -├──────────────────────────────┤ -│ conv-123456.wav │ Stereo recording -│ conv-123457-agent.wav │ Mono - agent only -│ conv-123457-customer.wav │ Mono - customer only -│ conv-123458.wav │ Stereo recording -└──────────────────────────────┘ - │ - ▼ -┌──────────────────────────────┐ -│ chat/ │ -├──────────────────────────────┤ -│ chat-123459.json │ Chat transcript -│ chat-123460.json │ Chat transcript -└──────────────────────────────┘ - │ - ▼ -┌──────────────────────────────┐ -│ test.csv │ -│ Required for validation │ -└──────────────────────────────┘ - - -
-*/} - ---- +```text + +s3://your-bucket/ +├─ voice-interactions/ +│ ├─ voice_metadata.csv +│ ├─ recordings/ +│ │ ├─ conv-123456.wav (Stereo recording) +│ │ ├─ conv-123457-agent.wav (Mono - agent only) +│ │ └─ conv-123457-customer.wav (Mono - customer only) +│ └─ test.csv (Required for validation) +└─ chat-interactions/ + ├─ chat_metadata.csv + ├─ transcripts/ + │ ├─ chat-123459.json (Chat transcript) + │ └─ chat-123460.json (Chat transcript) + └─ test.csv (Required for validation) +``` **Option 2: Separate Paths** (voice and chat in separate folders): @@ -351,11 +345,11 @@ s3://your-bucket/ **Before moving on, verify:** -- All audio files are accessible via HTTPS URLs. +- All audio files are available via HTTPS URLs. - CSV files contain the required fields with correct column headers. - Mono recordings have separate agent and customer files. - A `test.csv` file exists in each configured folder. -- All file sizes are under 50 MB, and file names do not contain spaces. +- All file sizes are under 50 MB, and file names don't contain spaces. --- @@ -382,7 +376,7 @@ s3://your-bucket/ | Check | Expected Result | |-------------------------|---------------------------| | **Authentication** | Connected successfully | - | **File Path Access** | S3 bucket accessible | + | **File Path Access** | S3 bucket available | | **File Format** | CSV format validated | | **Metadata Validation** | Required fields confirmed | @@ -391,7 +385,7 @@ s3://your-bucket/ | Check | Resolution | |---------------------|---------------------------------------------------------------------------------| | **Authentication** | Verify credentials and IAM permissions; ensure they haven't expired | - | **File Access** | Check bucket name, region, and folder paths; confirm file URLs are accessible | + | **File Access** | Check bucket name, region, and folder paths; confirm file URLs are available | | **Format/Metadata** | Ensure `test.csv` exists with correct structure, column headers, and timestamps | --- @@ -420,22 +414,14 @@ s3://your-bucket/ ## Troubleshooting -### Authentication Issues - -| Problem | Symptom | Resolution | -|-------------------------|-----------------------------|--------------------------------------------------------------------------------------------------------------------------------| -| **Invalid Credentials** | Authentication failed error | Verify access key and secret key; check IAM role ARN format; ensure credentials haven't expired | -| **Permission Denied** | Access denied to S3 bucket | Add S3 read permissions to the IAM user or role; verify the bucket policy; confirm the bucket region matches the configuration | - -### Data Processing Issues - -| Problem | Symptom | Resolution | -|----------------------|--------------------------|---------------------------------------------------------------------------------------------------------| -| **Timestamp Errors** | Invalid timestamp format | Use ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`); include UTC timezone; verify end time is after start time | +| Category | Problem | Symptom | Resolution | +|----------------------|---------------------|-----------------------------------|---------------------------------------------------------------------------| +| Authentication | Invalid Credentials | Authentication failed error | Verify access key and secret key. Check IAM role ARN format, and confirm credentials haven’t expired. | +| Authentication | Permission Denied | Access denied to S3 bucket | Add S3 read permissions to the IAM user or role. Verify the bucket policy and confirm the bucket region matches the configuration. | +| Data Processing | Timestamp Errors | Invalid timestamp format | Use ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ) and include UTC timezone. Verify end time is after start time. | -### Performance -Processing time is approximately 3-5 minutes per conversation, depending on conversation length, ASR transcription latency (for voice), and LLM response latency. +Processing typically takes approximately 3–5 minutes per conversation, depending on conversation length, ASR transcription latency (for voice), and LLM response latency. ---