Zapier Integration Guide
Connect Publora to 5,000+ apps using Zapier's Webhooks feature.
Overview
While Publora doesn't have a native Zapier app yet, you can easily integrate using Zapier's Webhooks by Zapier action to call the Publora API directly.
Prerequisites
- Zapier account (Free tier works)
- Publora API key from app.publora.com
- At least one social account connected in Publora
Example 1: Post When New Blog Published
Automatically post to social media when you publish a new blog post in WordPress.
Step 1: Create a New Zap
- Go to zapier.com and click "Create Zap"
- Search for WordPress as your trigger app
- Select New Post as the trigger event
- Connect your WordPress site
- Test the trigger
Step 2: Add Webhooks Action
- Click "+" to add an action
- Search for Webhooks by Zapier
- Select POST as the action event
Step 3: Configure the Webhook
URL:
https://api.publora.com/api/v1/create-postPayload Type: json
Data:
{
"content": "New blog post: {{title}} - {{link}}",
"platforms": ["twitter-YOUR_PLATFORM_ID", "linkedin-YOUR_PLATFORM_ID"],
"scheduledTime": "{{Publish Time ISO (at least 5 minutes ahead)}}"
}Headers:
| Key | Value |
|---|---|
x-publora-key |
YOUR_API_KEY |
Content-Type |
application/json |
For recipes using {{Publish Time ISO (at least 5 minutes ahead)}}, add a Formatter → Date/Time step before the Webhook and map its future ISO 8601 output into that field.
Step 4: Test and Enable
- Click "Test action" to verify it works
- Turn on your Zap
Example 2: Schedule Posts from Google Sheets
Use a Google Sheet as your content calendar and automatically schedule posts.
Google Sheet Format
| A (Content) | B (Platforms) | C (Schedule Time) | D (Posted) |
|---|---|---|---|
| Monday motivation! | twitter-123;linkedin-456 | <FUTURE_ISO_8601_UTC> |
|
| New feature alert | twitter-123 | <FUTURE_ISO_8601_UTC> |
Zap Configuration
Trigger: Google Sheets → New Row
Action: Webhooks by Zapier → POST
URL:
https://api.publora.com/api/v1/create-postData:
{
"content": "{{Content}}",
"platforms": "{{Platforms}}".split(";"),
"scheduledTime": "{{Schedule Time}}"
}Note: For the platforms array, you may need to use Zapier's Formatter to split the semicolon-separated values.
Using Formatter for Platforms Array
- Add a Formatter by Zapier step before the Webhook
- Choose Text → Split Text
- Input:
{{Platforms}} - Separator:
; - Use the output in your webhook as the platforms value
Example 3: Post RSS Feed Updates
Automatically share new RSS feed items to social media.
Zap Configuration
Trigger: RSS by Zapier → New Item in Feed
Action: Webhooks by Zapier → POST
URL:
https://api.publora.com/api/v1/create-postData:
{
"content": "📰 {{Title}}\n\n{{Description}}\n\nRead more: {{Link}}",
"platforms": ["twitter-123456789", "linkedin-ABC123DEF"],
"scheduledTime": "{{Publish Time ISO (at least 5 minutes ahead)}}"
}Example 4: Post from Slack Command
Let your team schedule social posts directly from Slack.
Zap Configuration
Trigger: Slack → New Message Posted to Channel
Filter: Message starts with /post
Action 1: Formatter → Extract text after /post
Action 2: Webhooks by Zapier → POST
URL:
https://api.publora.com/api/v1/create-postData:
{
"content": "{{Extracted Text}}",
"platforms": ["twitter-123456789"],
"scheduledTime": "{{Publish Time ISO (at least 5 minutes ahead)}}"
}Example 5: Weekly Scheduled Post
Post a weekly reminder every Monday at 9 AM.
Zap Configuration
Trigger: Schedule by Zapier → Every Week (Monday at 9 AM)
Action: Webhooks by Zapier → POST
URL:
https://api.publora.com/api/v1/create-postData:
{
"content": "Happy Monday! What are you working on this week? Share in the comments! 👇",
"platforms": ["twitter-123456789", "linkedin-ABC123DEF", "threads-987654321"],
"scheduledTime": "{{Publish Time ISO (at least 5 minutes ahead)}}"
}Handling Responses
Success Response
Publora returns:
{
"success": true,
"postGroupId": "67a1b2c3d4e5f6a7b8c9d0e1",
"scheduledTime": "{{Publish Time ISO (effective)}}"
}You can use Zapier's Paths or Filter to handle this:
- Continue workflow if
successistrue - Send alert if
successisfalse
Error Handling
Add a Paths step after the webhook:
Path A: If success equals true
- Continue with success actions (e.g., update spreadsheet, send Slack notification)
Path B: If success does not equal true
- Send error notification via email or Slack
- Log to error spreadsheet
Finding Your Platform IDs
To get your platform connection IDs for Zapier:
Option 1: Use the API
curl https://api.publora.com/api/v1/platform-connections \
-H "x-publora-key: YOUR_API_KEY"Option 2: Zapier Webhook GET
Create a simple Zap:
- Trigger: Schedule by Zapier → Every Day
- Action: Webhooks by Zapier → GET
- URL:
https://api.publora.com/api/v1/platform-connections - Headers:
x-publora-key: YOUR_API_KEY
Run it once and check the response to get your platform IDs.
Tips and Best Practices
- Test First: Always use Zapier's test feature before enabling a Zap
- Rate Limits: Add a 1-second delay between multiple webhook calls
- Error Notifications: Set up email alerts for failed Zaps
- Content Length: Be mindful of platform character limits (Twitter: 280, LinkedIn: 3000, etc.)
- Scheduling: Use a future ISO 8601 UTC value for
scheduledTime(for example,<FUTURE_ISO_8601_UTC>)
Common Issues
"Invalid API Key"
- Check that your API key is correctly entered in the headers
- Ensure there are no extra spaces
"Invalid Platform ID"
- Verify your platform IDs using the GET /platform-connections endpoint
- Platform IDs look like
twitter-123456789orlinkedin-ABC123DEF
"Scheduled time is in the past" (SCHEDULED_TIME_IN_PAST)
- Zaps are the usual victim: a trigger fires, the Zap queues behind a rate limit, and the
scheduledTimeyour formatter computed is already stale by the time the POST lands. - Under 5 minutes late, Publora clamps the post to server time and returns
200withwarnings: [{ code: "SCHEDULED_TIME_COERCED", requested, effective }]— the post goes out now, not at the time you asked for. Checkeffectiveif the exact minute matters. - Five minutes or more late is clamped and warned today, and is scheduled to return
400 SCHEDULED_TIME_IN_PASTfrom 2026-08-25 unless production configuration overrides that date either way. - Make sure your
scheduledTimeis in the future, and use UTC (ends withZ) — Zapier'sFormatter > Date/Timedefaults to your account timezone. - Add a buffer: schedule at least 2–5 minutes ahead so queueing delay can't push you into the past.
- The
serverTimefield in a400is Publora's authoritative clock — compare it to your Zap's computed time to confirm drift is the cause.
Publora — Social media API with free tier, paid plans from $2.99/account