Skip to content
Zapier case study

A membership lifecycle that grants access on purchase and removes it when the paid period ends

Six Zaps connect a membership business's checkout, its WordPress membership site, a private members' podcast and its email platform. Buyers get access straight away, returning members are reactivated rather than duplicated, cancellations wait for the paid period to end, and failed payments remove a member everywhere.

An online membership and coaching communityOnline membership and coachingBuilt 2025–20266 Zaps in the account
Zaps, all switched on
6
runs from 22 Sep to 20 Oct 2026, none errored
170
daily-job runs that removed members at the end of their paid period
20

The business

The business sells a style and fashion coaching membership: monthly, annual and overseas plans, upgrades and bonus offers, all through ThriveCart. Members get a WordPress membership site run on WishList Member, a private podcast on Hello Audio and emails from Kit, and the community itself is managed by the team.

Every one of those has to agree about who is a member. Someone who buys needs access to all of it at once; someone who cancels has paid until the end of their billing period and should keep access until then; someone whose payments fail three times should lose it straight away. Doing that by hand means somebody remembering dates.

We built it as six Zaps in three groups, with a Google Sheet as the queue and the audit log, and an email to the team whenever something needs a person.

Audited 21 Oct 2026. Six Zaps, all switched on. Pro plan (annual) with pay-per-task billing; autoreplay on. Tasks are shown for the previous period (13 Sep – 13 Oct) and the current one so far (13 Oct – 21 Oct). Runs and errors cover 22 Sep – 20 Oct.

What we built

01

Access on purchase

Three instant Zaps that give a buyer the right access the moment they pay, and bring a returning member back without creating a second account.

  • Instant2 steps

    Podcast access on any membership purchase

    • ThriveCart
    • Hello Audio
    Trigger
    ThriveCart – Product Purchase, on about 15 membership products (monthly, annual, overseas, upgrade, bonus)
    What it does
    Any membership purchase adds the buyer as a listener on the private members' podcast, with the welcome email on.
    The tricky part
    One trigger covers every product variant. It is on version 7 because the product list keeps being extended.
    Error handling
    None in the Zap. Account autoreplay is on.
    Usage
    5 tasks (13 Oct – 21 Oct), 53 (13 Sep – 13 Oct). 42 runs, 0 errors (22 Sep – 20 Oct).
    Status
    On, version 7, last edited 6 Oct 2026
  • Instant2 steps

    Bonus access level for annual-offer buyers

    • ThriveCart
    • WishList Member
    Trigger
    ThriveCart – Product Purchase, limited to the two annual offer products
    What it does
    Buyers of the annual offer get an extra bonus access level on the WordPress membership site.
    The tricky part
    It layers a second access level on top of the standard purchase flow, matched on email.
    Error handling
    None in the Zap. Account autoreplay is on.
    Usage
    0 tasks in either period. No runs in the last 60 days: the Zap is new.
    Status
    On, version 1, last edited 20 Oct 2026
  • Instant4 steps

    Returning member reactivated from the welcome form

    • Tally
    • Filter
    • Hello Audio
    • Email by Zapier
    Trigger
    Tally – New Submission on the members' welcome form
    What it does
    If the member answers that they are returning, their existing podcast listener is set back to active and the team is emailed. New members are filtered out, so nobody gets a duplicate listener.
    The tricky part
    It reactivates an existing record rather than creating one, and the branch comes from a form answer, not from payment data.
    Error handling
    None in the Zap. Account autoreplay is on.
    Usage
    4 tasks (13 Oct – 21 Oct), 64 (13 Sep – 13 Oct). 62 runs (24 completed, 38 filtered out), 0 errors (22 Sep – 20 Oct).
    Status
    On, version 1, last edited 4 Aug 2026
02

Two-stage voluntary cancellation

