Answer: Keep drafting and approval in n8n (Form/Slack/Email wait nodes), then call Postifys only after approval. Never auto-publish unreviewed media to live social accounts.
Pattern
- Ingest - webhook, form, Drive folder, or schedule creates a draft item (title, caption, media URL, destinations).
- Review - Slack/Email/Form approval with approve/reject buttons.
- Publish - on approve, run Postifys nodes for selected platforms.
- Record - store Postifys history ids / URLs back to your sheet or CRM.
Safety: Put the approval Wait node before any Postifys publish action. Treat API keys as secrets in n8n credentials.
Suggested n8n nodes
- Trigger: Schedule / Webhook / Google Drive
- Human gate: Wait / Slack / Email
- Publish: Postifys community node (per platform)
- Notify: Slack or email with success/failure summary
Templates: downloadable workflows · Guide: automate posting with n8n
What this means in a real publishing workflow
Approval belongs before the publishing fan-out, while platform-specific validation belongs inside each destination branch. A reviewer should see the final title, caption, media preview, destination accounts, and scheduled time—not an incomplete upstream draft.
Recommended implementation
- Write the draft into a table with a stable content ID.
- Send a preview to the reviewer and wait for an explicit approved state.
- Lock the approved fields before branching to Postifys nodes.
- Save one Postifys history ID and final result per destination.
How to verify the fix
Reject edits made after approval unless they trigger a new review. Test approved, rejected, expired, and duplicate callback paths before scheduling the workflow.
Operational check: Test with one item, confirm the final destination and Postifys history state, and only then enable the recurring workflow. Keep the returned Postifys ID beside the source row so every result remains traceable.
Related Postifys resources
API documentation · Error reference · n8n automation guide · Safe retry guide · Compatibility matrix