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 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-publora

v1.0.1

Published

Production-ready n8n community node for the complete Publora REST API

Downloads

21

Readme

n8n-nodes-publora

A production-ready n8n community node for the complete documented Publora REST API.

The package targets Publora API v1 and n8n 2.x. It supports connected accounts, posts, scheduling, media uploads, analytics, LinkedIn engagement, webhooks, Workspace users, content-calendar queries, X Bookmarks, bulk operations, and forward-compatible custom API requests.

Features

  • Complete Publora OpenAPI operation coverage
  • Premium X Bookmarks beta API coverage
  • Dynamic account, post, webhook, and managed-user selectors
  • Multi-account publishing selector with manual platform fallback when connections cannot load
  • Automatic pagination with Return All
  • Direct n8n binary uploads through Publora presigned URLs
  • Exponential retry and rate-limit handling
  • Explicit bulk create, delete, and connection-test operations
  • Publora Workspace managed-user scoping
  • Per-item n8n Continue On Fail support
  • In-memory dropdown caching to reduce duplicate API calls
  • Strict TypeScript and reusable transport, pagination, validation, and model layers
  • Relative custom API requests for future Publora v1 endpoints

Supported Resources

Connection

| Operation | Publora endpoint | | --------- | ----------------------------------- | | Get Many | GET /platform-connections | | Test | POST /test-connection/:platformId |

Post

| Operation | Publora endpoint | | --------- | ---------------------------------- | | Create | POST /create-post | | Get Many | GET /list-posts | | Get | GET /get-post/:postGroupId | | Get Logs | GET /post-logs/:postGroupId | | Update | PUT /update-post/:postGroupId | | Delete | DELETE /delete-post/:postGroupId |

Create and Update expose TikTok, Instagram, YouTube, Threads, and Telegram platform settings. An additional JSON field provides forward compatibility if Publora adds settings before this package is updated.

Media

| Operation | Behavior | | -------------- | ----------------------------------------------------------------------------- | | Get Upload URL | Calls POST /get-upload-url | | Upload Binary | Gets a URL, uploads n8n binary data to S3, and optionally schedules the draft |

For media posts, use Publora's recommended sequence:

  1. Create a draft without scheduledTime.
  2. Upload all media.
  3. Update the post to scheduled.

LinkedIn Analytics

| Operation | Publora endpoint | | ---------------------- | ----------------------------------- | | Get Post Statistics | POST /linkedin-post-statistics | | Get Account Statistics | POST /linkedin-account-statistics | | Get Followers | POST /linkedin-followers | | Get Profile Summary | POST /linkedin-profile-summary |

Single metrics, selected metrics, all metrics, total aggregation, daily aggregation, and LinkedIn date ranges are supported.

LinkedIn Engagement

| Operation | Publora endpoint | | --------------- | ---------------------------- | | Create Reaction | POST /linkedin-reactions | | Delete Reaction | DELETE /linkedin-reactions | | Create Comment | POST /linkedin-comments | | Delete Comment | DELETE /linkedin-comments |

Comments support threaded replies and Publora's LinkedIn mention syntax:

@{urn:li:person:MEMBER_ID|Display Name}
@{urn:li:organization:ORG_ID|Company Name}

Webhook

| Operation | Publora endpoint | | ----------------- | -------------------------------------- | | Get Many | GET /webhooks | | Create | POST /webhooks | | Update | PATCH /webhooks/:id | | Delete | DELETE /webhooks/:id | | Regenerate Secret | POST /webhooks/:id/regenerate-secret |

Supported events are post.scheduled, post.published, post.failed, and token.expiring.

Workspace User

Workspace access is entitlement-gated. Contact Publora support to enable it.

| Operation | Publora endpoint | | ----------------------- | ---------------------------------------------- | | Get Many | GET /workspace/users | | Create | POST /workspace/users | | Detach | DELETE /workspace/users/:userId | | Generate API Key | POST /workspace/users/:userId/api-key | | Generate Connection URL | POST /workspace/users/:userId/connection-url |

For other resources, select a managed user to send the x-publora-user-id header.

Content Calendar

Get Events retrieves every post in a scheduled date window through paginated GET /list-posts calls, sorted by scheduled time. Status and platform filters are optional.

X Bookmark

X Bookmarks is a Publora Premium beta feature and must be enabled for the account.

| Operation | Publora endpoint | | -------------------- | ----------------------------------- | | Sync | POST /x-bookmarks/sync | | Get Many | GET /x-bookmarks | | Get | GET /x-bookmarks/:id | | Export | GET /x-bookmarks/export | | Get Balance | GET /x-bookmarks/balance | | Get Settings | GET /x-bookmarks/user/settings | | Update Settings | PUT /x-bookmarks/user/settings | | Get Media Statistics | GET /x-bookmarks/user/media-stats | | Get Sync History | GET /x-bookmarks/sync/history |

Batch

  • Create multiple posts from a JSON array
  • Delete multiple post groups
  • Test multiple platform connections
  • Configurable concurrency from 1 to 10
  • Each result includes batchIndex, success, and either response or error

API Request

Calls a relative endpoint under the credential Base URL. Authentication, Workspace scoping, retry handling, and error conversion are preserved. This operation isolates future Publora v1 expansion from the stable resource UI.

Installation

n8n Community Nodes UI

  1. Open Settings > Community Nodes.
  2. Select Install.
  3. Enter n8n-nodes-publora.
  4. Confirm the installation.

npm

From the n8n installation directory:

npm install n8n-nodes-publora

Restart n8n after installation.

Docker

Install the package in the persistent n8n custom-node directory or build it into your n8n image. Ensure the installed package remains available after container recreation.

Credentials Setup

  1. Create or sign in to a Publora account.
  2. Connect social accounts in the Publora dashboard.
  3. Open the API section and generate an API key.
  4. In n8n, create a Publora API credential.
  5. Paste the key into API Key.
  6. Keep Base URL set to https://api.publora.com/api/v1.
  7. Test the credential.

The credential sends:

x-publora-key: YOUR_API_KEY

API keys should be stored only in n8n credentials. Do not place them in workflow fields.

Examples

Schedule a Text Post

  1. Add a Publora node.
  2. Select Post > Create.
  3. Enter the content.
  4. Select one or more connected accounts.
  5. Set a scheduled time.

Publish a Post With Media

  1. Use Post > Create with no scheduled time.
  2. Pass the returned postGroupId to Media > Upload Binary.
  3. Set the input binary field, normally data.
  4. Enable Schedule After Upload, or schedule later with Post > Update.

For carousels, run the Media node once per binary input item before scheduling.

Build a Content Calendar

Use Content Calendar > Get Events with the visible calendar start and end dates. The node automatically follows all Publora pages and emits one n8n item per post.

Retrieve All LinkedIn Metrics

Use LinkedIn Analytics > Get Post Statistics, select the LinkedIn connection, provide the published LinkedIn URN, and choose All Metrics.

Act for a Workspace User

Select a managed user in the node's Managed User field. Publora operations then include the x-publora-user-id header.

Retry and Rate-Limit Handling

Every operation exposes Request Settings:

  • Maximum Retries: defaults to 3
  • Initial Retry Delay: defaults to 1,000 ms
  • Retry All Errors: disabled by default

The transport retries network failures, HTTP 408, 425, 429, and 5xx responses. It honors Retry-After when supplied and otherwise uses exponential backoff with jitter.

Known Publora limits include:

  • Post-list pages: maximum 100 items
  • X Bookmark sync: one request per 60 seconds
  • X Bookmark export: five requests per 15 minutes
  • Webhooks: maximum 10 per user
  • LinkedIn analytics: results may be cached by Publora for 30 minutes
  • Upload URLs expire; upload binary data immediately after requesting a URL

Plan-specific post, connection, scheduling-horizon, and platform limits are returned by Publora as structured 403 responses.

Error Recovery

  • Enable n8n Continue On Fail to emit a failed item instead of stopping the execution.
  • Use Post > Get Logs to inspect platform publishing attempts.
  • Use Connection > Test before critical publishing workflows.
  • On abandoned media uploads, delete the draft post group or remove the media in Publora.
  • Store webhook secrets immediately. Publora returns them only on creation or regeneration.
  • Check partialData and errors on LinkedIn profile and multi-metric responses.

Troubleshooting

Credential test returns 401

Regenerate or re-copy the Publora API key. Ensure it is not an MCP bearer-token configuration; this node uses the REST x-publora-key header.

Workspace selector returns 403

Workspace API access is not enabled for the key. Contact Publora support.

A connected account is missing from a dropdown

Reconnect the account in Publora, then reopen the node after approximately 60 seconds. The node caches dropdown responses for one minute.

A media post publishes without media

Create it as a draft, finish every upload, and schedule only after the final upload succeeds.

LinkedIn comments with mentions return 403

Use a urn:li:share:* or urn:li:ugcPost:* post ID rather than an activity URN.

X Bookmarks returns 403 or 404

The beta feature must be enabled on a Premium account and an X account must be connected for bookmark access.

Publora returns a 500 for a post ID

Some Publora v1 routes return 500 for malformed MongoDB ObjectIds. The node validates IDs before these calls; use IDs returned by Publora rather than manually constructed values.

API and Documentation Notes

This package was designed against Publora's official API site, official documentation repository, OpenAPI 3.0 schema, endpoint guides, platform guides, Workspace guide, X Bookmarks guide, and MCP tools reference as available on June 14, 2026.

Publora documents three planned LinkedIn feed-retrieval routes:

  • POST /linkedin-posts
  • POST /linkedin-post-comments
  • POST /linkedin-post-reactions

Publora explicitly states that these routes are disabled, unregistered, speculative, and currently return HTTP 404 pending LinkedIn r_member_social approval. They are therefore not presented as working operations. Once Publora enables them, they can be called immediately with API Request and added as first-class operations without changing existing resource values.

The public OpenAPI specification does not yet list X Bookmarks, but Publora's official Premium beta guide documents those working REST routes. They are exposed under the clearly labeled X Bookmark resource.

Backward Compatibility and Migration

  • Node type: publora
  • Credential type: publoraApi
  • Node version: 1
  • REST API version: isolated through the credential Base URL
  • Existing resource and operation values will not be renamed in minor releases
  • New endpoints will be added as operations or resources
  • Breaking field behavior requires a new n8n node version

When Publora releases API v2, create a separate credential Base URL or a future node version. Do not point existing production workflows at a new major API without testing.

Project Structure

n8n-nodes-publora/
|-- credentials/
|   `-- PubloraApi.credentials.ts
|-- nodes/
|   `-- Publora/
|       |-- descriptions/
|       |   |-- admin.ts
|       |   |-- common.ts
|       |   |-- content.ts
|       |   |-- index.ts
|       |   `-- linkedin.ts
|       |-- shared/
|       |   |-- cache.ts
|       |   |-- connections.ts
|       |   |-- constants.ts
|       |   |-- execute.ts
|       |   |-- pagination.ts
|       |   |-- transport.ts
|       |   |-- types.ts
|       |   `-- validation.ts
|       |-- Publora.node.json
|       |-- Publora.node.ts
|       `-- publora.svg
|-- dist/                         # Generated publishable JavaScript and declarations
|-- .gitignore
|-- .prettierrc.js
|-- CHANGELOG.md
|-- eslint.config.mjs
|-- LICENSE
|-- package-lock.json
|-- package.json
|-- README.md
`-- tsconfig.json

Local Development

Requirements:

  • Node.js 20.19 or newer
  • npm
  • A local n8n development environment
git clone https://github.com/publora/n8n-nodes-publora.git
cd n8n-nodes-publora
npm install
npm run lint
npm test
npm run build
npm run dev

npm run dev uses the official @n8n/node-cli development runner.

Build

npm install
npm run build

Compiled credentials, node code, metadata, and the SVG icon are written to dist/.

Package Verification

Before publishing:

npm run lint
npm test
npm run build
npm pack --dry-run

Inspect the dry-run file list and confirm only dist, README.md, LICENSE, and package metadata are included.

Publishing to npm and the n8n Registry

  1. Replace repository and maintainer metadata if publishing from a different repository.
  2. Confirm the package name is available on npm.
  3. Run all verification commands.
  4. Authenticate with npm using an account with publishing rights.
  5. Publish:
npm publish --access public
  1. Install the published package in a clean n8n instance.
  2. Verify credentials, dynamic dropdowns, a read operation, and a write operation.
  3. Submit the package for n8n community-node verification through n8n's current community node publishing process.

The n8n-community-node-package keyword, n8n manifest, strict mode, compiled node path, compiled credential path, icon, and metadata required for discovery are included.

FAQ

Does this node connect social accounts?

Publora's REST API does not connect normal accounts programmatically. Connect them through the Publora dashboard. Workspace users can receive a generated connection URL.

Can it publish immediately?

Publora v1 treats a past scheduled time as the current time. Prefer an explicit near-future UTC timestamp so workflow intent is clear.

Does it support all Publora platforms?

Yes. Connected account IDs are loaded dynamically. Publora currently documents X, LinkedIn, Instagram, Threads, TikTok, YouTube, Facebook, Bluesky, Mastodon, Telegram, and limited/planned Pinterest behavior.

Does it support n8n AI tools?

Yes. The node is marked usableAsTool. The standard REST credential is still required.

Why is there a custom API request resource?

It provides controlled forward compatibility inside the configured Publora API base URL without weakening authentication, retry, Workspace, or error handling.

Is this an official Publora or n8n node?

It is a community node package. Consult the package repository and npm publisher identity for current ownership and support status.

License

MIT