---
title: "Create scenario from transcript"
method: POST
path: "/personas/from-transcript"
tags: ["Personas"]
---

# Create scenario from transcript

`POST /personas/from-transcript`

Create a scenario draft by analyzing a conversation transcript. The system uses LLM to extract user intent, 
conversation goals, and user characteristics from the transcript, then generates an appropriate persona package.

The endpoint supports:
- Fetching transcript via sessionId from analytics service (RPC call)
- Direct transcript content via transcriptContent
- Optional flow context for enhanced persona generation
- Content safety validation (warnings only, non-blocking)

Priority: If both sessionId and transcriptContent are provided, sessionId takes precedence.

Returns a complete persona package and metadata about the analysis.

## Query parameters

- `projectId` string

## Request body

- object
  - `projectReference` string — Project reference for context identification (alternative to projectId query parameter)
  - `sessionId` string — Session identifier to retrieve transcript from analytics service. If provided, takes precedence over transcriptContent.
  - `transcriptContent` object — Direct transcript content. Optional if sessionId is provided.
    - `messages` object[], required — Array of conversation messages
      - `source` 'user' | 'bot' | 'agent' | 'suggestion', required — Message source type: 'user' (customer), 'bot' (AI agent), 'agent' (live human agent), 'suggestion' (system suggestion)
      - `content` string, required — Message content
      - `timestamp` string, date-time, required — Message timestamp
  - `flowId` string — Optional: Flow ID to associate with and extract agent context for enhanced generation
  - `numberOfSuccessCriteria` integer — Optional: Number of success criteria to generate (default: 5, min: 1, max: 10)
  - `analysisOptions` object — Optional analysis configuration
    - `maxTurns` integer — Limit transcript to first N turns (default: no limit)
    - `focusOnUserGoals` boolean — Focus analysis on extracting user goals (default: true)

## Response `200`

Scenario created successfully from transcript

- object
  - `success` boolean, required — Whether the generation was successful
  - `personaPackage` object, required — Generated persona package
    - `simulationName` string, required — Generated scenario name
    - `personaName` string, required — Generated persona name
    - `personaDescription` string, required — Generated persona description capturing user characteristics
    - `mission` string, required — Generated mission based on user goals
    - `successCriteria` object[], required — Generated success criteria
      - `name` string, required — Success criterion name
      - `text` string, required — Success criterion description
  - `metadata` object, required — Analysis metadata
    - `transcriptSummary` string, required — Brief summary of the analyzed transcript
    - `analysisTimestamp` string, date-time, required — When the analysis was performed
    - `warnings` string[] — Content safety warnings (if any)
    - `turnCount` integer — Number of turns in the transcript
    - `extractedIntents` string[] — User intents/goals extracted from transcript
    - `messages` object[], required — Original transcript messages
      - `source` 'user' | 'bot' | 'agent' | 'suggestion', required — Message source
      - `content` string, required — Message content
      - `timestamp` string, date-time, required — Message timestamp

## Other responses

- `400` — Bad Request - Invalid input parameters
- `401` — Unauthorized - Invalid or missing authentication
- `403` — Forbidden - Insufficient permissions
- `500` — Internal Server Error - Server error

---

[API](https://skmtc.net/cognigy/apis/simulator-openapi-rest-ful-api-reference.md) · [All operations](https://skmtc.net/cognigy/apis/simulator-openapi-rest-ful-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cognigy/simulator-openapi-rest-ful-api-reference/revisions/85b2872bdfb7/schema)