A cancellation is queued with its paid-through date, and a daily job removes the member only once that date has passed.

  • Instant5 steps

    Stage 1: queue the cancellation

    • ThriveCart
    • Formatter
    • Google Sheets
    • Kit
    • Email by Zapier
    Trigger
    ThriveCart – Recurring Payments Cancelled
    What it does
    The billing-period end date is formatted as YYYY-MM-DD, a row is added to the cancellations queue in Google Sheets, the subscriber is tagged as pending cancellation in Kit, and the team is told. Nothing is removed yet.
    The tricky part
    It is the first half of a two-stage cancellation, so the member keeps access until the period they paid for ends.
    Error handling
    None in the Zap. Account autoreplay is on.
    Usage
    18 tasks (13 Oct – 21 Oct), 81 (13 Sep – 13 Oct). 27 runs, 0 errors (22 Sep – 20 Oct).
    Status
    On, version 6, last edited 22 May 2026
  • Scheduled12 steps

    Stage 2: daily removal when the paid period ends

    • Schedule
    • Google Sheets
    • Looping
    • Filter
    • Webhooks
    • Hello Audio
    • Kit
    • Email by Zapier
    Trigger
    Schedule – every day at 7:00, weekends included
    What it does
    Every morning it looks up every queued row that is due and still pending, loops over them, removes each member from the membership site through the plugin's webhook, sets their podcast listener to inactive, swaps their Kit tags (adds the voluntary-cancellation tag, removes the active, pending and annual tags), emails the team to remove them from the community, and marks the row completed with a timestamp.
    The tricky part
    A batch job with a sheet as its queue: a multi-row lookup, a loop, and a status filter plus write-back so no member is processed twice. Removal goes through a direct webhook because Zapier has no native action for it.
    Error handling
    Built to be safe to re-run: processed rows are marked, and days with nothing due end as safely halted. Account autoreplay is on.
    Usage
    35 tasks (13 Oct – 21 Oct), 266 (13 Sep – 13 Oct). 34 runs (20 processed members, 14 halted on days with nothing due), 0 errors (22 Sep – 20 Oct).
    Status
    On, version 10 plus an unpublished draft, last edited 22 May 2026
03

Removal after failed payments

When the email platform marks a member as cancelled for non-payment, they lose access everywhere at once.

  • Not shown in the editor5 steps

    Third failed payment: remove the member everywhere

    • Kit
    • Webhooks
    • Hello Audio
    • Email by Zapier
    Trigger
    Kit – Subscriber Added to Tag, the non-payment cancellation tag
    What it does
    After the third failed payment the member is removed from the membership site through the plugin's webhook, their podcast listener is set to inactive, their active tag is removed and the team is emailed to remove them from the community.
    The tricky part
    It is driven by a tag that upstream payment-recovery emails set, and reuses the webhook removal from the daily job.
    Error handling
    None in the Zap. Account autoreplay is on.
    Usage
    0 tasks (13 Oct – 21 Oct), 28 (13 Sep – 13 Oct). 5 runs, 0 errors (22 Sep – 20 Oct).
    Status
    On, version 2 plus an unpublished draft, last edited 1 Sep 2025

What the counters show

  • 170 runs across the six Zaps from 22 Sep to 20 Oct 2026, and no errored run in that window. That is the sum of the counters above.

  • 492 tasks in the previous period (13 Sep – 13 Oct) and 62 in the current one so far (13 Oct – 21 Oct). The daily removal job used 266 of the 492: it is the 12-step batch job.

  • The daily job ran 34 times in that window: 20 runs processed members whose paid period had ended, and 14 halted because nothing was due.

  • The welcome-form Zap filtered out 38 of its 62 runs as new members, which is the branch doing its job.

What we would change

  • Five of the six Zaps have no error handling of their own and rely on the account's autoreplay. We would add an alert step after the two webhook removals, where a silent failure leaves someone with access they have stopped paying for.

  • The daily job loops over sheet values split on commas, so a value containing a comma would break the loop. We would move it to a line-item lookup.

  • Removal depends on the membership plugin's webhook, because Zapier has no native removal action. If that endpoint changes, removals stop until the Zaps are updated.

  • Two Zaps carry unpublished drafts beside the live version. We would publish or discard them, so the live logic is the only version anyone reads.

Nothing was left out: all six Zaps in the account are complete and on.

Built with

  • Zapier
  • ThriveCart
  • WishList Member
  • WordPress
  • Hello Audio
  • Kit
  • Tally
  • Google Sheets
  • Webhooks

Page copy drafted with AI assistance. Skofi is accountable for it. Editorial policy

Start here

Have a Zapier account like this one?

We start by reading what is already there: every Zap, its counters and its failures. A short call is the fastest way to find out what yours needs.

Book a 15-minute callsaveez@skofi.tech

What happens on the call

  • 15 minutes, no deck
  • We map the process on the call
  • A written scope, or an honest no
Book a call