
Security News
How AI Agents Expand the Software Supply Chain Attack Surface
In his AI Council 2026 talk, Feross Aboukhadijeh covers recent package compromises, vulnerability discovery, and a more automated security model.
n8n-nodes-velocms
Advanced tools
n8n community node for VeloCMS — trigger on content/member/commerce events and automate your blog workflows
VeloCMS community node for n8n. Trigger workflows on blog events (post published, member subscribed, order paid) and automate content management — all without writing code.
In your n8n instance, go to Settings → Community Nodes and install:
n8n-nodes-velocms
Or via CLI:
npm install n8n-nodes-velocms
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 resourcemedia:read, media:write — Media resourcecomments:read, comments:write, comments:moderate — Comment resourcemembers:read, members:write — Member resourcewebhooks: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:
velo_... keyhttps://myblog.velocms.org)Starts your workflow when VeloCMS events occur.
| Event | Fires when |
|---|---|
post.created | A new post is created |
post.updated | A post is edited |
post.published | A post is published or scheduled |
post.unpublished | A published post is reverted to draft |
post.deleted | A post is permanently deleted |
page.published | A page builder page is published |
member.subscribed | A reader subscribes (free or paid) |
member.unsubscribed | A member cancels |
member.tier_changed | A member upgrades or downgrades |
comment.posted | A new comment is submitted |
comment.approved | A comment is approved by the admin |
comment.deleted | A comment is deleted |
order.paid | A product order is paid |
order.refunded | An order is refunded |
order.shipped | An order is marked as shipped |
product.created | A new product is created |
product.updated | A product is updated |
cart.abandoned | Included for forward-compatibility — not yet dispatched by VeloCMS |
gift_card.issued | A gift card is purchased or admin-issued |
media.uploaded | A file is uploaded to the media library |
Every VeloCMS webhook delivery is signed with HMAC-SHA256. The trigger node automatically:
X-VeloCMS-Signature: v1={hex} and X-VeloCMS-Timestamp headers.|now - timestamp| > 300 seconds (replay protection).v1:{timestamp}:{raw_body} with your subscription secret.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.
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.
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.
| Resource | Operations |
|---|---|
| Post | Create, Update, Get, Get All, Publish, Delete |
| Member | Get All, Delete (members are created via the reader-facing subscribe flow, not the admin API) |
| Media | Get, Get All, Upload from URL, Delete |
| Comment | Get All, Create, Moderate (sets status to Approved / Pending / Spam) |
| Webhook | Create, 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.
Post / Member / Media / Comment "Get All" operations support:
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.
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.
post.published.New post: {{$json.title}} — https://myblog.velocms.org/blog/{{$json.slug}}.member.subscribed.{{$json.email}}.order.paid.{{$json}}.status=published.comment.posted.spam or approved.When you activate a workflow with the VeloCMS Trigger:
create lifecycle method.POST /api/v1/webhooks).When you deactivate the workflow:
delete lifecycle method.DELETE /api/v1/webhooks/{id}).When n8n restarts with an active workflow:
checkExists (GET /api/v1/webhooks/{id}).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:
If you rotate your VeloCMS API key instead, just update the VeloCMS API credential with the new key — no workflow reactivation needed.
"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:
"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).
MIT — see LICENSE.
FAQs
n8n community node for VeloCMS — trigger on content/member/commerce events and automate your blog workflows
We found that n8n-nodes-velocms demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
In his AI Council 2026 talk, Feross Aboukhadijeh covers recent package compromises, vulnerability discovery, and a more automated security model.

Security News
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.