n8n-nodes-upload-post 0.1.48 → 0.1.52

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
@@ -36,7 +36,7 @@ The node provides the following operations grouped for clarity:
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
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: Facebook, Instagram, LinkedIn, Pinterest, TikTok, X (Twitter).
39
+ - Platform-specific parameters available for: Discord, Facebook, Instagram, LinkedIn, Pinterest, Telegram, TikTok, 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: Facebook, Instagram, LinkedIn, Pinterest, Threads, TikTok, X (Twitter), YouTube.
50
+ - Platform-specific parameters available for: Discord, Facebook, Instagram, LinkedIn, Pinterest, Telegram, Threads, TikTok, 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: Facebook, LinkedIn, Reddit, Threads, X (Twitter).
61
+ - Platform-specific parameters available for: Discord, Facebook, LinkedIn, Reddit, Telegram, Threads, 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.
@@ -70,8 +70,18 @@ The node provides the following operations grouped for clarity:
70
70
  - Parameters: Request ID.
71
71
  - **Get Upload History**: List past uploads.
72
72
  - Parameters: Page (default 1), Limit (default 20). Limit can be 20, 50, or 100.
73
- - **Get Analytics**: Retrieve aggregated analytics for uploads.
74
- - Optional filters: From Date, To Date, User Filter, Platforms.
73
+ - **Get Analytics**: Retrieve aggregated profile analytics.
74
+ - Parameters: Profile Username, Platforms (required — at least one), Facebook Page ID (required when Facebook is selected), LinkedIn Page URN (optional).
75
+ - Supported: Facebook, Instagram, LinkedIn, Pinterest, Reddit, Threads, TikTok, X, YouTube. Analytics are not available for Bluesky, Discord, Google Business or Telegram.
76
+ - **Get Post Analytics**: Per-post metrics for an upload, by `request_id`.
77
+ - Parameters: Request ID, Platform (optional filter).
78
+ - **Get Post Analytics by Platform ID**: Per-post metrics for a post published outside Upload-Post.
79
+ - Parameters: Platform Post ID, Platform, Profile Username.
80
+ - **Get Total Impressions**: Impressions aggregated across connected platforms.
81
+ - Parameters: Profile Username, Period or Start/End Date, Platforms, Breakdown.
82
+ - **Get Platform Metrics**: Lists which metrics each platform exposes.
83
+ - **Get Reddit Detailed Posts**: Detailed Reddit posts with full media information.
84
+ - Parameters: Profile Username.
75
85
 
76
86
  ### Scheduled Posts
77
87
  - **List Scheduled Posts**: Lists future scheduled jobs.
@@ -102,7 +112,9 @@ Refer to the [Upload Post API Documentation](https://docs.upload-post.com) for d
102
112
 
103
113
  Some uploads are processed asynchronously and the API returns immediately with a `request_id`. This happens when:
104
114
  - You enable "Upload Asynchronously" in the node, or
105
- - The upload takes longer than ~59 seconds and the API switches to async mode automatically.
115
+ - The upload exceeds the server's synchronous wait window, in which case the API switches to async mode automatically.
116
+
117
+ Leaving "Upload Asynchronously" enabled is recommended. Turning it off holds the HTTP connection open for the whole upload, which makes a proxy or execution timeout — and therefore a retry — more likely.
106
118
 
107
119
  You have two ways to handle this in n8n:
108
120
 
@@ -117,6 +129,14 @@ You have two ways to handle this in n8n:
117
129
  - Add a Wait node (e.g., 10s), then call "Get Upload Status" passing the `request_id`.
118
130
  - Loop with an IF node until the status is final (success/failed) or a max attempts limit is reached.
119
131
 
132
+ ### Duplicate posts and retries
133
+
134
+ Every upload sends an `Idempotency-Key`. The API collapses two uploads carrying the same key within a 24-hour window into a single post, so a retried upload does not publish twice.
135
+
136
+ The key is derived from the workflow execution, the node and the item index, so it stays the same when n8n's "Retry On Fail" re-runs the node, and changes when you genuinely start a new execution. Set the "Idempotency Key" field yourself only if you drive retries from outside n8n and need to control the key.
137
+
138
+ If you saw duplicate posts on an older version of this node, upgrade: versions before 0.1.51 sent no key at all, and a node-level retry after a network timeout would publish the post a second time.
139
+
120
140
  ### Platform-Specific Options
121
141
 
122
142
  #### Facebook