slidefactory

N8N community nodes for S5 Slidefactory - AI-driven presentation generation API

Package Information

Released: 11/17/2025
Downloads: 16 weekly / 320 monthly
Latest Version: 0.1.1
Author: S5 Slidefactory Team

Documentation

n8n-nodes-slidefactory

N8N community nodes for S5 Slidefactory - AI-driven presentation generation API.

npm version
License

What is Slidefactory?

Slidefactory is an AI-powered presentation automation platform that generates professional PowerPoint presentations from templates and data. It supports multiple AI providers (OpenAI, Anthropic, Azure OpenAI, Mistral) and integrates with workflow orchestration tools like N8N.

Features

This N8N integration provides:

Presentation Operations

  • Generate: Create presentations from templates and data
  • Get Status: Check generation progress and status
  • List: List all generated presentations with filters
  • Download: Download presentation files as binary data
  • Share: Generate temporary shareable links
  • Delete: Remove presentations from storage

Template Operations

  • List: Browse available templates with filters
  • Get: Retrieve template details
  • Get Placeholders: Extract placeholder schema from templates

Installation

Option 1: Install via N8N GUI (Recommended)

  1. Open your N8N instance
  2. Go to SettingsCommunity Nodes
  3. Click Install a community node
  4. Enter: n8n-nodes-slidefactory
  5. Click Install

Option 2: Install via npm

# In your N8N installation directory
npm install n8n-nodes-slidefactory

Option 3: Docker

Add to your N8N Dockerfile:

RUN npm install -g n8n-nodes-slidefactory

Or via docker-compose environment variable:

environment:
  - N8N_CUSTOM_EXTENSIONS="/home/node/.n8n/custom"

Setup

1. Generate API Token

Before using this node, you need to create an API token in your Slidefactory instance:

# Using Slidefactory CLI
./slidefactory users create-api-key <username> "N8N Integration" --scopes "presentations:*,templates:read"

# Or via Docker
docker-compose exec web python -m cli users create-api-key <username> "N8N Integration" --scopes "presentations:*,templates:read"

The command will output an API token starting with sf_. Save this token securely - it won't be shown again.

