Skip to content
FeaturesPricingAffiliateBlogHelpAboutContact
Get StartedSign In
Back to Blog
tips2028-08-156 min read

Affiliate Automation: Zapier Integration with thMenu Webhooks

An Izmir food creator zeroed manual work on every affiliate conversion using Zapier + thMenu webhooks. Free tier 100 tasks/month covers 25 conversions.

th

thMenu Team

thmenu.com

An Izmir-based food content creator was logging 40+ affiliate conversions monthly, spending 30 minutes per conversion to add a Google Sheets row, post in Slack #wins, ping Discord, and send a bcc welcome email. With Zapier hooked into thMenu's S2S postback, the entire workflow now runs hands-off — saving 20+ hours a month. Here is the exact step-by-step setup, free tier math, and a self-hosted n8n alternative.

How thMenu S2S Postback Works

thMenu Phase 3 affiliate sends an HMAC-SHA256 signed POST to your configured URL on every commission event (created, refunded, released). The header X-thMenu-Signature: sha256=<hmac> carries the signature, and the JSON payload contains affiliate_id, restaurant_id, commission_amount, currency, status, and created_at. Open Affiliate Dashboard → Settings → Postback URL, paste your endpoint, click "Generate signing secret" to mint the HMAC key, and flip the Enabled toggle.

Failed deliveries land in affiliate_postback_log; an hourly cron retries with exponential backoff up to 5 times. After the fifth failure the event is marked dead — so a high-uptime endpoint (Zapier Catch Hook claims 99.9% SLA) is essential. Always log raw payloads on your side for forensic recovery.

Step-by-Step Zapier Setup

Inside Zapier, create a new Zap. Set the trigger to Webhooks by Zapier → Catch Hook. Zapier issues a unique URL like https://hooks.zapier.com/hooks/catch/... Paste this into thMenu Settings → Postback URL, then click the admin "Simulate" button to fire a test commission. Zapier's Test Trigger panel will display the parsed payload and auto-map every field for downstream actions.

Build the action chain in this order: 1) Google Sheets → Create Row with date/restaurant/commission/status columns; 2) Slack → Send Channel Message to #wins with ":moneybag: New commission: {{commission_amount}} {{currency}} from {{restaurant_name}}"; 3) Webhooks → POST to your Discord webhook URL with the same payload; 4) Gmail → Send Email bcc your partner manager for audit trail. Add a Zapier Filter step so only status=released hits Sheets, while status=created routes to Slack only — keeps task burn low.

Free Tier Math and n8n Alternative

Zapier Free includes 100 tasks per month. A 4-action Zap consumes 4 tasks per conversion, covering exactly 25 conversions/month. The Starter plan ($29.99/mo) unlocks 750 tasks plus Multi-Step Zaps and Path Branching. The first 14 days grant premium feature trial — use that window to tune filters and reduce task waste before downgrading.

For 200+ conversions/month or stricter compliance, choose n8n self-hosted on a $5/mo VPS via Docker. Unlimited tasks, native HMAC verification through Code nodes, and a Community Edition template named "thMenu Webhook → Sheets/Slack/Discord/Email" lives at n8n.io/workflows. Sub-workflows handle retries, dead-letter queues, and structured audit logs — production-grade reliability without per-task fees.

FAQ

How do I verify the HMAC signature inside Zapier? Zapier Free lacks native HMAC; use a Code by Zapier (Python/JS) step with crypto.createHmac to compute and compare against X-thMenu-Signature. On Starter or higher use Webhooks Advanced with a Filter step.

What happens when I hit the 100-task Free cap? Your Zaps pause until the next billing cycle — no data loss, just no firing. Upgrade or wait. For mission-critical pipelines, run n8n yourself.

My endpoint went down and events died — recovery? Open Super Admin → affiliate_postback_log, locate dead events, click "Resend" to manually retry. While Zapier is down, point the URL at Pipedream or RequestBin to capture payloads, then reroute back once healthy.

Found this helpful? Share it.