n8n-nodes-publora
v1.0.1
Published
Production-ready n8n community node for the complete Publora REST API
Downloads
21
Maintainers
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 Failsupport - 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:
- Create a draft without
scheduledTime. - Upload all media.
- 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 eitherresponseorerror
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
- Open Settings > Community Nodes.
- Select Install.
- Enter
n8n-nodes-publora. - Confirm the installation.
npm
From the n8n installation directory:
npm install n8n-nodes-publoraRestart 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
- Create or sign in to a Publora account.
- Connect social accounts in the Publora dashboard.
- Open the API section and generate an API key.
- In n8n, create a Publora API credential.
- Paste the key into API Key.
- Keep Base URL set to
https://api.publora.com/api/v1. - Test the credential.
The credential sends:
x-publora-key: YOUR_API_KEYAPI keys should be stored only in n8n credentials. Do not place them in workflow fields.
Examples
Schedule a Text Post
- Add a Publora node.
- Select Post > Create.
- Enter the content.
- Select one or more connected accounts.
- Set a scheduled time.
Publish a Post With Media
- Use Post > Create with no scheduled time.
- Pass the returned
postGroupIdto Media > Upload Binary. - Set the input binary field, normally
data. - 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 3Initial Retry Delay: defaults to 1,000 msRetry 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
partialDataanderrorson 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-postsPOST /linkedin-post-commentsPOST /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.jsonLocal 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 devnpm run dev uses the official @n8n/node-cli development runner.
Build
npm install
npm run buildCompiled 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-runInspect the dry-run file list and confirm only dist, README.md, LICENSE, and package
metadata are included.
Publishing to npm and the n8n Registry
- Replace repository and maintainer metadata if publishing from a different repository.
- Confirm the package name is available on npm.
- Run all verification commands.
- Authenticate with npm using an account with publishing rights.
- Publish:
npm publish --access public- Install the published package in a clean n8n instance.
- Verify credentials, dynamic dropdowns, a read operation, and a write operation.
- 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
