Back to guides

Zapier

Connect GetWaitly to 5,000+ apps via webhooks. Forward new signups to Slack, Google Sheets, Mailchimp, Discord, and more — no code required.

Step 1: Get your webhook URL

  1. Open your waitlist's Integrations page from the dashboard sidebar, then the Webhooks card.
  2. In Zapier (next step) you'll get a URL like https://hooks.zapier.com/... — paste it into the Webhook URL field.
  3. Click Send test to confirm it works, then Save webhook.

Step 2: Create a Zap

  1. Go to Zapier and click Create Zap.
  2. Choose Webhooks by Zapier as the trigger app.
  3. Select Catch Hook as the event.
  4. Copy the webhook URL Zapier gives you and paste it into your GetWaitly webhook settings.
  5. Add an action: Slack, Google Sheets, Mailchimp, Discord, etc.

Step 3: Test & turn on

Sign up on your waitlist to trigger a test event. Zapier receives the payload so you can map the fields in your action step. Turn on your Zap when it looks good.

Webhook payload

{
  "event": "signup.new",
  "email": "visitor@example.com",
  "name": "Alex",
  "referralCode": "abc123defg",
  "position": 42,
  "referredById": null,
  "timestamp": "2026-08-06T12:00:00.000Z"
}

Events: signup.new (single opt-in), signup.confirmed (double opt-in), referral.new (when someone refers a friend).

Delivery & retries

Deliveries are queued and retried automatically: 429 and 5xx (or a timeout) are retried up to 3 times, 30 seconds apart; other 4xx responses are treated as permanent. The last 20 attempts are shown on the Integrations page.

Verifying the signature

When you set a webhook secret, every request includes X-GetWaitly-Timestamp and X-GetWaitly-Signature-256 — an HMAC-SHA256 of timestamp.body. Verify it before trusting the payload:

const timestamp = req.headers["x-getwaitly-timestamp"];
const signature = req.headers["x-getwaitly-signature-256"];
const expected = crypto
  .createHmac("sha256", secret)
  .update(`${timestamp}.${rawBody}`)
  .digest("hex");
if (expected !== signature) return res.status(401).end();