Skip to content
Zapier case study

A test licence bought through Stripe becomes a ready FlexiQuiz account, over raw API calls

Built white-label inside an Australian digital agency's Zapier workspace, for a consulting and training firm that sells licences for online skills tests. When a Stripe checkout completes, the Zap finds or creates the buyer in FlexiQuiz through its REST API, puts them in the test group for the licence they bought, logs the sale in a sheet, adds them to Mailchimp and sends a welcome email through Brevo.

A consulting and training firm selling online skills-test licencesAssessment and trainingBuilt 20263 Zaps for this client, in a 27-Zap agency workspace
steps from a Stripe checkout to a ready test account
12
branches: a new FlexiQuiz user or an existing one
2
tools each payment reaches after Stripe
4

The business

This work was delivered white-label, inside the Zapier workspace of an Australian digital agency that builds and runs WordPress and Gravity Forms sites for its clients. The agency is not named, and neither is its client. Each client has its own folder in the workspace; this page covers one of them, and the agency's other clients are written up on their own pages.

The firm sells licences for skills tests that run on FlexiQuiz, an online quiz and assessment platform. Payment is through Stripe Checkout, with the licence type carried in the checkout's metadata, and a buyer can also nominate a candidate to take the test.

Every call to FlexiQuiz is a raw REST request with an API key, so the Zap has to do what an app action would: look the buyer up first, and create them only when they are not there.

Audited 21 Oct 2026. The agency's workspace holds 27 Zaps for several clients; the audit lists 3 in this client's folder, 2 of them on. Pro plan (annual), 750 tasks a month, resetting on the 22nd; this period's 750 plan tasks and 100 pay-per-task tasks are used up. Autoreplay off. Neither Zap described here has run in the last 60 days, so their figures are 0.

What we built

01

Purchase to test access

One Stripe event, a lookup in FlexiQuiz, a create-or-assign branch, and the same logging and emails on both branches; plus a log of nominated candidates.

  • Instant12 steps

    Stripe checkout to a FlexiQuiz account and test

    • Stripe
    • Formatter
    • Webhooks
    • Google Sheets
    • Mailchimp
    • Brevo
    Trigger
    Stripe – Checkout Session Completed
    What it does
    The buyer's name is split, and a request to the FlexiQuiz API looks them up. A new user is created in FlexiQuiz and assigned to the product's test group, which sends the platform's invitation email; an existing user is only assigned. On both branches the customer is logged in a sheet (email, name, company, the licence type from the Stripe checkout metadata, the Stripe transaction, the FlexiQuiz user ID and the date), added to or updated in Mailchimp, and sent a transactional welcome email through Brevo.
    The tricky part
    Every FlexiQuiz call is a raw REST request with an API-key header, in a look-up-then-create pattern so a returning buyer is assigned rather than created again. The licence type comes from Stripe's checkout metadata.
    Error handling
    None. Autoreplay is off.
    Usage
    0 (no runs in 60 days).
    Status
    On, version 7, last edited 10 Mar 2026
  • 2 steps

    Candidate nominations logged

    • Gravity Forms
    • Google Sheets
    Trigger
    Gravity Forms – Form Submission on the candidate registration form
    What it does
    A purchaser nominates a test-taker on a website form, and the nomination is added as a row in a candidate-requests tab.
    The tricky part
    Simple capture.
    Error handling
    None.
    Usage
    0.
    Status
    On, version 1, last edited 4 Mar 2026

What the counters show

  • Neither Zap has run in the last 60 days, so there are no run, task or error counters to report. Both are switched on.

  • What the folder shows is the provisioning pattern: a payment event, a lookup on a platform reached only through its API, a create-or-assign branch, and the same logging, list and email steps on both branches.

What we would change

  • There is no error handling and autoreplay is off. If a FlexiQuiz request fails after Stripe has taken the payment, the buyer has paid without getting access and nothing tells the team. We would add an error path on the FlexiQuiz steps that emails the team with the checkout details.

  • The API key travels in a header typed into the Webhooks steps. We would move it into an API by Zapier connection, which Zapier recommends for authenticated requests, so it is not readable by everyone with access to the Zap.

  • The sheet is the only record that joins a Stripe transaction to a FlexiQuiz user, and the live version is a fix to the sheet's column mapping. We would protect the columns the Zap writes to.

One Zap is not described: an earlier linear six-step version of the purchase Zap, replaced by the branching one and now off.

Built with

  • Zapier
  • Stripe
  • FlexiQuiz API
  • Webhooks
  • Google Sheets
  • Mailchimp
  • Brevo
  • Gravity Forms
  • Formatter

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