N8n
Purpose: Self-hosted automation platform for client workflows and internal workflows. Can give free access to clients.
Last verified: December 2025
Account Details
- Notes: Automation tool we've self-hosted and are using for client workflows and internal workflows. Can give free access to clients
- Category: SELF_HOSTING
- Account type: CLIENT_ACCESS, INTERNAL
- Monthly cost: 10.00 GBP
- Created: December 2025
- Access URL: https://n8n.pacing.agency/home/workflows
- Account owner: Ben Power
Hosting
Provider: Hetzner Cloud
Project: Pacing n8n (Project ID: 12332922)
Server: n8n2 (Server ID: 112168432)
Public IP: 91.98.150.95
Location: Falkenstein, Germany (fsn1-dc14)
Server Specifications:
- Type: CCX13 (Dedicated CPU)
- vCPUs: 2 cores (dedicated)
- RAM: 8 GB
- Disk: 80 GB (local storage)
- Monthly Cost: €11.99
- OS: Ubuntu 24.04
Infrastructure Details: See tools/hetzner.md for complete server configuration and management commands.
API Access
Base URL: https://n8n.pacing.agency/api/v1
API Key: Stored in project .env file as N8N_API_KEY
Authentication: Include API key in request headers:
X-N8N-API-KEY: ${N8N_API_KEY}
API Endpoints
Workflows
| Method | Endpoint | Description |
|---|---|---|
GET | /workflows | Retrieve all workflows |
GET | /workflows/{id} | Retrieve a specific workflow |
POST | /workflows | Create a new workflow |
PUT | /workflows/{id} | Update a workflow |
DELETE | /workflows/{id} | Delete a workflow |
POST | /workflows/{id}/activate | Activate a workflow |
POST | /workflows/{id}/deactivate | Deactivate a workflow |
PUT | /workflows/{id}/transfer | Transfer workflow to another project |
GET | /workflows/{id}/tags | Get workflow tags |
PUT | /workflows/{id}/tags | Update workflow tags |
Workflow Status: Use GET /workflows and filter by active: true to get only live/active workflows.
Tags: Some workflows are assigned to clients via tags. Tags can be retrieved via /workflows/{id}/tags endpoint.
Executions
| Method | Endpoint | Description |
|---|---|---|
GET | /executions | Retrieve all executions |
GET | /executions/{id} | Retrieve a specific execution |
DELETE | /executions/{id} | Delete an execution |
POST | /executions/{id}/retry | Retry an execution |
Users
| Method | Endpoint | Description |
|---|---|---|
GET | /users | Retrieve all users |
POST | /users | Create multiple users |
GET | /users/{id} | Get user by ID/Email |
DELETE | /users/{id} | Delete a user |
PATCH | /users/{id}/role | Change a user's global role |
Tags
| Method | Endpoint | Description |
|---|---|---|
POST | /tags | Create a tag |
GET | /tags | Retrieve all tags |
GET | /tags/{id} | Retrieve a specific tag |
DELETE | /tags/{id} | Delete a tag |
PUT | /tags/{id} | Update a tag |
Credentials
| Method | Endpoint | Description |
|---|---|---|
POST | /credentials | Create a credential |
DELETE | /credentials/{id} | Delete credential by ID |
GET | /credentials/schema/{credentialTypeName} | Show credential data schema |
PUT | /credentials/{id}/transfer | Transfer a credential to another project |
Variables
| Method | Endpoint | Description |
|---|---|---|
POST | /variables | Create a variable |
GET | /variables | Retrieve variables |
DELETE | /variables/{id} | Delete a variable |
PUT | /variables/{id} | Update a variable |
Projects
| Method | Endpoint | Description |
|---|---|---|
POST | /projects | Create a project |
GET | /projects | Retrieve projects |
DELETE | /projects/{projectId} | Delete a project |
PUT | /projects/{projectId} | Update a project |
POST | /projects/{projectId}/users | Add users to a project |
DELETE | /projects/{projectId}/users/{userId} | Delete a user from a project |
PATCH | /projects/{projectId}/users/{userId} | Change a user's role in a project |
Source Control
| Method | Endpoint | Description |
|---|---|---|
POST | /source-control/pull | Pull changes from remote repository |
Audit
| Method | Endpoint | Description |
|---|---|---|
POST | /audit | Generate an audit |
Example API Usage
Get all active workflows:
curl -X GET "https://n8n.pacing.agency/api/v1/workflows" \
-H "X-N8N-API-KEY: ${N8N_API_KEY}" \
| jq '.[] | select(.active == true)'
Get workflow with tags:
curl -X GET "https://n8n.pacing.agency/api/v1/workflows/{id}/tags" \
-H "X-N8N-API-KEY: ${N8N_API_KEY}"
Get all tags:
curl -X GET "https://n8n.pacing.agency/api/v1/tags" \
-H "X-N8N-API-KEY: ${N8N_API_KEY}"
Automation Scripts
See scripts/resources/n8n/ for scripts to:
- Fetch and backup workflows from the API
- Export workflow definitions for version control
- Sync workflows between environments
Main script: scripts/resources/n8n/fetch-workflows.sh
- Fetches active workflows from the API
- Saves workflow definitions as JSON files
- Includes tags and metadata
- See
scripts/resources/n8n/README.mdfor usage instructions
Workflow Management
Active Workflows
Active workflows are those with active: true status. These workflows are currently running and will execute based on their triggers.
Workflow Tags
Workflows can be tagged to organise them by client or purpose. Tags are useful for:
- Filtering workflows by client
- Organising workflows by category
- Managing access and permissions
To view tags for a workflow, use the API endpoint /workflows/{id}/tags or check the workflow in the n8n UI.
Workflow Backup
Workflows are automatically backed up via the script in scripts/resources/n8n/fetch-workflows.sh. This script:
- Fetches all active workflows from the API
- Saves workflow definitions as JSON files
- Includes workflow metadata (name, ID, tags, active status)
- Organises workflows by tags or client assignment
Current Active Workflows
As of December 2025, there are 9 active workflows:
| Workflow Name | ID | Tags | Purpose |
|---|---|---|---|
| Process Call Data LIVE TWILIO | Br8hV6MAxI3ZqR2J | MTL | Process Twilio call data |
| TTL Website - Cache Clear On Publish | KowT1FqN6Xk6UoRE | TTL, Cloudflare, Webflow | Clear cache on Webflow publish |
| Pacing Website - Cache Clear On Publish | N11idwXDFWNwGYDh | Pacing, Cloudflare, Webflow | Clear cache on Webflow publish |
| My workflow 3 | QpjmWcZTwupjkXHI | (none) | Internal workflow |
| Process Call Data LIVE | TsmCwp84TKbHa62o | MTL | Process call data |
| CIRCLELOOP-WEBHOOK1 | ZOYW9YJWM7Zlyob9 | MTL | CircleLoop webhook handler |
| Google Ads Offline Conversion - CALL NON-CL | kFpW5Ahu63kGfrSL | MTL | Google Ads conversion tracking |
| HML Website - Cache Clear On Publish | lQvLaJJihWpebP6c | HML, Cloudflare, Webflow | Clear cache on Webflow publish |
| Google Ads Offline Conversion - CALL | lvWrOkP2lyFnVbQV | MTL | Google Ads conversion tracking |
Workflow Tags
Tags are used to organise workflows by client or purpose:
| Tag Name | ID | Usage |
|---|---|---|
| Pacing | 1AMJrKZ1uQrCIjT0 | Internal Pacing workflows |
| Webflow | xs7njiJx2FesmGT9 | Webflow-related workflows |
| Cloudflare | Y4zn1qUqhsuisYBL | Cloudflare-related workflows |
| TTL | ULds2c7XDyztnzUK | TTL client workflows |
| MTL | RWrUvJqLOhyZs2Rd | MTL client workflows |
| HML | 6wiOJFpb62tnmNQf | HML client workflows |
| PACINGINTERNAL | 4keDmHrtJWbue7WX | Internal Pacing workflows |
Client Assignment: Workflows tagged with client names (MTL, TTL, HML) are assigned to those specific clients.