n8n-nodes-upload-post 0.1.15 → 0.1.17
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
|
@@ -29,26 +29,97 @@ To use this node, you need to configure the Upload Post API credentials:
|
|
|
29
29
|
|
|
30
30
|
## Operations
|
|
31
31
|
|
|
32
|
-
The node provides the following operations:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
32
|
+
The node provides the following operations grouped for clarity:
|
|
33
|
+
|
|
34
|
+
### Upload Actions
|
|
35
|
+
- **Upload Photo(s)**: Upload one or more photos to supported platforms.
|
|
36
|
+
- Supports file uploads and photo URLs.
|
|
37
|
+
- Common parameters: User Identifier, Platform(s), Title, Description (optional), Photos (Files or URLs), Scheduled Date (optional).
|
|
38
|
+
- Title/Description overrides per platform: set `[platform]_title` and `[platform]_description` to override the generic fields (e.g., `instagram_title`, `youtube_description`).
|
|
39
|
+
- Platform-specific parameters are available for LinkedIn, Facebook, TikTok, Instagram, and Pinterest.
|
|
40
|
+
- Pinterest: requires selecting a Board via the dynamic selector (see Selectors below).
|
|
41
|
+
- **Upload Video**: Upload a single video to supported platforms.
|
|
42
|
+
- Supports file uploads and video URLs.
|
|
43
|
+
- Common parameters: User Identifier, Platform(s), Title, Description (optional), Video (File or URL), Scheduled Date (optional).
|
|
44
|
+
- Title/Description overrides per platform supported as arriba.
|
|
45
|
+
- YouTube: supports custom thumbnail via URL or binary (YouTube Thumbnail).
|
|
46
|
+
- Platform-specific parameters are available for LinkedIn, Facebook, TikTok, Instagram, YouTube, Threads, X (Twitter), and Pinterest.
|
|
47
|
+
- Pinterest: requires selecting a Board via the dynamic selector (see Selectors below).
|
|
48
|
+
- **Upload Text**: Upload a text-based post to supported platforms.
|
|
49
|
+
- Common parameters: User Identifier, Platform(s), Title (used as content for most platforms), Scheduled Date (optional).
|
|
50
|
+
- Facebook: supports `Facebook Link` to attach a URL with link preview.
|
|
51
|
+
- Platform-specific parameters are available for LinkedIn, Facebook, Threads, and X (Twitter).
|
|
52
|
+
|
|
53
|
+
### Status & History Actions
|
|
54
|
+
- **Get Upload Status**: Check the status/result of an async upload by `request_id`.
|
|
55
|
+
- Parameters: Request ID.
|
|
56
|
+
- **Get Upload History**: List past uploads.
|
|
57
|
+
- Parameters: Page (default 1), Limit (default 20). Limit can be 20, 50, or 100.
|
|
58
|
+
- **Get Analytics**: Retrieve aggregated analytics for uploads.
|
|
59
|
+
- Optional filters: From Date, To Date, User Filter, Platforms.
|
|
60
|
+
|
|
61
|
+
### Scheduled Posts
|
|
62
|
+
- **List Scheduled Posts**: Lists future scheduled jobs.
|
|
63
|
+
- **Cancel Scheduled Post**: Cancels a scheduled job by its Job ID.
|
|
64
|
+
- **Edit Scheduled Post**: Updates a scheduled job (e.g., new scheduled date/time).
|
|
65
|
+
- Tip: You can schedule any Upload action by providing the `Scheduled Date` during upload.
|
|
66
|
+
|
|
67
|
+
### Platform Selectors (Dynamic)
|
|
68
|
+
- Facebook Pages: pick the Page from a dynamic list, or enter an ID via expression. Backed by the API endpoint documented at https://docs.upload-post.com/api/get-facebook-pages
|
|
69
|
+
- LinkedIn Pages: pick the Organization Page from a dynamic list, or enter an ID via expression. Backed by the API endpoint documented at https://docs.upload-post.com/api/get-linkedin-pages
|
|
70
|
+
- Pinterest Boards: pick the Board from a dynamic list, or enter an ID via expression. Backed by the API endpoint documented at https://docs.upload-post.com/api/get-pinterest-boards
|
|
71
|
+
|
|
72
|
+
### User Actions (incl. JWT for custom platform integration)
|
|
73
|
+
- ⚠️ JWT endpoints are only needed if you integrate Upload-Post into your own platform and want end-users to link their social accounts via your UI.
|
|
74
|
+
- **List Users**: Retrieve Upload-Post profiles created under your API key.
|
|
75
|
+
- **Create User**: Create a new user profile.
|
|
76
|
+
- Parameters: New User Identifier (username).
|
|
77
|
+
- **Delete User**: Delete an existing user profile.
|
|
78
|
+
- Parameters: Username to delete.
|
|
79
|
+
- **Generate JWT (for platform integration)**: Generate a connection URL (JWT) for a given profile so the user can link social accounts.
|
|
80
|
+
- Parameters: User Identifier (username). Optional branding parameters may apply server-side.
|
|
81
|
+
- **Validate JWT (for platform integration)**: Validate a connection token if you need to check it from your backend.
|
|
82
|
+
- Parameters: JWT.
|
|
49
83
|
|
|
50
84
|
Refer to the [Upload Post API Documentation](https://docs.upload-post.com) for detailed information on parameters and platform requirements.
|
|
51
85
|
|
|
86
|
+
### Waiting for asynchronous uploads
|
|
87
|
+
|
|
88
|
+
Some uploads are processed asynchronously and the API returns immediately with a `request_id`. This happens when:
|
|
89
|
+
- You enable "Upload Asynchronously" in the node, or
|
|
90
|
+
- The upload takes longer than ~59 seconds and the API switches to async mode automatically.
|
|
91
|
+
|
|
92
|
+
You have two ways to handle this in n8n:
|
|
93
|
+
|
|
94
|
+
1) Best-effort polling inside the node
|
|
95
|
+
- In Upload operations (Photos/Video/Text), enable "Wait for Completion".
|
|
96
|
+
- Configure "Poll Interval (Seconds)" (default 10) and "Timeout (Seconds)".
|
|
97
|
+
- The node sleeps between checks (using n8n's `sleep`) and calls `GET /api/uploadposts/status?request_id=...` until success/failure or timeout.
|
|
98
|
+
- Note: This does not guarantee completion in hosted environments with strict execution limits.
|
|
99
|
+
|
|
100
|
+
2) Workflow-level polling (recommended for reliability)
|
|
101
|
+
- Use the Upload operation, read `request_id` from its output.
|
|
102
|
+
- Add a Wait node (e.g., 10s), then call "Get Upload Status" passing the `request_id`.
|
|
103
|
+
- Loop with an IF node until the status is final (success/failed) or a max attempts limit is reached.
|
|
104
|
+
|
|
105
|
+
### Notable platform-specific options
|
|
106
|
+
- Facebook: Media Type (Reels/Stories); Page picker; optional link for Text.
|
|
107
|
+
- LinkedIn: Visibility; Organization picker; optional description override.
|
|
108
|
+
- TikTok: Post Mode (Direct Post / Media Upload), privacy, duet/comment/stitch toggles.
|
|
109
|
+
- Instagram: Media type (Image/Stories/Reels), video options (cover, audio, tags, etc.).
|
|
110
|
+
- YouTube: Thumbnail via URL or file; description override; tags/category/privacy and related flags.
|
|
111
|
+
- Threads: Description override for video; thread-related handling on backend.
|
|
112
|
+
- Pinterest: Board picker; optional link; cover image options (URL/base64/key frame).
|
|
113
|
+
|
|
114
|
+
### Title & Description overrides
|
|
115
|
+
- `Title / Main Content`: generic title used across platforms.
|
|
116
|
+
- Platform title overrides: `[platform]_title` (e.g., `x_title`, `pinterest_title`).
|
|
117
|
+
- `Description (Optional)`: generic description used across platforms when supported.
|
|
118
|
+
- Platform description overrides: `[platform]_description` (e.g., `youtube_description`, `linkedin_description`).
|
|
119
|
+
|
|
120
|
+
Related docs:
|
|
121
|
+
- Profiles & JWT reference (context): [User Profiles API](https://docs.upload-post.com/api/user-profiles#create-user-profile)
|
|
122
|
+
|
|
52
123
|
## Resources
|
|
53
124
|
|
|
54
125
|
* [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
1
|
+
import { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodePropertyOptions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
2
|
export declare class UploadPost implements INodeType {
|
|
3
3
|
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
loadOptions: {
|
|
6
|
+
getFacebookPages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
|
+
getLinkedinPages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
8
|
+
getPinterestBoards(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
4
11
|
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
12
|
}
|