Automation platform — native first, API always on
Deliver deep, no-extra-cost integrations for everyday workflows. Go further with a developer-grade REST API, signed webhooks, idempotency, and an OpenAPI spec. Zapier/n8n/Make remain optional via our API.
What’s included
Native Integrations (v1)
- Google Sheets — OAuth connect, column mapping, auto-sync rows → drafts/scheduled posts.
- Notion — database connect, property mapping, sync statuses.
- Airtable — base/table connect, field mapping, incremental sync.
- Slack — approvals, publish/failed alerts, weekly summaries.
- Discord — publish/failed alerts to selected channels.
- Incoming Webhooks — push content into Postly from any system.
- Outgoing Webhooks — receive events (post.created / scheduled / published / failed).
- UTM Builder — consistent tracking for all outbound links.
- Google Calendar/Calendly (optional) — campaign reminders/visibility.
No extra cost. Plug-and-play for non-technical teams.
Developer Layer (always on)
- Public REST API — versioned endpoints, pagination, rate-limit headers.
- Webhooks — signed, retries, and test events.
- Idempotency — safe retries via
Idempotency-Key. - OpenAPI Spec — import to Postman/SDK generators.
- Sample Scripts/SDK Snippets — quick starts for common jobs.
No-Code (secondary)
If you prefer, wire up Zapier, n8n, or Make using our API and webhooks. These are supported as well.
- Trigger publishes from Sheets/Airtable.
- Route approvals and failure alerts.
- Sync statuses across tools.
How Postly automations work
The flow below is a conceptual mockup. Actual field names and toggles may vary by workspace and will be reflected in your dashboard.
- 1
Connect Sheets / Notion / Airtable (OAuth). Map fields to Postly (caption, media URL, schedule, status).
- 2
Choose sync behavior: new rows only, or incremental sync on “Status = Ready”.
- 3
Postly creates drafts/schedules. Send approval alerts to Slack/Discord via outgoing webhooks.
- 4
Publish. Receive webhook events (created/scheduled/published/failed). Track with UTM Builder.
Setup mini-guides
These steps are conceptual mock guides for the upcoming native integrations. The final UI and field mapping will be confirmed in the dashboard and documented at docs.postly.ai.
Google Sheets
- Connect via OAuth and pick a sheet.
- Map columns:
caption,mediaUrl,scheduleTime,status. - Select sync rule: On new row or Status = Ready.
- Preview → create drafts or scheduled posts.
Notion
- Connect workspace and choose a database.
- Map properties: Title/Caption, Media URL(s), Schedule (date), Status (select).
- Enable incremental sync on Status changes.
- Optionally return publish status back to a Notion “Result” field.
Airtable
- Connect base/table and pick a view (e.g., “Ready to Publish”).
- Map fields; enable incremental sync using a checkbox or single-select column.
- Postly upserts drafts/schedules; failed rows remain in view for quick fixes.
Slack & Discord (alerts/approvals)
- Connect Slack/Discord and choose a channel.
- Enable publish and failed alerts; optionally enable weekly summaries.
- To require approvals, toggle “Approval needed” in Postly; approvers get channel prompts.
Webhook events
The events below are representative examples. The full and up-to-date webhook reference is maintained in the API Docs.
| Event | When | Payload (key fields) | Notes |
|---|---|---|---|
| post.created | Draft created (from sync/API) | id, workspaceId, platforms[], status=draft | Use to trigger approval workflow. |
| post.scheduled | Post scheduled with time | id, scheduleTime, platforms[], status=scheduled | Reliable scheduling; retries on transient failures. |
| post.published | Successfully published | id, publishedAt, perPlatformResults[] | Update external sheets/DBs with permalinks. |
| post.failed | Publish attempt failed | id, error.code, error.message, attempt | Route to Slack/Discord for quick remediation. |
| file.uploaded | Asset stored | fileId, mime, size, checksum | Use for asset processing or audits. |
All webhooks are signed. Retries use exponential backoff. Test events available in sandbox.
REST API quickstart
These cURL snippets are mock samples to demonstrate the concepts. Refer to docs.postly.ai for accurate endpoints, schemas, and SDK examples.
Create a scheduled post (idempotent):
curl -X POST https://api.postly.ai/posts \
-H 'X-API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000' \
-d '{
"workspaceId":"ws_123",
"text":"AI caption",
"platforms":["x","instagram"],
"media":[{"url":"https://example.com/image.jpg"}],
"scheduleTime":"2025-12-01T10:00:00Z",
"utm":{"source":"postly","campaign":"winter_drop"}
}'Subscribe to webhooks (REST-hook):
curl -X POST https://api.postly.ai/webhooks \
-H 'X-API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"url":"https://example.com/hooks/postly",
"events":["post.created","post.scheduled","post.published","post.failed"],
"secret":"your-signing-secret"
}'Auth
Account-wide API keys. Rotate in dashboard. Per-workspace scoping coming soon.
Idempotency
Send a unique Idempotency-Key for safe retries; duplicates return the original result.
Pagination & Limits
Standard cursor pagination; responses include X-RateLimit-* headers.
Security & reliability
Signed webhooks
HMAC signatures with shared secret; reject mismatches.
Retry policy
Automatic exponential backoff on transient errors.
Audit trails
Every action is logged with actor, time, and payload digest.
Permissions
Role-based access; governed publishing for brands.
Environments
Sandbox
Use sandbox API keys to test without publishing live. Send test webhooks, validate signatures, iterate safely.
Production
Rotate keys regularly, enable Slack/Discord alerts, monitor rate limits, and set fallback schedules on long queues.
Common automation recipes
Recipes are illustrative only; confirm exact toggles and payloads in your dashboard and the API Docs.
Sheets → Postly → Slack
- New row with Status=Ready
- Postly creates schedule
- Outgoing webhook posts summary to #approvals
Great for content ops with light approvals.
Notion board → Postly
- Card moved to “Ready”
- Postly drafts the post
- Approver toggles “Approved” to schedule
Keeps teams in Notion; Postly handles the heavy lifting.
Airtable view → Postly + Discord
- View filters “Publish = true”
- Postly schedules at preferred times
- Discord alerts on failures
Good for agencies with channel-specific views.
Frequently Asked Questions
Is Postly an automation tool or a scheduler?
Automation tool. Scheduling is one capability. We lead with native integrations and a full developer layer so teams can automate end-to-end.
Do I need Zapier/n8n/Make to use Postly?
No. They are optional. Most flows can be done natively or via our REST API and signed webhooks. Use Zapier/n8n/Make only if you prefer.
What are the first-class native integrations?
Google Sheets, Notion, Airtable, Slack, Discord, Incoming/Outgoing Webhooks, UTM Builder, and optionally Google Calendar/Calendly.
How do I start as an engineer?
Grab an API key, import our OpenAPI spec to Postman, enable test webhooks, and ship using idempotent requests.