Install our app for a better experience!

Recipe: Zapier, Pabbly & Make (webhooks and assignments)

Recipe: Zapier, Pabbly & Make (no code)

Get PrepareBuddy events — a finished test, a new student, an enrolment about to expire — into any app Zapier, Pabbly Connect or Make can reach (Google Sheets, HubSpot, Slack, email, your CRM) without writing code. You connect two things: PrepareBuddy sends a webhook → the tool catches it and does something.

You need: an organization-admin login to PrepareBuddy, and an account on one of the three tools.


Part 1 — Catch the webhook in your tool

Zapier

  1. Create Zap → Trigger → Webhooks by Zapier → Catch Hook → Continue.
  2. Zapier shows a Custom Webhook URL like https://hooks.zapier.com/hooks/catch/123456/abcdef/. Click Copy.

Pabbly Connect

  1. Create Workflow → Trigger → Webhook.
  2. Copy the webhook URL Pabbly shows.

Make (Integromat)

  1. Create a new scenario → + → Webhooks → Custom webhook → Add. Name it PrepareBuddy.
  2. Copy the address Make shows.

Part 2 — Tell PrepareBuddy where to send

  1. PrepareBuddy: Organization dashboard → API Keys & Integrations → Manage webhooks.
  2. Paste the URL from Part 1.
  3. Time zone for timestamps: e.g. Asia/Kolkata (or leave UTC).
  4. Send these events: untick anything you don't need. For a results sheet, keep only result.final.
  5. Click Add webhook, then Send test.
  6. Back in your tool, click Test trigger (Zapier), Re-capture (Pabbly) or Run once (Make). It receives the test event — the fields type = ping and data.message.

To map result fields (score, email …) the tool needs one real event. Easiest: sign in as a test student and finish a short quiz, then test the trigger again. Or map the fields by name using the example payloads.

Part 3 — Do something with it

Example A: every final score into a Google Sheet (updates on re-mark)

Make a sheet with columns: Result ID, Email, Name, Test, Score, Out of, Percentage, Completed.

Zapier

  1. + → Filter by Zapier: Only continue if Type (Text) Exactly matches result.final.
  2. + → Google Sheets → Lookup Spreadsheet Row: lookup column Result ID, lookup value Data Id. Tick "Create Google Sheets Spreadsheet Row if it doesn't exist yet?" and map every column:
Sheet column Zapier field
Result ID Data Id
Email Data Student Email
Name Data Student First Name
Test Data Item Title
Score Data Score
Out of Data Max Score
Percentage Data Percentage
Completed Data Completed At
  1. + → Google Sheets → Update Spreadsheet Row: Row = the row from step 2; map the same fields (this updates a re-marked score).
  2. Turn the Zap on.

Pabbly: Filter (type equals result.final) → Google Sheets: Lookup Row → Router: found → Update Row, not found → Add Row.

Make: Filter (type = result.final) → Google Sheets: Search Rows (Result ID = data.id) → Router: bundles = 0 → Add a Row, otherwise → Update a Row.

Example B: warn the counsellor when access is about to end

  1. Webhook with only enrollment.expiring ticked.
  2. Action: Gmail/Outlook → Send email to your counsellor: "{{data.student.first_name}}'s {{data.enrollment.course_name}} access ends in {{data.days_left}} days ({{data.enrollment.end_date}})."

Example C: post in Slack when a student falls behind

  1. Webhook with only assignment.overdue ticked.
  2. Action: Slack → Send Channel Message: "⏰ {{data.student.first_name}} {{data.student.last_name}} has not finished {{data.item.title}} (due {{data.due_date}})."

Example D: new student → your CRM

  1. Webhook with only student.joined ticked.
  2. Action: HubSpot/Zoho → Create or update contact: email = data.email, first name = data.first_name, last name = data.last_name.

Part 4 — Assign a test automatically (the other direction)

Your tool can also tell PrepareBuddy to assign work — for example when someone buys a mock test in your shop. This needs a Full access key.

  1. Find the item's id: GET https://www.preparebuddy.com/api/v1/catalog/ (see Roster, Assignments & Activity API) — note the kind and item_id.
  2. Action: Webhooks by Zapier → POST (Pabbly: API by Pabbly, Make: HTTP → Make a request):
  3. URL: https://www.preparebuddy.com/api/v1/assignments/
  4. Headers: X-API-Key = your full-access key
  5. Payload type: JSON
  6. Data:

    json {"email": "{{buyer_email}}", "kind": "test", "item_id": 57, "due_date": "2026-10-31"}

The student must already be in your organization — put the onboarding call first in the same workflow if they might be new. 3. A reply with "created": true means it was assigned; "created": false means they already had it open (safe — nothing is assigned twice).


Security note

Zapier, Pabbly and Make webhook URLs are long and secret: anyone who has one can post to your workflow. Don't share them. These tools can't check PrepareBuddy's signature header; if you need that, receive webhooks in your own server (Webhooks → Verify the signature).