npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

n8n-nodes-crownpeak-fs

v1.0.0

Published

n8n integration for Crownpeak FS REST API

Readme

n8n-nodes-crownpeak-fs

Overview

This repository provides a custom n8n integration node for the FirstSpirit REST API. It enables direct access to FirstSpirit operations such as media, page reference, template, page and script configuration within a n8n workflow.

What is it?

A n8n node module designed to simplify integration with Crownpeak FirstSpirit REST API using basic auth credential management. It supports:

  • Authentication using username/password
  • Manage media
  • Manage pages and page references
  • Manage templates and scripts
  • Chain operations using dynamic expressions for automated content data pipelines

What is it for?

This module is useful for organizations looking to build automated content pipelines into the FirstSpirit ecosystem.


Supported Resources & Operations

| Resource | Operations Supported | |----------------|---------------------------------| | Media | Get, Create, Upload | | Search | Search | | Page Reference | List, Create, Get | | Template | List, Create | | Page | Add, Execute, Get, Create, List | | Script | List, Execute | | Project | List, Get |

| Feature | Method | Endpoint | Description | |------------------------------------------------|--------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------| | Get Binary Data | GET | /v1/projects/{projectId}/media/{mediumUid}/data | Get binary data of a medium | | Upload Binary Data | PUT | /v1/projects/{projectId}/media/{mediumUid}/data | Upload binary data to a medium | | Create Medium | POST | /v1/projects/{projectId}/media | Create a new medium | | Get Medium | GET | /v1/projects/{projectId}/media/{mediumUid} | Get a medium by uid | | Search in Project | GET | /v1/projects/{projectId}/search | Search in FirstSpirit project | | List Page References | GET | /v1/projects/{projectId}/page-references/ | List all page references in a FirstSpirit project | | Create Page Reference | POST | /v1/projects/{projectId}/page-references/ | Create a new page reference for a page | | Get Page Reference | GET | /v1/projects/{projectId}/page-references/{pageReferenceUid} | Get a page reference by uid | | List Section Templates | GET | /v1/projects/{projectId}/templates/section-templates | List all section templates in a FirstSpirit project | | Create Section Template | POST | /v1/projects/{projectId}/templates/section-templates | Create a new section template | | List Page Templates | GET | /v1/projects/{projectId}/templates/page-templates | List all page templates in a FirstSpirit project | | Create Page Template | POST | /v1/projects/{projectId}/templates/page-templates | Create a new page template | | Add Section | PUT | /v1/projects/{projectId}/pages/{pageUid}/bodies/{bodyName}/sections/{sectionName} | Add a new section to a body | | Execute Actions | POST | /v1/projects/{projectId}/pages/{pageUid}/actions | Execute actions on a FirstSpirit page | | List Pages | GET | /v1/projects/{projectId}/pages/ | List all pages in a FirstSpirit project | | Create Page | POST | /v1/projects/{projectId}/pages/ | Create a new page | | Get Input Element of Form | GET | /v1/projects/{projectId}/pages/{pageUid}/form/{editorName} | Get input element of a form and its contents | | Update Input Element of Form | PATCH | /v1/projects/{projectId}/pages/{pageUid}/form/{editorName} | Update content of input element of a form | | Get Input Element of Section Form | GET | /v1/projects/{projectId}/pages/{pageUid}/bodies/{bodyName}/sections/{sectionName}/form/{editorName} | Get input element of a section form and its contents | | Update Input Element of Section Form | PATCH | /v1/projects/{projectId}/pages/{pageUid}/bodies/{bodyName}/sections/{sectionName}/form/{editorName} | Update content of input element of a section form | | Get Page | GET | /v1/projects/{projectId}/pages/{pageUid} | Get a page by uid | | Get Input Element of Form for Page | GET | /v1/projects/{projectId}/pages/{pageUid}/form | Get input element of a form for a FirstSpirit page | | Get Bodies | GET | /v1/projects/{projectId}/pages/{pageUid}/bodies | Get bodies of a FirstSpirit page | | Get Body | GET | /v1/projects/{projectId}/pages/{pageUid}/bodies/{bodyName} | Get body of a FirstSpirit page by name | | Get Input Elements of Form for Section of Page | GET | /v1/projects/{projectId}/pages/{pageUid}/bodies/{bodyName}/sections/{sectionName}/form | Get input elements of a form for a section of a FirstSpirit page | | Execute Script | POST | /v1/projects/{projectId}/scripts/{scriptName}/execute | Execute script in a FirstSpirit project | | List Scripts | GET | /v1/projects/{projectId}/scripts/ | List all scripts in a FirstSpirit project | | List Projects | GET | /v1/projects/ | List all projects on FirstSpirit server | | Get project | GET | /v1/projects/{id} | Get FirstSpirit project by id |

Each method supports query parameterization using dynamic expressions and authenticates using Basic Auth.

Prerequisites

Before using this n8n community node, ensure the following components are available:

  • FirstSpirit: 2025.7 or higher
  • Application Server: Standalone Apache Tomcat
  • Module: FirstSpirit-REST-0.0.1.fsm

Download the module from the Crownpeak download portal under custom-download/Modules/REST. If you do not have access, please contact [email protected].

Please refer to the README.md file for detailed setup and configuration steps.

⚠️ Important Notice

The FirstSpirit REST module is a prototype and currently under active development.

Functionality, APIs, and compatibility are subject to change without notice. Do not use in production environments.

ℹ️ To enable communication, the FirstSpirit server must be made accessible to n8n, for example by using a tunneling tool such as ngrok.

Installation & Usage

As a Private Node

  1. Clone this repository to your local machine:
    git clone https://github.com/Crownpeak/n8n-nodes-crownpeak-fs.git
  2. Build the node module:
    cd n8n-nodes-crownpeak-fs
    npm install
    npm run build
  3. Create a custom directory for files to use in the media endpoints. Mount it as a volume and start the n8n Docker container:
      docker run -it --rm \
     --name n8n \
     -p 5678:5678 \
     -v n8n_data:/home/node/.n8n \
     -v ~/n8n_files:/home/node/n8n_files \
     docker.n8n.io/n8nio/n8n
  4. Copy the dist/ folder to your n8n instance's custom nodes' directory:
    docker cp ./dist n8n:/home/node/.n8n/custom/nodes/crownpeak-fs
  5. Restart your n8n Docker container:
    docker restart n8n
  6. Log in to n8n and the node will appear as FirstSpirit REST API.

ℹ️ If it doesn't appear, ensure you are mounting or copying to the correct container path and that NODE_FUNCTION_ALLOW_EXTERNAL is not overly restricted.

As a Community Node (once approved)

Once this node is approved and published on the official n8n integrations registry, installation will be as simple as:

n8n install n8n-nodes-crownpeak-fs

And in [email protected]+ via the UI:

  1. Open Settings → Community Nodes
  2. Click Install a Community Node
  3. Search or paste: n8n-nodes-crownpeak-fs
  4. Click Install

📸 Screenshots

  1. A basic workflow example using n8n Crownpeak FS Node A basic workflow example using n8n Crownpeak FS Node

  2. The result of Create Page Template request The result of Create Page Template request


Credentials

This node supports authentication against the Crownpeak FirstSpirit REST API. You’ll need the following credentials:

  • Username and Password
  • Base URL of the FirstSpirit REST API

Support

  • This repository is maintained by Crownpeak and released under the MIT License.
  • For Crownpeak platform questions, please contact your Customer Success Manager or [email protected].
  • For n8n integration issues or pull requests, use GitHub Issues or Discussions.

License

MIT © Crownpeak Technology, Inc. See LICENSE for details.