Package Information
Documentation
n8n-nodes-postproxy
Community n8n node for the PostProxy API.
PostProxy provides a unified API to publish and schedule posts across multiple social media platforms (X/Twitter, Facebook, Instagram, etc.) with built-in retries, quota handling, and per-account status tracking.
What is PostProxy?
PostProxy is a unified API that simplifies social media content publishing by:
- Unified API: Post to multiple platforms (X, Facebook, Instagram, etc.) through a single interface
- Built-in Scheduling: Schedule posts for future publishing with automatic timezone handling
- Error Management: Automatic retries and quota management - PostProxy handles rate limits and retries automatically
- Per-Account Status Tracking: Get detailed status for each account when publishing to multiple accounts
Features
- List Profile Groups: Get all your profile groups to organize your social media profiles
- List Profiles: Get all connected social media profiles across all platforms with pagination
- Get Profile Details: Get detailed information about a specific profile (including
expires_atandpost_count) - Create Posts: Publish posts to multiple profiles via profile groups
- Get Post Details: Get detailed information about a specific post with platform-specific status and insights
- List Posts: Get all your posts with full pagination support (
page,per_page,total) - Update Posts: Update post content and scheduled time
- Delete Posts: Delete posts by ID
- Media Support: Attach images or videos to your posts via URLs
- Platform Parameters: Pass platform-specific parameters (e.g., alt text, captions) when creating posts
- Scheduled Publishing: Schedule posts for specific dates and times
- Post Status Tracking: Track post status (
pending,processed,draft) and platform-specific statuses - Insights: Access platform insights (impressions, engagement) when available
- Error Handling: Comprehensive error handling with request ID logging
Requirements
- n8n v1.0.0 or higher
- PostProxy API key (see Getting Started)
Installation
For n8n Cloud or Self-hosted
npm install n8n-nodes-postproxy
After installation, restart n8n. The PostProxy node will appear in the node list under "Transform" category.
For n8n Desktop
- Open n8n Desktop
- Go to Settings → Community Nodes
- Click "Install a community node"
- Enter:
n8n-nodes-postproxy - Click "Install"
Getting Started
1. Get Your PostProxy API Key
- Sign up at postproxy.dev
- Navigate to your account settings
- Generate or copy your API key
- For detailed instructions, see the PostProxy Authentication documentation
2. Configure Credentials in n8n
- Add a PostProxy node to your workflow
- Click on "Credential to connect with" → "Create New Credential"
- Enter your PostProxy API key
- Save the credential
3. Use the Node
List Profile Groups
- Add a PostProxy node
- Select Resource: Profile Group
- Select Operation: List Profile Groups
- Execute the node to see all your profile groups
List Profiles
- Add a PostProxy node
- Select Resource: Profile
- Select Operation: List Profiles
- Execute the node to see all connected social media profiles
Create a Post
- Add a PostProxy node
- Select Resource: Post
- Select Operation: Create
- Choose Publish Type:
- Publish now: Post immediately
- Schedule: Set a specific date and time
- Fill in:
- Profile Group: Select the profile group to publish to
- Profile: Select one or more profiles from the group
- Content: The text content of your post
- Media URLs (optional): URLs of images or videos to attach
- Publish At (if scheduled): The date and time to publish
- Execute the node
Get Post Details
- Add a PostProxy node
- Select Resource: Post
- Select Operation: Get Post Details
- Enter the Post ID
- Execute to get detailed information about the post
List Posts
- Add a PostProxy node
- Select Resource: Post
- Select Operation: List Posts
- Choose whether to Return All posts or set a Limit
- Execute to get a list of your posts
Examples
Example 1: Simple Post
Create a simple text post to profiles in a group:
{
"resource": "post",
"operation": "create",
"publishType": "publish_now",
"profileGroup": "zbNFmz",
"profiles": ["yqWUvR", "y7dU5N"],
"content": "Hello from n8n! 🚀",
"media": []
}
Note: IDs are now alphanumeric strings (e.g., "zbNFmz", "yqWUvR"), not numeric.
Example 2: Scheduled Post with Media
Schedule a post with an image for multiple profiles:
{
"resource": "post",
"operation": "create",
"publishType": "schedule",
"publish_at": "2024-12-25T10:00:00Z",
"profileGroup": "zbNFmz",
"profiles": ["yqWUvR"],
"content": "Check out our new product!",
"media": ["https://example.com/image.jpg"]
}
Example 3: Post with Platform Parameters
Create a post with platform-specific parameters:
{
"resource": "post",
"operation": "create",
"publishType": "publish_now",
"profileGroup": "zbNFmz",
"profiles": ["yqWUvR"],
"content": "Check out our new product!",
"media": ["https://example.com/image.jpg"],
"platformParams": "{\"alt_text\": \"Product image description\"}"
}
Example 4: List Posts with Pagination
Get a list of your posts with pagination:
{
"resource": "post",
"operation": "getMany",
"returnAll": false,
"limit": 10,
"page": 0,
"per_page": 10
}
Response includes:
total: Total number of postspage: Current page number (0-indexed)per_page: Items per pagedata: Array of posts with fields:id,content,status,draft,scheduled_at,created_at,platforms(withnetwork,status,params,attempted_at,insights)
Example 5: Get Post Details
Get details of a specific post:
{
"resource": "post",
"operation": "get",
"postId": "NWLtbA",
"simplify": true
}
Response fields:
id: Post ID (alphanumeric string)content: Post contentstatus: Post status (pending,processed, etc.)draft: Whether post is a draftscheduled_at: Scheduled publish time (if scheduled)created_at: Creation timestampplatforms: Array with platform-specific information includingnetwork,status,params,attempted_at, andinsights
Understanding Profile Groups
PostProxy organizes your social media profiles into groups. This allows you to:
- Publish to multiple platforms at once by selecting a group
- Organize profiles by campaign, client, or purpose for better management
- Easily manage which profiles receive each post with granular control
When creating a post, you first select a Profile Group, then choose one or more Profiles from that group. This two-step approach gives you flexibility while maintaining organization.
For more details on selecting profiles, see Choosing Account IDs.
Workflow Examples
RSS Feed → PostProxy
- RSS Feed Read node: Fetch latest articles
- Code node: Extract title and link
- PostProxy node (List Profile Groups): Get your profile groups
- PostProxy node (Create Post): Create post with article title and link, selecting profile group and profiles
Airtable → PostProxy
- Airtable Trigger node: Watch for new rows
- PostProxy node (Create Post): Create post from Airtable data
- Store profile group ID in Airtable
- Map profile selections from Airtable columns
- Airtable Update node: Mark row as published with post ID
Webhook Queue → Scheduled Posts
- Webhook node: Receive post requests (including profile group and profile IDs)
- PostProxy node (Create Post): Create scheduled post with data from webhook
- Response node: Return post status and post ID
Profile Discovery Workflow
- PostProxy node (List Profile Groups): Get all profile groups
- PostProxy node (List Profiles): Get all available profiles
- Code node: Filter profiles by platform (e.g., only Twitter/X profiles)
- PostProxy node (Create Post): Create posts for filtered profiles
For more detailed examples, see the examples/ directory.
Documentation
- Choosing Account IDs - How to select the right accounts for your posts
- Scheduling Posts - Understanding immediate vs scheduled publishing
Rate Limits and Processing
PostProxy automatically manages rate limits and retries for you. When you create a post:
- If rate limits are hit, PostProxy will queue the post and publish it when quota is available
- Posts may show as "pending" or "processing" initially - this is normal
- PostProxy handles retries automatically, so you don't need to worry about temporary failures
The node returns the full API response, including per-platform statuses in the platforms array, so you can see the status of each platform's publication.
Post Status Values
pending: Post is queued and waiting to be publishedprocessed: Post has been processed (may be published or failed)draft: Post is saved as a draft
Platform Status Values (in platforms array)
pending: Platform-specific publication is pendingpublished: Successfully published to the platformfailed: Publication failed (check error details if available)
Response Structure
Posts now include:
platforms: Array of platform-specific information withnetwork,status,params,attempted_at, andinsights(when available)draft: Boolean indicating if post is a draftstatus: Overall post statusinsights: Platform insights (impressions, engagement) when available from the platform
Error Handling
The node provides clear error messages for common issues:
- Invalid API Key: Clear error message with request ID
- Network Issues: Helpful messages for connection problems
- API Errors: Detailed error messages from PostProxy API (4xx/5xx)
- Request Timeouts: Automatic timeout handling (30 seconds)
All errors include request IDs when available for easier debugging.
Support
- Documentation: PostProxy API Docs
- Issues: Report bugs in the GitHub repository
- SLA: Best effort support
- API Version: Compatible with PostProxy API v1
License
MIT