Create Notion Database
Understand what the user wants to track. Common patterns:
Task Tracker: Name (title), Status (status), Priority (select), Due Date (date), Assignee (people), Tags (multi_select)
Content Calendar: Name (title), Status (status), Publish Date (date), Platform (select), Content Type (select), Notes (rich_text)
Contact Database: Name (title), Company (rich_text), Email (email), Phone (phone_number), Status (select), Last Contact (date), Notes (rich_text)
Meeting Notes: Name (title), Date (date), Attendees (people), Type (select), Action Items (rich_text)
Reading List: Name (title), Author (rich_text), Status (select), Rating (select), Date Added (date), Notes (rich_text)
Ask clarifying questions if needed:
- "What will you use this database to track?"
- "What columns/properties do you need?"
Determine the parent page:
- Check
Connection Profiles for recent pages
- Databases CANNOT be created at workspace root (API limitation)
- If user doesn't specify, ask: "Where should I create this database? Under which page?"
Design the database schema:
Always include:
- A title property (required, for the entry name)
- View-critical properties based on likely use:
- Date property if they'll use Calendar/Timeline view
- Status/Select property if they'll use Board view
Property types available:
- title (required, one per database)
- rich_text, number, select, multi_select, status
- date, people, files, checkbox, url, email, phone_number
- formula, relation, rollup (advanced)
- created_time, created_by, last_edited_time, last_edited_by (auto)
For select/multi_select/status: Define sensible default options with colors.
Write a preview draft with _action frontmatter:
_action:
label: "Create database"
prompt: "Create this Notion database with the schema below."
isComplete: false
Database Name: [name]
Parent Page: [parent page name]
Properties
| Property | Type | Options/Notes |
|---|---|---|
| Name | title | (required) |
| [property] | [type] | [options if select/status] |
| ... | ... | ... |
Suggested Views
- [Table/Board/Calendar/Timeline based on properties]
Sauna displays this as a preview card with a "Create database" button.
User can edit the schema, then click to create.
Create the database using POST /databases.
On success:
- Share the database URL
- Suggest: "Database created! You can now add entries with 'add [item] to [database name]'"
On error: Explain the issue (common: parent page not shared with integration, invalid property configuration).
To run this task you must have the following required information:
> Database name/purpose, parent page (where to create it), properties to include (columns) - can be inferred from use case
If you don't have all of this information, exit here and respond asking for any extra information you require, and instructions to run this task again with ALL required information.
---
You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple read steps in a row, read them all at once (in parallel).
Add all steps to your todo list now and begin executing.
## Steps
1. [Read External Actions Guide]: Read the documentation in: `skills/sauna/[skill_id]/references/sauna.actions.external.md` (Preview UI pattern for external actions)
2. [Read Notion Guide]: Read the documentation in: `skills/sauna/[skill_id]/references/content.notion.guide.md` (Notion API reference for database creation)
3. Understand what the user wants to track. Common patterns:
**Task Tracker**: Name (title), Status (status), Priority (select), Due Date (date), Assignee (people), Tags (multi_select)
**Content Calendar**: Name (title), Status (status), Publish Date (date), Platform (select), Content Type (select), Notes (rich_text)
**Contact Database**: Name (title), Company (rich_text), Email (email), Phone (phone_number), Status (select), Last Contact (date), Notes (rich_text)
**Meeting Notes**: Name (title), Date (date), Attendees (people), Type (select), Action Items (rich_text)
**Reading List**: Name (title), Author (rich_text), Status (select), Rating (select), Date Added (date), Notes (rich_text)
Ask clarifying questions if needed:
- "What will you use this database to track?"
- "What columns/properties do you need?"
4. Determine the parent page:
- Check `documents/connections/[service-name].md` for recent pages
- Databases CANNOT be created at workspace root (API limitation)
- If user doesn't specify, ask: "Where should I create this database? Under which page?"
5. Design the database schema:
**Always include:**
- A title property (required, for the entry name)
- View-critical properties based on likely use:
- Date property if they'll use Calendar/Timeline view
- Status/Select property if they'll use Board view
**Property types available:**
- title (required, one per database)
- rich_text, number, select, multi_select, status
- date, people, files, checkbox, url, email, phone_number
- formula, relation, rollup (advanced)
- created_time, created_by, last_edited_time, last_edited_by (auto)
**For select/multi_select/status:** Define sensible default options with colors.
6. Write a preview draft with _action frontmatter:
---
_action:
label: "Create database"
prompt: "Create this Notion database with the schema below."
isComplete: false
---
**Database Name:** [name]
**Parent Page:** [parent page name]
## Properties
| Property | Type | Options/Notes |
|----------|------|---------------|
| Name | title | (required) |
| [property] | [type] | [options if select/status] |
| ... | ... | ... |
## Suggested Views
- [Table/Board/Calendar/Timeline based on properties]
Sauna displays this as a preview card with a "Create database" button.
User can edit the schema, then click to create.
7. Create the database using POST /databases.
On success:
- Share the database URL
- Suggest: "Database created! You can now add entries with 'add [item] to [database name]'"
On error: Explain the issue (common: parent page not shared with integration, invalid property configuration).