confluence-template · git:20260901.5d17d6a · 2026-09-01 · sha256 907ed700d7ce2182
confluence-template git:20260901.5d17d6aA
Immutable. This exact content is served forever at /api/v1/blob/907ed700d7ce2182.
---
name: confluence-template
description: Work with page templates and blueprints. ALWAYS use when user wants to create standardized pages or manage templates.
triggers:
- template
- blueprint
- create from template
- page template
- list templates
- update template
origin:
type: upstream
upstream:
repository: grandcamel/Confluence-Assistant-Skills
path: skills/confluence-template
ref: 403eac8ad8a0812e6d41ed70cbc0fdf2ff4b7542
license: MIT
trust:
tier: reviewed
reviewed_at: '2026-08-26'
reviewed_by: ulises-jeremias
reviewed_provenance: sha256:7c6d8da646e9fa5ba3370d224d1f6ec28843a0c8bcd727eb462a81ab58318c46
maintenance:
status: active
last_checked: '2026-08-26'
distribution:
mode: vendored
redistribution_allowed: true
attribution_file: LICENSE
security:
scripts: false
shell: false
network: true
mcp: false
hooks: false
---
# Confluence Template Skill
Work with Confluence page templates and blueprints.
---
## ⚠️ PRIMARY USE CASE
**This skill manages page templates.** Use for:
- Listing available templates
- Creating pages from templates
- Managing template content
- Working with blueprints
---
## When to Use / When NOT to Use
| Use This Skill | Use Instead |
|----------------|-------------|
| List templates | - |
| Create from template | - |
| Update template | - |
| Create page directly | `confluence-page` |
| Search templates | `confluence-search` |
---
## Risk Levels
| Operation | Risk | Notes |
|-----------|------|-------|
| List templates | - | Read-only |
| Get template | - | Read-only |
| Create from template | - | Creates new page |
| Update template | ⚠️ | Affects future pages |
| Delete template | ⚠️⚠️ | Cannot be recovered |
---
## Overview
Templates in Confluence allow you to standardize page creation. Blueprints are pre-built templates provided by Confluence or apps. This skill primarily uses the Confluence v1 REST API (`/rest/api/template/*`) for template management, while `create-from` uses the v2 API (`/api/v2/pages`) for page creation.
## CLI Commands
### confluence-as template list
List available page templates and blueprints in your Confluence instance.
**Usage:**
```bash
# List all templates
confluence-as template list
# Filter by space
confluence-as template list --space DOCS
# Filter by type (page or blogpost)
confluence-as template list --type page
# List blueprints instead of templates
confluence-as template list --blueprints
# JSON output
confluence-as template list --output json
# Limit results
confluence-as template list --limit 50
```
**Arguments:**
- `--space`, `-s`: Filter templates by space key
- `--type`, `-t`: Filter by template type (page or blogpost)
- `--blueprints`: List blueprints instead of templates
- `--output`, `-o`: Output format (text or json)
- `--limit`, `-l`: Maximum number of results (default: 100, max: 250)
### confluence-as template get
Retrieve detailed information about a specific template or blueprint.
**Usage:**
```bash
# Get template details
confluence-as template get tmpl-123
# Include body content
confluence-as template get tmpl-123 --body
# Convert body to Markdown
confluence-as template get tmpl-123 --body --format markdown
# Get blueprint details
confluence-as template get bp-456 --blueprint
# JSON output
confluence-as template get tmpl-123 --output json
```
**Arguments:**
- `template_id`: Template ID or blueprint ID
- `--body`: Include template body content
- `--format`: Body format (storage or markdown)
- `--blueprint`: Get blueprint instead of template
- `--output`, `-o`: Output format (text or json)
### confluence-as template create-from
Create a new Confluence page based on an existing template.
> **Known limitation:** `--blueprint` currently creates the page with an **empty body**. Blueprint content is not applied - the CLI never sends the blueprint ID to any API; it only records it in the command output. To get content into the page, pass `--content` or `--file`, or use `--template` instead.
**Usage:**
```bash
# Create page from template
confluence-as template create-from --template tmpl-123 --space DOCS --title "New Page"
# Create page with parent
confluence-as template create-from --template tmpl-123 --space DOCS --title "Page" --parent-id 12345
# Create from blueprint (page body will be EMPTY - see limitation note above)
confluence-as template create-from --blueprint bp-456 --space DOCS --title "Project Plan"
# Add labels
confluence-as template create-from --template tmpl-123 --space DOCS --title "Page" --labels "tag1,tag2"
# Override template content
confluence-as template create-from --template tmpl-123 --space DOCS --title "Page" --content "<p>Custom content</p>"
# Use content from file
confluence-as template create-from --template tmpl-123 --space DOCS --title "Page" --file content.md
```
**Arguments:**
- `--template`: Template ID to use
- `--blueprint`: Blueprint ID to use (alternative to --template). Currently produces an empty page body unless `--content`/`--file` is given - blueprint content is not applied
- `--space`: Space key for the new page (required)
- `--title`: Title for the new page (required)
- `--parent-id`: Parent page ID
- `--labels`: Comma-separated labels
- `--content`: Custom HTML/XHTML content
- `--file`: File with content (Markdown or HTML)
- `--output`, `-o`: Output format (text or json)
### confluence-as template create
Create a new page template in Confluence.
**Usage:**
```bash
# Create basic template (--content or --file is required)
confluence-as template create --name "Meeting Notes" --space DOCS --content "<h1>Meeting Notes</h1>"
# With description
confluence-as template create --name "Status Report" --space DOCS --description "Weekly status report" --content "<h1>Status Report</h1>"
# From HTML file
confluence-as template create --name "Template" --space DOCS --file template.html
# From Markdown file
confluence-as template create --name "Template" --space DOCS --file template.md
# With labels
confluence-as template create --name "Template" --space DOCS --file template.md --labels "template,meeting"
# Blogpost template
confluence-as template create --name "Blog Template" --space DOCS --content "<p>Blog post body</p>" --type blogpost
# Based on blueprint
confluence-as template create --name "Custom" --space DOCS --content "<p>Body</p>" --blueprint-id com.atlassian...
```
**Arguments:**
- `--name`: Template name (required)
- `--space`, `-s`: Space key (required)
- `--description`: Template description
- `--content`: Template body content (HTML/XHTML) - required if `--file` not provided
- `--file`: File with template content (Markdown or HTML) - required if `--content` not provided
- `--labels`: Comma-separated labels
- `--type`, `-t`: Template type - page or blogpost (default: page)
- `--blueprint-id`: Base on existing blueprint
- `--output`, `-o`: Output format (text or json)
Note: Either `--content` or `--file` must be provided to specify the template body.
### confluence-as template update
Update an existing page template.
**Usage:**
```bash
# Update name
confluence-as template update tmpl-123 --name "Updated Template"
# Update description
confluence-as template update tmpl-123 --description "New description"
# Update content from HTML file
confluence-as template update tmpl-123 --file updated.html
# Update from Markdown file
confluence-as template update tmpl-123 --file updated.md
# Update inline content
confluence-as template update tmpl-123 --content "<h1>Updated</h1>"
# Add labels
confluence-as template update tmpl-123 --add-labels "tag1,tag2"
# Remove labels
confluence-as template update tmpl-123 --remove-labels "old-tag"
# Multiple updates
confluence-as template update tmpl-123 --name "New Name" --description "New desc" --add-labels "new"
```
**Arguments:**
- `template_id`: Template ID to update (required)
- `--name`: New template name
- `--description`: New description
- `--content`: New body content (HTML/XHTML)
- `--file`: File with new content (Markdown or HTML)
- `--add-labels`: Comma-separated labels to add
- `--remove-labels`: Comma-separated labels to remove
- `--output`, `-o`: Output format (text or json)
Note: `--content` and `--file` are mutually exclusive.
## API Endpoints Used
This skill uses the Confluence REST API:
**v1 API (template management):**
- `GET /rest/api/template/page` - List page templates
- `GET /rest/api/content/blueprint/instance` - List blueprints
- `GET /rest/api/template/{templateId}` - Get template details
- `GET /rest/api/content/blueprint/instance/{templateId}` - Get blueprint details
- `POST /rest/api/template` - Create template
- `PUT /rest/api/template/{templateId}` - Update template
**v2 API (page creation):**
- `POST /api/v2/pages` - Create page from template (used by `create-from`)
## Examples
### Finding and Using Templates
```bash
# List all available templates
confluence-as template list
# Find templates in a specific space
confluence-as template list --space DOCS
# Get template details
confluence-as template get tmpl-123 --body --format markdown
# Create a page from that template
confluence-as template create-from --template tmpl-123 --space DOCS --title "My Meeting Notes"
```
### Creating Custom Templates
```bash
# Create a simple template (--content or --file is required)
confluence-as template create --name "Weekly Report" --space DOCS --description "Template for weekly status reports" --content "<h1>Weekly Report</h1>"
# Create from a Markdown file
confluence-as template create --name "Project Plan" --space DOCS --file project-template.md --labels "template,planning"
```
### Maintaining Templates
```bash
# Update template content from file
confluence-as template update tmpl-123 --file updated-template.md
# Add tags to categorize
confluence-as template update tmpl-123 --add-labels "engineering,documentation"
# Update name and description
confluence-as template update tmpl-123 --name "New Template Name" --description "Updated description"
```
## Tips
1. **Template IDs**: Template IDs are typically in the format `tmpl-123` or similar. Use `confluence-as template list` to find IDs.
2. **Markdown Support**: All scripts support Markdown input files, which are automatically converted to Confluence's storage format (XHTML).
3. **Blueprints vs Templates**: Blueprints are system-provided templates and typically cannot be modified. Note that `create-from --blueprint` currently produces an empty page (blueprint content is not applied); pass `--content` or `--file` to supply the body.
4. **Labels**: Use labels to organize and categorize templates for easier discovery.
5. **Preserving Content**: When updating templates, only the fields you specify are changed. Other fields are preserved.
6. **Parent Pages**: When creating pages from templates, you can specify a parent page to create a page hierarchy.
## Troubleshooting
**Template not found**: Verify the template ID with `confluence-as template list`. Template IDs are space-specific in some cases.
**Permission denied**: Ensure you have permission to create/modify templates in the specified space. Template management typically requires space admin permissions.
**Content format issues**: If template content doesn't render correctly, ensure HTML/XHTML is well-formed. Use Markdown files for easier authoring.