Build a session guide file by hand or programmatically — then import it directly into Pigeon without needing an AI key.
The JSON import lets you pre-build a complete session guide — titles, talking points, scripts, and walkthrough steps — and load it straight into the editor. No AI processing, no API key required.
This is useful for companies that restrict AI access, for building guides programmatically from a CMS or LMS export, or for sharing guide templates across teams.
{
"sessionTitle": "Welcome and Introductions",
"sessionLength": 60,
"modules": [ ... ]
}| Field | Type | Description |
|---|---|---|
| sessionTitle required | string | The name of the session — shown as the guide title in the editor and on reports. |
| sessionLength optional | number | Total session duration in minutes. If omitted, Pigeon uses the value from the session duration field in the import modal. |
| modules required | array | One object per section of the guide. Also accepted as sections. |
{
"moduleTitle": "Getting Started",
"moduleLength": 10,
"talkingPoints": [
"Introduce yourself and the session agenda",
"Confirm everyone can see your screen",
"Explain where to find support resources"
],
"timeline": [ ... ]
}| Field | Type | Description |
|---|---|---|
| moduleTitle required | string | The section heading. Also accepted as title or sectionTitle. |
| moduleLength optional | number | Duration of this module in minutes. Also accepted as durationMinutes or duration. |
| talkingPoints optional | string[] | Key points the trainer must cover. Shown as checkable bullets during the live session. Also accepted as points. |
| timeline optional | array | Ordered delivery blocks — scripts and walkthroughs. See step 4. Also accepted as steps. |
Each item in a module's timeline array is either a script block or a walkthrough block.
Script block — trainer narration shown as readable text during the live session:
{ "script": "Welcome everyone. Today we'll be covering the onboarding workflow step by step." }Walkthrough block — a titled sequence of steps the trainer works through on screen:
{
"walkthrough": {
"title": "Create a new user",
"steps": [
{ "text": "Click Admin in the left navigation", "copyValue": "" },
{ "text": "Select Users, then click Invite", "copyValue": "" },
{ "text": "Enter the email address", "copyValue": "training@example.com" },
{ "text": "Click Send invite", "copyValue": "" }
]
}
}The copyValue field is optional. When populated, a copy button appears next to that step so the trainer can paste the value into the platform without typing it.
You can also pass walkthrough steps as a plain array of strings if you don't need copy values:
{
"walkthrough": {
"title": "Create a new user",
"steps": [
"Click Admin in the left navigation",
"Select Users, then click Invite",
"Enter the email address",
"Click Send invite"
]
}
}| Field | Type | Description |
|---|---|---|
| script | string | Narration text shown in the timeline. Keep to 2–4 sentences for readability during live delivery. |
| walkthrough.title | string | Short label for the walkthrough card (e.g. "Content Tab", "User Settings"). Shown as the card heading. |
| walkthrough.steps[].text | string | The step instruction shown to the trainer. |
| walkthrough.steps[].copyValue optional | string | A specific value to copy into the platform (e.g. a URL, a field value). Leave empty or omit if not needed. |
{
"sessionTitle": "Platform Onboarding",
"sessionLength": 45,
"modules": [
{
"moduleTitle": "Welcome and Introductions",
"moduleLength": 5,
"talkingPoints": [
"Introduce yourself and the agenda",
"Confirm attendees can see your screen",
"Explain how to ask questions"
],
"timeline": [
{
"script": "Welcome everyone to the Platform Onboarding session. Today we'll walk through the key areas of the system together."
}
]
},
{
"moduleTitle": "Creating Your First Record",
"moduleLength": 15,
"talkingPoints": [
"Navigate to the Records section",
"Use the New Record button",
"Fill in required fields",
"Save and confirm the record appears in the list"
],
"timeline": [
{
"script": "Now let's create a record together. Follow along and we'll go through each field."
},
{
"walkthrough": {
"title": "Create a record",
"steps": [
{ "text": "Click Records in the left navigation", "copyValue": "" },
{ "text": "Click + New Record", "copyValue": "" },
{ "text": "Enter the record name", "copyValue": "Test Record 01" },
{ "text": "Click Save", "copyValue": "" }
]
}
},
{
"script": "The record now appears in your list. In the next section we'll look at how to assign it to a team member."
}
]
}
]
}