n8n-nodes-upload-post 0.2.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -35,8 +35,8 @@ The node provides the following operations grouped for clarity:
35
35
  - **Upload Photo(s)**: Upload one or more photos to supported platforms.
36
36
  - Supports file uploads and photo URLs (comma-separated list).
37
37
  - Common parameters: User Identifier, Platform Names or IDs, Title / Main Content, Description (optional), Photos (Files or URLs), Scheduled Date (optional).
38
- - Title/Description overrides per platform: `instagram_title`, `facebook_title`, `tiktok_title`, `linkedin_title`, `x_title`, `youtube_title`, `pinterest_title`, `threads_title`.
39
- - Platform-specific parameters available for: Discord, Facebook, Instagram, LinkedIn, Pinterest, Telegram, TikTok, X (Twitter).
38
+ - Title/Description overrides per platform, including Bluesky, Slack, Mastodon, Nostr, Lemmy, Dev.to, Hashnode, WordPress, Whop and Listmonk.
39
+ - Platform-specific parameters available for: Bluesky, Discord, Facebook, Google Business, Instagram, Lemmy, LinkedIn, Mastodon, Pinterest, Reddit, Telegram, Threads, TikTok, WordPress, X (Twitter).
40
40
  - **Pinterest**: Requires Board selection via dynamic selector.
41
41
  - **Instagram**: Media Type (Image/Stories), TikTok: Auto-add music, disable comments, brand content toggles.
42
42
  - **Facebook**: Page selection via dynamic selector.
@@ -47,7 +47,7 @@ The node provides the following operations grouped for clarity:
47
47
  - Supports file uploads and video URLs.
48
48
  - Common parameters: User Identifier, Platform Names or IDs, Title / Main Content, Description (optional), Video (File or URL), Scheduled Date (optional).
49
49
  - Title/Description overrides per platform: `instagram_title`, `facebook_title`, `tiktok_title`, `linkedin_title`, `x_title`, `youtube_title`, `pinterest_title`.
50
- - Platform-specific parameters available for: Discord, Facebook, Instagram, LinkedIn, Pinterest, Telegram, Threads, TikTok, X (Twitter), YouTube.
50
+ - Platform-specific parameters available for: Bluesky, Discord, Facebook, Google Business, Instagram, LinkedIn, Mastodon, Pinterest, Reddit, Telegram, Threads, TikTok, WordPress, X (Twitter), YouTube.
51
51
  - **YouTube**: Custom thumbnail (URL/binary), tags, category, privacy, embeddable, license, public stats, made for kids, synthetic media declaration, geo-restrictions, paid product placement, recording date, default language/audio language.
52
52
  - **Facebook**: Page selection, video state (Published/Draft), media type (Reels/Stories).
53
53
  - **Instagram**: Media type (Reels/Stories), share to feed, collaborators, cover URL, audio name, user tags, location ID, thumb offset.
@@ -58,7 +58,7 @@ The node provides the following operations grouped for clarity:
58
58
 
59
59
  - **Upload Text**: Upload a text-based post to supported platforms.
60
60
  - Common parameters: User Identifier, Platform Names or IDs, Title / Main Content (used as post content), Scheduled Date (optional).
61
- - Platform-specific parameters available for: Discord, Facebook, LinkedIn, Reddit, Telegram, Threads, X (Twitter).
61
+ - Platform-specific parameters available for: Bluesky, Dev.to, Discord, Facebook, Google Business, Hashnode, Lemmy, LinkedIn, Listmonk, Mastodon, Nostr, Reddit, Slack, Telegram, Threads, Whop, WordPress, X (Twitter).
62
62
  - **Facebook**: Page selection, link URL for preview.
63
63
  - **LinkedIn**: Page selection ("Me" for personal profile).
64
64
  - **X (Twitter)**: Reply settings, poll options (2-4 options, 5-10080 min duration), post URL, quote tweet ID, geo place ID, super followers exclusivity, community ID, sharing options, direct message deep link, card URI, long text handling.
@@ -75,6 +75,7 @@ The node provides the following operations grouped for clarity:
75
75
  - Supported: Facebook, Instagram, LinkedIn, Pinterest, Reddit, Threads, TikTok, X, YouTube. Analytics are not available for Bluesky, Discord, Google Business or Telegram.
76
76
  - **Get Post Analytics**: Per-post metrics for an upload, by `request_id`.
77
77
  - Parameters: Request ID, Platform (optional filter).
78
+ - On TikTok, `post_metrics` also carries `retention`, `impression_sources`, `audience_types`, `new_followers`, `reach` and the watch times.
78
79
  - **Get Post Analytics by Platform ID**: Per-post metrics for a post published outside Upload-Post.
79
80
  - Parameters: Platform Post ID, Platform, Profile Username.
80
81
  - **Get Cached Post Analytics**: Replays per-post metrics already fetched, instead of querying the platforms again, so it is not subject to the live analytics rate limit (100 requests / 5 minutes). Only contains posts previously fetched through a live per-post endpoint; there is no background refresh, so captured_at is the last time that post was read live.
@@ -87,6 +88,16 @@ The node provides the following operations grouped for clarity:
87
88
  - **Get Platform Metrics**: Lists which metrics each platform exposes.
88
89
  - **Get Reddit Detailed Posts**: Detailed Reddit posts with full media information.
89
90
  - Parameters: Profile Username.
