Package Information
Available Nodes
Documentation
n8n-nodes-slidefactory
N8N community nodes for S5 Slidefactory - AI-driven presentation generation API.
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)
- Open your N8N instance
- Go to Settings → Community Nodes
- Click Install a community node
- Enter:
n8n-nodes-slidefactory - 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
- In your N8N workflow, add a Slidefactory node
- Click Create New Credential
- Fill in:
- API URL: Your Slidefactory instance URL (e.g.,
https://slidefactory.your-domain.com) - API Token: The token generated in step 1
- API URL: Your Slidefactory instance URL (e.g.,
- 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) ORresult_id(UUID) - Optional:
template_id,workflow_folder,template_name,title,context,ai_provider,ai_model - Returns:
process_idfor tracking
Get Status
- Endpoint:
GET /api/presentations/status/{process_id} - Required:
processId - Returns: Status info with
download_urlwhen 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 presentationspresentations:read- Get status, list, download, sharepresentations:delete- Delete presentationstemplates:read- List and view templates
Wildcard scopes:
presentations:*- All presentation operationstemplates:*- 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
Polling: When waiting for presentation completion, use reasonable intervals:
- Short presentations: Poll every 5-10 seconds
- Long presentations: Poll every 15-30 seconds
Rate Limiting: Add delays between batch operations:
Wait node: 2-5 seconds between requestsCaching: Store template IDs and reuse them instead of listing templates repeatedly
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_idorworkflow_folder - Check that your API token has
templates:readscope
"Process not found" error when downloading
- Ensure you're using the correct
process_idfrom 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:
- Fork the repository
- Create a feature branch
- Make your changes
- Add/update tests if applicable
- Run
npm run lintand fix any issues - Submit a pull request
Support
- Documentation: https://github.com/s5/slidefactory/tree/main/DOCUMENTATION
- Issues: https://github.com/s5/slidefactory/issues
- N8N Community: https://community.n8n.io/
License
MIT License - see LICENSE file for details
Related Links
Made with ❤️ for the N8N and Slidefactory communities