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

@markupai/n8n-nodes-markupai

v0.2.6

Published

n8n node for MarkupAI

Readme

Banner image

n8n-nodes-markupai

This is an n8n community node that integrates Markup AI — a content guardian platform for ensuring brand-compliant, consistent, and engaging content.

Markup AI provides AI-powered content analysis, suggestions, and rewrites based on your organization's brand standards. Integrate content quality checks and automated improvements directly into your n8n workflows.

Installation · Operations · Credentials · Usage · Resources · Development

Installation

Community Nodes (Recommended)

  1. In n8n, go to Settings > Community Nodes
  2. Select Install
  3. Enter @markupai/n8n-nodes-markupai in the package field
  4. Click Install

For detailed instructions, visit the n8n community nodes installation guide.

Manual Installation

To install manually, run the following command in your n8n installation directory:

npm install @markupai/n8n-nodes-markupai

Operations

The Markup AI node supports the following operations:

Style Check

Analyze content for quality issues without making changes.

Returns:

  • Quality, clarity, and grammar scores
  • Style guide compliance metrics
  • Tone analysis
  • Readability metrics
  • Detailed list of identified issues

Style Rewrite

Automatically rewrite and improve content using AI.

Returns:

  • Improved content version
  • Before/after quality scores
  • Score improvements
  • Comparison metrics

Credentials

To use this node, you'll need a Markup AI API account.

Setting up credentials:

  1. Sign up for a Markup AI account
  2. Get your API key from your account settings
  3. In n8n, add new credentials:
    • Go to Credentials > New
    • Search for Markup AI API
    • Enter your API key
    • Click Save

Usage

Configuration Options

All operations support the following options:

| Option | Type | Default | Description | | ----------------------- | ------- | ------- | ------------------------------------------- | | Style Guide | String | - | The style guide to apply | | Dialect | String | - | The dialect to be used for content analysis | | Tone | String | - | The desired tone for content (optional) | | Wait for Completion | Boolean | true | Auto-poll for results | | Polling Timeout | Number | 60000 | Maximum wait time in milliseconds | | Polling Interval | Number | 2000 | Polling frequency in milliseconds |

Example Workflows

Content Quality Gate

  1. Trigger: New document added to Google Drive
  2. Markup AI → Style Check: Analyze document content
  3. Condition: Check if quality score meets threshold
  4. If passed: Approve and publish
  5. If failed: Send notification to content team

Automated Content Improvement

  1. Trigger: Webhook receives content for publication
  2. Markup AI → Style Check: Analyze initial quality
  3. Markup AI → Style Rewrite: Improve content
  4. Send improved version to CMS for publication

Common Use Cases

  • Content Compliance & Consistency: Ensure all company content — from blogs and web pages to documentation and marketing materials — aligns with brand and style guidelines while maintaining a consistent tone.

  • Automated Quality Gates: Ensure content meets standards automatically before publication. Monitor content changes in real-time and prevent non-compliant content from going live.

  • Quality at the Source: Create and maintain high-quality content right where it's produced. Proactively monitor consistency and compliance across CMS platforms like Google Drive and beyond.

  • Early Issue Detection: Automatically identify and flag potential issues or non-compliant content within workflows before they become problems.

  • Streamlined Content Compliance: Minimize manual reviews by automating content compliance checks and review processes throughout your content lifecycle.

  • Actionable Alerts: Go beyond flagging issues — automatically trigger notifications to stakeholders within workflows, transforming compliance checks into immediate corrective actions.

Resources

Development

Contributions are welcome! This section is for developers who want to contribute to this community node or set up a local development environment.

Prerequisites

  • Node.js >= 24
  • npm
  • Basic familiarity with n8n and TypeScript

Quick Setup (Recommended)

After cloning this repository, run the automated setup script:

npm run setup

This will:

  • Install dependencies (including n8n as a devDependency)
  • Build the code and create the dist folder
  • Link the package from the dist folder (avoiding node_modules conflicts)
  • Configure the n8n custom directory
  • Fix n8n config file permissions
  • Link the package for local development

Then start n8n:

npm start

This uses the local n8n installation from devDependencies — no global installation needed!

Note: The setup links from the dist folder rather than the project root. This ensures that n8n only loads the compiled code without development dependencies, preventing module loading conflicts.

Environment Configuration

For development, you can configure the API base URL using environment variables:

Option 1: Using a .env file

  1. Copy the example environment file:

    cp .env.example .env
  2. Edit .env and set your development API URL:

    MARKUP_AI_BASE_URL=https://api.dev.markup.ai/
  3. Start n8n (it will automatically load the .env file):

    npm start

Option 2: Export environment variable directly

export MARKUP_AI_BASE_URL=https://api.dev.markup.ai/
npm start

Note: By default, the node uses the production API URL (https://api.markup.ai/). The environment variable is only needed for development or custom API endpoints. n8n automatically loads .env files from the current working directory, so no additional tools are required.

Manual Setup

If you prefer to set things up manually:

  1. Install dependencies after cloning this repository
npm install
  1. Build the code
npm run build
  1. Link the build from the dist folder
cd dist
npm link
cd ..
  1. Create a custom directory inside n8n if it does not exist
# In ~/.n8n directory run
mkdir -p ~/.n8n/custom
cd ~/.n8n/custom
npm init -y
  1. Link the custom folder to the build
npm link @markupai/n8n-nodes-markupai
  1. Fix n8n config file permissions (if needed)
chmod 600 ~/.n8n/config
  1. Start n8n
# Back in your project directory
npm start

You should now see Markup AI in the list of nodes. Happy hacking!

Making Changes

  1. Make your changes in the nodes/ or credentials/ directories
  2. Build the code: npm run build
  3. Test in n8n (refresh the browser if n8n is already running)
  4. Run tests: npm test
  5. Run linter: npm run lint:check

Testing

Run the test suite:

npm test

Run tests with coverage:

npm run test:coverage

Run tests in watch mode during development:

npm run test:watch

Troubleshooting

Module loading errors: If you see errors like require(...).index is not a constructor, make sure you've linked from the dist folder, not the project root. To fix:

npm run cleanup  # Remove old links
npm run setup    # Set up correctly

Permissions errors: If you see warnings about file permissions, run chmod 600 ~/.n8n/config to fix them.

Resetting the development environment: If you need to start fresh:

npm run cleanup  # Removes all npm links
npm run setup    # Sets up from scratch

Debugging setup issues: If you encounter problems during setup, enable debug mode for detailed output:

DEBUG=1 npm run setup    # Verbose setup with debug information
DEBUG=1 npm run cleanup  # Verbose cleanup with debug information

This will show:

  • Exact commands being executed
  • Full command output (both stdout and stderr)
  • Detailed error information when commands fail
  • Working directory for each command

License

MIT

Support


Made with ❤️ by the Markup AI team