Sign In

n8n-nodes-velocms

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

n8n-nodes-velocms

n8n community node for VeloCMS — trigger on content/member/commerce events and automate your blog workflows

latest
Source
npmnpm
Version
1.0.5
Version published
Maintainers
1
Created
Source

n8n-nodes-velocms

VeloCMS community node for n8n. Trigger workflows on blog events (post published, member subscribed, order paid) and automate content management — all without writing code.

Installation

In your n8n instance, go to Settings → Community Nodes and install:

n8n-nodes-velocms

Or via CLI:

npm install n8n-nodes-velocms

Credentials setup

  • In your VeloCMS admin panel, go to Settings → API Keys.

  • Create a new API key with the scopes you need:

    • posts:read, posts:write — Post resource
    • media:read, media:write — Media resource
    • comments:read, comments:write, comments:moderate — Comment resource
    • members:read, members:write — Member resource
    • webhooks:read, webhooks:write — Webhook resource + the Trigger node (required)

    API access requires a Pro or higher VeloCMS plan, and webhook subscriptions require Pro or higher as well.

  • Copy the generated key (shown once, starts with velo_...).

  • In n8n, add a new VeloCMS API credential:

    • API Key: paste your velo_... key
    • Base URL: your blog URL (e.g. https://myblog.velocms.org)

VeloCMS Trigger node

Starts your workflow when VeloCMS events occur.

Supported events

EventFires when
post.createdA new post is created
post.updatedA post is edited
post.publishedA post is published or scheduled
post.unpublishedA published post is reverted to draft
post.deletedA post is permanently deleted
page.publishedA page builder page is published
member.subscribedA reader subscribes (free or paid)
member.unsubscribedA member cancels
member.tier_changedA member upgrades or downgrades
comment.postedA new comment is submitted
comment.approvedA comment is approved by the admin
comment.deletedA comment is deleted
order.paidA product order is paid
order.refundedAn order is refunded
order.shippedAn order is marked as shipped
product.createdA new product is created
product.updatedA product is updated
cart.abandonedIncluded for forward-compatibility — not yet dispatched by VeloCMS
gift_card.issuedA gift card is purchased or admin-issued
media.uploadedA file is uploaded to the media library

HMAC signature verification

Every VeloCMS webhook delivery is signed with HMAC-SHA256. The trigger node automatically:

  • Reads X-VeloCMS-Signature: v1={hex} and X-VeloCMS-Timestamp headers.
  • Rejects deliveries where |now - timestamp| > 300 seconds (replay protection).
  • Computes the expected HMAC of v1:{timestamp}:{raw_body} with your subscription secret.
  • Returns HTTP 401 and stops workflow execution if the signature does not match.

The subscription secret is generated by VeloCMS when you activate the workflow and is stored securely in n8n's workflow static data. It is never exposed in logs or workflow output.

Delivery envelope

Every workflow item is the event's data payload — for a post.* event, that looks like:

{
  "post_id": "abc123",
  "title": "My Post Title",
  "slug": "my-post-title",
  "status": "published",
  "published_at": "2026-06-14T10:00:00Z",
  "excerpt": "A short summary...",
  "tags": ["intro", "welcome"],
  "author_name": "Jane Doe",
  "tenant_id": "tenant-uuid"
}

The full delivery envelope (with id, event, version, created, tenant) is visible in the raw webhook headers/body if you need it for deduplication.

VeloCMS Action node

Interacts with the VeloCMS REST API v1. The resource/operation set below reflects the endpoints VeloCMS's route handlers actually implement — a couple of endpoints some third-party docs describe (e.g. POST /members, GET /comments/{id}) don't exist on the real API, so those operations were never exposed here.

Resources and operations

ResourceOperations
PostCreate, Update, Get, Get All, Publish, Delete
MemberGet All, Delete (members are created via the reader-facing subscribe flow, not the admin API)
MediaGet, Get All, Upload from URL, Delete
CommentGet All, Create, Moderate (sets status to Approved / Pending / Spam)
WebhookCreate, Get All, Get, Delete, Test, Rotate Secret

Upload from URL downloads the file from the URL you provide and re-uploads it to VeloCMS as a real multipart/form-data request (VeloCMS's media endpoint requires an actual file part, not a JSON URL reference). Files over 25 MB are rejected.

Pagination

Post / Member / Media / Comment "Get All" operations support:

  • Return All: fetches every page automatically (up to 100 items/page).
  • Limit + Page: fetches one specific page.

Webhook "Get All" is the one exception: GET /api/v1/webhooks always returns the tenant's complete subscription list in one response (it's not a server-paginated endpoint — subscription counts are small). The node still honors Return All / Limit + Page, but applies them client-side over that full list.

Rate limiting

If VeloCMS rate-limits your request (HTTP 429), the node throws a NodeOperationError with the Retry-After seconds in the message so you can handle it in your workflow's error path.

Example workflows

Post published → send Slack notification

  • Add VeloCMS Trigger → select event post.published.
  • Add Slack node → send message: New post: {{$json.title}} — https://myblog.velocms.org/blog/{{$json.slug}}.

New member → add to Mailchimp audience

  • VeloCMS Trigger → event member.subscribed.
  • Mailchimp node → add/update subscriber with {{$json.email}}.

Order paid → create invoice in QuickBooks

  • VeloCMS Trigger → event order.paid.
  • QuickBooks node → create invoice with order data from {{$json}}.

Weekly post report → email digest

  • Schedule Trigger → every Monday 09:00.
  • VeloCMS (Action) → Post → Get All → filter by status=published.
  • Gmail → send digest to editorial team.

New comment → moderate automatically

  • VeloCMS Trigger → event comment.posted.
  • A filter/rule node checks the comment body for spam signals.
  • VeloCMS (Action) → Comment → Moderate → set Status to spam or approved.

Webhook subscription lifecycle

When you activate a workflow with the VeloCMS Trigger:

  • n8n calls the create lifecycle method.
  • The node registers a webhook subscription in VeloCMS (POST /api/v1/webhooks).
  • VeloCMS returns a subscription ID and signing secret, both stored in the workflow's static data.

When you deactivate the workflow:

  • n8n calls the delete lifecycle method.
  • The subscription is removed from VeloCMS (DELETE /api/v1/webhooks/{id}).

When n8n restarts with an active workflow:

  • n8n calls checkExists (GET /api/v1/webhooks/{id}).
  • If the subscription still exists → continue using it.
  • If not → create a new one automatically.

Secret rotation

If you need to rotate your webhook's signing secret, use the Action node's Webhook → Rotate Secret operation (POST /api/v1/webhooks/{id}/rotate-secret) — it returns the new secret once, immediately invalidating the old one. n8n's Trigger node won't automatically pick up a secret rotated this way, though, so:

  • Deactivate the workflow using the VeloCMS Trigger.
  • Reactivate it — a fresh subscription with a new secret is created automatically.

If you rotate your VeloCMS API key instead, just update the VeloCMS API credential with the new key — no workflow reactivation needed.

Troubleshooting

"No webhook secret stored" — The workflow was activated without going through the VeloCMS create lifecycle. Deactivate and reactivate the workflow.

"Invalid signature" — The delivery was rejected because the HMAC didn't match. Common causes:

  • The webhook secret was rotated (see Secret rotation above).
  • The raw body was modified in transit (rare).
  • Clock skew between VeloCMS and your n8n instance is > 5 minutes.

"VeloCMS rate limit reached" — Your API key has exceeded its hourly quota. The error message includes the Retry-After seconds.

"401 Invalid API key" — Check that the API key starts with velo_ and has not been revoked. In VeloCMS admin: Settings → API Keys.

"Invalid or unknown fields in request body" (Post Create/Update) — VeloCMS's API rejects unrecognized JSON keys rather than silently dropping them. If you're building a custom expression for the post body, use content_html (not content/body) and featured_image_url (not featured_image).

Support

  • Documentation: velocms.org/help/how-do-i-connect-zapier-or-n8n-to-velocms
  • Issues: github.com/VeloCMS/n8n-nodes-velocms/issues
  • VeloCMS: velocms.org

License

MIT — see LICENSE.

Keywords

n8n-community-node-package

FAQs

Package last updated on 19 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts