publora

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

Package Information

Released: 4 mo ago
Downloads: 19 weekly / 363 monthly
Latest Version: 1.0.1
Author: Publora Community

Documentation

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

Discussion