# Authentication
Source: https://docs.exec.com/api-reference/authentication
Create and use API keys to authenticate requests
All API requests require authentication using an API key. Keys are created in your workspace settings and provide full admin access to your workspace data.
## Creating an API Key
From your workspace, click on **Settings** in the sidebar, then select **API**.
Click the **Create API Key** button to open the creation dialog.
Give your key a name that identifies its purpose, like "Production Integration" or "Analytics Dashboard".
Your API key will be displayed **only once**. Copy it and store it securely before closing the dialog.
API keys are shown only at creation time. If you lose a key, you'll need to create a new one.
## Using Your API Key
Include your API key in the `Authorization` header of every request:
```bash theme={null}
Authorization: Bearer exec_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
### Example Request
```bash theme={null}
curl -X GET "https://api.exec.com/rest/v1/workspace" \
-H "Authorization: Bearer exec_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```
## Key Format
API keys follow this format:
* **Prefix**: `exec_live_`
* **Body**: 40 alphanumeric characters
* **Example**: `exec_live_aB3dE5fG7hI9jK1lM3nO5pQ7rS9tU1vW3xY5zA7b`
## Managing Keys
### Viewing Keys
In **Settings > API**, you'll see a table of all your API keys showing:
* Key name
* Last 4 characters (for identification)
* Status (Active/Inactive)
* Creation date
* Last used timestamp
### Deactivating a Key
If a key is compromised or no longer needed:
1. Click the **...** menu on the key row
2. Select **Deactivate**
Deactivated keys are immediately rejected. You can reactivate them later if needed.
### Deleting a Key
To permanently remove a key:
1. Click the **...** menu on the key row
2. Select **Delete**
Deleting a key is permanent and cannot be undone. Any integrations using the key will stop working immediately.
## Security Best Practices
Use environment variables or secrets management
Name keys by purpose so you know what to revoke
Create new keys and deactivate old ones regularly
Only share keys with systems that need them
## Error Responses
| Status | Error | Cause |
| ------ | ---------------------------- | ------------------------------------- |
| `401` | Missing Authorization header | No `Authorization` header provided |
| `401` | Invalid or inactive API key | Key is wrong, deactivated, or deleted |
| `403` | Workspace is inactive | Your workspace has been disabled |
# List collections
Source: https://docs.exec.com/api-reference/collections/list-collections
/api-reference/openapi.yaml get /collections
Returns a paginated list of collections in the workspace, ordered
alphabetically by name.
Collections group related scenarios together (e.g. "Procurement Scenarios",
"Onboarding"). Use collection IDs to filter sessions, skills, and scenario
analytics by collection.
# Get folder
Source: https://docs.exec.com/api-reference/knowledge-hub--folders/get-folder
/api-reference/openapi.yaml get /knowledge-hub/folders/{folder_id}
Returns a single Knowledge Hub folder by its UUID.
# List folders
Source: https://docs.exec.com/api-reference/knowledge-hub--folders/list-folders
/api-reference/openapi.yaml get /knowledge-hub/folders
Returns a paginated list of Knowledge Hub folders (also called Spaces or
Hubs) in the workspace.
Folders group pages and sources, and can be nested to form a hierarchy.
Pass `parent` to list the direct children of a folder, or omit it to list
every folder in the workspace.
API keys are workspace-scoped and admin-created, so the response includes
every non-archived folder regardless of its visibility scope.
# Archive page
Source: https://docs.exec.com/api-reference/knowledge-hub--pages/archive-page
/api-reference/openapi.yaml delete /knowledge-hub/pages/{page_id}
Archives (soft-deletes) a page. The page is hidden from lists but its history is preserved.
# Create page
Source: https://docs.exec.com/api-reference/knowledge-hub--pages/create-page
/api-reference/openapi.yaml post /knowledge-hub/pages
Creates a Knowledge Hub page. New pages go through the draft → publish
version flow: set `status` to `published` to publish immediately, or
`draft` (the default) to save without publishing.
Returns the created page with its body (`201`).
# Get page
Source: https://docs.exec.com/api-reference/knowledge-hub--pages/get-page
/api-reference/openapi.yaml get /knowledge-hub/pages/{page_id}
Returns a single page with its published markdown body, attached sources,
skills, and version info.
Use `?include=draft` to also return the current draft body
(`draft.title` and `draft.content`).
# List page versions
Source: https://docs.exec.com/api-reference/knowledge-hub--pages/list-page-versions
/api-reference/openapi.yaml get /knowledge-hub/pages/{page_id}/versions
Returns the version history for a page, newest first.
# List pages
Source: https://docs.exec.com/api-reference/knowledge-hub--pages/list-pages
/api-reference/openapi.yaml get /knowledge-hub/pages
Returns a paginated list of Knowledge Hub pages. List rows are metadata
only — the page body is omitted. Fetch a single page to get its content.
Filter by folder, status, owner, skill, free-text query, or update-date
range. Results are sorted by `updated_at` (newest first) by default.
API keys are workspace-scoped and admin-created, so the response includes
every non-archived page in the workspace — including private and draft
pages — regardless of visibility.
# Update page
Source: https://docs.exec.com/api-reference/knowledge-hub--pages/update-page
/api-reference/openapi.yaml patch /knowledge-hub/pages/{page_id}
Updates a page. Only the fields you provide are changed; omitted fields
are left untouched. Editing `content` creates a new draft; set `status`
to `published` to publish the new version.
`PUT` is also accepted and behaves the same way.
# Create source
Source: https://docs.exec.com/api-reference/knowledge-hub--sources/create-source
/api-reference/openapi.yaml post /knowledge-hub/sources
Creates a Knowledge Hub source from a URL. Text extraction runs
asynchronously, so the source is returned with `status: pending` or
`processing`; poll the detail endpoint until `status` is `ready`.
URL sources are de-duplicated within the workspace: if the URL already
exists, the existing source is returned with status `200` instead of
`201`.
> File upload via the REST API is not yet supported — use URL ingest.
# Delete source
Source: https://docs.exec.com/api-reference/knowledge-hub--sources/delete-source
/api-reference/openapi.yaml delete /knowledge-hub/sources/{source_id}
Archives (soft-deletes) a source.
# Get source
Source: https://docs.exec.com/api-reference/knowledge-hub--sources/get-source
/api-reference/openapi.yaml get /knowledge-hub/sources/{source_id}
Returns a single source by its UUID. Use `?include=content` to fetch the
extracted text (read from object storage — heavier, so opt-in).
# List sources
Source: https://docs.exec.com/api-reference/knowledge-hub--sources/list-sources
/api-reference/openapi.yaml get /knowledge-hub/sources
Returns a paginated list of Knowledge Hub sources. List rows are metadata
only — pass `?include=content` on the detail endpoint to fetch the
extracted text.
Filter by type, status, folder, or free-text query.
# API Overview
Source: https://docs.exec.com/api-reference/overview
Programmatic access to your Exec workspace
The Exec API provides programmatic access to your workspace data. Use it to integrate Exec with your internal tools, build custom dashboards, automate training workflows, or power AI agents that manage your enablement programs.
## What You Can Do
Pull roleplay session data with scores, transcripts, and evaluation feedback
Track skill proficiency across your team with time-decay weighted scoring
Monitor assignment status, completion, and scores
Get aggregate performance metrics, participant tables, and rank distributions
List collections and filter scenarios by collection
List scenarios, filter by skill, check access, and assign to users
List and manage folders, pages, and sources, and read their content
Create scenarios programmatically or via interactive sessions
Access members, groups, and workspace configuration
## Base URL
All API requests use the following base URL:
```text theme={null}
https://api.exec.com/rest/v1/
```
## Authentication
Every request requires an API key in the `Authorization` header:
```bash theme={null}
Authorization: Bearer exec_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
Learn how to create and use API keys
## Response Format
All responses are JSON. List endpoints return paginated data:
```json theme={null}
{
"data": [...],
"pagination": {
"page": 1,
"page_size": 50,
"total_count": 128,
"total_pages": 3
}
}
```
Errors return appropriate HTTP status codes with structured error information:
```json theme={null}
{
"error": {
"type": "invalid_request",
"code": "user_not_found",
"message": "No user found with email: unknown@example.com"
}
}
```
## Credit Costs
Most endpoints are free to call. The exception is scenario creation: each scenario created through the Scenario Studio endpoints costs **150 [platform credits](/platform/platform-credits)**, charged when the job is accepted.
If your workspace doesn't have enough credits, the request returns `402` with the code `insufficient_credits` and no job is created. Reading, listing, and analytics endpoints never consume credits.
## Rate Limits
API requests are rate-limited to ensure service stability:
* **Burst limit**: 60 requests per minute
* **Sustained limit**: 1,000 requests per day
* **Scenario creation**: 10 requests per minute (higher cost operations)
Rate-limited responses return `429` with a `retry_after` field indicating when to retry.
## Filtering Tips
Most analytics endpoints accept these common filters:
* **`user_ids`** / **`user_emails`** — filter by specific users (emails are resolved server-side)
* **`group_ids`** — filter by workspace group membership
* **`scenario_ids`** / **`collection_ids`** — filter by specific scenarios or collections
* **`skill_ids`** — filter by skills evaluated
* **`start_date`** / **`end_date`** — filter by date range (ISO 8601)
All ID parameters accept UUIDs (the same IDs returned by list endpoints).
## Coming Soon
We're actively expanding the API. Planned additions include:
* Program management and reporting
* Webhook integrations for real-time events
* Call scoring data
Contact us at [hello@exec.com](mailto:hello@exec.com) if you have specific API needs.
# Quickstart
Source: https://docs.exec.com/api-reference/quickstart
Make your first API request in 2 minutes
Get up and running with the Exec API in just a few steps.
## Prerequisites
You have an Exec workspace with admin access
## Step 1: Create an API Key
Navigate to your workspace settings and click **API** in the sidebar.
Click **Create API Key**, enter a name like "Quickstart Test", and click **Create**.
Copy the displayed key immediately. It looks like `exec_live_aB3dE5...`
## Step 2: Make Your First Request
Open a terminal and run this command, replacing `YOUR_API_KEY` with the key you copied:
```bash cURL theme={null}
curl -X GET "https://api.exec.com/rest/v1/workspace" \
-H "Authorization: Bearer YOUR_API_KEY"
```
```python Python theme={null}
import requests
response = requests.get(
"https://api.exec.com/rest/v1/workspace",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
print(response.json())
```
```javascript JavaScript theme={null}
fetch("https://api.exec.com/rest/v1/workspace", {
headers: {
"Authorization": "Bearer YOUR_API_KEY"
}
})
.then(res => res.json())
.then(data => console.log(data));
```
## Step 3: Check the Response
You should receive a JSON response with your workspace information:
```json theme={null}
{
"id": "a1b2c3d4e5f6",
"name": "Your Workspace Name",
"url_slug": "your-workspace",
"created_at": "2024-01-15T10:30:00Z"
}
```
If you see your workspace data, you're all set!
## Troubleshooting
* Check that your API key is correct and complete
* Ensure the key hasn't been deactivated
* Verify the `Bearer ` prefix is included (with the space)
* Verify you're using the correct base URL: `https://api.exec.com/rest/v1/`
* Check your network connection and firewall settings
## Next Steps
Pull roleplay session scores, transcripts, and feedback
See how your team is progressing on key skills
Check assignment completion status and scores
Get aggregate performance metrics for scenarios
# Cancel Scenario job
Source: https://docs.exec.com/api-reference/scenario-studio/cancel-scenario-job
/api-reference/openapi.yaml delete /scenario-studio/jobs/{job_id}
Cancels a scenario creation job that is queued or processing.
- **Queued jobs**: Marked as cancelled immediately
- **Processing jobs**: The background task is terminated and the job is marked cancelled
- **Completed/failed/cancelled jobs**: Returns 400 error (cannot cancel terminal states)
# Create Scenario job
Source: https://docs.exec.com/api-reference/scenario-studio/create-scenario-job
/api-reference/openapi.yaml post /scenario-studio/jobs
Creates an asynchronous scenario creation job.
Returns immediately with a job ID that can be polled for status.
The AI agent processes the job in the background, typically completing
within 5 minutes. Use the GET endpoint to poll for completion,
or provide a `callback_url` to receive a webhook when the job finishes.
**Remix mode**: Provide `scenario_slug` to create a variation of an existing
scenario. The AI will use the source scenario as a starting point and apply
your prompt as modifications.
# Create Scenario Studio session
Source: https://docs.exec.com/api-reference/scenario-studio/create-scenario-studio-session
/api-reference/openapi.yaml post /scenario-studio
Creates an interactive scenario creation session for a user.
Returns a URL immediately that the user can visit to complete
scenario creation in the Scenario Studio UI.
The session is pre-populated with the provided prompt, so when the user
opens the URL, the AI agent immediately begins processing their request.
# Get Scenario job status
Source: https://docs.exec.com/api-reference/scenario-studio/get-scenario-job-status
/api-reference/openapi.yaml get /scenario-studio/jobs/{job_id}
Returns the current status and result of a scenario creation job.
Poll this endpoint to check job progress. Typical job duration is about 5 minutes.
**Job statuses:**
- `queued`: Job is waiting to be processed
- `processing`: AI agent is actively creating the scenario
- `completed`: Scenario created successfully (check `scenario` field)
- `failed`: Job failed (check `error` field for details)
- `cancelled`: Job was cancelled via DELETE
# Assign scenario to user
Source: https://docs.exec.com/api-reference/scenarios/assign-scenario-to-user
/api-reference/openapi.yaml post /scenarios/{scenario_id}/assignments
Assign a scenario to a user as a task or homework assignment.
The user will receive notification of the assignment and can track their progress.
# Check scenario access
Source: https://docs.exec.com/api-reference/scenarios/check-scenario-access
/api-reference/openapi.yaml get /scenarios/{scenario_id}/access
Check if a user has access to a specific scenario and what permission level they have.
# Get scenario analytics summary
Source: https://docs.exec.com/api-reference/scenarios/get-scenario-analytics-summary
/api-reference/openapi.yaml get /scenarios/{scenario_id}/analytics/summary
Returns aggregate metrics for a scenario: participant count, total sessions,
average best score and rank, average lift, total practice minutes, and average
session duration. Accepts both UUID and slug for the scenario identifier.
# Get scenario participant analytics
Source: https://docs.exec.com/api-reference/scenarios/get-scenario-participant-analytics
/api-reference/openapi.yaml get /scenarios/{scenario_id}/analytics/participants
Returns a per-user performance table for a scenario with pagination and sorting.
Shows each participant's first score, best score, lift, rank, session count,
and total practice duration.
# Grant scenario access
Source: https://docs.exec.com/api-reference/scenarios/grant-scenario-access
/api-reference/openapi.yaml post /scenarios/{scenario_id}/access
Grant a user access to a specific scenario with a specified permission level.
# List scenario assignments
Source: https://docs.exec.com/api-reference/scenarios/list-scenario-assignments
/api-reference/openapi.yaml get /scenarios/assignments
Returns a paginated list of scenario assignments in the workspace.
Assignments represent tasks given to users to practice specific scenarios. Each
assignment tracks status (not_started, in_progress, completed, past_due, did_not_pass),
best score, attempt count, and completion requirements.
Filter by user, scenario, program, or status to find specific assignments.
# List scenarios
Source: https://docs.exec.com/api-reference/scenarios/list-scenarios
/api-reference/openapi.yaml get /scenarios
Returns a paginated list of scenarios in the workspace.
By default, returns all scenarios in the workspace (admin view).
Use filters to narrow down results by owner, visibility, or access.
# Get session detail
Source: https://docs.exec.com/api-reference/sessions/get-session-detail
/api-reference/openapi.yaml get /sessions/{session_id}
Returns full detail for a single roleplay session, including score, rank, duration,
and feedback.
Use the `include` parameter to fetch optional heavy fields like the full conversation
transcript or evaluation criteria with grades. These are omitted by default to keep
responses lean.
# List roleplay sessions
Source: https://docs.exec.com/api-reference/sessions/list-roleplay-sessions
/api-reference/openapi.yaml get /sessions
Returns a paginated list of roleplay sessions in the workspace with inline user and scenario data.
Sessions represent individual practice attempts on AI roleplay scenarios. Each session
includes the participant's score, rank, duration, and metadata. Use filters to narrow
results by user, scenario, skill, program, group, or date range.
Note: Sessions may include users who are no longer active workspace members (e.g., users
who have been removed). These users will not appear in GET /workspace/members but their
historical session data is preserved.
Results are ordered by creation date (newest first) by default.
# Get skill proficiency by user
Source: https://docs.exec.com/api-reference/skills/get-skill-proficiency-by-user
/api-reference/openapi.yaml get /skills/{skill_id}/proficiency
Returns per-user proficiency data for a specific skill.
Proficiency uses time-decay weighted scoring across all observations (roleplay sessions
and calls combined). Recent observations count more than older ones (30-day half-life).
A minimum of 3 observations is required before a proficiency score is calculated.
Proficiency tiers: `excellent` (≥90), `proficient` (≥75), `developing` (≥50),
`needs_work` (<50), `insufficient_data` (<3 observations).
Only users with at least one observation are included in the response. If no user
filters are provided, returns proficiency for all workspace members who have practiced
this skill.
# List skills
Source: https://docs.exec.com/api-reference/skills/list-skills
/api-reference/openapi.yaml get /skills
Returns a paginated list of skills in the workspace, ordered alphabetically by name.
Skills represent competencies that are evaluated during roleplay sessions and calls
(e.g. "Discovery Questions", "Objection Handling", "Procurement Selling"). Each skill
can be linked to evaluation criteria across multiple scenarios.
Use `?include=proficiency` to add aggregate proficiency stats per skill (participant
count, scored participant count, percentage proficient+, and average score). This is
computed across all workspace members who have practiced each skill.
# Get workspace info
Source: https://docs.exec.com/api-reference/workspace/get-workspace-info
/api-reference/openapi.yaml get /workspace
Returns basic information about the authenticated workspace.
# List workspace groups
Source: https://docs.exec.com/api-reference/workspace/list-workspace-groups
/api-reference/openapi.yaml get /workspace/groups
Returns a paginated list of groups in the workspace.
# List workspace members
Source: https://docs.exec.com/api-reference/workspace/list-workspace-members
/api-reference/openapi.yaml get /workspace/members
Returns a paginated list of workspace members with basic user info.
# Building Tips & Techniques
Source: https://docs.exec.com/building-tips
A grab-bag of small, copyable techniques for building, refining, and remixing roleplay scenarios
Small, practical techniques for common building moments. Find the one that matches what you're trying to do, copy the example, and adapt it to your scenario. For ready-to-paste agent prompts, see the [Prompt Library](/prompt-library). For full walkthroughs, see [Creating Scenarios](/roleplays/ai-agent) and [Advanced Roleplay Building](/roleplays/advanced-building).
| I want to... | Jump to |
| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------- |
| Make a character sound human | [Natural speech](#natural-speech-patterns), [Response length](#control-response-length) |
| Fix how a word is said | [Pronunciation rules](#pronunciation-rules) |
| Stop the character over-asking | [Don't ask superfluous questions](#dont-ask-superfluous-questions) |
| Keep reps from getting stuck | [Exit conditions](#define-exit-conditions), [Concession points](#define-a-concession-point) |
| Stop interruptions during a pitch | [Phase the conversation](#phase-the-conversation) |
| Make discovery harder | [Multi-level depth](#add-multi-level-discovery-depth) |
| Write better grading | [Observable chains](#write-criteria-as-observable-chains), [Scenario-specific notes](#add-scenario-specific-scoring-notes) |
| Spin up a variation | [Hard/easy variants](#make-a-hard-or-easy-variant), [Dynamic variables](#reuse-with-dynamic-variables) |
| Figure out why it broke | [Diagnose from a transcript](#diagnose-a-stuck-conversation) |
***
## Character & Voice
### Make the persona specific
Give the character a personality, a motivation, and a communication style, not just a job title. The more human they feel, the less robotic the conversation.
> Do: "VP Finance, skeptical and efficiency-oriented, wants to pre-qualify on price before investing time." Don't: "VP Finance."
Use a real personality type (for example DISC: Dominant, Influential, Steady, Conscientious) to keep buyers distinct. More on character fields in [Advanced Roleplay Building](/roleplays/advanced-building#shape-the-character).
### Write the opening line verbatim
Write the character's first line in exact words so the AI doesn't improvise an off-base start. It sets the tone for the whole conversation.
### Natural speech patterns
Make the character sound human with occasional filler and pauses.
```text theme={null}
Use occasional filler words like "hmm," "well," "um," and natural pauses
when thinking through a response. Don't overdo it.
```
### Control response length
Stop a character from monologuing or over-sharing.
```text theme={null}
Keep responses to 1-2 sentences unless asked to elaborate. This is a busy
manager on a call, not someone who monologues or overshares.
```
### Pronunciation rules
If the character mangles a product name or acronym, add a text guideline that spells out how to say it.
```text theme={null}
Always pronounce "NCR" as "N-C-R" (three separate letters), never "nicker."
Pronounce the product "Naviga" as "nuh-VEE-guh."
```
### Segment variants
The same buyer type behaves differently by company size. Spell out how an Enterprise buyer's motives differ from SMB or mid-market, or use [conditional context](/roleplays/conditional-context) to vary the character by the learner's profile.
***
## Conversation Behavior
These live in the character's [Conversation Guidelines](/roleplays/conversation-guidelines), built from **text sections** (free-form rules like response length, speech, pronunciation) and **trigger sections** (a trigger plus leveled responses).
### Be explicit about objections
List the specific pushbacks you want and when, or the AI invents objections that may not match your product. If you only want pressure on price and timeline, say so.
### "Don't ask superfluous questions"
One of the highest-impact lines you can add. Without it the AI over-asks and creates dead ends.
```text theme={null}
Don't ask superfluous questions. Accept what you're told unless it touches
a point of resistance I've defined.
```
### Define exit conditions
If the rep must do something specific to advance (ask for the meeting, present ROI), say so, or reps get stuck waiting for a "magic phrase" the character is silently holding out for.
### Define a concession point
Tell the AI when to soften, or it stays in objection mode forever.
```text theme={null}
After the rep addresses the budget objection with at least two supporting
points, become more open to discussing next steps.
```
### Add multi-level discovery depth
Make reps dig instead of accepting the first answer. Ask the agent to add levels to a response guideline.
```text theme={null}
Level 1 (initial): guarded, deflects.
Level 2 (if pressed well): shares generalities.
Level 3 (only with excellent probing): shares specific numbers.
```
### Add or edit text and trigger sections
Reach for a **text section** for a general rule ("keep answers short") and a **trigger section** for a specific moment ("when asked about budget, respond like this"). You can add your own triggers and as many response levels as a moment needs. Full editor: [Conversation Guidelines](/roleplays/conversation-guidelines).
### Phase the conversation
Nothing limits you to one trigger section. Use several, named for the stage they cover, when the character should behave differently at different points. This matters most when the rep presents a deck: without it, an inquisitive character keeps interrupting the pitch.
```text theme={null}
Build separate trigger sections for the phases of this call:
Phase 1 (introductions): probes, asks why we're here, stays guarded.
Phase 2 (presentation): listening mode, short affirmations, no new
objections or interruptions.
Phase 3 (questions): re-engages and pushes back on what they heard.
```
Mention up front that the scenario involves presenting a slide deck and the agent usually builds this structure on its own.
***
## Evaluation Criteria
### Write observable behaviors, not vague qualities
> Do: "Asks at least three open-ended questions about the prospect's workflow before presenting." Don't: "Demonstrates good discovery skills."
### Write criteria as observable chains
Format a criterion as "rep does X, then Y, without Z."
```text theme={null}
Rep does not quote a specific number, explains pricing structure only if
pressed, and redirects to discovery within the first minute.
```
### Add scenario-specific scoring notes
Drop a note right into the Good / Fair / Poor text to override or supplement the default logic.
```text theme={null}
Good: Rep establishes credibility with a relevant customer example.
Scenario-specific: Rep can only earn Good if they confirm the timeline
before discussing price.
```
Align the weighting to what the scenario is actually testing, and associate a [skill](/skills/overview) with each criterion so the results feed your analytics. Editing criteria: [Advanced Roleplay Building](/roleplays/advanced-building#fine-tune-the-evaluation-criteria).
***
## Editing & Variants
### Edit in place; Remix for variants
Everything in a published scenario is editable in place, either directly or by telling the agent what to change: context, criteria, character identity and behavior, response guidelines, voice, personality, session settings. Reach for **Remix** only when you want a separate variant and the original kept intact. See [Edit a Scenario](/roleplays/edit-scenario) and [Remix a Scenario](/roleplays/remix-scenario).
### Make a hard or easy variant
Remix and describe the change, keeping the original intact.
```text theme={null}
Make a hard version of this scenario: the character is more resistant to
sharing information and the grading is stricter. Keep the same character
and context.
```
### Reuse with dynamic variables
Set a placeholder like company name once and have it update everywhere in the scenario, so you can reuse a scenario across teams or accounts without hand-editing every mention.
### Clone vs. Remix
Use **Clone** to adapt someone else's scenario (for example from a shared collection) into your own; use **Remix** to create a variation of your own scenario while keeping the original. To change a scenario itself, use **Edit**. If you get stuck while editing, use **Revert** to return to a previous version.
***
## Testing & QA
### Test with Try Now before publishing
Click **Try Now** for a quick conversation with the character. Check the opening line, whether resistance feels right, whether it reveals too much, and whether the flow gets stuck.
### Preview with a simulated transcript
Don't always run it live. Ask the agent for a sample run to review in a couple of minutes.
```text theme={null}
Generate a simulated transcript of a mid-tier (Fair) performance of this
scenario so I can see where the conversation falls short of Good.
```
### Diagnose a stuck conversation
Paste a real transcript back to the agent and ask what went wrong.
```text theme={null}
This is a conversation that happened. The rep got stuck here: [paste].
Why did this happen, and what in the scenario design caused it?
```
To fix it, open the scenario in **Edit** and paste the transcript with a note on what felt off. The agent makes targeted changes based on what actually happened. You can also ask the builder about its own blind spots before publishing.
***
## Planning Shortcuts
* **Start with the moment, not the topic.** "Prospect pushes back on price during a procurement demo after seeing the proposal" beats "objection handling." Specific moments make realistic practice.
* **Split long conversations.** Keep a scenario under about ten minutes; split longer ones at natural stopping points and match the character name, company, photo, and voice across parts so it feels continuous.
* **Start simple, then layer.** Build the easy, cooperative version first, confirm it works, then edit in tougher objections, a more resistant persona, or time pressure. Remix instead if you want to keep the easy version as its own scenario.
* **Feed a long brief in pieces.** If you've worked up a detailed briefing document, don't expect one large paste into the chat to come through intact. Add the document to the Knowledge Hub and point the agent at it as a [source](/roleplays/advanced-building#build-from-your-own-materials), prioritize the background, objectives, and context that matter most, then layer the rest in with focused instructions ("add this background to the character," "make sure the context includes these market conditions"). Anything that must appear in the scenario is worth naming explicitly.
For the foundational planning model (the Four Pillars) and the build methods, see [Creating Scenarios](/roleplays/ai-agent).
***
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on building scenarios or any questions about the Scenario Studio.
# Call Categories and Scorecards
Source: https://docs.exec.com/calls/categories-and-scorecards
Define conversation types, the attributes you capture, and the scorecards calls are graded on
Categories are the heart of call scoring. Each category is a type of conversation, and it defines what Exec captures from those calls (attributes), how it grades them (scorecards), and how it summarizes them. Manage them under **Settings > Calls > Categories**.
## Categories
Categories are folders for your conversation types, such as **Sales**, **Prospecting**, **Customer Success**, **Customer Support**, **Internal**, and **Recruiting**. A templated set comes built in and is ready to use as-is; click **Create Category** to add your own with a name and description. Each category has an **Automatically analyze future calls in this category** toggle and three tabs: **Attributes**, **Scorecards**, and **Call Summaries**.
When the toggle is on and Exec is confident a call belongs to that category, it labels, scores, and analyzes the call with no action from you. Because the first scoring of a call spends [platform credits](/platform/platform-credits), turning the toggle off on categories you care less about is the simplest way to control spend: those calls still import and get categorized, and you can score them individually whenever you want.
It's common to turn off the default attributes you don't need and keep just the few that matter to your team. Toggle any attribute on or off from the Attributes tab.
## Attributes
Attributes are the structured data Exec pulls out of each call in a category. Every attribute has a **Type** (**Single-Select**, **Multi-Select**, **Text**, or **True/False**) and instructions that tell the scoring system how to identify it.
* A **call type** attribute (single-select) lists the conversation types within a category. Customer Success ships with options like onboarding and implementation, general check-in, strategic QBR, renewal and expansion, and at-risk escalation. Its instructions help Exec identify the category and the specific conversation type, and you can add, edit, or remove options.
* An **objections raised** attribute can capture the objections that come up on sales calls, so you can see the most common ones across the workspace and decide what coaching or roleplays to build around them.
Toggle attributes on or off, edit the built-in ones, or create your own to capture exactly what your team cares about - which products or features came up, deal stage, call outcome, key stakeholders mentioned. Whatever you capture here becomes a chart on the [category dashboard](/calls/review-scored-calls#the-calls-dashboard) and a filter in Call History, so add the attributes you actually want to slice performance by.
## Scorecards
A category's **Scorecard** is where the actual evaluation criteria for call scoring live. Every category ships with a **base scorecard** already built out, covering things like preparation and context awareness, so calls start scoring before you configure anything. Build on it around what matters for that conversation type: discovery, handling objections, talk ratio, business value, introductions, closing and next steps.
Each item works the same way as a roleplay's evaluation criteria, with four descriptions:
| Field | What it describes |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Good Performance** | What strong performance on this criterion looks like |
| **Fair Performance** | Partial or inconsistent performance |
| **Poor Performance** | What missing the mark looks like |
| **Not Relevant for Grading** | When the criterion shouldn't be graded at all - if this situation comes up, the call isn't marked down for it |
**Not Relevant for Grading** is worth filling in. Criteria graded not relevant are left out of the score calculation entirely, so a criterion that had no chance to come up on a call doesn't drag that call's score down.
To write the descriptions quickly, enter a title (for example, "Objection handling") and click **Generate** - Exec drafts the Good, Fair, and Poor descriptions for you, and you edit from there.
### Skills, attribution, and weighting
Three more settings on each scorecard item:
* **Skills** - generate or associate a skill, so call performance feeds the same [skill analytics](/skills/analyze-performance) as roleplays.
* **Attribution** - who the criterion is credited to. This is specific to call scoring; roleplays have no equivalent because there's only one learner.
| Attribution | Behavior |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Speakers (whoever demonstrates this skill)** | Credits whichever team members actually demonstrated it. The default, and the right choice for most criteria. |
| **All participants (everyone on the call)** | Credits every internal participant equally. Use for things the whole team owns together, like call structure. |
| **Call-level only (don't track individually)** | Scores the call but attributes nothing to individuals, so it stays out of personal skill data. |
* **Weighting** - **0 points**, **1 point**, **2 points**, or **4 points**. Higher-weighted criteria count for more in the call's score; **0 points** leaves the criterion out of the score calculation, so it's evaluated and shown but doesn't move the number. Use this to make things like booking next steps or active listening count for more than softer criteria.
A handy shortcut: build a roleplay for the conversation first, then transfer its evaluation criteria into the call scorecard.
### Conditional criteria
**Conditional criteria** are scorecard items that only apply when an attribute has a specific value, so a call gets graded on what's actually relevant to it. Most categories ship with some already: Customer Success, for example, has separate criteria for onboarding calls, QBRs, and renewals on top of its base scorecard.
Click **Add conditional criteria**, select the attribute and the value, and build the items. Calls in that category get the base scorecard plus any conditional criteria matching their attributes.
Only **Single-Select** attributes can drive conditional criteria, and each value can have one set of them. Values that already have criteria don't appear in the picker again.
### Archiving and deleting a category
**Archive** a category you've stopped using: its calls keep their extracted attribute data, their scorecards are marked outdated rather than deleted, and you can recategorize those calls or re-activate the category at any time. **Delete** is permanent - its calls return to uncategorized and have to be recategorized and rescored from scratch. Archive unless you're sure.
## Call Summaries
The **Call Summaries** tab is where you give instructions for how calls in this category should be summarized, including what to include and how to structure it. If you leave it blank, Exec uses a sensible default, similar to a roleplay session summary.
## Next step
Once calls are importing and scoring, see [Review Scored Calls](/calls/review-scored-calls) to track performance.
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on building categories and scorecards.
# Microsoft Teams Call Sync
Source: https://docs.exec.com/calls/microsoft-teams
Connect Microsoft Teams so recorded meetings flow into Exec for scoring
Connect Microsoft Teams to Exec and recorded meetings flow in automatically, get transcribed, categorized, and scored the same way as calls from Fireflies or Gong. See [Call Scoring Overview](/calls/overview) for what happens after a call arrives.
The Teams connection lives on the same **Microsoft 365** credential that powers [OneDrive and SharePoint document sync](/knowledge-hub/microsoft-365-integration). Connecting Teams also lets you enable those surfaces without a second sign-in.
## Connection modes
You can connect Teams in one of two ways.
| Mode | Who can set it up | Which meetings sync |
| --------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Single user** | Any workspace member | Meetings the connected user organized or joined, from their OneDrive. |
| **Organization-wide** | A Microsoft Entra admin | Recordings from every user in your tenant. Exec walks each user's OneDrive to find recordings organized by anyone. |
Pick organization-wide if you want to score calls across the whole team, not just one person's meetings.
## Connecting as a single user
Go to **Settings → Integrations** and scroll to the **Call Recorders** section.
Click the **+** button on the **Microsoft Teams** card, then click **Connect**. Sign in to Microsoft and approve the requested permissions.
Exec queues an initial import of past Teams recordings. New meetings appear in **Calls** as they finish recording.
## Connecting organization-wide
Organization-wide connections use a **Microsoft Entra app registration** that your IT admin creates in your own tenant, so Exec can read recordings across every user without individual sign-ins.
In the [Microsoft Entra admin center](https://entra.microsoft.com), create a new app registration for Exec.
Add these application permissions and grant admin consent for your organization:
* `User.Read.All`
* `OnlineMeetingTranscript.Read.All`
* `Files.Read.All`
Add `Sites.Read.All` as well if you also want to enable SharePoint document sync on the same credential.
Reading Teams transcripts also requires an application access policy. Run the following in PowerShell, replacing `` with your app registration's application (client) ID:
```powershell theme={null}
New-CsApplicationAccessPolicy -Identity Exec-Transcripts -AppIds
Grant-CsApplicationAccessPolicy -PolicyName Exec-Transcripts -Global
```
Under **Certificates & secrets**, create a client secret and copy its value. Save the tenant ID and application (client) ID as well.
In **Settings → Integrations → Call Recorders**, open the **Microsoft Teams** card and click **Connect organization-wide**. Paste the **Directory (tenant) ID**, **Application (client) ID**, and **Client secret**, then click **Connect**.
Exec validates the credentials against Microsoft Graph before saving the integration. If admin consent is missing or a required permission has not been granted, the connect step surfaces the error so you can fix it in Entra and retry.
Admin consent alone is not enough for Teams transcripts. You must also grant the app a Teams application access policy in PowerShell — otherwise transcript downloads fail even though calls appear in Exec.
## What gets imported
* **Recordings** — the meeting video from the organizer's OneDrive
* **Transcripts** — Teams transcripts pulled from Microsoft Graph, with SharePoint transcripts used as a fallback
* **Participants** — email addresses of everyone on the call, used by [Recognize Team Members](/calls/set-up-call-scoring#recognize-team-members) to decide who is a teammate versus a customer
Organization-wide connections enumerate every user in the tenant and search each user's OneDrive, so recordings organized by anyone in the org are picked up. Imports deduplicate on the meeting ID, so re-running a sync never creates duplicate calls.
## Configuring what gets scored
Teams recordings flow through the same import rules and scoring settings as every other call recorder. Once Teams is connected, configure the rest of call scoring in **Settings → Calls**:
* [Set Up Call Scoring](/calls/set-up-call-scoring) — access rules, minimum duration, and how Exec recognizes team members versus customers
* [Call Categories and Scorecards](/calls/categories-and-scorecards) — define the conversation types and how they are graded
* [Review Scored Calls](/calls/review-scored-calls) — read a call's summary, transcript, and scorecard
## Getting help
Questions about the Microsoft Teams integration? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Call Scoring Overview
Source: https://docs.exec.com/calls/overview
Record and score your team's real calls automatically, the same way roleplays are scored
## Video walkthrough
A full walkthrough of call scoring: what the dashboards and a scored call look like, connecting your call recorder, and building categories, attributes, and scorecards.
Call scoring connects your call recorder to Exec and automatically scores your team's real conversations against scorecards you define, the same way [roleplays](/roleplays/ai-agent) are scored. It turns live calls into the same kind of structured feedback and skill data you get from practice, so you can see how people actually perform with customers and where to coach them.
## How call scoring works
Link a call recorder so your calls flow into Exec. Exec connects to **Fireflies.ai**, **Gong**, **Fathom**, **Clari Copilot**, **Sybill**, **Zoom**, and [**Microsoft Teams**](/calls/microsoft-teams). See [Set Up Call Scoring](/calls/set-up-call-scoring).
Configure access, recognize your team by email domain, and set rules for which calls import. See [Set Up Call Scoring](/calls/set-up-call-scoring).
Set up the types of conversations (categories), the attributes you want captured, and the scorecards calls are graded on. See [Call Categories and Scorecards](/calls/categories-and-scorecards).
As calls come in, Exec categorizes them, captures attributes, and grades them on the right scorecard.
Track scores across your team on the dashboard, and open any call for its summary, transcript, and scorecard. See [Review Scored Calls](/calls/review-scored-calls).
The dashboard gives you the team view at a glance: total calls, average score, the trend over time, and the Gold/Silver/Bronze distribution.
Call scoring requires a connected call recorder integration and is available depending on your plan. To open it, click **Calls** in the navigation. If it isn't set up yet, you'll be guided through a short setup flow.
## What Call Scoring Costs
Scoring a call spends [platform credits](/platform/platform-credits) from your workspace's monthly pool, priced by the length of the call:
| Call length | Cost |
| ---------------- | ----------- |
| Up to 15 minutes | 40 credits |
| 15 to 60 minutes | 100 credits |
| Over 60 minutes | 140 credits |
A call is charged once, when it is first scored. Reviewing the transcript, summary, attributes, and scorecard afterwards is free, and the **first rescore of any call is free** too. Every rescore after that costs the call's full tier price again, so re-running the same call repeatedly does spend credits. Calls that import but are skipped, excluded, or filtered out never cost anything.
Importing a call is not the same as scoring it. Category rules, team-member matching, and exclusion settings decide what enters the scoring queue, so you control what actually spends credits. See [Set Up Call Scoring](/calls/set-up-call-scoring) to tune this.
The other lever is per category. Each category has an **Automatically analyze future calls in this category** toggle, so you can leave your highest-value conversation types scoring automatically and turn the rest off, then score those calls by hand only when you want them. See [Call Categories and Scorecards](/calls/categories-and-scorecards).
Connecting a call recorder for the first time grants a one-time bonus of 10,000 platform credits, enough to score roughly 100 hour-long calls, so you can try call scoring before committing spend. See [Platform Credits](/platform/platform-credits) for allowances, balances, and how to buy more.
## Score a call without a recorder
Don't have a recorder connected, or want to score a one-off recording, transcript, or pasted conversation? Use **Upload transcript** on the Call History page to add recordings (`.mp3`, `.mp4`) or transcripts (`.docx`, `.vtt`, `.srt`, `.txt`) directly. See [Upload Calls Manually](/calls/upload-calls-manually).
## Use calls as AI context
Once a call recorder is connected, recorded calls also become available as a source in Exec's AI builders. In [Scenario Studio](/roleplays/attachments#building-from-a-call) and the [Knowledge Hub AI chat](/knowledge-hub/ai-chat), a **Browse Calls** option lets you attach a real call so the agent can use its summary and transcript when generating a scenario or a page. Access respects call permissions — you can only attach calls you're allowed to view.
## Getting Help
Click **Ask Exec** in the sidebar to ask questions about call scoring, search the help docs, or file a bug or feature request without leaving the platform.
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on setting up call scoring.
# Review Scored Calls
Source: https://docs.exec.com/calls/review-scored-calls
Track call performance across your team and dig into any individual scored call
Once calls are importing and scoring, the **Calls** area gives you two views: a **Dashboard** for team and org performance, and **Call History** for individual scored calls.
## The Calls Dashboard
**Calls > Dashboard** opens on an overview of the whole workspace: how many calls have been processed, the average score, and your own recent scored calls. Click **View All** to go deeper, or pick any category from the left to see how your team is doing on that conversation type.
A category dashboard leads with four numbers - **Total Calls**, **Internal Participants**, **Avg. Score**, and **Internal Participant Talk Time** - then breaks the period down further:
* **Scores over time**, with the range of calls behind each point, so you can see both the average and how spread out the calls were
* **Score distribution** across Gold, Silver, and Bronze
* **A card per attribute**, turning what you capture into patterns worth acting on: which **objections raised** come up most, how calls split across **call type**, where deals sit by **deal stage** or **call outcome**
* **Skill performance**, the same view as roleplay analytics, for the skills tied to your scorecard criteria
* **Participants**, listing everyone evaluated on this conversation type with their call counts and averages
* **Leaderboard**, ranking people by **Best Score Average** and by **Greatest Score Lift**, so improvement shows up alongside raw performance
Filter all of it by **groups**, **people**, and **relevant skills**, and adjust the **timeline** to focus on a specific team or period.
The attribute cards are where coaching decisions come from. If technical feasibility objections dominate the quarter, that's the signal to build a roleplay or a piece of content for that objection rather than guessing at the gap.
## Call History and a scored call
**Call History** lists every scored call, with filters and a **Download Report** (you can customize the columns). Save the filter combinations you use often as custom views - one per team, or per conversation type.
Click a row to peek at the call in a side panel without leaving the list, expand it to full screen, or open the call itself. A scored call has three tabs:
* **Dashboard** - a **Call Summary** of what happened and the purpose of the conversation, the participants, and the captured attributes, plus a scorecard summary
* **Recording** - the recording alongside the full transcript
* **Scorecard** - the same scorecard you built in the category settings, graded for this call. Each criterion shows its grade with reasons it scored well, and for anything less than Good, where it missed and how to improve
You can also **chat with the [AI coach](/roleplays/ai-coach)** about the call to talk through how it went and where to improve. Because call criteria can be tied to [skills](/skills/overview), this performance feeds the same skill analytics as roleplays, see [Analyze Skill Performance](/skills/analyze-performance#skill-performance-in-call-analytics).
## Turn a real call into practice
The most useful thing to do with a call that went badly is practice it. On any scored call, click **Create > Scenario** to open [Scenario Studio](/roleplays/attachments#building-from-a-call) with that call already attached, so the generated roleplay is built from the real conversation - the customer's actual objections, the real context, the moment it went sideways. Edit from there like any other scenario.
You'll only see this if your role allows creating scenarios.
## Fix a miscategorized call
Occasionally a call lands in the wrong category and gets graded on the wrong scorecard - a sales conversation scored as customer success, say. To move it:
On the call (or from the category cell in Call History), click **Choose Category** and select the correct one.
Exec warns you what you'll lose before applying it. Click **Confirm**.
The call is flagged as having changed category. Click the retry button, or open the call and reanalyze it, to grade it against the new category's scorecard.
Changing a call's category **erases the attribute data** Exec extracted under the old category, and its existing scorecard stops appearing in analytics dashboards. The transcript and recording are untouched.
The first rescore of any call is free. Rescores after that cost the call's full scoring price again - see [what call scoring costs](/calls/overview#what-call-scoring-costs).
## When a call isn't scored
Not every imported call gets a score, and Call History tells you why. Some reasons are permanent, others you can act on:
| Reason | What it means | What to do |
| ---------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| **Call Too Short** | Below your minimum duration | Lower the minimum in [Call Analysis Settings](/calls/set-up-call-scoring#call-analysis-settings) |
| **Call Excluded** | Matched an exclusion rule for a participant domain or email | Adjust [Don't Import Calls with These Participants](/calls/set-up-call-scoring#recognize-team-members) |
| **No Transcript** | Nothing to analyze | Nothing to do - the recorder produced no transcript |
| **Low Category Confidence** | Exec couldn't confidently tell what type of call it was | Assign a category manually, then score it |
| **Out of Call Credits** | No [platform credits](/platform/platform-credits) left when the call was evaluated | Buy credits, then score the call |
| **Categorization Failed** | An error while categorizing | Retry, or assign a category manually |
| **Auto-scoring Disabled** | The category's **Automatically analyze** toggle is off | Score the call by hand, or turn the toggle on |
| **Scorecard not configured** | The category has no scorecard criteria | Build the [scorecard](/calls/categories-and-scorecards#scorecards) |
| **No team members to score** | Nobody on the call was recognized as a teammate, or nobody cleared the conversational-turn threshold | Check [Recognize Team Members](/calls/set-up-call-scoring#recognize-team-members) |
Open the call and click **Score This Call** or **Retry Scoring** once you've fixed the cause.
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on reviewing call scores and reports.
# Set Up Call Scoring
Source: https://docs.exec.com/calls/set-up-call-scoring
Connect a call recorder and configure who and what gets scored
Setting up call scoring has two parts: connecting your call recorder, and configuring the rules for which calls import and who can see them. You can start from the **Calls** tab, but the full foundation lives under **Settings > Calls > General Settings**.
## Getting started
Click **Calls** in the navigation. If your workspace hasn't set up call scoring yet, click **Try For Free** to run a three-step onboarding:
Pick the conversation type to start with - **Sales**, **Prospecting**, **Customer Success**, **Customer Support**, or **Recruiting**. This becomes the first category Exec scores against.
Add your company's email domain. Exec uses it to work out which participants on a call are on your team and should be evaluated, and which are the customer.
Choose your recorder and connect it with credentials from that service - see [Supported call recorders](#supported-call-recorders) for what each one needs. No recorder? Click **Upload transcript** instead and score a conversation directly - see [Upload Calls Manually](/calls/upload-calls-manually).
You can also do all of this, with more control, from the settings described below.
## Supported call recorders
Exec imports calls from seven recorders. Each is connected from **Settings > Integrations > Call Recorders** with credentials you generate in that service:
| Recorder | What you'll need |
| ------------------- | --------------------------------------------------------------------------------------------------------------------- |
| **Fireflies.ai** | API token |
| **Fathom** | API token |
| **Sybill** | API key |
| **Clari Copilot** | API key and API password |
| **Gong** | API URL, access key, and access key secret |
| **Zoom** | A Server-to-Server OAuth app in your Zoom account |
| **Microsoft Teams** | Microsoft sign-in, or an organization-wide app registration - see [Microsoft Teams Call Sync](/calls/microsoft-teams) |
You can connect more than one at a time.
## Call Processing
Under **Settings > Calls > General Settings**, the **Call Processing** card is where you **connect to your call recorder**. It opens [Integrations](/platform/settings-tab), where you pick your recorder and paste your API token or sign in. Once connected, calls begin importing and you'll see the **Import History** populate.
The card also shows the state of your pipeline: an **Active** or **Paused** badge, your **total calls** and how many are **queued**, and a row of pills counting calls by processing status - **Ingested**, **Categorized**, **Processing**, **Completed**, **Skipped**, and **Failed**. Hover the **Skipped** or **Failed** pill to see the top reasons behind it.
Click **Pause** to stop new calls being categorized and scored, and **Resume** to start again. Pausing doesn't affect calls that are already scored.
### Import History and backfilling older calls
**Import History** lists every sync, so you can see what each run brought in and whether it succeeded. If calls from before you connected the recorder never came through, use the backfill form on that card: pick the **Integration**, set a **From** and **To** date, and click **Import Calls**. Exec pulls calls in that range and tracks progress in the table below the form.
## Call Analysis Settings
* **Minimum duration for call analysis** - calls shorter than this (in seconds) are not processed or scored, so quick check-ins don't clutter your data. Calls under the limit are skipped with the reason **Call Too Short**.
* **Minimum category confidence for call analysis** - the confidence threshold for assigning a call to a category. **30% is the recommended setting.** Above the threshold, Exec assigns the conversation category and scores the call on that category's scorecard. Below it, the call is skipped as **Low Category Confidence** and waits for you to assign a category by hand - see [fixing a miscategorized call](/calls/review-scored-calls#fix-a-miscategorized-call). Raising the threshold makes categorization stricter and sends more calls to manual assignment.
## Access
The **Access** card controls who uses and sees call scoring:
* **Who can use call scoring** - leave empty to enable it for everyone, or limit it to specific groups so only those members' calls are pulled in.
* **What users can see** - **Workspace Admins** always see **All** calls. For **Group Admins** and **Workspace Members**, choose **None**, **Theirs Only**, **Theirs + Group Members'**, or **All**.
## Recognize Team Members
This is how Exec knows who on a call is a teammate (and should be evaluated) versus the customer on the other side.
* **By Domain** / **By Email** - add your company's email domain (for example, `exec.com`) so anyone with that domain is recognized as a team member. Add every domain you use if your company has more than one. Add individual emails for exceptions, such as teammates who join from a personal address.
* **Active Call Participant Threshold** - the **Minimum Conversational Turns** someone must take to be evaluated as a participant. The default is **2**, which is low enough that someone who barely spoke still gets scored; raising it to four or five keeps the data to people who genuinely took part.
* **Restrict Call Import to Workspace Members** - when on, only calls with at least one workspace member import. Turn it off to include everyone in the org.
* **Don't Import Calls with These Participants** - exclude calls **By Domain** or **By Email**, useful for competitors or sensitive conversations (for example, legal or executive calls).
If you don't add your domain under Recognize Team Members, Exec will treat everyone on a call as a team member, including the customers you spoke with, and score them too. Always set your domain first.
## Next step
With your recorder connected and rules set, define the conversation types and how they're graded. See [Call Categories and Scorecards](/calls/categories-and-scorecards).
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for help connecting a call recorder or configuring call scoring.
# Upload Calls Manually
Source: https://docs.exec.com/calls/upload-calls-manually
Upload recordings, transcripts, or pasted text to score calls without a call recorder
If a conversation isn't in your connected call recorder — or you don't have one connected — you can upload it directly from **Call History**. Recordings are transcribed automatically, transcripts and pasted text are parsed in place, and every call is scored on the right scorecard the same way imported calls are.
## When to use manual upload
Use this flow when you want to score:
* A one-off recording that never made it to your call recorder (a Zoom export, a mobile recording, a webinar clip)
* Historical calls from before you connected a recorder
* A transcript you already have in `.docx`, `.vtt`, `.srt`, or `.txt`
* A conversation you can only paste in as text
For calls that flow through **Fireflies**, **Gong**, or another connected recorder, no manual upload is needed — see [Set Up Call Scoring](/calls/set-up-call-scoring).
## Uploading calls
Go to **Calls > Call History** and click **Upload transcript**.
On the **Files** tab, drag files onto the dropzone or click to browse. Supported formats:
* **Recordings** — `.mp3`, `.mp4`
* **Transcripts** — `.txt`, `.vtt`, `.srt`, `.docx`
You can add up to 10 files at a time and mix recordings and transcripts in the same batch.
Prefer to paste? Switch to the **Paste text** tab, paste the conversation, and click **Add as a call**. Start each line with the speaker label so the parser can split turns:
```text theme={null}
Rep: Thanks for taking the time today.
Customer: Sure, what did you want to cover?
Rep: I wanted to walk through how teams like yours...
```
Each `.mp3` or `.mp4` is uploaded to the [Knowledge Hub](/knowledge-hub/sources) and transcribed automatically. The row shows a progress indicator while this runs — you can queue up other files or fill in speakers on transcript rows in the meantime. If transcription fails, the row surfaces a retry button.
For each call, confirm the title and tell Exec which speaker is on your team so only your team members are graded:
* Toggle each detected speaker between **Internal** (someone on your team) and **External** (the customer or prospect).
* For internal speakers, pick the workspace member from the dropdown. Exec remembers your last choice across rows in the same batch.
* Click **Apply to all** on a speaker to reuse the same internal/external choice on every other row that has the same speaker label.
Talk-time percentages and a first-quote preview appear next to each speaker to help you tell them apart at a glance.
Click **Upload** to submit the batch. Calls import into **Call History** and are categorized and graded on their scorecard the same way imported calls are. See [Review Scored Calls](/calls/review-scored-calls).
Closing the dialog while a recording is still uploading or transcribing prompts a confirmation — anything in progress is discarded if you continue.
## Where uploaded recordings live
When you upload an `.mp3` or `.mp4`, Exec:
* Saves the file to your **Knowledge Hub** as a source so the transcript is searchable and reusable by the AI agent and by roleplays.
* Links the Knowledge Hub source to the scored call, so the **Recording** tab on the call plays back the original audio or video alongside the transcript.
Transcript-only uploads (`.docx`, `.vtt`, `.srt`, `.txt`, and pasted text) don't create a Knowledge Hub source — they only appear as a scored call.
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for help uploading calls.
# Certify Others
Source: https://docs.exec.com/certificates/certify-others
Issue certifications to learners in your workspace
Once a certification is created, you can issue it to learners manually from the Certifications app. For automatic certification through program completion, see [Programs and Certifications](/programs/certifications).
***
## How to Issue a Certification
Search for and select the learner who should receive the certification.
Use this field to record why the certification was issued. These notes are internal only — learners won't see them.
Decide whether to notify the learner by email. If notified, they'll receive an email confirming the certification along with a link to their PDF.
Once confirmed, the certification is granted and the learner's record is updated.
***
## Viewing a Certification PDF
After issuing, click the **three-dot menu** next to the learner's name and select **View PDF** to view or download their certification. The PDF includes the certification title, description, workspace logo, and learner details.
***
## Revoking a Certification
Revoking a certification is permanent — the learner loses the credential immediately and it cannot be restored without reissuing. Use this option with care, especially if the learner has already shared or referenced the certification.
To revoke, click the **three-dot menu** next to the learner's name and select **Revoke**.
***
## Tips
* **Use the internal note field** when issuing manually — it creates a record of why the certification was granted
* **Notify learners** unless there's a specific reason not to — it keeps them engaged and provides immediate recognition
* **Revoke sparingly** — only if a certification was issued by mistake, not for performance reasons
***
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on issuing or managing certifications.
# Create a Certification
Source: https://docs.exec.com/certificates/create-certification
Formally recognize learners for completing training or demonstrating specific expertise
Certifications in Exec let you formally recognize learners for completing training or demonstrating specific expertise. Each certification has a title, description, and expiration rules — and once created, it can be issued to learners [manually](/certificates/certify-others) or [automatically through program completion](/programs/certifications).
Certifications must be enabled on your workspace. Check for **Certifications** in the left-hand navigation — if you don't see it, contact us at [hello@exec.com](mailto:hello@exec.com) to have it turned on.
***
## How to Create a Certification
The name of the certification, visible to learners (e.g., "Sales Excellence Certification").
Supporting text displayed on the certification PDF (e.g., "This certification recognizes demonstrated proficiency in discovery and objection handling").
Determines how long the certification remains valid:
* **Never expires** — learners remain certified indefinitely
* **Relative expiration** — valid for a set period from the issue date (e.g., one year)
* **Specific date** — expires for everyone on a set calendar day
Once saved, the certification is ready to issue to learners.
***
## How Learners Experience It
When a learner is certified, they receive an email notification containing the title, description, workspace logo, and a link to view or download their certification PDF.
***
## Automatic Certification via Programs
You can link a certification to a [program](/programs/overview) so that participants are automatically certified when they complete all required components. This eliminates the need to manually issue certifications for cohort-based training.
[Learn how to set up automatic certification ->](/programs/certifications)
***
## Tips
* **Be specific in your titles** — learners should immediately understand what the certification represents
* **Use the description for recognition** — highlight what the certification validates and why it matters
* **Set thoughtful expiration rules** — time-limited certifications (e.g., one year) encourage learners to refresh their skills and demonstrate continued proficiency
***
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on setting up certifications or enabling the feature for your workspace.
# View a Member's Coaching History
Source: https://docs.exec.com/coaching/admin/coaching-history
How workspace admins see a member's coaching sessions, coach, and ratings
As a workspace admin, you can see each member's coaching activity - their sessions, who they're working with, and how it's going - right from that member's profile.
This is an admin task. You'll only see a member's coaching history if you're a **workspace admin** and coaching is enabled for your workspace.
***
## Open a member's coaching history
Go to your workspace **Members** list and click the member you want to look at. This opens their profile page.
Scroll down to the **Coaching** section. At the top you'll see a quick summary - **upcoming** sessions, **Completed** sessions, and their **average rating** - followed by a table of every session.
***
## What the table shows
Each row is one coaching session, with:
* **Session** - the coaching type and session length, plus the date (for example, *Leadership Coaching, 50mins, Feb 26, 2026*).
* **Status** - whether the session is **Scheduled**, **Complete**, or **Canceled**.
* **Coach** - the coach the member met with.
* **Rating** - the score the member gave that session, or a dash if they haven't rated it.
You can click a session to open its detail page for more on that booking.
***
## What you can and can't see
The coaching history shows you the **schedule and outcomes** - sessions, coaches, statuses, and ratings - so you can see that coaching is happening and how members feel about it.
It does **not** show the **content** of sessions. Notes, recordings, and what's actually discussed stay private between the member and their coach.
***
## Getting help
Questions about a member's coaching activity? Email [hello@exec.com](mailto:hello@exec.com).
# Credit Expiration & Renewal
Source: https://docs.exec.com/coaching/admin/credit-expiration
When your workspace's coaching credits expire and how to renew them
The coaching credits your workspace buys expire **12 months after they're purchased**. As an admin, here's what to know about expiration and how to keep your team's coaching going.
This is an admin topic. For how to see and distribute your workspace's credits, see [Check Your Workspace Credit Balance](/coaching/admin/workspace-credits) and [Add or Remove Member Credits](/coaching/admin/member-credits).
***
## How expiration works
* Credits expire **12 months after the date they're purchased**.
* Each purchase has its own 12-month clock. If you've bought credits in more than one batch, each batch expires on its own date.
* If a credit package is only partly used, the leftover credits still expire on that package's date.
***
## Knowing when your credits expire
The platform doesn't surface an expiration date in your workspace, so we'll typically **reach out by email** ahead of time to flag credits that are coming up on their expiration. If you're not sure when your workspace's credits expire, just ask your Exec rep or email [hello@exec.com](mailto:hello@exec.com) and we'll confirm the dates for you.
***
## Renewing your credits
To keep your team's coaching going, renew before your credits lapse:
* **Reach out to your Exec rep** to purchase more. They can make sure you're getting the best rate, especially on larger purchases.
* New credits are added to your **workspace pool**, ready for you to distribute to members and groups.
For how credits flow from your workspace to members and groups, see [Check Your Workspace Credit Balance](/coaching/admin/workspace-credits).
***
## Getting help
Questions about when your workspace's credits expire or how to renew? Email [hello@exec.com](mailto:hello@exec.com).
# A Guide to Groups
Source: https://docs.exec.com/coaching/admin/groups
Create groups, manage members and credits, and use groups to organize and tag your workspace
Groups let you organize the people in your workspace into segments you can manage together - a department, a cohort, an office, or any other way you want to slice your team. This guide covers what groups are for and how to manage them.
This is an admin task. Creating and managing groups is available to **workspace admins**. You can also appoint **group admins** to manage a single group. Credit features appear only when coaching is enabled.
***
## What groups are for
A group is a named collection of members. You can use groups to:
* **Organize your team** - segment members by department, cohort, region, or whatever structure fits.
* **Control coaching access** - give a group access to specific coaching services, or set a per-session credit limit.
* **Manage credits together** - give a group its own credit wallet and let a group admin distribute credits within it.
* **Assign work in bulk** - assign programs and roleplay scenarios to a whole group at once.
* **Tag and filter** - because a member can belong to many groups, groups double as **tags**. Use them to label members (for example, "New Hires" or "Pilot") and filter your Members list by group.
A member can be in as many groups as you like, so groups work just as well as lightweight tags as they do as formal teams.
***
## Create a group
Go to **Workspace > Groups** in your admin settings, then click **+ Add Group**.
In the **Add Group** dialog, give the group a **name** and optionally add members by email.
If coaching is enabled, choose **Same as Workspace** to inherit your workspace defaults, or **Custom for Group** to control which coaching services the group can access and set a per-session credit limit. Then click **Create Group**.
***
## Add and remove people
**Add members to the group.** On the group's page, find the **Group Members** section and click **+ Add Members**, then enter the emails of the workspace members to add.
**Remove a member.** In the **Group Members** table, open a member's actions menu and choose **Remove From Group**. This only removes them from the group, not from your workspace.
**Tag a member from the Members list.** You can also assign groups from the other direction: on your **Members** list, open a member's menu (or select several at once) and choose **Set Groups** to check the groups they belong to. This is the quickest way to use groups as tags.
***
## Appoint a group admin
A **group admin** manages a single group without being a full workspace admin. They can add and remove members and distribute the group's credits, but they can't rename or delete the group or change its permissions.
To appoint one, open the **Group Members** table, open a member's actions menu, and choose **Make Group Admin** - their row then shows a **Group Admin** badge. Choose **Revoke Admin Rights** to remove it. Only workspace admins can appoint group admins.
***
## Manage group credits
Groups can hold their own pool of coaching credits, so a group admin can hand them out without touching the rest of the workspace's balance.
* **Fund the group.** From the **Groups** list or the group's page, use **Transfer Credits** to move credits from your workspace into the group's wallet. The group page shows this balance as **Available to Distribute**.
* **Distribute to members.** From the group's **Group Members** table, a workspace or group admin can transfer credits from the group wallet to individual members.
* **Leftover credits.** If you delete a group that still has credits, those credits move back to your workspace account.
For how credits work more broadly, see [Add or Remove Member Credits](/coaching/admin/member-credits).
***
## Edit or delete a group
On the group's page, workspace admins can **Edit** the group's name and permissions, or **Delete Group**. Deleting a group removes the grouping only - the people stay in your workspace - and any leftover group credits return to your workspace account.
***
## Getting help
Questions about structuring your groups or managing group credits? Email [hello@exec.com](mailto:hello@exec.com).
# Add or Remove Member Credits
Source: https://docs.exec.com/coaching/admin/member-credits
How workspace admins adjust coaching credits for people in their workspace
As a workspace admin, you manage a shared pool of coaching credits for your workspace and hand them out to your members. You can top someone up when they're running low, or pull credits back if they were assigned by mistake or are no longer needed - all from your **Members** list.
This is an admin task. You'll only see these options if you're a **workspace admin** and coaching is enabled for your workspace. For how credits work from a participant's point of view, see [Coaching Credits](/coaching/credits).
***
## Where member credits come from
Your workspace has a single shared credit balance. When you add credits to a member, they're drawn from that workspace pool; when you remove credits from a member, they go back into the pool. So moving credits to and from members doesn't create or destroy credits - it just distributes what your workspace has.
If the workspace pool is running low, you'll need to purchase more before you can keep assigning credits.
***
## Adjust one member's credits
Use this when you want to add or remove a specific number of credits for a single person.
Go to your workspace **Members** list, find the person, and open the **three-dot menu** on their row (or on their profile page). Choose **Transfer Credits**.
In the **Transfer Credits** dialog, pick the direction:
* **Transfer to** the member - to **add** credits to their account.
* **Transfer from** the member - to **remove** credits and return them to the workspace pool.
Enter the number of credits under **Transfer Amount**.
Click **Confirm Transfer**. The member's balance updates right away, and they can spend any added credits immediately.
***
## Adjust several members at once
Use this when you want to set the same balance for a group of people.
On the **Members** list, use the checkboxes to select everyone you want to update. A selection bar appears with bulk actions - click **Modify Credits**.
In the **Modify Credits** dialog, enter a number under **Set Credits**. This **sets** each selected member's balance to that number rather than adding to it - so if someone has 2 credits and you set 5, they'll have 5; set a lower number to remove credits. The difference is moved between the member and your workspace pool automatically.
Click **Confirm**. You'll see **Credits successfully set**, and each member's balance reflects the new amount.
***
## Getting help
Questions about your workspace's credit balance, or need to add credits to the pool? Email [hello@exec.com](mailto:hello@exec.com) and we'll help.
# Check Your Workspace Credit Balance
Source: https://docs.exec.com/coaching/admin/workspace-credits
See how many coaching credits your workspace has available to distribute
As a workspace admin, you can check how many coaching credits your workspace has left to hand out to your groups and members. This is the shared pool everything else draws from.
This is an admin task. The workspace credit balance lives on the **Billing** page, which is available to **workspace admins**.
***
## Where to find it
Go to **Workspace > Billing** in your admin settings and scroll to the **Coaching Credits** section.
The balance is labeled **Available to Distribute** - that's the number of coaching credits your workspace has on hand, ready to assign. Use **Buy Credits** to top it up.
***
## How this balance works
The workspace balance is the **top of the chain**. Everything flows out of it:
* When you **add credits** to a member or fund a group's wallet, those credits come out of this balance.
* When you **remove credits** from a member, or delete a group that still has credits, they flow back into this balance.
So if the **Available to Distribute** number is running low, you'll want to buy more before you can keep assigning credits. You can top up yourself with **Buy Credits**, but it's worth **talking to your Exec rep** when you need more - they can make sure you're getting the best rate, especially on larger purchases. See [Add or Remove Member Credits](/coaching/admin/member-credits) and [A Guide to Groups](/coaching/admin/groups) for how credits move from here to members and groups.
The Billing page also shows **Platform Credits**, a separate pool used for AI call analysis and scoring. That's not the same as your coaching credits - the **Coaching Credits** section is the one tied to coaching sessions.
***
## Getting help
Questions about your workspace's coaching credit balance or buying more? Email [hello@exec.com](mailto:hello@exec.com).
# What to Expect in a Three-Way Alignment Call
Source: https://docs.exec.com/coaching/alignment-call
How to set up an alignment call with your coach and manager, and what to cover
A **three-way alignment call** brings together **you, your coach, and your manager**. Unlike your regular sessions, which are just you and your coach, this one includes your manager so everyone shares the same picture of your coaching. Here's how to set one up and how to get the most out of it.
New to the different kinds of coaching sessions? See [Coaching Session Types](/coaching/session-types) for the overview.
***
## Setting up the call
The alignment call isn't a separate session type in the booking menu. You book it through your own account like any other session and have your manager join.
* **Coordinate the timing first.** Because it goes through your account, it's up to you to find a time that works for your manager's calendar before you book. Give them plenty of notice.
* **Give your coach a heads-up.** Let your coach know this session is an alignment call with your manager joining, so they can plan the conversation.
* **Whether you have one is flexible.** It may be something your program sponsor asks for, or something you choose to do on your own.
For the mechanics of booking a session, see [Schedule a Coaching Session](/coaching/schedule-session).
***
## When it happens
Alignment calls usually happen at one of two points in your journey:
Align on your goals, your focus areas, and what success looks like, so you, your coach, and your manager all begin on the same page.
Celebrate wins and reflect on how the coaching went, and talk about how to keep the momentum going.
***
## What to expect during the call
**If it's at the start of your journey:**
* **Context from your manager.** They'll share what they hope you'll get out of coaching and where they see opportunities.
* **Aligning on goals.** Together you'll agree on what to focus on and what success looks like.
* **Setting expectations.** You'll touch on how progress will be shared at a high level, and how often you'll all check in.
**If it's at the end of your journey:**
* **A look back.** You and your coach recap what you worked on and the progress you made.
* **Celebrating wins.** Share the growth and results that came out of the coaching.
* **What's next.** Talk about how to carry the momentum forward after coaching wraps.
***
## A note on privacy
Your regular coaching sessions stay between you and your coach. The alignment call is the shared space for goals and progress, and **you decide how much detail to share** about what you and your coach discuss. If you're unsure where the line is, talk it through with your coach beforehand.
***
## How to prepare
* **Know what you want your manager to hear.** Jot down your goals (or, for an end-of-journey call, your wins and takeaways).
* **Talk to your coach first.** A quick alignment with your coach before the call helps you both show up on the same page about what to cover and what stays private.
* **Come with a question or two.** For example, "What does success look like to you?" at the start, or "Where do you see me applying this next?" at the end.
***
## Getting help
Questions about whether you should have an alignment call, or how to set one up? Ask your coach or email [hello@exec.com](mailto:hello@exec.com).
# Cancel a Coaching Session
Source: https://docs.exec.com/coaching/cancel-session
Cancel a booked coaching session and get your credits back
You can cancel any upcoming coaching session from its detail page. As long as you cancel under the 24-hour cancellation and reschedule policy, you'll get a full refund of the credits you used to book it.
Need to move the session to a different time instead of canceling it outright? The same three-dot menu has a **Reschedule** option - use that to keep your booking and just change the time.
***
## How to cancel a session
Go to **Coaching > Sessions** in the sidebar, then click the upcoming session you want to cancel.
In the top-right of the session header, click the three-dot menu. You'll see two options: **Reschedule** and **Cancel**.
A **Confirm cancellation?** dialog appears. It tells you whether the session is refundable and gives you an optional field to note why you're canceling.
If you want to share context with your coach, type a short reason in the **Reason for canceling** field. Your coach can read this in the session record.
The cancellation goes through immediately. You'll be returned to your Sessions list, where the canceled session now appears under **Past Sessions** with a **Session Canceled** label.
***
## Cancellation policy
Sessions follow a **24-hour cancellation and reschedule policy**: cancel at least 24 hours before the session starts and your credits are refunded automatically. The exact window is shown on the session detail page under **Cancellation and Reschedule Policy**.
* **More than 24 hours before the session** - your credits are refunded automatically when you cancel.
* **Less than 24 hours before the session** - the session is marked non-refundable, and the dialog will say so. You can still cancel, but credits aren't returned automatically. Reach out to your coach or to [hello@exec.com](mailto:hello@exec.com) if you need an exception.
***
## What happens after you cancel
Once the cancellation goes through:
* The session moves to your **Past Sessions** list with a **Session Canceled** tag and strikethrough styling.
* The session detail page shows a **This session is canceled** banner, your cancellation reason (if you provided one), and a **Schedule Session** button to book a new one with the same coach.
* Your coach is notified by email.
* If the session was refundable, your credits are returned to the account you booked from.
***
## If your coach cancels the session
Coaches can cancel sessions from their side too - for example, if something urgent comes up on their schedule. When that happens:
* You'll get an **email** letting you know the session was canceled, and a cancellation reason if your coach added one.
* The session moves to your **Past Sessions** list with the same **Session Canceled** label you'd see if you canceled it yourself.
* Your credits are refunded if the session was refundable. If it was canceled less than 24 hours before the session, your coach can still choose to refund you - most do.
* You can rebook anytime by clicking **Schedule Session** on the canceled session, or by going to **Coaching > Sessions** and starting a new booking.
***
## Getting help
If something went wrong - credits didn't return, you can't find the cancel option, or you need to cancel a non-refundable session - email [hello@exec.com](mailto:hello@exec.com) and we'll sort it out.
# Choosing the Right Coach
Source: https://docs.exec.com/coaching/choosing-a-coach
What to weigh when picking a coach from your matches
When you finish the matching survey, you'll usually have a few coaches to choose from. They're all qualified, so the decision comes down to fit. Everything below is visible on each coach's match card and on their full profile (open it with **More about**).
Haven't run the survey yet? Start with [Find a Coach](/coaching/find-a-coach), then come back here to compare your matches.
***
## What to consider
### Focus areas
Make sure what you want to work on lines up with what the coach does. The card shows **Works with roles like...** and a short bio; the full profile breaks this down into **Industry Specialties** and **Functional Specialties**. Pick a coach whose focus matches your goal, whether that's leadership, a career move, or a specific skill.
### Experience and background
Look at how long they've coached, the industries they've worked in, and the companies under **Worked at**. The full profile includes their **Work History**. A coach who has lived your context - your industry, your kind of role, or the challenge you're facing - can connect faster.
### Credentials
The profile lists a coach's certifications and credentials, and verified coaches show a badge. Formal training (for example an ICF credential) is a good signal if that matters to you.
### Ratings and reviews
Each coach shows an average star rating, and their profile has written reviews from past clients. Read a few - they tell you how someone actually experiences working with the coach, not just their resume.
### Their intro video
Most coaches have a short intro video on their profile. It's the quickest way to get a sense of someone's style, energy, and communication before you commit.
### Session length and credits
The card shows the session lengths a coach offers and how many credits each costs. Choose something that fits the time you want to invest and the credits you have available.
***
## Trust the fit, and stay flexible
* **Book an intro session.** The best signal is a real conversation. Use a first session to gauge rapport and whether the coach's style works for you.
* **You're not locked in.** You can work with more than one coach, and you can rerun the matching survey anytime to see other options. If a coach isn't the right fit after a session or two, switch.
***
## Getting help
If you're torn between matches, or none of them feel right, email [hello@exec.com](mailto:hello@exec.com) and we'll help you find a better fit.
# Coaching Credits
Source: https://docs.exec.com/coaching/credits
What coaching credits are, how to use them, and how to get more
Coaching sessions are paid for with **credits**. Each session you book costs a set number of credits, and your balance shows how many you have left. This page explains how credits work, how to keep an eye on your balance, and how to get more.
***
## What credits are
A credit is the currency for booking coaching. When you book a session, its cost is deducted from your balance. If you cancel or reschedule under the 24-hour cancellation and reschedule policy, those credits go back to you (see [Cancel a Coaching Session](/coaching/cancel-session)).
How you get credits depends on your account:
* **Self-pay** - you buy your own credits with a card.
* **Through your organization** - your workspace admin provides credits for you to use.
There's an easy way to tell which one you are: if you see a **Buy Credits** button (more on that below), you can purchase your own. If you don't, your organization manages credits for you.
***
## Checking your balance
Your balance is labeled **Available to you** and shows up in a few places:
* On the **Coaching > Dashboard** and the **Sessions** page, in the credits banner near the top.
* On your **homepage**, in the **1:1 Coaching** block.
* In your account menu, as your **Credit Balance**.
Each session also shows its own credit cost on the session's detail page, so you can always see what a booking cost you.
***
## How much sessions cost
Session cost isn't a flat rate - it depends on the coach and the length of the session, and the exact cost is always shown before you confirm a booking.
* **On a coach's match card**, you'll see a range like *"Services cost between 1.5 credits and 3 credits."*
* **On a coach's profile**, the **All Services** section lists each session type with its own credit cost.
* **While booking**, the credit cost appears right above the **Book Now** button once you've picked a session type and time.
* **On the session page**, the cost is listed under the session details.
**Intro sessions vs full sessions.** An intro session (your first session with a coach) is usually shorter and priced lower than a full session - often around a single credit. Full sessions cost more, and longer sessions cost more than shorter ones. Because each coach sets their own pricing, always check the credit cost shown on their profile and on the booking screen rather than assuming a fixed number.
***
## Getting more credits
### If you're self-pay
When you can buy your own credits, you'll see a **Buy Credits** button - in the credits banner, in your account menu, and whenever your balance is too low to book. It takes you to a checkout where you:
1. Choose a credit package.
2. Pick a payment method (a card, or any credits you already have).
3. Review and confirm.
Your new credits are available immediately, and you can go straight back to booking.
### If your organization provides your credits
If you're part of a company workspace, your admin manages credits for you, so you won't see a **Buy Credits** button. When you're running low or out, **reach out to your workspace admin** and ask them to add more to your account.
***
## Running low or out of credits
If you try to book without enough credits, you'll see a prompt letting you know you need more before you can continue.
* **Self-pay:** click **Buy Credits** and top up, then finish booking.
* **Through your organization:** ask your admin to add credits, then come back and book.
***
## Getting help
Questions about your balance, a charge you didn't expect, or credits that didn't come back after a cancellation? Email [hello@exec.com](mailto:hello@exec.com) and we'll help sort it out.
# Find a Coach
Source: https://docs.exec.com/coaching/find-a-coach
Use the matching survey to get paired with the right coach
If you don't have a coach yet, the matching survey pairs you with coaches who fit what you want to work on. It only takes a minute: pick a type of coaching, answer a few questions, and choose from your matches.
Already have a coach? You don't need the survey - book with them directly from **Coaching > Dashboard**. See [Schedule a Coaching Session](/coaching/schedule-session).
***
## How to find a coach
Go to **Coaching > Dashboard** and click **Find My Coach** (or **Browse Coaches**). You can also start from your **homepage**, where the **1:1 Coaching** block has the same **Find My Coach** button. You'll be asked what type of coaching you're looking for - pick the area you want help with.
The survey asks a short set of questions about what you want to work on. Make your selections (or leave a question blank to skip it) and click **Onwards**. A progress bar at the top tracks how far along you are.
Exec finds coaches that fit your answers and shows them with their rating, background, and what they help with. Review your matches, then click **Work with** a coach to get started, or **More about** to read their full profile first.
***
## If you're in a coaching program
How you start the matching flow depends on whether coaching is part of a program in your workspace.
* **On your own** - if your coaching isn't tied to a program, **Find My Coach** takes you straight to the steps above: you choose the type of coaching, and we match you from the full coaching network.
* **In a program** - if you're enrolled in a program that includes coaching, **Find My Coach** opens a **Choose Your Coaching Path** screen first. You'll see a **Match with a Coach for Your Program** card for each program, with the coaching type already chosen for you and a due date. Click **Start Matching** to jump straight to the survey - you skip the "what type of coaching" step. After you pick a coach, your first session is the program's intro session and it counts toward your program.
Enrolled in a program but want coaching outside of it? The same screen has a **General Coaching** option that lets you browse the full coaching network for personal development. Those sessions are independent of your program goals.
Either way, coaching also shows up on your **homepage**. If you haven't picked a coach yet, the **1:1 Coaching** block there has a **Find My Coach** button that starts the same flow. If coaching is part of a program, that program appears on your homepage with its coaching step, so you can jump straight into matching from there too.
***
## What happens after you choose a coach
When you click **Work with** a coach:
* That coach is added to your **Your Coaches** list on the Coaching Dashboard.
* You're taken straight into booking your first session with them - choose a time and confirm. See [Schedule a Coaching Session](/coaching/schedule-session) for the booking steps.
You're not locked in to a single coach. You can run the survey again anytime from **Coaching > Dashboard** to see other matches, and you can work with more than one coach.
***
## Getting help
If the survey doesn't show any matches, or you're not sure which coach is the right fit, email [hello@exec.com](mailto:hello@exec.com) and we'll help you get matched.
# What to Expect in an Intro Session
Source: https://docs.exec.com/coaching/intro-session
How to prepare for your first coaching session and what to ask
Your intro session is the first conversation with a coach. It's part get-to-know-you and part figuring out how you'll work together. A little preparation goes a long way - here's how to get the most out of it.
***
## Before the session
* **Find it under Coaching > Sessions.** Open the session at its start time and use the meeting link on the session page to join.
* **Message your coach ahead of time** if you want to share context. You can reach them from **Coaching > Messages** or the message button on the session.
* **Spend a few minutes on your goals.** Jot down what you want to work on, what's prompting it now, and what a good outcome would look like. You don't need a polished plan - even a rough idea gives the conversation a head start.
***
## What to expect during the session
* **Introductions.** The coach will share a bit about their background and how they work, and ask about you.
* **Your goals and situation.** Expect questions about what you want to get out of coaching, what's going well, and where you're stuck.
* **Shaping the work.** Together you'll narrow down what to focus on and how you'll work - how often you'll meet and what, if anything, you'll do between sessions.
* **A two-way fit check.** Notice whether you feel comfortable, heard, and appropriately challenged. The coach is assessing fit too.
* **Next steps.** You should leave with a clear sense of what comes next.
***
## Questions worth asking
You don't need to ask all of these - pick the ones that matter most to you:
* **Approach:** "How do you typically work with someone on a goal like mine?"
* **Experience:** "Have you coached people in my role, industry, or situation before?"
* **Logistics:** "How long are sessions, how often would we meet, and is there work between them?"
* **Expectations:** "What do you need from me to make this work?"
* **Progress:** "How will we know it's working, and how do you track progress?"
* **Starting point:** "Based on what I've shared, where would you suggest we start?"
***
## After the session
* **Decide on fit.** If it clicked, book your next session from **Coaching > Sessions** or your dashboard - see [Schedule a Coaching Session](/coaching/schedule-session).
* **Not the right match?** That's okay. You can [find another coach](/coaching/find-a-coach) anytime - you're never locked in. If you're weighing options, [Choosing the Right Coach](/coaching/choosing-a-coach) walks through what to consider.
* **Keep the conversation going.** You can message your coach between sessions from **Coaching > Messages**.
***
## Getting help
Questions about how a session works, or something didn't go as expected? Email [hello@exec.com](mailto:hello@exec.com).
# Joining Your Coaching Session
Source: https://docs.exec.com/coaching/joining-a-session
How to join the video call, find your meeting link, and what to do if you have trouble
When it's time for your coaching session, you join the video call right from the session's page on Exec. Here's how to get in, and what to do if something goes wrong.
***
## Join the call
Go to **Coaching > Sessions** and open your upcoming session.
A few minutes before the start time, a **Join Session** button appears at the top of the session page. Click it and the video call opens in a new tab.
You can also find the call link any time under **Session Location** on the session page, in case you want to join from another device.
***
## Times show in your local timezone
Session times display in your computer's local timezone, with the timezone shown right in the time (for example, *"Tuesday, Mar 12 at 2:30 PM EST"*). If you're traveling or you booked across timezones, double-check that abbreviation - a timezone mix-up is the most common reason people miss a session.
***
## Message your coach
Need to reach your coach before or after the session? Use **Chat With Coach** on the session page (or **Coaching > Messages**). It's the best way to share context ahead of time, or give a heads-up if you're running a few minutes late.
***
## If you can't get in
A few quick things to try if you're having trouble joining:
* **Check your Google account.** If the call is a Google Meet, make sure you're signed in to the right Google account. If you're in a personal or different work account, you may be left in a waiting room.
* **Refresh and rejoin.** Reload the session page and click **Join Session** again.
* **Message your coach.** Use **Chat With Coach** to let them know you're having trouble - they can often help you in.
* **Still stuck?** Email [hello@exec.com](mailto:hello@exec.com) and we'll jump in.
***
## Getting help
Trouble joining, or not seeing your session? Email [hello@exec.com](mailto:hello@exec.com).
# Reschedule a Coaching Session
Source: https://docs.exec.com/coaching/reschedule-session
Move a booked coaching session to a new time
You can move any upcoming session to a different time from its detail page. As long as you reschedule under the 24-hour cancellation and reschedule policy, there's no extra charge - your credits simply carry over to the new time.
Need to drop the session entirely instead of moving it? See [Cancel a Coaching Session](/coaching/cancel-session) for how cancellations and refunds work.
***
## How to reschedule
Go to **Coaching > Sessions** in the sidebar, open the upcoming session you want to move, and click the three-dot menu in the top-right of the session header. Choose **Reschedule**.
The reschedule page shows when the session is currently scheduled, along with a calendar of your coach's open times. Pick a new day on the calendar, then choose an available time slot. Times are shown in your local timezone, which you can change with the dropdown.
A **Confirm Reschedule** dialog summarizes the new time and whether any reschedule fee applies. Add an optional message for your coach if you'd like, then click **Reschedule Session**. Changed your mind? Click **Nevermind** to close without moving anything.
***
## Reschedule policy
Reschedules follow the same **24-hour cancellation and reschedule policy** as cancellations: reschedule at least 24 hours before the session starts and there's no charge. The exact window is shown on the session detail page under **Cancellation and Reschedule Policy**.
* **More than 24 hours before the session** - the **Confirm Reschedule** dialog shows that the meeting qualifies for a free reschedule, and your credits carry over to the new time at no extra cost.
* **Less than 24 hours before the session** - the dialog warns that the session no longer qualifies for a free reschedule because it's happening too soon, and moving it costs an additional charge in credits. Make sure you have enough credits on your account, or reach out to your coach or [hello@exec.com](mailto:hello@exec.com) if you need an exception.
***
## What happens after you reschedule
Once the reschedule goes through:
* The session moves to the new time and shows the updated time in your **Sessions** list and on your **Coaching Dashboard**.
* You and your coach both get an email with the new details, including any message you added.
* The original time is released, so another learner can book it.
***
## If your coach reschedules
Coaches can also propose a new time from their side - for example, if something comes up on their schedule. When that happens you'll get an **email** with the new time, and the session updates to the new slot in your Sessions list. If the time doesn't work for you, open the session and reschedule it again or [cancel it](/coaching/cancel-session).
***
## Getting help
If a time you expected isn't available, a reschedule won't go through, or you were charged for a reschedule you think should have been free, email [hello@exec.com](mailto:hello@exec.com) and we'll sort it out.
# Schedule a Coaching Session
Source: https://docs.exec.com/coaching/schedule-session
Book a one-on-one session with your coach using your coaching credits
Once you have a coach and some credits, you can book a one-on-one session in a couple of minutes. You pick the type of session, choose a time that works for you, and confirm - the session then shows up in your Sessions list.
Don't have a coach yet? Go to **Coaching > Dashboard** and click **Find My Coach** (or **Browse Coaches**) to get matched first. Once a coach is on your dashboard, you can schedule with them anytime.
***
## How to book a session
Go to **Coaching > Dashboard**. Under **Your Coaches** you'll see everyone you've been matched with. Find the coach you want to work with and click **Schedule** on their card.
Prefer to start from your sessions? **Coaching > Sessions** has a **Schedule Session** button that does the same thing - you'll just pick the coach first.
Pick a **Coaching Type** (the area you want to work on) from the dropdown, then choose a **Session Type** - the length of the session. Each option uses a set number of credits.
Pick a day, then a time. Use the arrows to step one day at a time, or click the date next to the calendar icon to open the full calendar and jump to any available day. Once a day is selected, click an available time slot. Times are shown in your local timezone, which you can change with the dropdown below. The credit cost appears at the bottom - click **Book Now** to confirm.
Some coaches review booking requests before confirming. For those coaches the button reads **Request Booking** instead of **Book Now**, and you can select more than one time that works for you - the coach picks one and confirms.
***
## Credits
Booking a session uses credits from your balance, shown as **Available to you** on the Sessions page and Coaching Dashboard. The number of credits a session costs depends on its length, and it's displayed right above the **Book Now** button before you confirm.
If you're out of credits, you'll see a **Buy Credits** prompt. Click it to top up, then come back and finish booking. If your workspace handles credits for you, reach out to your admin instead.
***
## What happens after you book
Once your booking goes through:
* The session appears in your **Sessions** list and on your **Coaching Dashboard** under upcoming sessions.
* You and your coach both get an email confirmation with the session details.
* Open the session anytime from **Coaching > Sessions** to see the meeting link, the time, and the cancellation policy.
Need to change or drop the session later? Open it from your Sessions list and use the three-dot menu to **Reschedule** or **Cancel**. See [Cancel a Coaching Session](/coaching/cancel-session) for how refunds work.
***
## Getting help
If something goes wrong - a time you expected isn't available, your credits didn't apply, or the booking won't confirm - email [hello@exec.com](mailto:hello@exec.com) and we'll help you get booked.
# Coaching Session Types
Source: https://docs.exec.com/coaching/session-types
The kinds of coaching sessions you can book, plus the off-platform alignment call
When you book coaching, you're really choosing two things: the **coaching type** (the focus area you want help with) and the **session type** (how long the session runs and what stage you're at). There's also the three-way alignment call - a session you arrange with your manager. Here's how each works.
***
## Intro session
Your **intro session** (sometimes called an intro call) is the first conversation with a coach. It's shorter than a standard session and costs a standard **1 credit with every coach**, and it's there to help you and the coach figure out whether you're a good fit and what to work on.
* It's a one-time, get-to-know-you session, not part of your ongoing cadence.
* Some coaches are only bookable *after* an intro call, so it's often the natural first step.
* For how to prepare and what to ask, see [What to Expect in an Intro Session](/coaching/intro-session).
***
## Standard sessions
Once you've met your coach and want to keep working together, you book **standard sessions**. These are the bulk of your coaching - the regular, ongoing conversations where the real work happens.
Standard sessions come in a few lengths (for example, 25, 50, or 80 minutes). Unlike the flat-rate intro session, **standard sessions range in credit price** - the cost depends on the coach and the session length, and longer sessions cost more.
When you schedule, you pick your **Coaching Type** and then a **Session Type** (the length). See [Schedule a Coaching Session](/coaching/schedule-session) for the full booking flow and [Coaching Credits](/coaching/credits) for how pricing works.
***
## Coaching types (focus areas)
Your **coaching type** is what your coaching is *about*. When you start, you choose the focus area you want help with, and that shapes which coaches you're matched with.
The options available depend on what your organization offers - common examples are **Leadership**, **Career**, **Life**, and **Sales** coaching. You'll see them when you run the matching survey under "What type of coaching are you looking for?", and again as the **Coaching Type** dropdown when you book.
To pick a focus area and get matched, see [Find a Coach](/coaching/find-a-coach).
***
## Three-way alignment call
A **three-way alignment call** is a session between **you, your coach, and your manager**. It isn't an official session type you'll find in the booking menu - you book it through your own account like any other session and have your manager join.
Whether you have one may be dictated by your program sponsor, or it may be something you choose to do on your own.
These calls usually happen at one of two points in your journey:
* **At the start** - to align on your goals and what success looks like, so you, your coach, and your manager all begin on the same page.
* **At the end** - to celebrate wins and share more about how the coaching went.
Because it's booked through your account, **it's up to you to coordinate the timing with your manager's calendar** before you book.
If you have questions about setting one up, ask your coach or email [hello@exec.com](mailto:hello@exec.com).
***
## Getting help
Not sure which session type or focus area is right for you? Your coach can help you decide in your intro session, or email [hello@exec.com](mailto:hello@exec.com) and we'll point you in the right direction.
# Add Content Blocks
Source: https://docs.exec.com/courses/add-content-blocks
Insert the seven block types on a course page and configure each one, from videos and quizzes to files and roleplays
Blocks are the content units of a course. Each page in your course is a rich-text document, and you build it by typing prose and inserting blocks where you want learners to read, watch, practice, or get tested. This page covers all seven block types; see [Build Sections and Pages](/courses/build-sections-and-pages) for the structure around them.
## Inserting a Block
Open a page in the editor and use the slash menu to add a block. Six block types are insertable from the menu: **Roleplay**, **Quiz**, **Video**, **Slides**, **File**, and **Article**. The seventh type, plain text, is not a menu item; you simply type prose directly on the page.
## The Seven Block Types
| Block | What it does | Configuration |
| -------- | ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Text | Rich text written directly on the page | Just type; no block settings |
| Article | Links one or more [Knowledge Hub pages](/knowledge-hub/pages), each shown as a card | "Add articles from Knowledge Hub"; optional acknowledgment |
| Video | A video learners watch | Source from a URL, an upload, or Knowledge Hub; optional clip range; minimum watch percentage (default 80%). Videos pulled from the Knowledge Hub load closed captions from the source's transcript. |
| Slides | A slide deck presented on the page | Source from a deck URL, a PDF upload, or Knowledge Hub; optional minimum time |
| Quiz | A knowledge check | Questions, passing score (default 80%), max attempts (default 3), "Render inline" toggle |
| File | A file shared with learners | Source from an upload or Knowledge Hub; render inline or as a download card |
| Roleplay | AI conversation practice | Link existing scenario(s) or AI-generate one; minimum rank (Bronze, Silver, or Gold) and minimum attempts |
## Layout and Formatting
The slash menu carries more than the six blocks. The same menu has the rich-text and layout elements you use to shape a page, so a lesson does not have to be a wall of paragraphs:
* **Text structure.** Paragraph, Heading 1 through Heading 4, Bullet list, Numbered list, Task list, Quote, Code, and Horizontal line.
* **Layout.** **Columns** puts content side by side, and **Tabs** and **Carousel** let one area hold several panels.
* **Progressive disclosure.** **Toggle** hides content until the learner expands it, and **Flip card** reveals an answer on the back of a card. Both are useful for self-check prompts, where you want the learner to think before they see the answer.
* **Emphasis and visuals.** **Callout** for a highlighted note, plus Table, Image, Emoji, and **Diagram** for a rendered diagram.
These are formatting, not blocks, so they have no completion tracking or settings of their own. Mix them freely with the blocks below.
Type `/` anywhere on a page to open the menu, then keep typing to filter it.
## Block Settings That Apply Everywhere
Two settings are available on blocks regardless of type:
* **Optional.** An optional block is available to learners but not required for completing the course. Use it for supplementary material.
* **Display mode.** Choose how the block presents itself: as a **Card** the learner clicks into, **Inline** within the page, or as a **Full page** of its own. Card is available on every block type; Inline and Full page depend on the type, so an article or roleplay does not offer Inline.
Open a block's settings from the block itself to change its display mode, rename it, and reach the type-specific settings below.
## Video Blocks
Two settings on a Video block deserve a closer look:
* **Clip range.** Play only a portion of the source video, presented to the learner as a standalone clip — the scrubber and time display are scaled to the clip, and playback stops at your end time. Set the start and end in the block's settings, either by typing times into the fields or by dragging the two handles on the scrubber. Use it to pull a single teaching moment out of a longer recording without editing the underlying file. Clip range works on Knowledge Hub videos, uploads, and URL-sourced videos alike.
* **Minimum watch percentage.** How much of the video (or clip, when a range is set) the learner must watch for the block to count as complete. Defaults to 80%. Set it lower for supplementary content or higher for material learners need to see end-to-end.
Videos sourced from the Knowledge Hub also carry closed captions from the source's transcript automatically. Learners toggle **CC** on the player, and captions follow the video into fullscreen.
Clip ranges are how AI-generated courses turn a long recording into short, focused lessons. If you generate a course from a Knowledge Hub video, each page's Video block already has a clip range set — see [Generate a Course with AI](/courses/generate-with-ai).
## Quiz and Roleplay Blocks
Quiz and Roleplay are the two graded block types, and both support AI generation inside the editor:
* **Quiz** offers "Generate with AI" and "Build from scratch" tabs. Learners must hit the passing score within the attempt limit, so these blocks can gate completion. See [Add a Quiz](/courses/add-quiz) for question authoring and settings.
* **Roleplay** offers "Generate with AI" and "Pick existing" tabs, and you set the minimum rank and minimum attempts a learner needs. See [Add a Roleplay](/courses/add-roleplay) for the full setup, and [AI Roleplays](/roleplays/ai-agent) for how scenarios work.
AI generation for both is scoped to "This page" or "This whole section", and you can regenerate if the first draft is not right.
Requirements are what make blocks meaningful. A video with a minimum watch percentage, a quiz with a passing score, or a roleplay with a minimum rank all hold learners to a standard, while optional blocks let you add depth without adding burden.
## Next Steps
Write questions, set the passing score, and control attempts.
Link or generate a scenario and set rank and attempt requirements.
# Add a Quiz
Source: https://docs.exec.com/courses/add-quiz
Add a knowledge check to a course page, write questions yourself or generate them with AI, and set the passing score and attempt limits
A Quiz block (also called a knowledge check) tests what learners have absorbed before they move on. You decide the questions, the passing score, and how many attempts learners get. Quizzes count toward course completion unless you mark the block optional.
## Add a Quiz to a Page
In the course editor, open the slash menu on any page and choose **Quiz**. See [Add Content Blocks](/courses/add-content-blocks) for how blocks work in general.
The block offers two tabs: **Build from scratch** to write questions yourself, or **Generate with AI** to draft them for you.
Set the passing score, the maximum attempts, and whether the quiz renders inline on the page.
## Generate Questions with AI
On the **Generate with AI** tab, choose what the quiz should cover:
* **This page** generates questions from the content of the current page.
* **This whole section** generates questions from every page in the section, useful for an end-of-section check.
If the first draft misses the mark, regenerate for a new set. Generated questions are fully editable, so treat them as a head start and tighten the wording before you publish.
Put a page-scoped quiz right after the content it tests, and a section-scoped quiz on the last page of the section.
## Quiz Settings
Open the quiz's block settings to change any of these.
| Setting | Default | What it does |
| ---------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Require a passing score | On | Whether a minimum score is needed to complete the block. Turn it off and answering every question is enough. |
| Passing score | 80% | The score a learner needs to pass. Set it as a percentage or as a number of questions correct out of the total. The floor is 10%. |
| Show correct answers during review | Off | When on, correct answers are highlighted after a failed attempt. When off, learners only see which of their own selections were wrong. |
| Allow retakes | On | Whether learners get more than one attempt. Turn it off to make the quiz single-attempt. |
| Number of total attempts | 3 | How many tries a learner gets before the quiz is failed. Choose 2, 3, 4, 5, or **Unlimited**. |
| Display mode | Card | Whether the quiz appears as a card, inline on the page, or as a full page of its own. |
Questions can carry an explanation, shown to the learner during review, either for the question as a whole or for the specific option they picked. An explanation turns a wrong answer into a teaching moment instead of just a red mark.
## What Learners See
In the course player, the quiz shows the percentage needed to pass and how many attempts remain. After submitting, learners see **Passed** or **Did not pass** along with their remaining attempts, and can choose:
* **Review Mistakes** to see which answers were wrong
* **Try Again** to use another attempt
* **Continue** to move on after passing
If a learner runs out of attempts without passing, they fail the course with a **Did Not Pass** status. See [Taking a Course](/courses/taking-a-course) for the full learner experience, including what happens after a failure.
Mark the block **Optional** if the quiz is for self-assessment only and should not block completion.
# Add a Roleplay
Source: https://docs.exec.com/courses/add-roleplay
Put AI conversation practice inside a course by linking an existing roleplay scenario or generating one with AI, with rank and attempt requirements
A Roleplay block brings Exec's [AI roleplay practice](/roleplays/ai-agent) into a course. Instead of only reading or watching, learners practice the skill in a live conversation with an AI persona, and you decide how well they need to perform before the course lets them continue.
## Add a Roleplay to a Page
In the course editor, open the slash menu on any page and choose **Roleplay**. See [Add Content Blocks](/courses/add-content-blocks) for how blocks work in general.
The block offers two tabs: **Pick existing** to link a scenario you already have, or **Generate with AI** to draft a new one.
Choose the minimum rank and minimum attempts learners need to complete the block.
## Pick an Existing Scenario
If your workspace already has roleplay scenarios, **Pick existing** links one into the course. The scenario itself lives in your roleplay library, so the same scenario can be used in a course and assigned on its own. To learn how scenarios work, see [AI Roleplays](/roleplays/ai-agent).
## Edit the Scenario Behind the Block
A Roleplay block points at a scenario, it does not copy it. If something about the AI character is off, its voice is wrong, or the setup does not add up, open the scenario from the block and edit it the same way you would edit any scenario. Your changes show up in the course, because the course was always pointing at the live scenario. See [Edit a Scenario](/roleplays/edit-scenario).
This applies to AI-generated scenarios too. Generation gives you a starting scenario, and it is fully editable afterward.
## Generate a Scenario with AI
On the **Generate with AI** tab, choose what the scenario should draw from:
* **This page** drafts a scenario based on the content of the current page.
* **This whole section** drafts a scenario covering the full section, useful for a capstone practice at the end.
Regenerate if the first draft is not right. Everything the AI produces is editable before learners see it.
## Completion Settings
| Setting | Options | What it does |
| ---------------- | ----------------------- | -------------------------------------------------------- |
| Minimum rank | Bronze, Silver, or Gold | The rank a learner's roleplay session must earn to count |
| Minimum attempts | Number | How many roleplay attempts the learner must complete |
Use a higher rank for skills the course exists to certify, and a lower bar when the roleplay is there for exposure and reps.
## Make Sure Participants Can Open the Scenario
A learner can only run a scenario the scenario itself grants them access to. If the scenario is **Restricted** and the learner isn't one of the people it's shared with, the block shows up as locked. To keep this from being a surprise, the roleplay setup dialog and configured roleplay blocks now show an **access strip** summarizing the access on every scenario referenced in the course.
The strip has three states:
| State | When it appears | What it means |
| ----------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Green — open to your workspace | Every scenario is scoped to **Workspace** or **Global** | Anyone enrolled in the course can open the block. Nothing to do. |
| Blue — limited to specific people | Scenarios are **Restricted** but shared with users, groups, or programs | The block opens for grantees. Everyone else sees a locked block with a private-scenario message. Row detail reads like *Only you, Sales, and 2 others can access*. |
| Yellow — participants can't open it | A scenario is **Restricted** with no one else granted access | Publish is blocked. Either flip the scope to **Workspace** or share the scenario. |
From the strip you can:
* Flip a scenario between **Restricted** and **Workspace** inline, without leaving the course editor.
* Click **Manage** to open the standard scenario share modal and grant access to specific users or groups.
If someone else owns the restricted scenario, the strip names the owner and asks you to reach out — only the owner can share it or open it up to the workspace.
Blocks that were added outside the setup dialog (for example, blocks the AI course studio inserts) show the same information as an **access callout** on the block itself, with the same **Manage access** shortcut for scenario owners.
Access is checked against the live scenario, not a snapshot. If the scenario's scope or sharing changes later, learners immediately gain or lose access — you don't need to republish the course.
## Publish Requires Openable Scenarios
Publishing is blocked while any roleplay block in the course points at a **Restricted** scenario that no one else has been granted access to. The publish sidebar highlights the affected pages so you can jump straight to them. Fix each block by either sharing the scenario, opening it to the workspace, or replacing it with a different scenario, then republish. See [Publish and Versioning](/courses/publish-and-versioning#restricted-scenarios-block-publish).
Workspace and Global scenarios always publish. Restricted scenarios publish as soon as at least one user, group, or program has been granted access — even if that grantee isn't the course author.
## What Learners See
When a learner reaches the block, they run the roleplay session directly from the course. The page counts as finished once they meet the rank and attempt requirements, and the advance bar unlocks so they can continue. If a learner exhausts their attempts without reaching the required rank, they fail the course with a **Did Not Pass** status. See [Taking a Course](/courses/taking-a-course) for the full learner experience.
If a learner isn't among the people a restricted scenario is shared with, the block stays locked and shows a private-scenario message instead of the roleplay. Because publish blocks restricted-with-zero-grants scenarios, this only happens when the block is shared with a subset of the course's participants.
Mark the block **Optional** if the roleplay is practice only and should not gate course completion.
# Build Sections and Pages
Source: https://docs.exec.com/courses/build-sections-and-pages
Structure your course with sections and pages in the editor, reorder them, mark pages optional, and gate progress with sequential unlocking
The course editor is where you give your course its shape. Every course follows the same hierarchy: a **Course** contains ordered **Sections**, each Section contains **Pages**, and each Page holds the **Blocks** learners interact with. This page covers the structural work of sections and pages; see the [Courses Overview](/courses/overview) for the full content model and [Add Content Blocks](/courses/add-content-blocks) for what goes on each page.
## The Sections Rail
In the left rail of the editor you will find the **Sections**. It lists every section in your course, with each section's pages nested beneath it. This is your course outline: use it to move between pages while you work.
Click **Add Section** in the left rail. Sections are the top-level chapters of your course, so name them around a theme or milestone, like "Preparing for the Call" or "Handling Objections".
Add pages within the section to break it into digestible steps. Each page is a rich-text document where you write prose and insert content blocks.
Sections and pages are ordered, and learners move through them in the order shown in the rail. Drag and drop them until the flow reads the way you want a learner to experience it.
Writing a page works the way a modern document editor does: type prose directly, use markdown shortcuts for headings and lists, and open the slash menu when you want to drop in a block. See [Add Content Blocks](/courses/add-content-blocks).
Keep pages focused. A section with several short pages is easier to work through than one long page, and it gives learners a clearer sense of progress.
## Optional Pages
Pages can be marked **Optional**. Optional pages are available to learners but not required for completing the course, which makes them a good home for reference material, bonus depth, or supporting resources that not everyone needs.
Toggle a page optional from either the **three-dots menu** in the page header or the page's **context menu in the sections rail** — both open the same **Mark page as optional** action.
### What Happens to Required Blocks on the Page
Completion tracking ignores blocks on optional pages, so any required blocks left on an optional page would never actually gate the learner. To keep the page's state consistent, marking a page optional flips every required block on that page to optional at the same time — quizzes, roleplays, videos, slide decks, files, articles, and text.
When the page contains required special blocks (like a quiz with a passing score, or a required video), you'll see a confirmation first:
> **Make this page optional?**
> This page contains 2 videos and 1 quiz marked as required. Making the page optional makes these blocks optional too.
Select **Make page optional** to cascade the change, or **Cancel** to leave the page required. Pages that only have text cascade silently — text blocks don't expose a requiredness toggle in the editor.
The cascade is one-way. If you mark the page required again later, the individual blocks stay optional — the editor can't know which ones you had deliberately set that way before. Turn requiredness back on per block from each block's settings.
## Gating: Sequential Unlock
Each section has two **Section Settings** toggles that control how learners move through it:
* **Gate this section** requires the previous section to be complete first, so learners work through your sections in order.
* **Sequential pages** requires participants to complete each page in order within the section.
When a page is locked, the player shows "This page is locked" with the message "Finish the earlier pages in this section to unlock it."
Use gating when the order matters, for example when a quiz should only appear after the learner has covered the material it tests. Turn these off when learners can safely jump around.
## Preview as a Learner
Use the preview view to see the course exactly as a learner will, without saving any progress. Preview is the fastest way to check pacing, confirm gating behaves the way you expect, and catch pages that feel too long or too thin before you publish.
## Course Theme and Publishing
Two more controls live in the editor header alongside the course title:
* **Course theme** sets the course's color, which carries through the header and the learner's player. Pick one of the brand presets or choose a custom color. Every new course starts on a random preset, so set this if you want the course on-brand.
* **Publish changes** pushes your draft live. Your edits stay in the draft version until you publish; see [Publish and Versioning](/courses/publish-and-versioning) for how drafts, versions, and enrolled learners interact.
The course name, description, cover image, certification, and enrollment settings are not in the editor. Reach them from the settings sheet on the course dashboard, which you can open any time before or after publishing. See [Create a Course](/courses/create-course).
## Next Steps
Fill your pages with text, articles, videos, slides, quizzes, files, and roleplays.
Publish your draft and understand how versions work.
# Certifications
Source: https://docs.exec.com/courses/certifications
Link a certification to a course so learners automatically earn a certificate when they complete it
You can attach a certification to a course so that Exec automatically issues a certificate to every learner who completes it. No manual issuing, no follow-up step: finish the course, earn the credential.
## Link a Certification to a Course
The link lives on the course itself. While [creating or editing a course](/courses/create-course), use the **Certification** field in Basic Details ("Select Certification") to choose the certification the course should issue. The field is optional; a course without one simply completes without issuing anything.
You can also add or change the certification after publishing, from the course's settings sheet on the course dashboard.
Once linked, completion handles the rest:
* When a learner finishes the course, Exec issues the certificate to them automatically.
* The learner sees a **View certificate** button on the course completion screen.
You need an existing certification to link. If you haven't created one yet, see [Create a Certification](/certificates/create-certification).
## Certifications Are Their Own Feature
Certifications exist independently of Courses, with their own admin permission. A certification can also be triggered by a program or issued manually, so course completion is just one of the ways a learner can earn one. This page covers only the course tie-in; for defining certifications, expiry, and everything else, head to [Create a Certification](/certificates/create-certification).
## Related Pages
Define certifications, expiry, and manual issuing.
Set the Certification field in a course's Basic Details.
# Collections
Source: https://docs.exec.com/courses/collections
Group courses into collections, nest them into sub-collections, and keep a growing course library navigable
Collections are folders for your courses. As a workspace builds up training, a flat list stops being useful, and collections let you group courses by team, topic, or program so the library stays navigable. They work the same way collections do for [scenarios](/roleplays/collections) and hubs in the [Knowledge Hub](/knowledge-hub/hubs).
Collections live in a rail on the left of **Courses > Manage**, alongside **All Courses** and **No Collections**.
Collections are an organizational layer for admins, not a permission layer. Putting a course in a collection does not change who can see or enroll in it. To control access, use the course's self-enrollment setting and group restrictions. See [Enroll Participants](/courses/enroll-participants).
## Create a Collection
It sits just under **All Courses** in the rail.
Give it a name your team will recognize, such as a team, a role, or a program. The emoji button to the left of the name field sets an icon so the collection is easy to spot in the rail.
The collection appears in the rail right away, ready for courses.
## Add Courses to a Collection
There are three ways in, and they suit different moments:
* **Drag and drop.** Drag a course row from the list onto a collection in the rail. The collection highlights when you are over a valid target.
* **From inside the collection.** Open the collection, then use the dropdown next to **Create Course** and choose **Add courses**. You get a picker of every course in the workspace with an **Add** button on each.
* **In bulk.** Select **Select** above the list, tick several courses, and use **Add to collection** on the action bar that appears at the bottom.
The action bar also has **Copy** and **Paste**, which is the quickest way to put the same courses into several collections: copy a selection, open another collection, and paste.
A course can live in as many collections as you like. Adding it to a collection does not move it out of anywhere else, and removing it from a collection never deletes the course.
## Nest Sub-collections
Collections can contain other collections, so you can keep a short top-level rail while still organizing detail underneath. Two ways to nest:
* **Create it nested.** Open the parent collection, then choose **New sub-collection** from the dropdown next to **Create Course**.
* **Move an existing one.** Drag a collection in the rail and drop it onto another collection.
Expand a collection with the chevron beside its name to see its sub-collections. When you are inside one, a breadcrumb shows where you are.
## Find Courses Across Collections
The list has three tools that work together as the library grows:
* **Group by.** Switch the flat list into a grouped view with **Group by collection** or **Group by status**. Grouping by collection shows a count next to each collection and gathers everything that is not in one under **Unfiled**.
* **Filters.** Narrow the list by status (Draft, Published, Archived) or by collection.
* **No Collections.** The entry at the bottom of the rail jumps straight to courses that have not been filed anywhere, which is the fastest way to find what still needs organizing.
Because a course can belong to several collections, a grouped view will show it under each one it belongs to.
## Manage a Collection
Open a collection and use the dropdown next to **Create Course**:
| Action | What it does |
| ------------------ | -------------------------------------------------------------------------------------------- |
| Add courses | Pick existing courses to file into this collection |
| Import courses | Start a SCORM import, landing the result here. See [Import a Course](/courses/import-course) |
| New sub-collection | Create a collection nested inside this one |
| Edit collection | Rename it or change its emoji |
| Delete collection | Remove the collection and its sub-collections |
Deleting a collection also deletes its sub-collections. The courses themselves are not deleted, they simply become unfiled and show up under **No Collections**.
## Tips
* **Mirror how your team asks for training.** Collections named after teams or roles ("New AE Onboarding", "Support") beat generic buckets, because people look for the audience before the topic.
* **Keep the top level short.** Push detail into sub-collections so the rail stays scannable.
* **File remixes with their original.** A course and its remixes belong in the same collection so it is obvious which versions exist. See [Remix a Course](/courses/remix-course).
* **Sweep No Collections periodically.** It is the backlog of courses nobody has organized yet.
## Next Steps
Copy a course into a new draft for a different audience.
Control who can actually see and take a course.
# Create a Course
Source: https://docs.exec.com/courses/create-course
Start a new course manually, with AI, or by importing a SCORM package, and fill in its basic details
Every course starts on the new course screen, which greets you with "Let's start building your course" and three ways to build:
Fill in the course details, then add sections, pages, and blocks yourself. Full control over structure and content.
Provide your existing material or describe the course, and AI drafts the outline, lessons, quizzes, and roleplays for you to edit.
Bring in an Articulate Rise SCORM Export (.zip) and Exec rebuilds it as a native course.
Manual authoring is the baseline path, and it is what the rest of this page covers. The AI and SCORM paths are alternatives that land you in the same editor afterward.
## Create a Course Manually
On the new course screen, click **Start Manually**. This opens the **Basic Details** form.
| Field | What it does |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cover Image** | Click **Add Cover Image** to give the course a visual identity in the catalog. |
| **Course Name** | The name learners see, for example "Sales Onboarding Essentials". |
| **Description** | Optional rich text describing what the course covers. Shown on the course detail page. |
| **Course Tags** | Select a tag to help organize and find the course. |
| **Certification** | Optional. Select a certification and Exec issues it automatically when a learner completes the course. See [Certifications](/courses/certifications). |
In the **Enrollment** section:
* Check **Allow self-enrollment** to list the course in the catalog so learners can enroll themselves.
* Use **Group Restrictions** to limit enrollment to members of specific groups. Click **Select groups...** and choose the groups.
You can leave both alone for now and [enroll participants](/courses/enroll-participants) directly once the course is published.
Click **Save**. Your course is created as a draft and you land in the editor, ready to [build sections and pages](/courses/build-sections-and-pages).
Creating and editing courses requires admin access.
Every plan caps the number of active courses your workspace can have (2 on Free, 10 on Starter, 50 on Professional, unlimited on Enterprise). When you reach the cap, Exec shows a banner across the course list and disables the **Create**, **Import**, and **Generate with AI** buttons. Archiving a course frees up a slot. See [Plans and Feature Availability](/platform/plans).
## Next Steps
Give your course its structure and start adding content.
Assign the course with deadlines or open it up in the catalog.
# Enroll Participants
Source: https://docs.exec.com/courses/enroll-participants
Get learners into a course through catalog self-enrollment or direct assignment with due dates and close dates
Once a course is published, there are two ways to get learners into it: let them enroll themselves from the catalog, or assign it to them directly with deadlines. You can use either path or both on the same course.
Only published courses can be enrolled. If your course is still a draft, [publish it](/courses/publish-and-versioning) first.
## Self-Enrollment Through the Catalog
Learners browse the course catalog and enroll themselves in any course they can access. A learner can self-enroll when:
* **Self-enrollment is on** for the course, which opens it to everyone, or
* The learner belongs to one of the course's **restricted groups**
Both settings live on the course itself: the **Allow self-enrollment** checkbox and the group restrictions that limit enrollment to members of specific groups. Course tags also live on the course and help learners find it in the catalog.
Self-enrollment is a good fit for evergreen training you want available on demand. When you need specific people to complete the course, assign it instead.
## Assign the Course Directly
To enroll specific people or groups, open the **Enroll Participants** sheet from the course.
Search for individual members or entire groups and add them to the enrollment. Enrolling a group adds everyone in it.
Add a **Due date**, a **Close date**, both, or neither. See below for how the two differ.
Confirm to enroll everyone you selected. They can start the course right away.
## Due Date vs Close Date
The two deadlines behave differently, and the difference matters:
| Deadline | Type | What happens after it passes |
| -------------- | ------------- | ---------------------------------------------------------------------------------------------------- |
| **Due date** | Soft deadline | The learner shows as overdue (Past Due) but is never locked out. They can still finish the course. |
| **Close date** | Hard deadline | Submissions are locked. The learner can no longer complete the course and moves to Did Not Complete. |
Use a due date when you want accountability without cutting anyone off. Add a close date when the course genuinely has to be done by a certain date, such as compliance training with a firm cutoff.
Learners who blow past a due date show up in the At Risk table on the course dashboard, where you can nudge them or extend their deadline. See [Nudges and Re-enrollment](/courses/nudges-and-reenrollment).
## Next Steps
See who has started, who is on track, and who is falling behind.
Remind overdue learners and give people who did not complete another attempt.
# Generate a Course with AI
Source: https://docs.exec.com/courses/generate-with-ai
Turn existing training material, or just a description, into a complete draft course you can edit and publish
If you already have training material, you do not have to rebuild it block by block. Choose **Generate Course with AI** on the new course screen and a chat-based course studio drafts the whole thing for you: the outline, the lessons, the quizzes, and the roleplay scenarios.
**AI course generation costs 200 [platform credits](/platform/platform-credits).** Exec charges once, when the studio produces the first outline for a new course. Later edits, re-running the outline on the same course, and adding sections yourself are all free. The cost is shown on the confirmation dialog before the studio starts. Free-plan workspaces receive a one-time 500-credit signup bonus so you can try it without buying credits. If your workspace is out of credits, the studio opens an upsell instead of drafting the course. See [Platform Credits](/platform/platform-credits) for the full breakdown.
## How It Works
Attach the material you want the course built from. Use **Browse Knowledge Hub** to pull in a page or source your workspace already has, such as a framework guide, playbook, or recorded training video, or upload files directly from your computer. No material yet? Describe the course you want instead.
The AI reads what you provided and drafts the full course: an outline of sections and pages, lesson content, knowledge-check quizzes, and roleplay scenarios that match your material.
The draft opens in the editor with everything in place. Review it, edit anything, and publish when you are happy with it.
## The Studio Asks Before It Builds
When you send your first message, the studio does not build blindly. It confirms the outcome you are after and asks a few clarifying questions first, such as the performance gap you are trying to close today, who the learners are, and whether you have an existing framework or playbook to ground the content in.
## Fill In the Quick Brief
Once you answer, the studio issues a short brief as a form you fill in rather than another round of typing. The questions are tailored to what you asked for, and typically cover choices like how long the course should take, the mix of quizzes and roleplays you want, the tone the content should take, and whether the course is must-pass or awareness-level. There is a free-text field for anything else it should know.
## It Designs the Course Before Building It
Submit the brief and the studio turns your input into a concrete plan before writing a single block: the performance objective, learning outcomes mapped to how each one is assessed, and a full section-and-page skeleton. Review it and course-correct while the course is still an outline.
## Then It Builds the Course
Approve the plan and the studio builds the full draft, sections, pages, lessons, quizzes, and roleplays included, then opens it in the editor for you to review and edit.
Expect this to take a while. A course is a lot of content to write, so plan on roughly 10 to 15 minutes for the main structure depending on how big the course is. The studio posts progress as it finishes each part, so you can watch it work rather than guess.
Roleplays get their own checkpoint. Before building them, the studio shows you the scenario outlines it intends to create, so you can approve or redirect them first. It can generate brand-new scenarios or reuse ones that already exist in your workspace. Building the scenarios runs in the background, so you can review the rest of the course while it works rather than waiting.
## Turn a Video into a Multi-Page Course
If you attach a recorded video from the Knowledge Hub — a webinar, a training session, a screen recording — the studio treats the transcript as the source of truth and builds one page per teachable segment. Each page's Video block plays only its own clip of the original recording, so learners see a focused two- to five-minute lesson instead of a full-length replay.
* **Segmentation happens automatically.** The studio reads the transcript, groups it into teachable segments anchored on topic changes, drops housekeeping and open Q\&A, and turns each kept segment into its own page with a title and objectives.
* **Clip ranges are set for you.** Every generated Video block already has a start and end time on the source recording, so learners scrub the segment as if it were a standalone clip.
* **Captions come from the transcript.** Video blocks pulled from the Knowledge Hub carry closed captions from the source's transcript across every surface — the editor preview, the drill-in player, and the learner experience.
The video source needs a transcript before the studio can segment it. Transcription runs automatically when you upload a video to the Knowledge Hub; if the source is still processing, the studio waits for it. See [Sources](/knowledge-hub/sources) for the supported formats and processing pipeline.
You can always tighten a generated clip by hand in the editor — see the Video block's **Clip range** setting in [Add Content Blocks](/courses/add-content-blocks).
## It Is a Head Start, Not a Finished Product
Everything the AI produces is fully editable. Nothing goes in front of learners until you publish, so treat the generated draft as a strong first pass:
* **Review every page.** Rework wording, reorder sections, and cut anything that does not fit. The editor works exactly the same as it does for a manually built course. See [Build Sections and Pages](/courses/build-sections-and-pages).
* **Check the quizzes and roleplays.** Make sure questions test what actually matters and roleplay scenarios reflect the conversations your team really has. You can regenerate or rebuild any block.
* **Publish when it is ready.** The course stays in draft until you publish it. See [Publish and Versioning](/courses/publish-and-versioning).
The better the material you attach, the better the draft. A real training deck or playbook gives the AI much more to work with than a one-line description.
## Next Steps
Refine the generated draft in the editor.
Release the course to learners when the draft is ready.
# Import a Course
Source: https://docs.exec.com/courses/import-course
Bring an Articulate Rise SCORM Export into Exec and rebuild it as a native course
If your training already lives in Articulate Rise, you can import it instead of rebuilding it by hand. On the new course screen, choose the **Import A Course** card, labeled **Articulate Rise SCORM Export (.zip)**, and upload your export. You can drop a single package or up to 10 at once — see [Import Multiple Courses at Once](#import-multiple-courses-at-once).
## How the Import Works
Provide the Articulate Rise SCORM Export as a .zip file. Exec unzips it and reads the course structure.
The media and files inside the export are uploaded to a [Knowledge Hub](/knowledge-hub/overview) folder, so they are managed alongside the rest of your content.
Once the assets are in place, a build job materializes the course in Exec: sections, pages, and blocks, ready to edit like any other course.
## Import Job States
You can follow the import as it moves through its states:
| State | Meaning |
| ------------------- | -------------------------------------------------------------------------- |
| **Awaiting Assets** | The export is unzipped and its assets are being uploaded to Knowledge Hub. |
| **Building** | The build job is assembling the course from the imported content. |
| **Done** | The import finished and your course is ready. |
| **Failed** | The build hit an error and did not complete. |
| **Expired** | The import sat unfinished for too long and timed out. |
| **Cancelled** | The import was discarded before it finished. |
## Resume or Discard an Unfinished Import
If you leave partway through, you do not lose your progress. An unfinished import can be **resumed** where it left off, or **discarded** if you would rather start over or build the course another way.
## Import Multiple Courses at Once
You can drop up to **10** SCORM packages onto the import screen in a single batch. Each package becomes its own course, and Exec imports them sequentially — one runs while the rest wait in a queue.
Each row in the queue shows its own status:
| State | Meaning |
| ------------- | --------------------------------------------------------------------------------------------------------------- |
| **Queued** | Waiting for the packages ahead of it to finish. |
| **Importing** | Currently reading the package, uploading media, and building the course. |
| **Done** | Finished successfully. The row links to the new draft course and shows a summary like "6 sections · 2 quizzes." |
| **Failed** | Hit an error and was skipped. The rest of the queue keeps going. |
Bulk imports run in your browser. Leave the tab open until the queue finishes — Exec warns you if you try to close it or navigate away while imports are still running.
Bulk imports do not stop for prompts. Unsupported blocks are imported as-is (the same as choosing **Import anyway** on a single import), so review each new draft course before publishing. If a single package needs the guided review flow, import it on its own.
## After the Import
The imported course arrives as a draft. Review it in the editor, adjust anything that did not translate cleanly, and add Exec-native blocks like quizzes and roleplays before publishing. See [Build Sections and Pages](/courses/build-sections-and-pages).
## Next Steps
Review and refine the imported course in the editor.
See where your imported assets live and how to manage them.
# Nudges and Re-enrollment
Source: https://docs.exec.com/courses/nudges-and-reenrollment
Remind overdue learners with nudge emails, extend deadlines, and re-enroll anyone who did not complete a course
Enrolling people is the easy part. Keeping them moving is where the course dashboard earns its keep: nudge learners who are falling behind, extend deadlines when someone needs more time, and re-enroll anyone who did not complete.
## Nudge Learners Who Are Behind
A nudge is a reminder email you send to learners who are overdue or behind. The **At Risk** table on the course dashboard surfaces exactly who needs one:
* **Not Started**: enrolled 7+ days ago and has not begun
* **In Progress**: no activity in 7 days
* **Past Due**: past their due date
You can nudge one learner at a time with the per-row **Nudge** button, or select several and use **Nudge selected** to remind them all at once.
Nudges are rate-limited to once per 24 hours per learner, so you cannot accidentally spam someone by clicking twice.
## Extend a Deadline
Sometimes the right move is more time, not another email. Open the learner's enrollment detail from the Participants tab to see their progress and edit their deadlines. Pushing out a close date before it passes keeps the learner active instead of letting them slip into Did Not Complete.
## Re-enroll Learners Who Did Not Complete
A **Did Not Complete** enrollment means the learner either failed a required block (Did Not Pass) or ran out of time when the close date passed (Did Not Finish). Re-enrolling gives them a clean slate: the prior attempt is soft-deleted and a fresh enrollment starts from the beginning.
**As an admin**, select learners in the Failed table on the course dashboard and choose **Re-enroll selected**. This works for anyone who Did Not Complete, whatever the reason.
**Learners can re-enroll themselves** only when they self-enrolled in the first place and Did Not Complete. Assigned learners cannot restart on their own.
Re-enroll applies only to enrollments that Did Not Complete. To put a learner who is partway through, or who already completed, onto a newer version of the course, **Unenroll** them from the Participants tab and enroll them again. The fresh enrollment pins to the current published version. See [Publish and Versioning](/courses/publish-and-versioning).
A re-enrollment always pins to the course's current published version, so learners getting a second attempt take your latest content rather than the version they originally failed.
## Learner Requests
When a learner hits a failure state, the course player gives them self-service options:
* **Re-enroll in Course**, when they qualify to restart on their own
* **Request Re-enrollment**, which asks an admin to re-enroll them
* **Request More Time**, which asks an admin to extend their deadline
Handle these from the dashboard: re-enroll from the Failed table, or extend the deadline from the enrollment detail.
## Next Steps
The full course dashboard, including the At Risk and Failed tables.
How enrollment, due dates, and close dates work in the first place.
# Courses Overview
Source: https://docs.exec.com/courses/overview
Build self-paced training courses from content blocks, publish them, and enroll learners through a catalog or direct assignment
## Video walkthrough
Courses are Exec's self-paced training builder. Assemble a course out of content blocks (text, video, slides, quizzes, files, Knowledge Hub articles, and AI roleplays), publish it, and get it in front of your team through a self-serve catalog or a direct assignment with a deadline. Learners work through it page by page at their own pace, and finishing a course can automatically award a certification.
Courses is on for every workspace. **Courses** appears in the left navigation as soon as you sign in, with a **Dashboard** for everyone and a **Manage** section for admins. Every plan caps how many active courses a workspace can have, so see [Plans and Feature Availability](/platform/plans) for the limits.
Admins do the authoring and management: creating courses, editing content, publishing, enrolling participants, and tracking progress. Members and coaches are the learners, who browse the catalog, self-enroll where it is allowed, and take what they are assigned.
## What a Learner Sees First
The **Courses** dashboard is the learner's home for training. It has two halves: the courses they are already enrolled in, and a catalog of courses they can enroll in themselves. The catalog grows as you build, so it becomes a library your team can pull from on demand.
Opening a course from the catalog shows what it covers, how long it takes, and a full outline of the sections ahead. Enrolling is one click, and it drops the learner straight into the first page.
From there the course runs in a full-screen player. Learners read, watch, and practice their way through each page, hit a quiz or roleplay when the course wants proof they got it, and cannot move past a required block until they pass it. Progress saves as they go.
[See the full learner experience →](/courses/taking-a-course)
## How a Course Is Structured
Every course follows the same hierarchy:
* A **Course** contains ordered **Sections**
* Each **Section** contains **Pages**
* Each **Page** is a document made of **Blocks**, the actual content units
Sections give your course its shape, pages break each section into digestible steps, and blocks are what learners read, watch, and interact with.
## Three Ways to Build a Course
Course building lives under **Manage**, which workspace admins see in the Courses navigation. **Create course** offers three starting points.
The fastest path. Point the course studio at your existing training material or describe what you want, and it drafts the full course, quizzes and roleplays included. Everything it produces is editable.
Add sections, pages, and blocks yourself for full control over structure and content.
Bring in an existing course as an Articulate Rise SCORM export (.zip).
All three land you in the same editor afterward, so the choice is only about how you get your first draft.
There is a fourth starting point once you have a course you like: **Remix with AI** copies an existing course into a new draft you can retarget at a different audience, without touching the original or its enrollments. See [Remix a Course](/courses/remix-course).
## What Goes on a Page
Every page starts as a rich-text document. Alongside your writing, embed any of these blocks to turn a page from something to read into something to do:
Pull in a page from your [Knowledge Hub](/knowledge-hub/overview) so your source-of-truth content lives in one place.
Embed a video lesson for learners to watch inline.
Drop in a slide deck as part of the lesson.
Check understanding with questions learners must answer to progress.
Attach a resource, worksheet, or reference document to download.
Embed an AI roleplay so learners practice the skill live, right inside the course.
Quizzes and roleplays are what make a course active rather than passive. See [Add a Quiz](/courses/add-quiz) and [Add a Roleplay](/courses/add-roleplay).
## From Draft to Published
A course always has a draft version and, once released, a published version. You build and refine in the draft, publish when it is ready, and learners only ever see the published version.
Add and rearrange sections, pages, and blocks. Nothing is visible to learners yet.
Release the course. It becomes available to enroll and appears in the catalog if you have listed it there.
Editing a published course starts a new draft. Learners keep seeing the live version while you work, and the course shows a **Changed** status so you always know the published version is behind your latest edits.
Release your changes to update the live course to the next version.
You manage every course from one place, where its status (Draft, Published, or Changed) is always visible at a glance, alongside its section count, enrollment completion, and owner.
As the list grows, group it into **collections** from the rail on the left, filter by status or collection, or switch to a grouped view. See [Organize Courses into Collections](/courses/collections).
Each publish mints a new version, and every version is kept in the version history. Enrollments are pinned to a version, so learners who are partway through never see a course change underneath them, while learners who have not started yet pick up your latest content automatically. See [Publish and Versioning](/courses/publish-and-versioning) for the full rules.
## Get the Course to Your Team
Once a course is published, there are two ways in, and you can use both on the same course:
* **Self-enrollment.** Turn on **Allow self-enrollment** and the course appears in the catalog for learners to enroll themselves. Add group restrictions to limit it to a specific role, region, or team.
* **Direct assignment.** Enroll named people or whole groups yourself, optionally with a **due date** (a soft deadline, after which the learner shows as past due) and a **close date** (a hard cutoff, after which they can no longer complete it).
[Enroll participants →](/courses/enroll-participants)
## Track Who Is Actually Finishing
Every course has a dashboard with completion rates, average time to complete, and an at-risk table for learners who have stalled or gone past due. Nudge them with a reminder email, extend a deadline, or re-enroll anyone who did not complete. The section breakdown shows where learners get stuck, and you can export the full cohort for reporting elsewhere.
[Track progress and analytics →](/courses/track-progress-and-analytics)
## Deadlines, Nudges, and Re-enrollment
When you assign a course, you can set a due date and a hard close date. Exec can send reminder nudges to learners who have not finished yet, and you can re-enroll anyone who did not complete in time to give them a fresh attempt. See [Nudges and Re-enrollment](/courses/nudges-and-reenrollment).
Completing a course can automatically issue a certification. See [Certifications](/courses/certifications) to link one.
## Courses vs Programs
A course is a single, self-paced training unit that someone takes on their own time or by a due date you set. [Programs](/programs/overview) are scheduled cohorts where a group moves through a sequence of activities together on fixed dates. They are separate features: use a course for evergreen, individual training, and a program for cohort-based training with a shared timeline.
If you are onboarding repeating batches of new hires, that choice is less obvious than it sounds, and cloning a program per cohort is usually the wrong end of it. See [Programs or Courses?](/programs/overview#programs-or-courses) for a side-by-side comparison and the rule of thumb.
## Dive Deeper
The three ways to start a course and set its basic details.
Turn existing material into a full draft course.
Structure your course and organize its content.
Add text, video, slides, files, quizzes, roleplays, and Knowledge Hub articles to a page.
How drafts, publishing, version history, and version pinning work.
Copy a course into a new draft and retarget it at a different audience.
Group courses into collections and keep a growing library navigable.
Assign directly with deadlines or open self-enrollment through the catalog.
Completion, at-risk learners, and section-by-section progress.
What the experience looks like from the learner's side.
## Getting Help
Need a hand building your first course? Contact us at [hello@exec.com](mailto:hello@exec.com), or ask the AskExec agent in the app.
# Publish and Versioning
Source: https://docs.exec.com/courses/publish-and-versioning
Publish your course, manage draft and published versions, and understand how new versions reach enrolled learners
A course has at most one mutable draft version and one published version. You build and edit in the draft, then publish when it is ready for learners. Only published courses can be enrolled or assigned, so publishing is the step that makes your course available in the catalog and through [Enroll Participants](/courses/enroll-participants).
## Publish Changes
When your draft is ready, click **Publish changes** in the editor header. Publishing assigns the next integer version, so your first publish is version 1, the next is version 2, and so on.
After publishing, the course status changes from **Draft** to **Published** and learners can be enrolled.
### Restricted Scenarios Block Publish
If a page contains a roleplay block whose scenario is **Restricted** and hasn't been shared with anyone else, publish is blocked and the publish sidebar highlights each affected page. Open the roleplay block and use the access strip to either flip the scenario to **Workspace** or share it with the users, groups, or programs who need to run it. Workspace and Global scenarios always publish. See [Add a Roleplay](/courses/add-roleplay#make-sure-participants-can-open-the-scenario) for the full access model.
### Fix Optional Pages with Required Blocks at Publish
If publish is blocked only because an optional page still contains required blocks — for example a required quiz was added to a page that's already marked optional — you'll get a **Make blocks optional and publish?** prompt listing the affected pages. Confirming flips the required blocks on those pages to optional and retries the publish in one step, so you don't have to open each page to fix it manually. See [Optional Pages](/courses/build-sections-and-pages#optional-pages) for how the cascade works.
## Editing a Published Course
Editing a published course never touches the live version directly. Instead, your edits clone the course into a fresh draft. While that draft has unpublished edits, the course shows a **Changed** status badge so you always know the live version is behind your latest work.
The course dashboard's Course Status card also shows a **Publish changes** button whenever the course is in the Changed state, so you can publish from there without opening the editor.
### When Another Admin Publishes While You Edit
Courses can be edited by more than one admin, so the published version can move while your editor is open. The editor protects you in two ways instead of silently overwriting their work:
* **Live banner.** When someone else publishes, your open editor refreshes with the latest content and shows an amber banner naming who published which version. If you have unpublished changes, the banner reminds you to review them before publishing and offers a **Discard my draft** button to start over from their version. If you have no draft of your own, the content refreshes silently with no banner.
* **Publish conflict check.** If you click **Publish changes** from a stale editor — for example a tab left open before their publish — the publish is refused and a **Someone else published this course** dialog names the publisher and version. Choose **Cancel** to go back and review, or **Publish anyway** to create a new version from your content on top of theirs. Their version stays in the [version history](#version-history) either way.
Admins share a single draft per course. If another admin publishes the shared draft while your editor is open, your saved edits are already included in their published version, so there is nothing left for you to publish. The editor tells you this instead of showing a conflict dialog.
Use the live preview at any time to see the draft exactly as a learner would, without saving any progress. See [Build Sections and Pages](/courses/build-sections-and-pages) for more on working in the editor.
## How Versions Affect Enrolled Learners
Enrollments are version-pinned: each learner keeps the version of the course they enrolled on. When you publish a new version:
| Enrollment status | What happens |
| ----------------- | -------------------------------------------------------------------------------------------------- |
| **Not Started** | Re-points to the newest published version. These learners get your latest content when they begin. |
| **Active** | Keeps the pinned version. Learners in progress are never switched mid-course. |
| **Completed** | Keeps the pinned version. Their record reflects the course as they took it. |
This means you can publish improvements freely: no one who is partway through the course will see pages change underneath them, and anyone who has not started yet automatically gets the newest version.
### See Which Version Each Learner Is On
The **Participants** tab on the course dashboard has a **Version** column, hidden on initial load so the table stays lean. Turn it on from the columns toggle and each row shows the version that learner is pinned to, such as `v5`. When a learner's pinned version is not the current published one, the cell carries an info icon noting that their results came from that older version rather than the latest.
In the example above the course is on version 5. The learners still on v4 kept that version because they were already active or finished when v5 was published.
Exports follow the columns you have turned on, so switch Version on before downloading if you want each completion record to say which version of the course was completed.
### Move Someone onto a Newer Version
Only **Not Started** enrollments move on their own. For everyone else:
| Situation | What to do |
| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Learner is partway through and you want them on the new version | **Unenroll** them from the Participants tab, then enroll them again. The fresh enrollment pins to the current published version and starts from the beginning. |
| Learner did not complete (Did Not Pass or Did Not Finish) | Use **Re-enroll**. The new attempt pins to the current published version. See [Nudges and Re-enrollment](/courses/nudges-and-reenrollment). |
| Learner already completed and you want them to take the new version | **Unenroll** them, then enroll them again. Re-enroll only applies to enrollments that did not complete. |
Unenrolling and re-enrolling both start the learner from scratch on the new version. Their prior attempt is kept as history, but progress does not carry across versions.
## Version History
Every published version is kept in the version history, where you can review past versions and take two actions:
* **Restore** re-publishes a copy of an old version as a new version. Restoring does not rewind the version number; it creates the next version with the old content.
* **Discard draft** throws away unpublished edits, returning the course to a clean Published state and clearing the Changed badge.
Because restore creates a new published version, the same enrollment rules apply: Not Started enrollments re-point to the restored version, while Active and Completed enrollments keep the version they are pinned to.
## Archive a Course
Courses move through three statuses: **Draft**, **Published**, and **Archived**. Archive a course when it should no longer be available for new enrollments, and unarchive it if you need to bring it back. Archiving is a good fit for retired training you want to keep on record rather than delete.
### Archive Multiple Courses at Once
On the **Manage Courses** list you can archive or unarchive a batch of courses in one action. Select courses using the row checkboxes, hold **Shift** and click to select a range, or click and drag across the table to marquee-select. A floating action bar appears at the bottom of the page with **Archive** and **Unarchive** buttons and a count of what you selected.
Archive and Unarchive only appear when your selection includes courses that can take that action, so a mixed selection of live and archived courses shows both buttons and each applies to the relevant subset. Clearing the selection or changing filters closes the action bar.
## Next Steps
List your published course in the catalog or assign it with deadlines.
Keep improving your draft in the course editor.
# Remix a Course
Source: https://docs.exec.com/courses/remix-course
Copy an existing course into a new draft and retarget it at a different audience with Course AI
Remixing takes a course you already have and makes an independent copy you can change freely. It is the fastest way to get a second version of good training: the same material framed for a different role, a different tenure level, or a different department, without rebuilding it and without disturbing the course your team is already enrolled in.
If you have remixed a roleplay scenario before, this is the same idea applied to a whole course. See [Remix a Scenario](/roleplays/remix-scenario) for the scenario version.
## When to Remix
Reach for a remix when the content is right but the framing is not:
* **A different audience.** A foundations course written for new hires, retargeted at tenured reps who need the refresher rather than the basics.
* **A different team.** The same framework taught to support, where the examples should be tickets rather than deals.
* **A different depth.** A long onboarding course cut down to a short version, or a short one expanded.
* **A safe place to experiment.** Try a restructure on a copy while the published course keeps running.
If you only want to change the live course itself, you do not need a remix. Editing a published course already starts a new draft and leaves learners on the current version until you publish. See [Publish and Versioning](/courses/publish-and-versioning).
## Remix a Course
Go to **Courses > Manage** and find the course in the list. Remix is available from the row's **...** menu, and from the actions menu on the course dashboard and in the builder header.
Exec confirms what the copy will and will not carry over before it creates anything.
The copy is created as a draft named after the original with **(remix)** appended, and opens in the builder with the Course AI panel already open.
Describe the new audience or framing and let it rework the copy. Because it is a full course, whole-course instructions work well here: retone it for a different level, translate it, shorten it, or split a section into several.
Give the remix a real name in the course settings, then publish it as its own separate course. Until you publish, nobody sees it.
## What Carries Over
A remix is a structural copy, not a linked one. Once created, the two courses are independent: editing one never affects the other.
| Carried over | Not carried over |
| ----------------------------------------- | --------------------------------------------- |
| All sections, pages, and blocks | Enrollments and learner progress |
| Description, cover image, and theme color | Version history (the copy starts fresh) |
| Course tags and group restrictions | The linked certification |
| Self-enrollment setting | Published status (the copy starts as a Draft) |
| Email notification settings | |
Two details are worth knowing:
* **Roleplay scenarios and Knowledge Hub articles are shared, not duplicated.** The remix points at the same scenarios and articles as the original, so editing one of those scenarios changes it in both courses. If you want the remix to practice against something different, swap the block's scenario or generate a new one. See [Add a Roleplay](/courses/add-roleplay).
* **The copy starts from the published version.** If the original has never been published, the copy is taken from its current draft instead.
A remix is a new course, so it counts against your plan's course limit and needs a free slot to be created. Archived courses cannot be remixed. See [Plans and Feature Availability](/platform/plans).
## Remix, Collection, or Restriction?
These solve different problems, and it is easy to reach for the wrong one:
* **Remix** when you need genuinely different content for a different audience. You end up with two courses that diverge.
* **A collection** when the content is the same and you only want it organized or easier to find. See [Collections](/courses/collections).
* **Group restrictions** when the content is the same and you only want to control who can enroll. See [Enroll Participants](/courses/enroll-participants).
## Next Steps
How the remix's draft, publishing, and version history work.
Keep the original and its remixes organized together.
# Taking a Course
Source: https://docs.exec.com/courses/taking-a-course
Find courses in the catalog, work through them page by page, pass quizzes and roleplays, and earn your completion
As a learner, you take courses in a full-screen player that moves you through the content page by page. This page covers how to find a course, work through it, and what happens when you finish (or don't).
## Find a Course
Head to the **Courses** dashboard to see everything in one place:
* **Currently Enrolled** shows the courses you are already working through.
* **Course Catalog** shows courses open for self-enrollment.
**My Courses** lists all of your enrollments, and you can filter it by status to find what is in progress, completed, or not started.
Click any course in the catalog to open its detail page. You'll see **About This Course**, the **Course outline**, and a **Course Info** panel with the duration and section count. When you are ready, click **Enroll**.
Some courses are assigned to you directly by an admin, sometimes with a due date. Those appear under Currently Enrolled automatically, no enrollment step needed.
## Work Through the Course
Courses open in a full-screen player. Each page holds the content for one step: text to read, videos to watch, quizzes, roleplays, and more. The bar at the bottom tells you exactly where you stand:
* **Continue to page** or **Complete Section** appears when you've met the page's requirements and can move on.
* **Finish this page to continue** means something on the page still needs your attention, like a video you haven't watched enough of or a quiz you haven't passed.
Some courses unlock content sequentially. A gated page shows **This page is locked** with the note "Finish the earlier pages in this section to unlock it." Work through the earlier pages and it opens up.
## Pass Quizzes
Quizzes show the **% to pass** and how many attempts you have up front, so you know the target before you start.
After you submit, you'll see **Passed** or **Did not pass** along with your score and how many attempts you have remaining.
From the results screen you can:
* **Review Mistakes** to see what you got wrong
* **Try Again** if you have attempts remaining
* **Continue** once you've passed
Review marks each answer you got wrong and, where the course author wrote one, explains why the answer was incorrect. Some courses also highlight the correct answer during review; that is up to whoever built the quiz.
## Practice with Roleplays
Some pages include a roleplay: a live AI conversation where you practice the skill you just learned. The course sets a minimum rank (Bronze, Silver, or Gold) you need to reach, and you may get multiple attempts to hit it. See [AI Roleplays](/roleplays/ai-agent) for how roleplay conversations work.
## Finish the Course
When you complete the final section, the player shows **Course complete** with the message "You've finished every section. Nice work." If the course has a certification attached, click **View certificate** to see your credential. Otherwise, use **Back to course**.
## If You Don't Pass or Run Out of Time
Two things can end a course without a completion:
* **You didn't pass this course** means you ran out of attempts on a quiz or roleplay.
* **You didn't finish in time** means the course's close date passed before you completed it.
Either way, the player gives you a path forward. Depending on how you enrolled, you'll see **Re-enroll in Course** (start a fresh attempt yourself), **Request Re-enrollment**, or **Request More Time**. Requests go to your admin, who can re-enroll you or adjust your deadline.
## Related Pages
Reminders, re-enrolling, and requesting more time.
How completing a course earns you a certificate.
# Track Progress and Analytics
Source: https://docs.exec.com/courses/track-progress-and-analytics
Monitor completion rates, spot at-risk learners, and drill into individual progress from the course dashboard
Every course has a dashboard that shows how your cohort is doing at a glance and where individual learners are getting stuck. Open a course from **Manage** to see it, with two tabs: **Overview** and **Participants**.
## Course Outcomes
The Overview tab leads with the metrics that tell you whether the course is working:
| Metric | What it tells you |
| ----------------------------- | ---------------------------------------------- |
| **Avg Days to Complete** | How long learners take from start to finish |
| **Completion Rate** | The share of enrollments that reach completion |
| **On-Time Completion** | Completions that landed before the due date |
| **Avg Attempts / Completion** | How many tries a completion takes on average |
| **No Activity** | Learners who haven't engaged at all |
## Enrollment Overview
Below the outcomes, the Enrollment Overview breaks the cohort into **Completed**, **In Progress**, **Not Started**, and **Failed**, so you can see the shape of the whole group in one view.
## Spot At-Risk Learners
The **At Risk** table surfaces learners who are past due or trending that way:
* **Not Started**: enrolled 7 or more days ago and hasn't begun
* **In Progress**: started, but no activity in the last 7 days
Select the learners you want to remind and click **Nudge selected** to send them a reminder email. Nudges are rate-limited to once per 24 hours per learner. See [Nudges and Re-enrollment](/courses/nudges-and-reenrollment) for the full picture.
## Handle Failed Enrollments
The **Failed** table lists learners who didn't complete, with the reason for each: **Failed at: \** (they ran out of attempts on a specific quiz or roleplay), **Course closed before completion**, or **Did not finish in time**. Select learners and click **Re-enroll selected** to give them a fresh attempt.
## Section Breakdown
The section breakdown shows how many learners have started and completed each section, with a toggle between **%** and **#**. A section where lots of learners stall is your signal to revisit that content.
## Drill Into a Single Learner
The **Participants** tab lists every enrollment with name, status, progress, due date, and last activity. Three more columns are available from the columns toggle and hidden until you turn them on:
* **Enrolled** shows the date the learner was enrolled on their current attempt, useful for sorting by cohort or spotting stale enrollments.
* **Version** shows the course version the learner is pinned to, with an info icon when that is not the current published version. See [Publish and Versioning](/courses/publish-and-versioning).
* **Attempts** shows how many attempts the learner has taken on the course.
Open **Columns** in the top right of the table to turn any of these on. Click a column header to sort by that column.
Click a learner to open their enrollment detail, which shows:
* **Progress Overview**: percent complete and pages completed
* Per-section status, so you can see exactly where they are
* Deadline editing, to adjust their due date or close date
* A **Nudge** action for a one-off reminder
## Export the Cohort
You can export the full cohort to a spreadsheet for reporting outside Exec or deeper analysis of your own. The export covers who has completed, who is in progress, and who has not started.
The download matches the columns you have turned on, so if you want the course version or attempt count in the file, switch those columns on before exporting.
## Related Pages
Remind at-risk learners and re-enroll those who didn't finish.
Assign courses and set due and close dates.
# Rolling Exec Out to Your Team
Source: https://docs.exec.com/guides/rollout
Invite teammates, assign your first scenarios, and build a practice habit that survives week two
Everything up to this point works single player. Scores start moving once your team practices. This guide walks the whole path from a workspace of one to a team with assignments, due dates, and results you can act on.
***
## Before You Invite Anyone
Invitations land better when there is something worth doing on the other side. Before adding teammates, make sure you have:
1. **One published scenario that sounds like your business.** If your first build still has a generic character, [edit it](/roleplays/edit-scenario) until the objections and details match reality. Your team will forgive a rough scorecard, but a scenario about the wrong company loses them on day one.
2. **A session of your own on the board.** Run the scenario yourself so you can tell people what to expect and what a scorecard looks like. [Complete Your First Roleplay](/your-first-roleplay) covers the mechanics.
***
## Step 1: Invite Your Team
Open **Settings** in the left navigation and add teammates by email. Each person gets an activation email with a link to set up their account. [Add a User](/platform/add-user) has the details.
Users who will run AI roleplays need a **full seat**. Basic seats cover programs, coaching, and learning materials without roleplay access. [Basic Seats vs. Full Seats](/platform/basic-full-seats) explains the difference and how to assign them.
If you are rolling out to more than one team, groups keep assignments and reporting tidy. Create them from the [Settings tab](/platform/settings-tab). Group availability varies by plan, so check [Plans](/platform/plans) if you do not see the option.
Seat counts depend on your plan. The Free plan includes 1 admin and 3 basic seats, Starter includes up to 50 seats, and the ladder goes up from there. See [Plans and Feature Availability](/platform/plans).
***
## Step 2: Assign Your First Scenario
An unassigned scenario is a suggestion. An assigned one is a commitment. From the scenario page, assign it to specific people with three settings:
* **A due date.** End of the week works well for a first assignment.
* **A minimum passing score.** Silver is the right bar for a first pass. Gold is for scenarios the team has already seen.
* **An attempt count.** Requiring at least two attempts turns the scorecard into a feedback loop instead of a one-shot test.
Assigned roleplays land at the top of each person's home screen, and completions and scores roll into the scenario page as they happen. [Assign Scenarios](/roleplays/assign-scenarios) covers every option, and [Manage Assignments](/roleplays/manage-assignments) shows how to track who has finished.
***
## Step 3: Make It a Rhythm
One assignment proves the mechanics. A rhythm changes how the team performs. The pattern that works across teams:
1. **One scenario per week**, assigned Monday, due Thursday or Friday.
2. **A minimum score**, so completing the assignment means clearing a bar rather than logging an attempt.
3. **A short team review**, where you look at the most common misses from the week's scorecards and pick next week's scenario from them.
The team guides have a version of this rhythm tuned to each audience: [sales](/guides/train-sales-teams), [support](/guides/train-support-teams), [customer success](/guides/train-customer-success), and [managers](/guides/train-managers).
***
## Step 4: Graduate to Programs
When you have more than a couple of scenarios and a cohort to move through them, switch from one-off assignments to a [Program](/programs/overview). Programs bundle roleplays, videos, surveys, and announcements into a timeline with launch dates, prerequisites, and a progress dashboard. Enrolling someone in a program can assign their seat automatically, so new hires get access and their first assignment in one step.
Two setup details save most of the trouble we see: set component close dates a week or two past the due dates so PTO does not zero anyone out, and give same-day components a one-minute offset so the timeline reads cleanly. [Launch and Lifecycle](/programs/launch-and-lifecycle) covers both.
Programs come with Starter plans and above. On Professional, you can attach a [certification](/certificates/create-certification), and Exec issues it automatically when participants finish.
***
## Step 5: Measure What Moved
Three places to look once sessions start rolling in:
* **The scenario page** shows completions and scores per assignment as they happen.
* **The [skill dashboard](/skills/overview)** aggregates evaluation criteria across sessions, so you can see which skills are improving and who needs attention. Skill analytics are a Professional feature.
* **[Call Scoring](/calls/overview)** closes the loop: connect a recorder and compare practice scores against live calls. It works on every plan, and you pay only for the calls you score.
If scores plateau, the fix is usually in the scenario rather than the people. [Edit it](/roleplays/edit-scenario) to raise the difficulty, tighten its evaluation criteria, or build the next scenario from whatever the skill dashboard says the team misses most.
***
## Next Steps
Discovery, objections, and cold calls, with paste-ready prompts.
Escalations, billing disputes, and saying no well.
Renewals, QBRs, and price increase conversations.
Feedback, reviews, and the conversations managers avoid.
***
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on rolling Exec out to your team.
# Training Customer Success Teams with Exec
Source: https://docs.exec.com/guides/train-customer-success
Scenarios, skills, and a rhythm for renewals, QBRs, and expansion conversations
Customer success teams use Exec to practice the conversations that win or lose revenue after the sale: at-risk renewals, QBRs that executives actually attend, and expansion asks. CSMs talk to an AI customer who has doubts the way actual customers do, and every session ends with a scorecard that grades the behaviors that keep accounts.
This guide covers what to build first, which skills to track, and a rhythm built around your renewal calendar.
***
## Start with One Scenario
When you created your workspace, Exec read your company website and drafted roleplay ideas that fit your business. If you said you were training customer success, those ideas already lean toward renewal and account conversations. Pick the one closest to a call your CSMs actually have, answer a couple of quick questions, and Scenario Studio builds it in about two minutes.
Run it yourself before showing anyone. Talk out loud like it is a live call, end the session with the green **End** button, and read the scorecard. If the customer gets a detail about your product wrong, [edit the scenario](/roleplays/edit-scenario) and tell the agent what to change in one sentence.
New to running sessions? Start with [Complete Your First Roleplay](/your-first-roleplay).
***
## Scenarios Worth Building
Here are the builds CS teams get the most out of. Copy a prompt, fill in the bracketed fields, and paste it into the Scenario Studio chat. The full collection lives in the [Prompt Library](/prompt-library).
### At-Risk Renewal
**When to use:** Renewals arrive as surprises and CSMs discover risk too late.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a renewal call scenario where I am speaking with a [CUSTOMER TITLE] whose contract for [PRODUCT/SERVICE] renews in [TIME PERIOD] and whose usage has dropped.
My goal is to surface the actual reason usage dropped and secure a path to renewal.
For me to succeed, I must ask about the change directly instead of pitching around it, connect the product back to the business outcome they bought it for, and leave with a concrete renewal step.
This conversation is challenging because the customer is polite but disengaged, mentions a budget review, and will not commit to anything on the call.
```
### Quarterly Business Review
**When to use:** QBRs read as feature tours and executives stop showing up.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a QBR scenario where I am presenting quarterly results to a [EXECUTIVE TITLE] at a customer using [PRODUCT/SERVICE].
My goal is to prove business impact and get agreement on next quarter's success plan.
For me to succeed, I must lead with their outcomes rather than our features, tie every metric to a goal they stated, and get an explicit yes to the plan.
This conversation is challenging because the executive joins late, asks what they are actually getting for the money, and pushes back on one of my metrics.
```
### Price Increase Conversation
**When to use:** CSMs discount preemptively or bury the news at the end of a call.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a scenario where I have to tell a [CUSTOMER TITLE] that the price of [PRODUCT/SERVICE] is increasing by [PERCENTAGE] at renewal.
My goal is to deliver the news directly and keep the renewal on track.
For me to succeed, I must state the increase early instead of burying it, justify it with the value delivered this year, and hold the number without offering an unprompted discount.
This conversation is challenging because the customer reacts sharply, references a cheaper competitor, and asks to escalate to my manager.
```
Time your builds to the book of business. In the month before renewal season, have every CSM run the at-risk renewal scenario twice before their live renewal calls, and rotate QBR scenarios monthly so they stay current with your messaging.
***
## Skills to Track
Every scenario grades CSMs against evaluation criteria you control. For CS teams, the criteria that predict retention are:
* **Risk discovery.** Asking the uncomfortable question directly instead of pitching around it.
* **Value articulation.** Restating impact in the customer's own metrics, not your feature names.
* **Executive presence.** Leading the conversation with a senior audience rather than presenting at them.
* **Commitment capture.** Ending with a specific agreed next step, not "sounds good."
CSMs see how they scored on each criterion after every session, with lines they actually said and stronger phrasing they could have used. See [Interpret Your Results](/roleplays/interpret-results) for how to read a scorecard, and [Skills](/skills/overview) for tracking these across the team.
***
## The Rhythm
The CS teams that get the most out of Exec anchor practice to the renewal calendar:
1. **Before renewal season.** Every CSM runs the at-risk renewal scenario at least twice, minimum score Silver, before their first live renewal call. [Assign it](/roleplays/assign-scenarios) with a due date so no one skips it.
2. **Monthly.** Rotate the QBR scenario to match this quarter's messaging and this quarter's most common pushback.
3. **After a hard call.** When a live conversation goes sideways, remix the nearest scenario to match it and have the team run it that week.
***
## A Sample Three-Week Ramp Program
For new-CSM ramp, bundle scenarios into a [Program](/programs/overview) with due dates and completion criteria. Programs come with Starter plans and above.
| Week | Focus | Components |
| ---- | ----------------------- | ---------------------------------------------------------------------------------------------------- |
| 1 | Product and accounts | Announcement with your success playbook, product-walkthrough roleplay (minimum Silver), intro survey |
| 2 | Renewals | At-risk renewal roleplay (minimum Silver, 2+ attempts), price increase roleplay |
| 3 | Executive conversations | QBR roleplay (minimum Gold), account-plan action item, final survey |
On Professional plans, attach a [certification](/certificates/create-certification) so CSMs who clear the bar get a record of it before taking their own book.
***
## Score Live Calls Too
Roleplays are practice. [Call Scoring](/calls/overview) grades your live calls: connect Fireflies or Gong and Exec scores every recorded renewal or QBR on the same kind of scorecard your roleplays use, so you can see where value articulation breaks down with a customer on the line. Call Scoring works on every plan, including Free, and you pay only for the calls you score. Setup takes about five minutes: [Set Up Call Scoring](/calls/set-up-call-scoring).
***
## Next Steps
Invites, seats, groups, and your first assignment, in one walkthrough.
What Free, Starter, Professional, and Enterprise each include.
***
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on building CS scenarios or rolling out practice to your team.
# Training Managers and Leaders with Exec
Source: https://docs.exec.com/guides/train-managers
Scenarios, skills, and a cadence for feedback, reviews, and the conversations managers avoid
Managers use Exec to practice the conversations no one ever trained them for: giving hard feedback, running performance reviews, and telling someone no. Managers talk to an AI report who gets defensive the way people actually do, and every session ends with a scorecard that grades clarity, listening, and follow-through.
This guide covers what to build first, which skills to track, and when to schedule practice so it happens before the conversation it rehearses.
***
## Start with One Scenario
When you created your workspace, Exec read your company website and drafted roleplay ideas that fit your business. If you said you were training managers and leaders, those ideas already lean toward feedback and coaching conversations. Pick the one closest to a conversation your managers actually dread, answer a couple of quick questions, and Scenario Studio builds it in about two minutes.
Run it yourself before showing anyone. Talk out loud as if the report were sitting across from you, end the session with the green **End** button, and read the scorecard. If the character feels off for your culture, [edit the scenario](/roleplays/edit-scenario) and tell the agent what to change in one sentence.
New to running sessions? Start with [Complete Your First Roleplay](/your-first-roleplay).
***
## Scenarios Worth Building
Here are the builds leadership teams get the most out of. Copy a prompt, fill in the bracketed fields, and paste it into the Scenario Studio chat. The full collection lives in the [Prompt Library](/prompt-library).
### Difficult Feedback
**When to use:** Managers soften feedback until the message disappears.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a scenario where I am giving difficult feedback to a direct report, a [REPORT ROLE], about [BEHAVIOR OR PERFORMANCE ISSUE].
My goal is to deliver the feedback clearly and agree on a specific change.
For me to succeed, I must state the issue with a concrete example in the first two minutes, listen without retracting the message, and end with a written-down commitment and a follow-up date.
This conversation is challenging because the report gets defensive, brings up a peer who does the same thing, and questions whether the feedback is fair.
```
### Performance Review
**When to use:** Reviews turn into negotiations or surprise the employee.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a performance review scenario with a direct report, a [REPORT ROLE], whose rating this cycle is [RATING] and who expected better.
My goal is to deliver the rating with evidence and leave the report clear on what changes it next cycle.
For me to succeed, I must give the rating early instead of building up to it, support it with specific examples from the period, and turn the conversation toward a concrete development plan.
This conversation is challenging because the report disagrees with the rating, cites their strongest project, and asks whether this affects their compensation.
```
### The Compensation No
**When to use:** Managers dodge money conversations or make promises they cannot keep.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a scenario where a strong performer, a [REPORT ROLE], asks for a raise that I cannot approve this cycle.
My goal is to say no clearly while keeping the person motivated and retained.
For me to succeed, I must give the answer directly without blaming an invisible process, explain what would change the answer, and agree on a path with dates.
This conversation is challenging because the report mentions an outside offer and asks me point blank whether they should take it.
```
Schedule practice before the conversation, not after. The highest-value week to run the difficult feedback scenario is the one before review cycles open. HR teams tell us reviews go noticeably better when every manager has hit Gold on the practice version first.
***
## Skills to Track
Every scenario grades managers against evaluation criteria you control. For leadership training, the criteria that decide whether feedback lands are:
* **Message clarity.** The report can repeat back the feedback in one sentence.
* **Leading with the point.** The hard part arrives in the first two minutes, not the last two.
* **Listening under pressure.** Acknowledging pushback without retracting the message.
* **Commitment capture.** Every conversation ends with a specific agreed action and a date.
Managers see how they scored on each criterion after every session, with lines they actually said and stronger phrasing they could have used. See [Interpret Your Results](/roleplays/interpret-results) for how to read a scorecard, and [Skills](/skills/overview) for tracking these across your leadership group.
***
## The Cadence
Manager training works best when you tie it to the moments the conversations actually happen:
1. **Before review cycles.** [Assign](/roleplays/assign-scenarios) the difficult feedback and performance review scenarios to every people manager, minimum score Gold, due before reviews open.
2. **Quarterly.** One scenario per quarter on the current leadership theme, such as delegation, comp conversations, or restructuring news.
3. **For new managers.** The three-week program below, assigned in their first month.
***
## A Sample Three-Week New-Manager Program
Bundle scenarios into a [Program](/programs/overview) with due dates and completion criteria. Programs come with Starter plans and above.
| Week | Focus | Components |
| ---- | --------------------- | ----------------------------------------------------------------------------------------------------- |
| 1 | Feedback fundamentals | Announcement with your feedback framework, difficult feedback roleplay (minimum Silver), intro survey |
| 2 | Reviews and ratings | Performance review roleplay (minimum Silver, 2+ attempts), calibration article |
| 3 | The hard cases | Compensation-no roleplay (minimum Gold), 1:1-plan action item, final survey |
On Professional plans, attach a [certification](/certificates/create-certification) so managers who clear the bar get a record of it before their first review cycle.
***
## Next Steps
Invites, seats, groups, and your first assignment, in one walkthrough.
What Free, Starter, Professional, and Enterprise each include.
***
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on building leadership scenarios or rolling out practice to your managers.
# Training Sales Teams with Exec
Source: https://docs.exec.com/guides/train-sales-teams
Scenarios, skills, and a weekly rhythm for getting reps practicing the conversations that decide deals
Sales teams use Exec to practice the conversations that decide deals: discovery calls, pricing pushback, cold outreach, and competitive bake-offs. Reps talk to an AI buyer that objects the way buyers actually do, and every session ends with a scorecard that grades the specific behaviors you care about.
This guide covers what to build first, which skills to track, and the weekly rhythm that teams with the best results have settled into.
***
## Start with One Scenario
When you created your workspace, Exec read your company website and drafted roleplay ideas that fit your business. If you said you were training a sales team, those ideas already lean toward sales conversations. Pick the one closest to a call your reps actually have, answer a couple of quick questions, and Scenario Studio builds it in about two minutes.
Run it yourself before showing anyone. Talk out loud like it is a live call, end the session with the green **End** button, and read the scorecard. If the buyer gets a detail about your company wrong, [edit the scenario](/roleplays/edit-scenario) and tell the agent what to change in one sentence.
New to running sessions? Start with [Complete Your First Roleplay](/your-first-roleplay).
***
## Scenarios Worth Building
Here are the builds sales teams get the most out of. Copy a prompt, fill in the bracketed fields, and paste it into the Scenario Studio chat. The full collection lives in the [Prompt Library](/prompt-library).
### Discovery Call
**When to use:** Your reps rush to pitch before they understand the problem.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a discovery call scenario where I am speaking with a [BUYER TITLE] at a [COMPANY TYPE/INDUSTRY].
My goal is to uncover their top business problem, quantify its cost, and earn a second meeting.
For me to succeed, I must ask open questions before pitching, get a number attached to the pain, and confirm next steps with a date.
This conversation is challenging because the buyer is friendly but vague, deflects questions about budget, and has been burned by a vendor before.
```
### Pricing Objection
**When to use:** Deals stall the moment price comes up.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a negotiation scenario where a [BUYER TITLE] pushes back hard on our pricing for [PRODUCT/SERVICE].
My goal is to defend the price by re-anchoring on value instead of discounting immediately.
For me to succeed, I must restate the business impact in the buyer's own numbers, offer at most one concession, and trade any concession for a commitment.
This conversation is challenging because the buyer says a competitor quoted 30% less and threatens to walk.
```
### Cold Call
**When to use:** New reps burn through lists without booking meetings.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a cold call scenario where I am calling a [BUYER TITLE] at a [COMPANY TYPE] who was not expecting my call.
My goal is to earn 30 seconds, deliver a relevant reason for calling, and book a meeting.
For me to succeed, I must open with a specific observation about their business, handle the first brush-off without reading a script, and propose a concrete time.
This conversation is challenging because the buyer is busy, mildly annoyed, and tries to end the call twice.
```
Build one scenario per stage of your sales cycle rather than five variations of the same call. When a scenario feels too easy, remix it into a hard mode with a tougher buyer and stricter grading.
***
## Skills to Track
Every scenario grades reps against evaluation criteria you control. For sales teams, the criteria that predict quota are:
* **Discovery questioning.** Open questions asked before the first pitch moment.
* **Quantifying impact.** Getting a dollar figure or metric attached to the problem.
* **Objection handling.** Acknowledging, isolating, and answering rather than talking past.
* **Next-step control.** Ending every call with a scheduled, specific commitment.
Reps see how they scored on each criterion after every session, with lines they actually said and stronger phrasing they could have used. See [Interpret Your Results](/roleplays/interpret-results) for how to read a scorecard, and [Skills](/skills/overview) for tracking these across the team.
***
## The Weekly Rhythm
The sales teams that get the most out of Exec run a simple loop:
1. **Monday.** The manager [assigns](/roleplays/assign-scenarios) one scenario tied to this quarter's messaging, due Thursday, minimum score Silver, at least two attempts.
2. **Tuesday through Thursday.** Reps practice. Most hit Silver in two or three attempts.
3. **Friday.** The team call reviews the two most common misses from the week's scorecards, and next week's scenario targets them.
The loop holds up because it costs each rep about 30 minutes a week.
***
## A Sample Three-Week Ramp Program
For new-hire ramp, bundle scenarios into a [Program](/programs/overview) with due dates and completion criteria. Programs come with Starter plans and above.
| Week | Focus | Components |
| ---- | -------------------- | ------------------------------------------------------------------------------------------- |
| 1 | Product and pitch | Announcement with your messaging doc, product-pitch roleplay (minimum Silver), intro survey |
| 2 | Discovery | Discovery call roleplay (minimum Silver, 2+ attempts), recorded call review |
| 3 | Objections and close | Pricing objection roleplay (minimum Gold), cold call roleplay, final survey |
On Professional plans, attach a [certification](/certificates/create-certification) so reps who clear the bar get a record of it.
***
## Score Live Calls Too
Roleplays are practice. [Call Scoring](/calls/overview) grades your live calls: connect Fireflies or Gong and Exec scores every recording on the same kind of scorecard your roleplays use, so you can see which objections come up most and build next week's scenario from them. Call Scoring works on every plan, including Free, and you pay only for the calls you score. Setup takes about five minutes: [Set Up Call Scoring](/calls/set-up-call-scoring).
***
## Next Steps
Invites, seats, groups, and your first assignment, in one walkthrough.
What Free, Starter, Professional, and Enterprise each include.
***
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on building sales scenarios or rolling out practice to your team.
# Training Support Teams with Exec
Source: https://docs.exec.com/guides/train-support-teams
Scenarios, skills, and a weekly rhythm for getting agents ready for hard customer conversations
Support teams use Exec to practice the calls that make or break customer trust: escalations, billing disputes, and saying no without losing the customer. Agents talk to an AI customer who arrives frustrated the way actual customers do, and every session ends with a scorecard that grades de-escalation, clarity, and resolution.
This guide covers what to build first, which skills to track, and a weekly rhythm built around the tickets in your queue.
***
## Start with One Scenario
When you created your workspace, Exec read your company website and drafted roleplay ideas that fit your business. If you said you were training a support team, those ideas already lean toward customer conversations. Pick the one closest to a call your agents actually take, answer a couple of quick questions, and Scenario Studio builds it in about two minutes.
Run it yourself before showing anyone. Talk out loud like it is a live call, end the session with the green **End** button, and read the scorecard. If the customer gets a detail about your product wrong, [edit the scenario](/roleplays/edit-scenario) and tell the agent what to change in one sentence.
New to running sessions? Start with [Complete Your First Roleplay](/your-first-roleplay).
***
## Scenarios Worth Building
Here are the builds support teams get the most out of. Copy a prompt, fill in the bracketed fields, and paste it into the Scenario Studio chat. The full collection lives in the [Prompt Library](/prompt-library).
### Frustrated Escalation
**When to use:** Agents freeze or over-apologize when a customer arrives angry.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a support call scenario where I am speaking with a customer whose [PRODUCT/SERVICE] issue has been open for [TIME PERIOD] and who has already contacted us twice.
My goal is to de-escalate, take ownership, and get the customer to a concrete resolution plan.
For me to succeed, I must acknowledge the frustration in the first 30 seconds, summarize the history accurately without making the customer repeat it, and commit to a specific next step with a time.
This conversation is challenging because the customer interrupts, questions my competence, and threatens to post publicly about the experience.
```
### Billing Dispute
**When to use:** Refund and billing calls drag on or end in unnecessary credits.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a scenario where a customer disputes a charge of [AMOUNT] for [PRODUCT/SERVICE] that they believe is wrong.
My goal is to resolve the dispute within policy while keeping the customer.
For me to succeed, I must explain the charge in plain language, state clearly what I can and cannot do, and offer the policy-compliant resolution without letting the customer push me into an exception.
This conversation is challenging because the customer is polite but persistent, cites a competitor's refund policy, and asks for a supervisor when I say no.
```
### Saying No to a Feature Request
**When to use:** Agents promise roadmap items or leave customers feeling dismissed.
```text theme={null}
I am a [JOB TITLE] at [COMPANY], and I want to build a scenario where a long-time customer asks for [FEATURE] that we do not offer and have no near-term plan to build.
My goal is to say no clearly while keeping the customer confident in the product.
For me to succeed, I must give a direct answer early, offer the closest working alternative, and log the request in a way the customer believes.
This conversation is challenging because the customer says the missing feature is the reason they might churn.
```
Your best scenario source is last week's hardest ticket. Paste the ticket summary into Scenario Studio and ask it to build the call version. When a scenario feels too easy, edit it to make the customer more insistent and the grading stricter.
***
## Skills to Track
Every scenario grades agents against evaluation criteria you control. For support teams, the criteria that move CSAT are:
* **De-escalation.** Lowering the temperature in the first minute without conceding things you cannot deliver.
* **Ownership language.** "Here is what I am going to do" instead of "you will need to."
* **Clarity on the resolution.** The customer can repeat back what happens next and when.
* **Holding policy.** Saying no cleanly, once, without a lecture and without caving.
Agents see how they scored on each criterion after every session, with lines they actually said and stronger phrasing they could have used. See [Interpret Your Results](/roleplays/interpret-results) for how to read a scorecard, and [Skills](/skills/overview) for tracking these across the team.
***
## The Weekly Rhythm
The support teams that get the most out of Exec run a simple loop:
1. **Monday.** Build or remix one escalation scenario from a ticket that went sideways last week, then [assign it](/roleplays/assign-scenarios) with a minimum passing score.
2. **During the week.** Agents practice until they pass. Most take two or three attempts.
3. **Friday.** The team reviews the toughest transcript of the week together and agrees on the line they will use next time.
Because the scenario comes from a ticket your team just handled, practice never drifts away from what the queue actually looks like.
***
## A Sample Three-Week Onboarding Program
For new-agent onboarding, bundle scenarios into a [Program](/programs/overview) with due dates and completion criteria. Programs come with Starter plans and above.
| Week | Focus | Components |
| ---- | ------------------ | ------------------------------------------------------------------------------------------------------ |
| 1 | Product fluency | Announcement with your help-center highlights, common-question roleplay (minimum Silver), intro survey |
| 2 | Hard conversations | Frustrated escalation roleplay (minimum Silver, 2+ attempts), billing dispute roleplay |
| 3 | Edge cases | Saying-no roleplay (minimum Gold), shadow-ticket action item, final survey |
On Professional plans, attach a [certification](/certificates/create-certification) so agents who clear the bar get a record of it before taking live queues.
***
## Score Live Calls Too
If your support team takes phone calls, [Call Scoring](/calls/overview) grades the live ones on the same kind of scorecard your roleplays use, so you can spot which issue types generate the hardest calls and practice those next. Call Scoring works on every plan, including Free, and you pay only for the calls you score. Setup takes about five minutes: [Set Up Call Scoring](/calls/set-up-call-scoring).
***
## Next Steps
Invites, seats, groups, and your first assignment, in one walkthrough.
What Free, Starter, Professional, and Enterprise each include.
***
## Getting Help
**Need help?** Contact us at [hello@exec.com](mailto:hello@exec.com) for guidance on building support scenarios or rolling out practice to your team.
# Welcome to Exec
Source: https://docs.exec.com/index
AI-powered roleplay training for building professional skills
Exec helps you practice high-stakes conversations in a safe environment. Create realistic scenarios, run AI-powered roleplays, and get personalized feedback to improve your skills.
## Core Workflows
Build custom roleplay scenarios using templates or voice setup
Practice with AI-powered conversations and get real-time feedback
Analyze your results and work with your AI coach to improve
Create and issue certifications to recognize learner achievements
## Scenario Management
Modify existing scenarios
Organize scenarios into collections
## Platform Administration
Add users to your workspace
Manage user access
## Need Help?
Common issues and solutions for roleplay sessions
# AI Chat
Source: https://docs.exec.com/knowledge-hub/ai-chat
Co-create and refine Knowledge Hub pages with an AI agent that can read your sources
Every Knowledge Hub page has a built-in AI chat. You can use it to draft a new page from scratch, refine an existing page, or pull in information from your sources. The agent runs on Claude and has direct access to the content in your workspace.
## Two modes
The agent operates in one of two modes depending on what you are doing.
| Mode | When it runs | What it does |
| ------------- | ------------------------------------------- | ----------------------------------------------------------------- |
| **Discovery** | You start a brand new chat with no page yet | Gathers context, asks clarifying questions, and drafts a new page |
| **Edit** | You open the chat on an existing page | Refines what is already there based on your instructions |
In both modes, the page preview on the right updates as the agent writes, so you can see changes take shape before you commit them.
## Starting a chat from scratch
Open **Knowledge Hub -> + Add -> New Page** (or go straight to **/knowledge/chat/new**). The page opens in Discovery mode.
Describe the page you want. The agent will ask follow-up questions if the prompt is vague, then draft a page. You can keep iterating - "make it shorter", "add a section on pricing", "use our Discovery Call Framework as a reference" - until it looks right.
## What the agent can do
The agent has four tools it can reach for during a conversation:
Runs hybrid keyword and semantic search across every source and page in your workspace that you can see. Used when you ask about something the workspace already knows.
Pulls the full extracted text of a specific source. The agent uses this after search when it needs the details.
Searches the open web. The agent uses this when a question is not covered in your sources.
Reads a specific web page. Useful when you drop a link into the chat and want the agent to pull it in.
The agent can call these tools up to 20 times in a single response, so it can string multiple searches together to answer a complex question.
## Attaching files, calls, and links
Below the chat input you can attach files, pages, sources, or recorded calls directly to a message. Attached content is sent to the agent as context for that turn. This is the fastest way to say "use this document to answer" without making the agent search for it.
Images are sent as visual input - the agent can look at screenshots, diagrams, and photos. PDFs and text files are extracted and sent as markdown.
If your workspace has a connected [call recorder](/calls/set-up-call-scoring), you can also attach recorded calls. The agent receives the call summary and transcript as context, so you can ask it to draft a page from a customer call, pull out common objections, or summarize what a prospect said. The **Browse Calls** option is hidden if no call recorder is connected, and the picker only shows calls you're allowed to view.
## Drafts, not publishes
The agent always writes into the draft version. Nothing is visible to your workspace until you click **Publish**. This means you can experiment freely.
When you do publish, the change type is recorded as `AI Generation` in the version history, so you can tell which versions were human-written and which came from a chat.
## What the agent will not do
The agent is scoped to content in your workspace. It cannot see private data from other workspaces, user accounts, billing information, or anything outside Exec. Searches respect your view permissions, so if you cannot see a source, neither can the agent when you ask.
## Getting Help
Questions about the AI agent? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Hubs and Organization
Source: https://docs.exec.com/knowledge-hub/hubs
Use hubs to group related pages and sources and keep your Knowledge Hub findable
Hubs are how you organize content. A hub is a container that holds pages, sources, and other hubs. Unlike folders, the same page or source can live in multiple hubs at once — so a product one-pager can sit in both your "Onboarding" hub and your "Competitive" hub without duplicating it. If you edit the file in one hub, it updates in every hub that references it. You can also nest hubs, pin your favourites to the sidebar, and filter the contents by type or status.
## Creating hubs
Top-level hubs are created from the Knowledge Hub sidebar. Click **+ Create new hub**, give it a name, and confirm.
Inside a hub you can create child hubs with the **+ Add** menu. There is no hard limit on nesting, but two or three levels is usually enough; anything deeper gets hard to browse.
## Navigating
The breadcrumb at the top of every page shows the full path back to the Knowledge Hub root. Click any crumb to jump up a level.
The sidebar tree on the left expands to show nested hubs. Click a hub in the tree to open it in the main pane. The currently open hub is highlighted.
## Filtering and sorting
Every hub view has filters at the top:
* **Type** - show only pages, only sources, or everything
* **Status** - show draft, published, or archived items
* **Hub** - limit the view to one hub
* **Owner** - limit the view to one person's content
* **Visibility** - show everything, only Personal items, or only Workspace items (see [Permissions and Sharing](/knowledge-hub/permissions))
* **Sort** - reorder by name, created date, or last updated
Combined with the list/grid toggle on the right, you can get a quick view of what is ready for your team and what is still in progress.
## Pinning
If you have a hub you use every day, you can pin it so it stays at the top of the sidebar even when you are browsing other parts of the hierarchy. Pins are per-user, so your pins do not affect what anyone else sees.
## Good structure
A few patterns that work well:
* **One top-level hub per domain** - Product, Sales Playbook, Customer Success. Keep the top level small and meaningful.
* **Sub-hubs for stages or themes** - within Sales Playbook, nested hubs for Discovery, Demo, Objections, Closing.
* **Pages for stable content, sources for raw material** - write the page when the content is curated; keep the raw deck or call recording as a source so it can still be searched.
## Getting Help
Questions about organizing your hub? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Microsoft 365 Integration
Source: https://docs.exec.com/knowledge-hub/microsoft-365-integration
Connect OneDrive and SharePoint to sync documents into your Knowledge Hub
Connect Microsoft 365 to Exec to import OneDrive and SharePoint documents as Knowledge Hub sources. Imported files are searchable, available to the AI agent, and can be referenced from scenarios and programs like any other source.
OneDrive and SharePoint share a single Microsoft 365 connection at the workspace level. Connecting one enables the other, and the same connection also powers [Microsoft Teams call sync](/calls/microsoft-teams) if you use Exec for calls.
## Connection modes
You can connect Microsoft 365 in one of two ways. Pick the mode that matches how you want Exec to see content across your tenant.
| Mode | Who can set it up | What Exec can see |
| --------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **Single user** | Any workspace member | Only the OneDrive and SharePoint sites the connecting user can access. Uses a standard Microsoft sign-in. |
| **Organization-wide** | A Microsoft Entra admin | Every user's OneDrive and every SharePoint site in your tenant. Uses an app registration you create in Microsoft Entra. |
Choose organization-wide if you want to pull documents from anyone in the company. Choose single user if you only need content one person owns or curates.
## Connecting as a single user
Go to **Settings → Integrations** and scroll to the **Content** section.
Click the **+** button on the OneDrive or SharePoint card, then click **Connect**. Sign in to Microsoft and approve the requested permissions.
Microsoft sends you back to Exec. Both OneDrive and SharePoint now show as connected — one credential powers both surfaces.
## Connecting organization-wide
Organization-wide connections use a **Microsoft Entra app registration** that your IT admin creates in your own tenant. This lets Exec read documents from every user without each person signing in.
In the [Microsoft Entra admin center](https://entra.microsoft.com), create a new app registration for Exec.
Add these application permissions and grant admin consent for your organization:
* `User.Read.All`
* `Sites.Read.All` (for SharePoint)
* `Files.Read.All` (for OneDrive)
Under **Certificates & secrets**, create a client secret and copy its value. Save the tenant ID and application (client) ID as well.
In **Settings → Integrations**, open the OneDrive or SharePoint card and click **Connect organization-wide**. Paste the **Directory (tenant) ID**, **Application (client) ID**, and **Client secret**, then click **Connect**.
Exec validates the credentials against Microsoft Graph before saving. If a required permission is missing or admin consent has not been granted, the connect step surfaces the error so you can fix it in Entra and retry.
Only a Microsoft Entra admin can create the app registration and grant admin consent. A workspace admin then pastes the credentials in Exec — no personal Microsoft sign-in is used.
## Importing files
Navigate to the Knowledge Hub and open the hub where the imported files should live.
Click **+ Add → New File**, then choose the **Microsoft 365** tab.
Switch between the **OneDrive** and **SharePoint** tabs. For organization-wide connections, an account sidebar lets you pick which tenant user's OneDrive to browse, or which SharePoint site.
Click into a folder to browse it, or use search to jump to a file by name. Select individual files, or select a folder to import every supported file inside it (up to 500 files per folder on import). Selected items appear in the chips footer.
Click **Import**. The picker shows a done screen once the sources are queued, and each file goes through the normal Knowledge Hub processing pipeline. See [Sources](/knowledge-hub/sources) for what happens after upload.
## Keeping content in sync
Imported files keep a reference back to Microsoft 365 and Exec checks each connected file for changes on a 15 minute cron. When the OneDrive or SharePoint file changes, the Knowledge Hub picks up the update on the next cron run — no action needed on your side.
If you want the latest content immediately, open the source and click **Resync** to pull it right away.
Because Microsoft 365 remains the source of truth, the Knowledge Hub does not keep a version history for OneDrive or SharePoint sources — it always mirrors the current state of the original file. (Version history is available for Knowledge Hub [pages](/knowledge-hub/pages).)
## Disabling a service
Each service can be turned on or off independently from its integration card:
* Open the OneDrive or SharePoint card in **Settings → Integrations**.
* Use the **⋯** menu on the connected instance to **Disable OneDrive Sync** or **Disable SharePoint Sync**.
Disabling stops future syncing for that service. Previously imported sources stay in your Knowledge Hub. Re-enabling the service resumes syncing on the next cron run.
## Getting help
Questions about the Microsoft 365 integration? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Notion Integration
Source: https://docs.exec.com/knowledge-hub/notion-integration
Connect a Notion workspace and pull pages into your Knowledge Hub
If your team already keeps documentation in Notion, you can connect it to Exec and import pages as sources. Imported Notion pages are searchable, available to the AI agent, and can be referenced from scenarios and programs like any other source.
This integration brings content **into** Exec. If you are looking to go the other way, and let an AI assistant such as Claude or ChatGPT read your Exec data, that is [Exec MCP](/mcp/overview). Note that an assistant connected over MCP cannot read your Knowledge Hub; it can only use Knowledge Hub material as source material when building a roleplay.
## Connecting Notion
Go to **Settings -> Integrations** from the workspace sidebar. Scroll down to the **Content** section.
Click the **+** button on the Notion card. You will be redirected to Notion to log in and grant access.
In Notion's authorization screen, select the pages or workspaces you want Exec to be able to read. You can change this selection later from Notion's integration settings.
Notion sends you back to Exec. The integration card now shows a green indicator next to the Notion logo.
The connection lives at the workspace level. Once a workspace admin connects Notion, everyone on the team can use it.
## Importing a Notion page
Navigate to the Knowledge Hub and open the hub where you want the imported page to live.
Click **+ Add -> New File**, then choose **Notion** from the dialog.
A picker shows the Notion pages you shared during setup. Choose the page you want to import.
The page is fetched, converted to markdown, and indexed. Status moves from Processing to Ready, usually in under a minute.
## What gets imported
* **Text content** - all paragraphs, headings, lists, quotes, and tables
* **Images** - images embedded in the Notion page are downloaded and stored alongside the source
* **Sub-pages** - each sub-page is imported separately, so the hierarchy stays intact
Database views, embeds from other tools, and dynamic content that only renders inside Notion are not supported.
## Keeping content in sync
Imported Notion pages keep a reference back to the original and Exec checks every connected file for changes on a 15 minute cron. When the Notion page changes, the Knowledge Hub picks up the update on the next cron run automatically — no action needed on your side.
If you want the latest content immediately rather than waiting for the next cron, open the source and click **Resync** to pull it right away.
Because Notion remains the source of truth, the Knowledge Hub does not keep a version history for Notion sources — it always mirrors the current state of the Notion page. (Version history is available for Knowledge Hub pages.)
## Disconnecting
You can disconnect Notion at any time from **Settings -> Integrations**. Previously imported sources stay in your Knowledge Hub; they just stop receiving updates. Reconnecting later picks up where you left off.
## Getting Help
Questions about the Notion integration? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Knowledge Hub Overview
Source: https://docs.exec.com/knowledge-hub/overview
Organize training content in one place and make it available to your team and your AI scenarios
## Video walkthrough
The Knowledge Hub is where your workspace stores training content. You create pages, upload source files, and group them into hubs. Unlike folders, a single file or page can live in multiple hubs at once, so a product one-pager can sit in both your "Onboarding" hub and your "Competitive" hub without duplicating it. Everything in the Knowledge Hub can be searched, shared with your team, and pulled into AI roleplays as context.
## Pages vs Sources vs Hubs
The Knowledge Hub has three building blocks.
Rich-text documents you write or co-create with the AI agent. Pages have drafts, published versions, and a full edit history.
Files you upload or URLs you add. The Knowledge Hub extracts the text, splits it into chunks, and indexes it so the AI can search across it.
Containers that group Pages and Sources. The same page or source can live in multiple hubs at once, and hubs can hold other hubs, so you can build a hierarchy that matches how your team thinks about its content.
Use Pages for content your team will read directly. Use Sources for raw material like training decks, call recordings, or product PDFs. Use Hubs to keep everything findable.
## What goes in a Hub
Inside any hub you can see its pages and sources together, filter by type or status, and sort the list. Every item shows who created it and when it was last updated.
## Where the Knowledge Hub shows up
The Knowledge Hub connects to the rest of Exec in two places:
* **Roleplays** - When you build a scenario, you can attach pages and sources from the hub. The AI uses them as context during the conversation so the prospect and the feedback match what your team actually sells. You can even draft scenario outlines as a page (have the agent generate them from your call transcripts and frameworks), then use the page's **Create** button to jump straight into Scenario Studio with that page as context, or to start a Program. See [Using the Knowledge Hub in Roleplays](/knowledge-hub/using-in-roleplays).
* **Programs** - Programs can reference Knowledge Hub pages the same way, so participants see the right documentation alongside the components they need to complete.
This means content you write once is reusable. Update the page in the hub and every scenario and program that references it stays in sync.
## Visibility and permissions
Every page and source has a visibility scope:
| Scope | Who can see it |
| ------------- | ------------------------------------------------------------------------------------------------ |
| **User** | Only the owner. New pages and sources start here by default. |
| **Workspace** | Everyone in your workspace. Flip a resource to **Workspace** and save to share it with the team. |
| **Global** | Shared across all workspaces in your organization. |
New Knowledge Hub content is **private by default** (User scope), so it stays visible only to you until you share it. To make something available to everyone, flip it to **Workspace** and save, or share it with specific people. Workspace admins can always see and edit everything in their workspace regardless of owner. See [Permissions and Sharing](/knowledge-hub/permissions).
## Getting started
From the Knowledge Hub home, click **Create new hub** in the sidebar and give it a name. This is your top-level container.
Inside a hub, use the **+ Add** menu to create nested hubs, new pages, or to upload files as sources. When adding a source you can upload from your computer or connect **Notion**, **Google Drive**, or **Guru** to import directly. See [Sources](/knowledge-hub/sources) and the [Notion Integration](/knowledge-hub/notion-integration).
Pages open in an editor with the AI chat panel on the left. You can write directly in the document, or describe what you want and have the agent draft it for you.
Drafts are private to you by default. When a page is ready, click **Publish** to share it with your workspace and make it available to the AI agent and to scenarios.
## Getting Help
Need a hand setting up your Knowledge Hub? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Pages
Source: https://docs.exec.com/knowledge-hub/pages
Create, edit, publish, and version rich-text pages in the Knowledge Hub
Pages are the documents your team reads. They live inside a hub, have a title and a cover image, and support rich text, tables, lists, and the usual keyboard shortcuts. Every page tracks a draft and a published version separately, so you can work on changes without anyone seeing them until you are ready.
## Creating a page
From inside any hub, open the **+ Add** menu and choose **New Page**. The page opens in the editor with two panels.
The right panel is your page. Click into the body and start writing, or type `/` to open the command menu for headings, lists, tables, and other blocks.
The left panel is the AI agent. You can describe what you want the page to say and the agent will draft it for you, or ask the agent to refine what you have already written.
## Drafts and published versions
Every page has two states that live side by side:
| State | What it means |
| ------------- | ---------------------------------------------------------------------------------------------------------- |
| **Draft** | Your working copy. Only you see changes as you type. Drafts autosave every few seconds. |
| **Published** | The version your workspace sees. The published version does not change until you explicitly publish again. |
When you click **Publish**, the current draft is snapshotted into a new published version. The draft continues to exist for your next round of edits.
The Publish button always opens a confirmation dialog. You can exit the editor without publishing and your draft is safe.
## Version history
Every publish creates a new version. Earlier versions are kept, so you can review what a page looked like at any point and restore an old version if a later edit needs to be rolled back. Versions include who published them and what change was made.
Restoring a version creates a new draft from the old content. You still need to publish it to make it live, which gives you a chance to reconcile it with anything that changed in between.
## Cover images
Every page gets a cover image at the top. New pages get a default illustration. To change it, click **Add Cover Image** at the top of the page and upload an image, or use the built-in generator to create a cover based on the page's title and content.
## Formatting
The editor supports the blocks you would expect from a modern document tool:
* Headings (H1, H2, H3)
* Bulleted and numbered lists
* Tables
* Code blocks
* Links
* Bold, italic, strikethrough, and inline code
Type `/` at the start of a new line to open the block menu, or use markdown shortcuts (for example, `##` for a heading or `-` for a list).
## Downloading a page as PDF
Once a page has a published version, you can export it as a branded PDF from the page's `...` menu. Select **Download PDF** and your browser downloads the file when it is ready.
The PDF contains the currently published version, so unpublished draft edits are not included. Republish the page first if you want your latest changes in the export.
The export includes the page's title, description, and cover image, and preserves formatting such as headings, lists, tables, code blocks, callouts, toggles, tabs, and text and highlight colors. Interactive blocks that cannot render on paper are flattened: video embeds become a link, mermaid diagrams print as their source, and tabs, flip cards, and carousels stack their content so nothing is hidden.
**Download PDF** only appears on pages that have been published at least once. If you do not see it in the menu, publish the page first.
## Archiving a page
When a page is no longer useful, archive it from the page's `...` menu. Archived pages are hidden from the library and from search, but they are not deleted; you can restore them later if you change your mind.
## Getting Help
Questions about pages? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Permissions and Sharing
Source: https://docs.exec.com/knowledge-hub/permissions
Control who can see and edit pages and sources in your Knowledge Hub
Every page and source in the Knowledge Hub has its own access settings. By default new content is restricted: only the creator and workspace admins can see it. You decide when to share it more broadly.
## General Access levels
Open the Share dialog from a page or source to change who can see it.
| Level | Who can see it |
| -------------- | ----------------------------------------------------------------------------- |
| **Restricted** | Only workspace admins and people you have explicitly added |
| **Workspace** | Anyone in your workspace |
| **Global** | All workspaces in your organization (when your plan includes multi-workspace) |
Changing a page from Restricted to Workspace is the usual flow: work on a draft privately, publish it, then open it up to the team.
## Per-person access
Inside the Share dialog you can add specific people or groups by email. Each person gets one of three roles:
| Role | Can do |
| --------------- | ---------------------------------------------------------------------------------- |
| **Viewer** | Read the page |
| **Contributor** | Edit the current draft and publish new versions |
| **Owner** | Everything a Contributor can do, plus change sharing settings and archive the page |
Owners and contributors see the page in their Knowledge Hub regardless of its general access setting.
## Changing visibility for several items at once
You can set one access level across a batch of pages and files instead of opening each one.
In list view, tick the checkbox on each row, or hold **Shift** to take a range. In grid view, hold **Cmd** (**Ctrl** on Windows) and click each card, or drag a box across empty space. A bar appears at the bottom with the number selected.
The **Change visibility** dialog opens and shows how many of the selected items are currently Workspace and how many are Personal (the dialog's word for Restricted).
Choose **Restricted** or **Workspace**, then click **Apply**. A confirmation reports the result, for example "8 items updated" or "6 items updated, 2 skipped". Skipped items are the ones you do not have rights to change, and the rest still go through.
Only pages and files can be selected this way. Hubs are not part of a selection: to change a whole hub, open its own **Share** dialog and use **Apply to all content**, which pushes the level you chose to every page and source inside the hub and its sub-hubs. That checkbox appears once the level differs from what is currently saved.
Setting a selection to **Workspace** requires workspace admin. If you are not an admin the whole change is rejected and nothing is updated, so either choose **Restricted** or ask an admin to run it.
## Seeing and filtering by visibility
List view has a **Visibility** column, and grid cards carry the same sharing icon, so you can scan what is restricted without opening anything.
To narrow the list to one level, open **Filters** and choose **Visibility**: **View All**, **Personal**, or **Workspace**.
Filtering to **Personal** is a quick audit for content that was drafted privately and never opened up to the team. Select what should be shared and change it in one pass.
## Copy Link
The **Copy Link** button at the bottom of the Share dialog copies a direct URL to the page. Anyone who already has access can open it; people who do not will hit a permissions screen when they click.
## Admin override
Workspace admins can see the contents of any page in their workspace, even Restricted ones. This is intentional - admins may need to edit or take over content from team members who have left. If you need truly private content, consider using your own notes app instead.
## What the AI agent can see
The AI agent respects the same permissions. When you chat with the agent and it searches your Knowledge Hub, it only returns results from pages and sources **you** can see. You cannot use the agent to read around a restriction.
## Getting Help
Questions about permissions? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Sources
Source: https://docs.exec.com/knowledge-hub/sources
Upload files and connect external content so the Knowledge Hub and AI agent can use it
Sources are the raw material in your Knowledge Hub. They can be files you upload, documents from Notion, files from Google Drive, or files from OneDrive and SharePoint. Once a source is in the hub, the platform extracts its text, indexes it for search, and makes it available to the AI agent and to AI roleplays.
## Adding a source
Inside any hub, open the **+ Add** menu and choose **New File**. The Add File dialog offers several ways to bring in content.
| Option | What it does |
| ----------------- | -------------------------------------------------------------------------------------------- |
| **Upload File** | Upload a file from your computer. Supported formats: PDF, PNG, JPG, WEBP, MP3, MP4, MOV. |
| **Notion** | Pick pages from a connected Notion workspace. Text and images are imported and kept in sync. |
| **Google Drive** | Pick files from a connected Google Drive. |
| **Microsoft 365** | Pick files from OneDrive or SharePoint on a connected Microsoft 365 workspace. |
| **Guru** | Import cards from Guru. This integration is in alpha. |
External sources need to be connected under **Settings → Integrations** before you can pick content from them. See [Notion integration](/knowledge-hub/notion-integration) and [Microsoft 365 integration](/knowledge-hub/microsoft-365-integration) for setup.
## What happens after upload
When you add a source, the platform kicks off a processing pipeline:
The raw file is converted into plain text. PDFs and documents go through a parser that preserves headings, tables, and images. Notion pages are imported in their native structure.
Extracted text is indexed for hybrid search (keyword plus semantic). This is what lets the AI agent find the right passage of the right source in milliseconds.
A short summary and a handful of AI insights (key points, tags) are generated so you can scan a source list without opening every file.
A source's **Status** moves through Pending -> Processing -> Ready while this happens. Large files can take a minute or two. The page refreshes automatically once the source is ready. If a file can't be processed (for example, an video file with no audible track or a video over 2GB), the status becomes **Failed** and the source shows a short explanation you can act on.
## Video and audio sources
Video and audio sources (including `.mp3` recordings) are transcribed automatically as part of processing. Once the source is Ready:
* The full transcript text is indexed alongside every other source, so the AI agent, search, and roleplays can pull quotes from a call recording or training video the same way they pull from a PDF.
* Opening the source shows the player next to a **Transcript** panel. The active line highlights as the media plays, and clicking any line seeks the player to that timestamp.
* Closed captions are available on the player. Toggle **CC** to show them, and they follow the media into fullscreen.
Transcripts are English-only today, and long files (60+ minutes) are handled in one pass. If you upload an unsupported file or a video without an audio track, the source fails with a friendly error rather than retrying silently.
## Image sources
Images are described automatically by a vision model. The generated description is stored as the source's extracted text, which means images become searchable and usable by the AI agent the same way documents are — the agent can answer "which slide showed the pricing chart?" because the chart's contents are now text it can search.
## Using sources
Once a source is Ready, it is available in three places:
* **The hub itself** - open the source to read the extracted text and insights
* **The AI agent** - when you chat with the agent inside a page, it can search across every source you can see and pull the relevant passages into its answers
* **Roleplays and Programs** - attach sources to a scenario or program so the AI persona speaks to the material your team actually sells against
## Cover images and metadata
For Notion, Google Drive, OneDrive, and SharePoint sources, the cover image, title, and metadata come directly from the original file — Exec mirrors what lives at the source. To change them, edit the file at the source and the Knowledge Hub picks up the update on the next sync.
(Cover images and metadata are editable on Knowledge Hub [pages](/knowledge-hub/pages), which are authored inside Exec.)
## Keeping content fresh
Sources from Notion, Google Drive, OneDrive, and SharePoint are refreshed automatically every 15 minutes. If you want the latest content immediately, open the source and click **Resync** to pull it right away. Because the source of truth lives in the connected system, the Knowledge Hub always mirrors the current state of the original file rather than keeping a version history.
## Getting Help
Questions about sources? Contact us at [hello@exec.com](mailto:hello@exec.com).
# Using the Knowledge Hub in Roleplays
Source: https://docs.exec.com/knowledge-hub/using-in-roleplays
Attach Knowledge Hub pages and sources to AI roleplays so the persona and feedback match your team's content
The Knowledge Hub is not just a library. Its real value shows up when you connect it to AI roleplays. When a scenario references a page or a source, the AI uses that content to shape the prospect persona and to evaluate the rep's performance.
## Why connect them
AI roleplays come to life when the AI persona knows what your company sells, how your team talks about it, and what objections you actually hear. You can describe all of that inline in a scenario, but it gets long, hard to maintain, and impossible to reuse. Putting that content in the Knowledge Hub once and referencing it from every scenario is faster and keeps the whole system in sync.
## What to put in the hub for roleplays
A few kinds of content are especially useful for scenarios:
* **Product pages** - one-pagers describing your product, pricing tiers, and key features. The AI uses these to answer prospect questions accurately.
* **Objection libraries** - a page covering the objections your team hears and the responses that work. The AI can draw on these when it plays a skeptical prospect.
* **Call recordings or transcripts** - upload these as sources. The AI can mimic the language, pacing, and concerns real prospects raised.
* **Frameworks** - your discovery framework, your qualification checklist, your demo flow. These inform the feedback the AI gives to the rep after the call.
## Attaching content to a scenario
Inside the scenario builder, click **Source**, then **Browse Knowledge Hub** to pick the pages and sources you want. When you do, the scenario gets access to the content during the live roleplay. If you later update the page in the hub, the scenario picks up the new version the next time it runs.
This connection is bidirectional in the data model: you can see which scenarios reference a given source from the source's detail page, which makes it easy to find the impact of an edit before you publish.
## Letting the builder research the hub for you
Attaching content is not the only way in. While you are building a scenario, you can ask the agent to go and read the Knowledge Hub itself, and it will search the hub and come back with what it found:
* "Review our Knowledge Hub and recommend a coaching scenario to build."
* "Use our scenario building guide in the Knowledge Hub, and build this around the Daniel Frost character page."
* "Check the hub for our discovery framework before you write the evaluation criteria."
The agent searches the hub, tells you what it found, and builds its recommendations on top of it.
This matters most when the material you want the agent to use is large. Pasting a long brief into a single scenario tends to produce weaker results than putting the same material in the hub and pointing at it, because the agent can pull the specific pages it needs instead of working through everything at once.
Break big documents into small, categorized pages rather than uploading one large file. A separate page per character, per competency, and per guideline gives the agent something specific to retrieve, and gives you something reusable to reference by name when you build.
The agent only reads what is in the hub. It will not research your company on the open web, so anything you want it to know about your business, your frameworks, or your terminology needs a page or a source first.
## Pages and Programs
Programs can reference Knowledge Hub pages too. When a participant opens a program component and the component links to a page, they see the current published version of that page - not a frozen copy. Update the page once and every participant in every program sees the update.
## Good practice
* **Keep one source of truth** - if your product pricing lives in a Knowledge Hub page, link every scenario and program to that page rather than hard-coding the numbers
* **Use pages for the curated story, sources for the raw material** - pages are what you want the AI to reason from; sources are the underlying evidence
* **Publish before attaching** - the AI only sees the published version, not your draft, so always publish a page before you expect a scenario to use it
## Getting Help
Questions about using the Knowledge Hub in roleplays? Contact us at [hello@exec.com](mailto:hello@exec.com).
# LMS Integrations
Source: https://docs.exec.com/lms-integration
Launch Exec from your Learning Management System with flexible integration options.
Exec integrates with your existing Learning Management System so your employees can access AI-powered roleplay training directly from the platform they already use. Whether you need a simple link or a deeper technical integration, we offer flexible options to fit your organization's needs.
Exec is LMS-agnostic and works with any platform, including Cornerstone OnDemand, Docebo, Absorb LMS, SAP Litmos, Workday Learning, 360Learning, and others.
## Integration Types
Exec supports three levels of LMS integration, depending on how deeply you want Exec embedded into your learning workflows.
| Integration Type | What It Does | Setup Complexity | Data Flow |
| :--------------- | :----------------------------------------------------------------------------------------------- | :--------------: | :--------------------------------: |
| Link or Button | Launches Exec from within your LMS as a link or button in a course or learning path | Simple | One-way (LMS to Exec) |
| iFrame Embed | Embeds the full Exec workspace inside your LMS or portal so learners never leave the parent site | Simple | One-way (LMS to Exec) |
| LTI 1.3 | Full integration with single sign-on and grade passback into your LMS | Moderate | Two-way (LMS to Exec, Exec to LMS) |
### Link or Button
The simplest way to connect Exec with your LMS. Your LMS admin adds a link or button to a course, learning path, or module that opens Exec in a new tab. Learners click through to access their assigned roleplays directly.
This is ideal for organizations that want to get up and running quickly without any technical configuration. Your team reviews performance and completion data within the Exec platform.
**What you need:** A URL to your Exec workspace, which your Exec account representative will provide.
### iFrame Embed
For organizations that want learners to stay inside their LMS or portal, Exec supports embedding the full workspace in an iframe. Learners see the complete Exec UI — roleplays, Skills, Coaching — without leaving the parent site.
iFrame embedding is self-service. A workspace admin adds the LMS or portal's origin under **Settings → Security → Iframe Embedding**, then the LMS admin drops an `