91
+ - **Get Media**: List published media for a connected network.
92
+ - **Get Google Business Locations**: List locations for a Google Business Profile.
93
+ - **Get TikTok Trending Music / Search TikTok Music / Get TikTok Locations / Get TikTok Publishing Settings**: TikTok discovery helpers (music IDs, location IDs, creator capabilities).
94
+
95
+ ### Post Actions
96
+ - **Retry Post**: Re-enqueue failed platforms of an upload without re-uploading media (`request_id` or `job_id`).
97
+ - **Unpublish Post**: Delete a live post. Not available for Instagram, TikTok or Threads.
98
+ - **Edit Post**: Update caption/metadata on a live post.
99
+ - **Repost**: Repost on LinkedIn or X.
100
+ - **Save Pin**: Save a Pinterest pin to a board.
90
101
 
91
102
  ### Scheduled Posts
92
103
  - **List Scheduled Posts**: Lists future scheduled jobs.
@@ -114,6 +125,33 @@ The node provides the following operations grouped for clarity:
114
125
  - Parameters: JWT token (password field).
115
126
  - The API response is returned as-is; its `profile` object also carries the `ui_labels` map configured for that profile.
116
127
 
128
+ ### Comment Actions
129
+ The comment endpoints are shaped like the rest of the API: **one endpoint per question, with a `platform` parameter** that says which connected network is being asked. There is no endpoint per social network.
130
+ - **Get Post Comments**: Comments on a post from the network given by `Platform` (Instagram, Facebook, YouTube, LinkedIn or TikTok).
131
+ - Parameters: User Identifier, Platform, Post ID or URL, Comment ID (optional).
132
+ - Instagram and Facebook accept the media ID or the post URL, YouTube the video ID, LinkedIn the post URN, TikTok the video ID. TikTok has no URL lookup, so pasting a URL fails with a descriptive error instead of an upstream one.
133
+ - Fill **Comment ID** to get the replies to that comment instead of the top-level comments of the post. It is the same question with one parameter more, not a separate operation.
134
+ - **Comment Action**: Moderate one comment — hide, unhide, like, unlike, pin or unpin it.
135
+ - Parameters: User Identifier, Platform, Comment ID, Action, Post ID (shown only when it is needed).
136
+ - Each action carries its own inverse, so there is no separate toggle: `hide`/`unhide`, `like`/`unlike`, `pin`/`unpin`.
137
+ - **Post ID** is required for `hide`, `unhide`, `pin` and `unpin`, and is never sent for `like`/`unlike` — the API rejects a like that carries a post. The node checks it before the request leaves n8n.
138
+ - TikTok is the network that answers this today, and its profile needs the `comments` capability (see the `capabilities` array returned by **List Users**); an account connected before that capability existed has to reconnect TikTok.
139
+ - **Private Reply to Comment**: DM the author of a comment. Instagram only.
140
+ - **Public Reply to Comment**: Public reply under the comment. Instagram only.
141
+ - **Create Comment**: Top-level comment or reply (Instagram replies only; TikTok always needs the video ID).
142
+ - **Delete Comment**: Delete a comment you own or that is on your post.
143
+
144
+ ### Insight Actions
145
+ Two more questions with a `platform` parameter, not two TikTok endpoints. A network that cannot answer a question replies with `platform_not_supported` and the list of the ones that can; today that network is TikTok, whose profile needs the `profile_analytics` capability (see the `capabilities` array returned by **List Users**).
146
+ - **Get Audience**: Who follows the profile and when they are around — audience countries, cities, age brackets and genders, followers online per hour, daily followers gained and lost, profile actions and the bio.
147
+ - Parameters: User Identifier, Platform, Start Date, End Date, Benchmark Category (all optional except the first two).
148
+ - Dates are `YYYY-MM-DD`. The window is clamped **by the server**: 60 days at most, and End Date always below today. A wider range is trimmed, not rejected, so the node sends it as typed.
149
+ - Filling **Benchmark Category** adds a `benchmark` object with that niche's averages (comments, engagement rate, follower count and growth, likes, shares, video count and views) next to the account's own numbers. The 25 accepted values come back in `benchmark_categories` on every response, so filling a picker needs no extra call.
150
+ - Use this to know *who* the audience is and *when* to post; use **Get Post Analytics** for how a given post did.
151
+ - **Get Suggestions**: What to write about — hashtags or the searches people run around a seed word.
152
+ - Parameters: User Identifier, Platform, Type (`hashtags` / `keywords`), Query, Country Code, Language.
153
+ - `Type = hashtags` answers with `hashtags: [{ name, view_count }]`; `Type = keywords` answers with `keywords: [...]`. One endpoint, told apart by `type`, not by operation.
154
+
117
155
  Refer to the [Upload Post API Documentation](https://docs.upload-post.com) for detailed information on parameters and platform requirements.
118
156
 
119
157
  ### Waiting for asynchronous uploads
@@ -268,6 +306,10 @@ If you saw duplicate posts on an older version of this node, upgrade: versions b
268
306
  - **`Description (Optional)`**: Generic description used for LinkedIn, Facebook, YouTube, Pinterest, TikTok when supported.
269
307
  - **Platform Description Overrides**: `[platform]_description` (e.g., `youtube_description`, `linkedin_description`).
270
308
  - Available for: facebook, tiktok, linkedin, youtube, pinterest
309
+ - **`First Comment`**: Generic first comment posted right after publishing.
310
+ - **Platform First Comment Overrides**: `[platform]_first_comment` (e.g., `instagram_first_comment`, `tiktok_first_comment`).
311
+ - Available for: instagram, facebook, x, threads, youtube (video only), reddit, bluesky, linkedin, tiktok (media only).
312
+ - TikTok needs the `comments` capability on the profile's TikTok account.
271
313
 
272
314
  **⚠️ Runtime Validations**: The node performs automatic validations at runtime including poll constraints, mutually exclusive field checks, and platform-specific requirements. Invalid configurations will throw descriptive error messages.
273
315