Zapier Set Up Guide for Publishers
Receive PR orders on your site with ZapierThis guide walks publishers through receiving Mintfunnel press release orders on their website using Zapier, no developer required. By the end you'll have a working integration that publishes each approved PR order straight to your CMS (Ghost, Webf
Last updated
Receive PR orders on your site with Zapier
This guide walks publishers through receiving Mintfunnel press release orders on their website using Zapier, no developer required. By the end you'll have a working integration that publishes each approved PR order straight to your CMS (Ghost, Webflow, Shopify, Notion, WordPress, Squarespace, and 1,000+ others).
What you'll need
- A Mintfunnel publisher account with at least one PR-enabled site
- A free or paid Zapier account (zapier.com)
- Administrative access to the CMS where you want orders published
Estimated time: 10 to 20 minutes
What this integration does
Mintfunnel sends each approved PR order to a unique Zapier webhook URL. Inside Zapier, you connect that webhook to your CMS. Zapier handles the field mapping, authentication, and the actual "create a new post" call on your CMS's side.
Orders always wait in your Mintfunnel approval queue before anything is sent to Zapier. Approving an order in your Mintfunnel dashboard is what triggers the webhook. Zapier never sees orders you haven't approved.
If you turn on auto-approve in your publishing settings, Mintfunnel skips your approval queue, but the publisher-side review (Mintfunnel's editorial check) still happens upstream. Auto-approve only changes when your queue is bypassed, not whether content is reviewed.
Part 1: Create the Zap and copy the webhook URL
- Open Zapier and click Create Zap (or + Create > Zaps).
- In the Trigger step, search for and select Webhooks by Zapier. Note: Webhooks by Zapier is a premium feature. If you're on a free plan you'll be prompted to upgrade. Free trials are usually available.
- For Event, choose Catch Hook, then click Continue.
- Leave Pick off a Child Key blank. Mintfunnel sends all order fields at the top level. Click Continue.
- Zapier will show you a Custom Webhook URL (for example, https://hooks.zapier.com/hooks/catch/12345678/abcdefg/). Click Copy. Keep this tab open.
- Switch to your Mintfunnel dashboard and go to Services > PR Distribution > Publishing setup.
- Pick the site you're setting up (if you have more than one).
- Choose Zapier (No code) as your distribution method.
- In Step 2, paste your Zapier webhook URL.
- Click Save at the bottom of the page. You should see a success message confirming your webhook URL is stored.
Part 2: Send a test order to Zapier
Before wiring up your CMS, send a test event so Zapier knows the shape of the data Mintfunnel will send.
- In Mintfunnel, scroll to Step 4 on the Publishing setup page.
- Click Send test. The indicator will turn green if Zapier accepted the request.
- Switch back to your Zapier tab and click Test trigger (or Find new records). Zapier will show a sample test record.
- Click Continue to confirm the trigger is working.
Note: The test event is shaped slightly differently from a real order. It doesn't include fields like title or content. For more accurate field mapping, place a free internal test order from your own Mintfunnel account targeting your site. That will produce a full-shape payload you can use for mapping.
Part 3: Connect Zapier to your CMS
Add an Action step in your Zap that publishes the order to your CMS. Follow the steps for your platform below.
Ghost
- Click + in Zapier to add an action step.
- Search Ghost and select it.
- For Event, choose Create Post (or Create Page if you publish PRs as pages).
- Connect Ghost using your Ghost site URL and an Admin API key. (Ghost Admin > Settings > Integrations > Add custom integration.)
- Map fields: Title from title | HTML from content | Status from published or draft | Feature Image from featured_image_url
- Click Test step and verify the post looks right in Ghost.
Webflow CMS
- Add an action step and search Webflow.
- For Event, choose Create Live Item (publishes immediately) or Create Item (saves as draft).
- Connect Webflow via OAuth.
- Pick your Site and Collection (for example, "Blog Posts" or "Press Releases").
- Map fields: Name from title | Post Body from content | Featured image from featured_image_url | Slug: leave blank to auto-generate, or use a Formatter step to slugify title.
- Click Test step and confirm the item appears in Webflow CMS.
Shopify (blog post)
- Add an action step and search Shopify.
- For Event, choose Create Blog Post.
- Connect Shopify by selecting your store.
- Pick your Blog (Shopify supports multiple blogs per store).
- Map fields: Title from title | Body HTML from content | Author from company_name | Published from true or false | Image from featured_image_url
- Click Test step.
WordPress
- Add an action step and search WordPress.
- For Event, choose Create Post.
- Connect WordPress using your site URL and a username/application password. (WordPress: Users > Profile > Application Passwords.)
- Map fields: Title from title | Content from content | Status from publish or draft | Featured Image URL from featured_image_url
- Click Test step.
Note: If your WordPress site is already running the official Mintfunnel WordPress plugin, you don't need the Zapier route. The plugin is faster and avoids Zapier task usage.
Squarespace, Wix, Notion, Substack, and others
Search for your CMS in Zapier's action picker. Most platforms expose a Create Post or Create Page action. The mapping pattern is the same across platforms:
- title: Post/page title
- content: Body (HTML)
- featured_image_url: Hero / featured image
- company_name: Author or byline
- contact_email: Author email (optional)
- additional_notes: Internal notes / staff field (do not publish this)
If your CMS isn't in Zapier, you can use Webhooks by Zapier > POST as the action to call your CMS's REST API directly. This requires reading your CMS's API docs and is closer to the Webhook/API option. At that point, talk to your developer.
Part 4: Turn the Zap on and test end-to-end
- In Zapier, click Publish (top right).
- Confirm Turn Zap on.
- Back in Mintfunnel, go to Manage Orders and approve a test order if you have one queued.
- Within a minute, Zapier should run the Zap. Open Zapier's Zap history to confirm. Every run shows the data Mintfunnel sent and what your CMS returned.
- Check your CMS. The post should be live (or in draft, depending on how you configured the action step).
Optional: Add a Filter or Path step
- Filter by placement type: Add a Filter by Zapier step before the CMS action. Condition: Continue only if placement_type equals "Press Release" (or whichever type you want).
- Branch by category: Use Paths by Zapier to route different placements to different actions (for example, PR to blog, Sponsored to newsletter).
- Auto-tag posts: Map placement_type to your CMS's tag/category field so each post is tagged consistently.
- Format text: Use Formatter by Zapier to slugify the title, strip HTML, or trim whitespace.
Full payload reference
Every approved order arrives at your Zapier webhook as JSON with the following fields:
- payload_version (integer): Mintfunnel's payload version. Currently 1. Use this to future-proof your Zap.
- event (string): pr.publish (new order), pr.update (re-publish), or pr.test_ping (test from Mintfunnel).
- order_id (integer): Mintfunnel's internal numeric ID. Useful as a post slug or external reference.
- order_number (string): Human-readable order number (for example, MF-1234).
- title (string): The press release headline.
- content (string, HTML): The full press release body, ready for a CMS rich-text/HTML field.
- company_name (string): The advertiser's company name.
- featured_image_url (string or null): Direct link to the hero image. Most CMSes accept a URL and download the image automatically.
- contact_name (string or null): Press contact. Optional.
- contact_email (string or null): Press contact email. Optional.
- additional_notes (string or null): Internal notes from the advertiser. Do not publish this field.
- placement_type (string): The kind of placement (for example, Press Release, Sponsored Article). Useful for routing.
- external_post_id (string or null): On re-publishes (event = pr.update), this is the post ID your CMS returned the first time.
Handling updates and re-publishes
Mintfunnel may re-send an order if its content is edited after initial publication. In that case, the event field will be pr.update and external_post_id will carry the ID your CMS returned the first time.
To handle updates in Zapier:
- Add a Filter step: Continue only if event is pr.update.
- Add an Update Post action, looking up the post by external_post_id.
If you don't want to handle updates, add a filter set to Continue only if event is exactly pr.publish. The original post stays live and pr.update events will be ignored.
Sending the post URL back to Mintfunnel
When Mintfunnel knows the URL of the published article, your analytics dashboard can show the live link to the advertiser.
Option A (recommended): If your Zap's CMS action returns the post URL in its response (most do), no extra setup is needed. Mintfunnel automatically reads the response. Most publishers don't need to do anything here.
Option B: Add a Webhooks by Zapier > Custom Request action at the end of your Zap that POSTs the URL back to Mintfunnel. Contact the Mintfunnel Team for the endpoint URL and authentication details.
Troubleshooting
The test ping arrived in Zapier but my CMS action fails
Open Zapier's Zap history and click the failed run. Zapier shows the exact error from your CMS, usually a missing required field (for example, WordPress requires status). Re-test using a real order (not the test ping) to get a full-shape payload, then re-map the action.
My Zap is on but no orders are coming through
- Check Manage Orders in Mintfunnel. Is there an order waiting in your approval queue? Zapier only fires after you approve.
- Check your Publishing setup page. Confirm the Zapier webhook URL is saved and Zapier is the selected method.
- Check Zapier's Zap history. Failed runs show up there.
- Use the Send test button in Mintfunnel to confirm the round-trip is working.
Some of my orders are publishing twice
This usually means two action steps (or two paths) are firing for the same trigger. Check your Zap's structure and consolidate.
Zapier is reporting that webhooks are arriving but content is empty
The advertiser may have submitted an order without a press release body. Mintfunnel still forwards it so you can review. Check the order in your approval queue.
Zapier vs. WordPress plugin vs. Webhook/API
Zapier: Setup time 10 to 20 min | No developer needed | Supports 1,000+ CMSes | Requires a paid Zapier plan | Updates require a manual filter step | Few-second delay
WordPress plugin: Setup time 5 min | No developer needed | WordPress only | Free | Handles updates automatically | Near-instant
Webhook / API: Requires a developer | Any CMS | Server cost only | Custom code for updates | Near-instant
For most non-WordPress publishers, Zapier is the right choice. WordPress users should prefer the plugin. Custom-site developers should prefer Webhook/API.