Create Custom Insights (Tenant Tasks)
Custom insights let you extract business-specific data points from conversations—beyond the prebuilt catalog. Examples:
- Hospitality: reservation start date, total nights, VIP status
- Support: product area, issue category, escalation reason, resolution status
- Sales: urgency level, next actions, competitor mentioned, deal stage
A typical custom insight implementation consists of:
- One or more Custom Fields to store the outputs
- One AI Task that extracts the outputs and maps them to fields
- Filters (optional) to scope which conversations are analyzed
- Testing (Playground) and rollout
Step 1 — Define the insight
Write a clear definition before configuring anything:
- What question does the insight answer?
- What format should the value take?
- numeric / dropdown / date / free text
- What are the allowed values (if dropdown)?
- What does “unknown / not mentioned” mean?
- Do you need a human-readable explanation?
Strong definitions lead to consistent extraction and better dashboards.
Step 2 — Create Custom Field(s)
Menu path: Administration > Customization > Custom Fields
Create the field(s) needed: - Value field (e.g., “VIP Status” dropdown) - Optional explanation field (if your deployment stores explanations in separate fields)
See: Custom Fields for Insights.
Step 3 — Create or clone an AI Task
Menu path: Administration > Speech Analytics > AI Assistant > AI Tasks
In most deployments, tenant admins cannot create new AI Tasks directly. Tasks are created at the platform level and made available to tenants. Tenant admins can:
- Enable prebuilt tasks from the Disabled tab
- Override prompt and filter settings on enabled tasks
If you need a custom task that doesn't exist in the catalog, contact your provider to request a new task definition. Once the task is available, you can enable it and customize the prompt/filters for your business needs.
Step 4 — Configure mapping (attributes → fields)
In the task configuration, map output attributes to Custom Fields.
Example (Hospitality):
- reservation_start_date → “Reservation Start Date” (Date)
- reservation_total_nights → “Reservation Total Nights” (Number)
- vip_status → “VIP Status” (Dropdown)
If storing explanations as separate fields:
- vip_status_explanation → “VIP Status Explanation” (Text)
Step 5 — Write a prompt that is strict and testable
Recommended prompt pattern:
- tell the AI what to extract
- define allowed values/ranges
- instruct “JSON only”
- include an “unknown” rule
- include an explanation
Example (VIP Status)
TRANSCRIPT:
${transcript}
TASK:
Determine if the customer is a VIP based only on the transcript.
OUTPUT RULES:
- vip_status must be one of: "VIP", "Non-VIP", "Unknown"
- Use "Unknown" if the transcript does not contain enough evidence.
- Provide a short explanation (1–2 sentences) referencing evidence from the transcript.
- Output must be valid JSON only.
RESPONSE JSON:
{
"vip_status": { "value": "VIP", "explanation": "..." }
}
Step 6 — Add filters (optional but recommended)
Use filters to avoid irrelevant conversations, for example: - only inbound support calls - only conversations longer than 15 seconds - only a specific channel (calls vs chat)
Step 7 — Test in Playground and validate
Before rollout: - test on 5–10 representative conversations - confirm JSON is valid - confirm values match allowed types/ranges - confirm explanations are useful and concise
Step 8 — Roll out dashboards and saved searches
- Create dashboards for key numeric/dropdown fields
- Create saved searches for operational triage:
- “VIP = VIP”
- “Reservation Start Date within next 7 days”
- “Urgency = High”