2. Configure Credentials in N8N

  1. In your N8N workflow, add a Slidefactory node
  2. Click Create New Credential
  3. Fill in:
    • API URL: Your Slidefactory instance URL (e.g., https://slidefactory.your-domain.com)
    • API Token: The token generated in step 1
  4. Click Save

N8N will automatically test the credentials by calling the Slidefactory API.

Usage Examples

Example 1: Generate Presentation from Workflow Data

Trigger (Schedule: Daily)
  ↓
HTTP Request (Get sales data from API)
  ↓
Function (Transform data to presentation format)
  ↓
Slidefactory (Generate presentation)
  ↓
Slidefactory (Get status - poll until complete)
  ↓
Email (Send presentation to stakeholders)

Slidefactory Node Configuration:

  • Resource: Presentation
  • Operation: Generate
  • Template ID: 1
  • Presentation Data:
    {
      "title": "Daily Sales Report",
      "date": "{{$now.format('YYYY-MM-DD')}}",
      "metrics": {
        "revenue": "{{$json.revenue}}",
        "orders": "{{$json.orders}}"
      }
    }
    

Example 2: Batch Presentation Generation

Trigger (Manual)
  ↓
Google Sheets (Read rows)
  ↓
Loop (For each row)
  ↓
  Slidefactory (Generate presentation)
  ↓
  Wait (5 seconds - rate limiting)
  ↓
Merge (Collect all results)
  ↓
Slack (Notify completion)

Example 3: Poll for Completion and Download

Slidefactory (Generate presentation)
  ↓
Wait (10 seconds)
  ↓
Slidefactory (Get status)
  ↓
IF (Status === 'finished')
  ↓ Yes
  Slidefactory (Download)
    ↓
    Google Drive (Upload file)
  ↓ No
  Wait (10 seconds)
    ↓
    Loop back to Get Status

Example 4: List Templates and Generate

Slidefactory (List templates, filter by workflow_folder: "reports")
  ↓
Function (Select template by criteria)
  ↓
Slidefactory (Generate presentation with selected template)

Example 5: Share Presentation with External User

Slidefactory (Generate presentation)
  ↓
Wait until complete
  ↓
Slidefactory (Share - expires in 24 hours)
  ↓
Email (Send share URL to external user)

API Operations Reference

Presentation Operations

Generate

  • Endpoint: POST /api/presentations/generate
  • Required: data (JSON) OR result_id (UUID)
  • Optional: template_id, workflow_folder, template_name, title, context, ai_provider, ai_model
  • Returns: process_id for tracking

Get Status

  • Endpoint: GET /api/presentations/status/{process_id}
  • Required: processId
  • Returns: Status info with download_url when finished

List

  • Endpoint: GET /api/presentations/list
  • Optional Filters: user_id, template_id, state, limit, offset
  • Returns: Array of presentations with metadata

Download

  • Endpoint: GET /api/presentations/download/{process_id}
  • Required: processId
  • Returns: Binary file data (PPTX)

Share

  • Endpoint: GET /api/presentations/{process_id}/share
  • Required: processId
  • Optional: expires_in_hours (1-24, default: 24)
  • Returns: Temporary shareable URL

Delete

  • Endpoint: DELETE /api/presentations/{process_id}
  • Required: processId
  • Returns: Success confirmation

Template Operations

List

  • Endpoint: GET /api/templates
  • Optional Filters: workflow_folder, engine_type
  • Returns: Array of available templates

Get

  • Endpoint: GET /api/templates/{template_id}
  • Required: templateId
  • Returns: Template details and metadata

Get Placeholders

  • Endpoint: GET /api/templates/{template_id}/placeholders
  • Required: templateId
  • Returns: Extracted placeholders and JSON schema

Authentication

This node uses Bearer token authentication. The API token is sent in the Authorization header:

Authorization: Bearer sf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

The credentials are securely stored by N8N and automatically included in all API requests.

Required API Scopes

For full functionality, your API token should have these scopes:

  • presentations:generate - Generate presentations
  • presentations:read - Get status, list, download, share
  • presentations:delete - Delete presentations
  • templates:read - List and view templates

Wildcard scopes:

  • presentations:* - All presentation operations
  • templates:* - All template operations
  • * - Full access (not recommended for production)

Error Handling

The node will throw N8N errors with detailed messages:

  • 401 Unauthorized: Invalid or expired API token
  • 403 Forbidden: Token lacks required scope
  • 404 Not Found: Resource not found (process_id, template_id)
  • 400 Bad Request: Invalid parameters or data format
  • 500 Internal Server Error: Slidefactory internal error

Use N8N's built-in error handling:

  • Set Continue On Fail in node settings for non-critical operations
  • Use Error Trigger nodes to handle failures
  • Add IF nodes to check response status

Performance Tips

  1. Polling: When waiting for presentation completion, use reasonable intervals:

    • Short presentations: Poll every 5-10 seconds
    • Long presentations: Poll every 15-30 seconds
  2. Rate Limiting: Add delays between batch operations:

    Wait node: 2-5 seconds between requests
    
  3. Caching: Store template IDs and reuse them instead of listing templates repeatedly

  4. Binary Data: Use the Download operation to get files as binary data, which can be directly passed to:

    • Email attachments
    • Cloud storage (Google Drive, Dropbox)
    • FTP/SFTP uploads

Troubleshooting

"Invalid API key" error

  • Verify your API token is correct and hasn't expired
  • Check that the API URL doesn't have a trailing slash
  • Ensure your Slidefactory instance is accessible from N8N

"Template not found" error

  • Use the List Templates operation to see available templates
  • Verify you have the correct template_id or workflow_folder
  • Check that your API token has templates:read scope

"Process not found" error when downloading

  • Ensure you're using the correct process_id from the Generate response
  • Check that generation has completed using Get Status first
  • Verify the presentation wasn't deleted

Presentations stuck in "pending" or "running"

  • Check Slidefactory worker logs: docker-compose logs -f worker
  • Verify Celery workers are running
  • Ensure AI provider credentials are configured in Slidefactory

Development

Build from Source

# Clone repository
git clone https://github.com/s5/slidefactory.git
cd slidefactory/packages/n8n-nodes-slidefactory

# Install dependencies
npm install

# Build
npm run build

# Lint
npm run lint
npm run lint:fix

# Format code
npm run format

Local Testing

# Start N8N with hot reload
npm run build:watch

# In another terminal, start N8N
n8n start --tunnel

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add/update tests if applicable
  5. Run npm run lint and fix any issues
  6. Submit a pull request

Support

License

MIT License - see LICENSE file for details

Related Links


Made with ❤️ for the N8N and Slidefactory communities

Discussion