Skip to content

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:

  1. One or more Custom Fields to store the outputs
  2. One AI Task that extracts the outputs and maps them to fields
  3. Filters (optional) to scope which conversations are analyzed
  4. 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": "..." }
}

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”